3
* Spring Signage Ltd - http://www.springsignage.com
4
* Copyright (C) 2015 Spring Signage Ltd
9
{% extends "authed.twig" %}
10
{% import "inline.twig" as inline %}
12
{% block actionMenu %}
13
<ul class="nav nav-pills pull-right">
14
<li class="btn btn-success btn-xs"><a class="XiboFormButton btns" href="{{ urlFor("notification.add.form") }}"><i class="fa fa-plus-circle" aria-hidden="true"></i> {% trans "Add Notification" %}</a></li>
19
{% block pageContent %}
21
<div class="widget-title">{% trans "Notification Centre" %}</div>
22
<div class="widget-body">
23
<div class="XiboGrid" id="{{ random() }}">
24
<div class="XiboFilter">
25
<div class="FilterDiv" id="Filter">
26
<form class="form-inline">
31
<div class="XiboData">
32
<table id="notifications" class="table table-striped">
35
<th>{% trans "Subject" %}</th>
36
<th>{% trans "Date" %}</th>
37
<th>{% trans "Email?" %}</th>
38
<th>{% trans "Interrupt?" %}</th>
52
{% block javaScript %}
53
<script type="text/javascript">
54
var table = $("#notifications").DataTable({ "language": dataTablesLanguage,
55
serverSide: true, stateSave: true, stateDuration: 0,
56
stateLoadCallback: function (settings, callback) {
61
url: "{{ urlFor("user.pref") }}?preference=notificationGrid",
63
success: function (json) {
65
data = JSON.parse(json.data.value);
70
stateSaveCallback: function (settings, data) {
73
url: "{{ urlFor("user.pref") }}",
76
option: "notificationGrid",
77
value: JSON.stringify(data)
84
"order": [[ 1, "desc"]],
86
"url": "{{ urlFor("notification.search") }}",
88
$.extend(d, $("#notifications").closest(".XiboGrid").find(".FilterDiv form").serializeObject());
92
{ "data": "subject" },
95
"render": dataTableDateFromUnix
99
"render": dataTableTickCrossColumn
102
"data": "isInterrupt",
103
"render": dataTableTickCrossColumn
107
"data": dataTableButtonsColumn
112
table.on('draw', dataTableDraw);
113
table.on('processing.dt', dataTableProcessing);
115
function notificationFormOpen(dialog) {
116
$('select[name="displayGroupIds[]"]', dialog).selectpicker();
117
$('select[name="userGroupIds[]"]', dialog).selectpicker();
119
// Conjure up a text editor
120
CKEDITOR.replace("body", CKEDITOR_DEFAULT_CONFIG);
122
// Make sure when we close the dialog we also destroy the editor
123
dialog.on("hide.bs.modal", function(event) {
124
if (event.target.className == "bootbox modal in" && CKEDITOR.instances["body"] != undefined) {
125
CKEDITOR.instances["body"].destroy();
b'\\ No newline at end of file'