symposion_app/pinaxcon/templates/symposion/reviews/result_notification.html
Joel Addison 149b7c8a54 Improve proposal/review styling
Use correct block for page titles. Fix element styles to be consistent
across site. Use fluid layout for review to enable sidebar.
2019-07-24 21:03:50 +10:00

187 lines
8.3 KiB
HTML

{% extends "symposion/reviews/base.html" %}
{% load i18n %}
{% block head_title %}{% trans 'Result Notification' %}{% endblock %}
{% block body_class %}{{ block.super }} review-results{% endblock %}
{% block extra_style %}
{{ block.super }}
<style type="text/css">
.table-striped tbody tr.selected td {
background-color: #F7F4E6;
}
</style>
{% endblock %}
{% block body %}
<h1>Result Notification</h1>
<ul class="nav nav-tabs">
<li class="nav-item"><a class="nav-link {% if status == 'accepted' %}active{% endif %}" href="{% url "result_notification" section_slug 'accepted' %}">Accepted</a>
<li class="nav-item"><a class="nav-link {% if status == 'rejected' %}active{% endif %}" href="{% url "result_notification" section_slug 'rejected' %}">Rejected</a>
<li class="nav-item"><a class="nav-link {% if status == 'standby' %}active{% endif %}" href="{% url "result_notification" section_slug 'standby' %}">Standby</a>
</ul>
<form class="form-horizontal" method="post" action="{% url "result_notification_prepare" section_slug status %}">
{% csrf_token %}
<p>
Select one or more proposals (<span class="action-counter">0</span> currently selected)
<br/>
then pick an email template
<select name="notification_template">
<option value="">[blank]</option>
{% for template in notification_templates %}
<option value="{{ template.pk }}">{{ template.label }}</option>
{% endfor %}
</select>
<br/>
<button id="next-button" type="submit" class="btn btn-primary" disabled>Next <i class="fa fa-chevron-right"></i></button>
</p>
<table class="table table-striped table-bordered table-reviews">
<thead>
<th><input type="checkbox" id="action-toggle"></th>
<th>#</th>
<th>{% trans "Speaker / Title" %}</th>
<th>{% trans "Category" %}</th>
<th>{% trans "Status" %}</th>
<th>{% trans "Notified?" %}</th>
</thead>
<tbody>
{% for proposal in proposals %}
<tr>
<td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td>
<td>{{ proposal.number }}</td>
<td>
<a href="{% url "review_detail" proposal.pk %}">
<small><strong>{{ proposal.speaker }}</strong></small>
<br />
{{ proposal.title }}
</a>
</td>
<td>{{ proposal.track }}</td>
<td>
{% with proposal.result.status as status %}
<div class="{{ status }}">
{% if status != "undecided" %}
<span>{{ status }}</span>
{% endif %}
</div>
{% endwith %}
</td>
<td>
{% if proposal.notifications.exists %}yes{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
{% endblock %}
{% block extra_script %}
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jszip-2.5.0/dt-1.10.16/b-1.4.2/b-colvis-1.4.2/b-flash-1.4.2/b-html5-1.4.2/b-print-1.4.2/cr-1.4.1/fc-3.2.3/fh-3.1.3/r-2.2.0/rg-1.0.2/datatables.min.css"/>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs/jszip-2.5.0/dt-1.10.16/b-1.4.2/b-colvis-1.4.2/b-html5-1.4.2/b-print-1.4.2/cr-1.4.1/fc-3.2.3/fh-3.1.3/r-2.2.0/rg-1.0.2/datatables.min.js"></script>
<script type="text/javascript">
(function($) {
$.fn.actions = function(opts) {
var options = $.extend({}, $.fn.actions.defaults, opts);
var actionCheckboxes = $(this);
checker = function(checked) {
$(actionCheckboxes).prop("checked", checked)
.parent().parent().toggleClass(options.selectedClass, checked);
}
updateCounter = function() {
var sel = $(actionCheckboxes).filter(":checked").length;
$(options.counterContainer).html(sel);
$(options.allToggle).prop("checked", function() {
if (sel == actionCheckboxes.length) {
value = true;
} else {
value = false;
}
return value;
});
if (sel == 0) {
$("#next-button").prop("disabled", true);
} else {
$("#next-button").prop("disabled", false);
}
}
// Check state of checkboxes and reinit state if needed
$(this).filter(":checked").each(function(i) {
$(this).parent().parent().toggleClass(options.selectedClass);
updateCounter();
});
$(options.allToggle).click(function() {
checker($(this).prop("checked"));
updateCounter();
});
lastChecked = null;
$(actionCheckboxes).click(function(event) {
if (!event) { var event = window.event; }
var target = event.target ? event.target : event.srcElement;
if (lastChecked && $.data(lastChecked) != $.data(target) && event.shiftKey == true) {
var inrange = false;
$(lastChecked).prop("checked", target.checked)
.parent().parent().toggleClass(options.selectedClass, target.checked);
$(actionCheckboxes).each(function() {
if ($.data(this) == $.data(lastChecked) || $.data(this) == $.data(target)) {
inrange = (inrange) ? false : true;
}
if (inrange) {
$(this).prop("checked", target.checked)
.parent().parent().toggleClass(options.selectedClass, target.checked);
}
});
}
$(target).parent().parent().toggleClass(options.selectedClass, target.checked);
lastChecked = target;
updateCounter();
});
}
/* Setup plugin defaults */
$.fn.actions.defaults = {
counterContainer: "span.action-counter",
allToggle: "#action-toggle",
selectedClass: "selected"
}
})($);
$(function() {
$("tr input.action-select").actions();
});
$('.dataTable').dataTable({
"dom": "<'row'<'col-md-3'l><'col-md-3'B><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
"stateSave": true,
"lengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
"drawCallback": function( settings ) {
$("tr input.action-select").actions();
},
"pageLength": 100,
"colReorder": true,
"buttons": [ {
extend: 'collection',
text: 'Export',
buttons: ["copy", "csv", "print"]
},
{ extend: 'collection',
text: 'Columns',
buttons: [
{ extend: 'columnsToggle',
columns: '.toggle' },
{ extend: 'columnToggle',
text: 'Vote details',
columns: '.votes'
}
]
}]});
</script>
{% endblock %}