Bug 32199: Add page-section to various patron pages
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / members / notices.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE Koha %]
4 [% USE AuthorisedValues %]
5 [% USE Branches %]
6 [% USE KohaDates %]
7 [% SET footerjs = 1 %]
8 [% INCLUDE 'doc-head-open.inc' %]
9 <title>Sent notices for [% INCLUDE 'patron-title.inc' no_html = 1 %]</title>
10 [% INCLUDE 'doc-head-close.inc' %]
11 <style>
12     .notice { display: none; }
13 </style>
14 </head>
15
16 <body id="pat_notices" class="pat">
17     [% WRAPPER 'header.inc' %]
18     [% INCLUDE 'patron-search-header.inc' %]
19 [% END %]
20
21     [% WRAPPER 'sub-header.inc' %]
22     <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
23         <ol>
24             <li>
25                 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
26             </li>
27             <li>
28                 <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
29             </li>
30             <li>
31                 <a href="#" aria-current="page">
32                     Sent notices for [% INCLUDE 'patron-title.inc' %]
33                 </a>
34             </li>
35         </ol>
36     </nav>
37     [% END %]
38
39     <div class="main container-fluid">
40         <div class="row">
41             <div class="col-sm-10 col-sm-push-2">
42                 <main>
43
44                     [% INCLUDE 'members-toolbar.inc' %]
45                     <h1>Sent notices for [% INCLUDE 'patron-title.inc' %]</h1>
46
47                     [% IF ( QUEUED_MESSAGES ) %]
48                         <div class="page-section">
49                             <table id="noticestable">
50                                 <thead>
51                                     <tr>
52                                         <th>Notice</th>
53                                         <th>Type</th>
54                                         <th>Status</th>
55                                         <th>Updated on</th>
56                                         <th>Time created</th>
57                                         <th>Delivery note</th>
58                                     </tr>
59                                 </thead>
60                                 <tbody>
61                                     [% FOREACH QUEUED_MESSAGE IN QUEUED_MESSAGES %]
62                                         <tr>
63                                             <td>
64                                                 <a class="notice-title" data-noticeid="[% QUEUED_MESSAGE.message_id | html %]" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber | uri %]&amp;noticeid=[% QUEUED_MESSAGE.message_id | uri %]">[% QUEUED_MESSAGE.subject | html %]</a>
65                                                 <iframe class="notice" id="notice[% QUEUED_MESSAGE.message_id | html %]" srcdoc="[% QUEUED_MESSAGE.content | html | html_line_break %]"></iframe>
66                                             </td>
67                                             <td>
68                                                 [% IF ( QUEUED_MESSAGE.message_transport_type == 'email' ) %]<span>email</span>
69                                                 [% ELSIF ( QUEUED_MESSAGE.message_transport_type == 'print' ) %]<span>print</span>
70                                                 [% ELSIF ( QUEUED_MESSAGE.message_transport_type == 'feed' ) %]<span>feed</span>
71                                                 [% ELSIF ( QUEUED_MESSAGE.message_transport_type == 'sms' ) %]<span>sms</span>
72                                                 [% ELSE %][% QUEUED_MESSAGE.message_transport_type | html %][% END %]
73                                             </td>
74                                             <td>
75                                                 [% IF ( QUEUED_MESSAGE.status == 'sent' ) %]<span>sent</span>
76                                                 [% ELSIF ( QUEUED_MESSAGE.status == 'pending' ) %]<span>pending</span>
77                                                 [% ELSIF ( QUEUED_MESSAGE.status == 'failed' ) %]<span>failed</span>
78                                                 [% ELSIF ( QUEUED_MESSAGE.status == 'deleted' ) %]<span>deleted</span>
79                                                 [% ELSE %][% QUEUED_MESSAGE.status | html %][% END %]
80                                                 [% IF ( QUEUED_MESSAGE.status != 'pending' ) %]
81                                                     <div class="notice">
82                                                         <form id="resend_notice[% QUEUED_MESSAGE.message_id | html %]" action="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber | html %]" method="POST">
83                                                             <input type="hidden" name="op" value="resend_notice" />
84                                                             <input type="hidden" name="borrowernumber" value="[% borrowernumber | html %]" />
85                                                             <input type="hidden" name="message_id" value="[% QUEUED_MESSAGE.message_id | html %]" />
86                                                         </form>
87                                                     </div>
88                                                 [% END %]
89                                             </td>
90                                             <td data-order="[% QUEUED_MESSAGE.updated_on | html %]">[% QUEUED_MESSAGE.updated_on | $KohaDates  with_hours => 1 %]</td>
91                                             <td data-order="[% QUEUED_MESSAGE.time_queued | html %]">[% QUEUED_MESSAGE.time_queued | $KohaDates  with_hours => 1 %]</td>
92                                             <td>
93                                                 [% IF ( QUEUED_MESSAGE.failure_code ) %]
94                                                     [% IF ( QUEUED_MESSAGE.failure_code == "INVALID_BORNUMBER" ) %]<span>Invalid borrowernumber [% borrowernumber | html %]</span>
95                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'NO_EMAIL' ) %]<span>Unable to find an email address for this borrower</span>
96                                                     [% ELSIF (matches = QUEUED_MESSAGE.failure_code.match('INVALID_EMAIL:(\w+)') ) %]<span>Invalid [% matches.0 | html %] email address found [% borrowernumber | html %]</span>
97                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'NO_FROM' ) %]<span>Missing from email address</span>
98                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'MISSING_SMS' ) %]<span>Missing SMS number</span>
99                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'DUPLICATE_MESSAGE' ) %]<span>Message is duplicate</span>
100                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'NO_NOTES' ) %]<span>No notes from SMS driver</span>
101                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == 'SENDMAIL' ) %]<span>Unhandled email failure, check the logs for further details</span>
102                                                     [% ELSIF ( QUEUED_MESSAGE.failure_code == "UNKNOWN_ERROR" ) %]<span>Unknown error</span>
103                                                     [% ELSE %]<span>Error occurred while sending email.</span>
104                                                     [% END %]
105                                                 [% END %]
106                                             </td>
107                                         </tr>
108                                     [% END %]
109                                 </tbody>
110                             </table>
111                         </div> <!-- /.page-section -->
112                     [% ELSE %]
113                         <div class="dialog message">There is no record of any messages that have been sent to this patron.</div>
114                     [% END %]
115
116                 </main>
117             </div> <!-- /.col-sm-10.col-sm-push-2 -->
118
119             <div class="col-sm-2 col-sm-pull-10">
120                 <aside>
121                     [% INCLUDE 'circ-menu.inc' %]
122                 </aside>
123             </div> <!-- /.col-sm-2.col-sm-pull-10 -->
124         </div> <!-- /.row -->
125
126         <!-- Modal -->
127         <div class="modal" id="noticeModal" tabindex="-1" aria-labelledby="noticeModalLabel" aria-hidden="true">
128             <div class="modal-dialog">
129                 <div class="modal-content">
130                     <div class="modal-header">
131                         <button type="button" class="closebtn" data-dismiss="modal" aria-label="Close">
132                             <span aria-hidden="true">&times;</span>
133                         </button>
134                         <h5 class="modal-title" id="noticeModalLabel">Notice</h5>
135                     </div>
136                     <div class="modal-body">
137                         ...
138                     </div>
139                     <div class="modal-footer">
140                         <button type="button" id="resend-notice" class="btn btn-default" style="display:none"><i class="fa fa-refresh" aria-hidden="true"></i> Resend</button>
141                         <button type="button" class="btn btn-default deny cancel" data-dismiss="modal"><i class="fa fa-remove"></i> Close</button>
142                     </div>
143                 </div> <!-- /.modal-content -->
144             </div> <!-- /.modal-dialog -->
145         </div> <!-- /.modal -->
146
147 [% MACRO jsinclude BLOCK %]
148     [% INCLUDE 'datatables.inc' %]
149     <script>
150         $(document).ready(function() {
151             $("#noticestable").dataTable($.extend(true, {}, dataTablesDefaults, {
152                 "aaSorting": [[ 3, "desc" ]],
153                 "sPaginationType": "full"
154             }));
155
156             $("#noticestable").on("click", ".notice-title", function(e){
157                 e.preventDefault();
158                 var title = $(this).text();
159                 var noticeid = $(this).data("noticeid");
160                 var body = $("#notice" + noticeid ).attr("srcdoc");
161                 if( $("#resend_notice" + noticeid ).length ){
162                     $("#resend-notice").show();
163                 }
164                 $("#resend-notice").data("noticeid", noticeid );
165                 $("#noticeModalLabel").text( title );
166                 $("#noticeModal .modal-body").html( body );
167                 $("#noticeModal").modal("show");
168             });
169
170             $("#resend-notice").on("click", function(e){
171                 e.preventDefault();
172                 var noticeid = $(this).data("noticeid");
173                 $("#resend_notice" + noticeid ).submit();
174             });
175
176             $("#noticeModal").on("hide.bs.modal", function(){
177                 $("#resend-notice").removeData("noticeid").hide();
178                 $("#noticeModalLabel").text("");
179                 $("#noticeModal .modal-body").html("");
180             });
181         });
182     </script>
183     [% INCLUDE 'str/members-menu.inc' %]
184     [% Asset.js("js/members-menu.js") | $raw %]
185 [% END %]
186
187 [% INCLUDE 'intranet-bottom.inc' %]