Bug 15758: Koha::Libraries - Remove GetBranchName
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tags / review.tt
1 [% USE KohaDates %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>Home &rsaquo; Tools &rsaquo; Tags &rsaquo; [% IF ( do_it ) %]Review &rsaquo; [% ELSE %]Review tags[% END %]</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
6 [% INCLUDE 'datatables.inc' %]
7 [% INCLUDE 'calendar.inc' %]
8 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
9 <style type="text/css">
10 .setlabel {width: 6em; font-family: courier; background-color:#E8E8E8;}
11 .rejected { color: #CC0033; }
12 .approved { color: #339900; }
13 .pending { color: #CCC; font-style: italic; }
14 tr > td input,td input[type="submit"] { font-size: 85%; padding: 1px; }
15 </style>
16 <script type="text/javascript">
17 //<![CDATA[
18         // [% script_name %]
19         $.ajaxSetup({
20           url: "/cgi-bin/koha/tags/review.pl",
21           type: "POST",
22           dataType: "script"
23         });
24         var ok_count  = 0;
25         var nok_count = 0;
26         var rej_count = 0;
27         var alerted = 0;
28         function pull_counts () {
29                 ok_count  = parseInt(document.getElementById("terms_summary_approved_count"  ).innerHTML);
30                 nok_count = parseInt(document.getElementById("terms_summary_unapproved_count").innerHTML);
31                 rej_count = parseInt(document.getElementById("terms_summary_rejected_count"  ).innerHTML);
32         }
33         function count_approve () {
34                 pull_counts();
35                 if (nok_count > 0) {
36                         $("#terms_summary_unapproved_count").html(nok_count -1);
37                         $("#terms_summary_approved_count"  ).html( ok_count +1);
38                 }
39         }
40         function count_reject () {
41                 pull_counts();
42                 if (nok_count > 0) {
43                         $("#terms_summary_unapproved_count").html(nok_count -1);
44                         $("#terms_summary_rejected_count"  ).html(rej_count +1);
45                 }
46         }
47         function warn_once (evt) {
48                 if (alerted <= 1 && ($(evt.target).is('.ok') || $(evt.target).is('.rej'))) {
49                         alerted += 1;
50                         window.alert("this is: " + this + "is '.ok': " + $(evt.target).is('.ok') + "  is '.rej': " + $(evt.target).is('.rej'));
51                 }
52         }
53         var success_approve = function(tag){
54                 // window.alert(_("AJAX approved tag: ") + tag);
55         };
56         var failure_approve = function(tag){
57                 window.alert(_("AJAX failed to approve tag: %s").format(tag));
58         };
59         var success_reject  = function(tag){
60                 // window.alert(_("AJAX rejected tag: ") + tag);
61         };
62         var failure_reject  = function(tag){
63                 window.alert(_("AJAX failed to reject tag: %s").format(tag));
64         };
65         var success_test    = function(tag){
66                 $('#verdict').html(_("%s is permitted!").format(tag));
67         };
68         var failure_test    = function(tag){
69                 $('#verdict').html(_("%s is prohibited!").format(tag));
70         };
71         var indeterminate_test = function(tag){
72                 $('#verdict').html(_("%s is neither permitted nor prohibited!").format(tag));
73         };
74
75         var success_test_call = function() {
76         $('#test_button').prop('disabled', false);
77         $('#test_button').html("<i class='fa fa-check-square-o' aria-hidden='true'></i>" +_(" Test"));
78         };
79         $(document).ready(function() {
80                 $('.ajax_buttons' ).css({visibility:"visible"});
81             $("p.check").html("<div id=\"searchheader\"><a id=\"CheckAll\" href=\"/cgi-bin/koha/tags/review.pl\"><i class=\"fa fa-check\"><\/i>"+_(" Select all")+"<\/a> | <a id=\"CheckNone\" href=\"/cgi-bin/koha/tags/review.pl\"><i class=\"fa fa-remove\"><\/i>"+_(" Clear all")+"<\/a> | <a id=\"CheckPending\" href=\"/cgi-bin/koha/tags/review.pl\"> "+_("Select all pending")+"<\/a><\/div>");
82             $("#CheckAll").click(function(){
83                 $(".checkboxed").checkCheckboxes();
84                 return false;
85             });
86             $("#CheckNone").click(function(){
87                 $(".checkboxed").unCheckCheckboxes();
88                 return false;
89             });
90             $("#CheckPending").click(function(){
91                 $(".checkboxed").checkCheckboxes(".pending");
92                 return false;
93             });
94                 $('body').click(function(event) {
95                         pull_counts();
96                         // window.alert(_("Click detected on ") + event.target + ": " + $(event.target).html);
97                         if ($(event.target).is('.ok')) {
98                                 $.ajax({
99                     data: {ok: $(event.target).attr("title")},
100                         success: count_approve // success_approve
101                                 });
102                 $(event.target).next(".rej").prop('disabled', false).css("color","#000");
103                 $(event.target).next(".rej").html("<i class='fa fa-remove'></i>" + _(" Reject"));
104                 $(event.target).prop('disabled', true).css("color","#666");
105                 $(event.target).html("<i class='fa fa-check'></i>" + _(" Approved"));
106                 var getelement = $(event.target).attr("title");
107                 var gettitle = "span[data-title|=" + getelement + "]";
108                 $(gettitle).text(_("Approved"));
109                 if ($(gettitle).attr("class") == "pending"){
110                     $(gettitle).toggleClass("pending approved");
111                 } else {
112                     $(gettitle).toggleClass("rejected approved");
113                 }
114                                 return false;   // cancel submit
115                         }
116                         if ($(event.target).is('.rej')) {
117                                 $.ajax({
118                     data: {rej: $(event.target).attr("title")},
119                         success: count_reject // success_reject
120                     });
121                 $(event.target).prev(".ok").prop('disabled', false).css("color","#000");
122                 $(event.target).prev(".ok").html("<i class='fa fa-check'></i>" + _(" Approve"));
123                 $(event.target).prop('disabled', true).css("color","#666");
124                 $(event.target).html("<i class='fa fa-remove'></i>" + _(" Rejected"));
125                 var getelement = $(event.target).attr("title");
126                 var gettitle = "span[data-title|=" + getelement + "]";
127                 $(gettitle).text(_("Rejected"));
128                 if ($(gettitle).attr("class") == "pending"){
129                     $(gettitle).toggleClass("pending rejected");
130                 } else {
131                     $(gettitle).toggleClass("approved rejected");
132                 }
133                                 return false;   // cancel submit
134                         }
135                 if ($(event.target).is('#test_button')) {
136                     $(event.target).text(_("Testing...")).prop('disabled', true);
137                         $.ajax({
138                             data: {test: $('#test').attr("value")},
139                             success: success_test_call // success_reject
140                         });
141                                 return false;   // cancel submit
142                         }
143                 });
144                 $("*").ajaxError(function(evt, request, settings){
145                         if ((alerted +=1) <= 1){ window.alert(_("AJAX error (%s alert)").format(alerted)); }
146                 });
147         $("#tagst").dataTable($.extend(true, {}, dataTablesDefaults, {
148             "aoColumnDefs": [
149                 [% IF ( filter_approved_pending ) %]
150                     { "aTargets": [ 0,1,-2 ], "bSortable": false, "bSearchable": false }
151                 [% ELSE %]
152                     { "aTargets": [ 0,1,-3 ], "bSortable": false, "bSearchable": false }
153                 [% END %]
154             ],
155             "aoColumns": [
156                 null,null,null,null,null,null,[% UNLESS ( filter_approved_pending ) %]null,[% END %]{ "sType": "title-string" }
157             ],
158             "aaSorting": [[ 4, "desc" ]],
159             "sPaginationType": "four_button"
160         }));
161         var reviewerField = $("#approver");
162         reviewerField.autocomplete({
163             source: "/cgi-bin/koha/circ/ysearch.pl",
164             minLength: 3,
165             select: function( event, ui ) {
166                 reviewerField.val( ui.item.borrowernumber );
167                 return false;
168             }
169         })
170         .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
171             return $( "<li></li>" )
172             .data( "ui-autocomplete-item", item )
173             .append( "<a>" + item.surname + ", " + item.firstname + " (" + item.cardnumber + ") <small>" + item.address + " " + item.city + " " + item.zipcode + " " + item.country + "</small></a>" )
174             .appendTo( ul );
175         };
176         });
177 //]]>
178 </script>
179 </head>
180 <body id="tags_review" class="tools">
181 [% INCLUDE 'header.inc' %]
182 [% INCLUDE 'cat-search.inc' %]
183
184 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; Tags</div>
185
186 <div id="doc3" class="yui-t2">
187  <div id="bd">
188   <div id="yui-main">
189    <div class="yui-b">
190    
191 <div class="yui-ge">
192 <div class="yui-u first">
193 <h1>Tags</h1>
194 <form method="post" action="/cgi-bin/koha/tags/review.pl" class="checkboxed">
195   <h4>Displaying 
196         [% IF ( filter_approved_all ) %]all[% END %]
197         [% IF ( filter_approved_ok ) %]approved[% END %]
198         [% IF ( filter_approved_pending ) %]pending[% END %]
199         [% IF ( filter_approved_rej ) %]rejected[% END %]
200         terms
201   </h4>
202
203   [% IF ( op_count ) %]
204   <div class="dialog message" id="main_status">
205                 [% IF ( op == 'approve' ) %]            Approved
206                 [% ELSIF ( op == 'reject' ) %]  Rejected
207                 [% ELSIF ( op == 'test' ) %]            Tested
208                 [% ELSE %]Unknown Operation ([% op %]) on
209                 [% END %]
210         [% op_count %] Term(s).
211   </div>
212   [% END %]
213   [% IF ( message_loop ) %]
214   <div class="dialog alert" id="main_error">
215     [% FOREACH message_loo IN message_loop %]
216         [% IF ( message_loo.date_from ) %]<strong>Error: </strong>"Date from" is not a legal value ("[% message_loo.date_from %]").
217         [% ELSIF ( message_loo.date_to ) %]<strong>Error: </strong>"Date to" is not a legal value ("[% message_loo.date_to %]").
218         [% ELSIF ( message_loo.failed_ok ) %]<strong>Error: </strong>Failed to approve term ([% message_loo.failed_ok %]).
219         [% ELSIF ( message_loo.failed_rej ) %]<strong>Error: </strong>Failed to reject term ([% message_loo.failed_rej %]).
220         [% ELSIF ( message_loo.approver ) %]No match for user ([% message_loo.approver %]). FILTER REQUIRES BORROWERNUMBER (not name).
221         [% ELSIF ( message_loo.approved_by ) %]<strong>Error: </strong>No match for borrowernumber ([% message_loo.approved_by %]).
222         [% ELSIF ( message_loo.op_zero ) %]<strong>Error: </strong> The root koha user in your KOHA_CONF file
223             (default: kohaadmin) is not a valid tag moderator. These actions are logged
224             by borrowernumber, so the moderator must exist in your borrowers table.
225             Please log in as a different authorized staff user to moderate tags.
226         [% ELSE %]Unrecognized error!
227         [% END %]
228             <br />
229         [% END %]
230   </div>
231   [% END %]
232   [% IF ( pagination_bar ) %]
233   <div class="pages" id="pagination_top">
234         [% pagination_bar %]
235   </div>
236   [% END %]
237   [% IF ( tagloop ) %]
238   <p class="check"></p>
239   <table id="tagst">
240     <thead>
241         <tr>
242                 <th>&nbsp;</th>
243                 <th>&nbsp;</th>
244                 <th>Status</th>
245                 <th>Term</th>
246                 <th>Weight</th>
247                 <th>Actions</th>
248             [% UNLESS ( filter_approved_pending ) %]<th>Reviewer</th>[% END %]
249                 <th>Date</th>
250         </tr>
251     </thead>
252     <tbody>
253     [% FOREACH tagloo IN tagloop %]
254         <tr>
255             <td class="count">[% offset + loop.count %]
256             </td>
257                 [% IF ( tagloo.approved == 0 ) %]<td><span><input type="checkbox" value="[% tagloo.term %]" name="tags" class="pending" /></span>
258                 [% ELSE %]<td><span><input type="checkbox" value="[% tagloo.term %]" name="tags" /></span>[% END %]
259             </td>
260             <td>
261                 [% IF ( tagloo.approved == -1 ) %]
262                     <span class="rejected" data-title="[% tagloo.term %]">Rejected</span>
263                 [% ELSIF ( tagloo.approved == 1 ) %]
264                     <span class="approved" data-title="[% tagloo.term %]">Approved</span>
265                 [% ELSE %]
266                     <span class="pending" data-title="[% tagloo.term %]">Pending</span>
267                 [% END %]
268             </td>
269             <td><a href="/cgi-bin/koha/tags/list.pl?tag=[% tagloo.term|uri %]">[% tagloo.term %]</a>
270             </td>
271             <td>[% tagloo.weight_total %]
272             </td>
273             [% IF ( tagloo.approved ) %]
274             <td class="actions"><span class="ajax_buttons" style="visibility:hidden">
275                     [% IF ( tagloo.approved == -1 ) %]
276                 <button class="ok btn btn-mini" type="submit" title="[% tagloo.term %]" value="Approve" name="approve"><i class="fa fa-check"></i> Approve</button>
277                 <button class="rej btn btn-mini" disabled="disabled" type="submit" title="[% tagloo.term %]" value="Rejected" name="reject"><i class="fa fa-remove"></i> Rejected</button>
278                 [% ELSE %]
279                 <button class="ok btn btn-mini"  disabled="disabled" type="submit" title="[% tagloo.term %]" value="Approved" name="approve"><i class="fa fa-check"></i> Approved</button>
280                 <button class="rej btn btn-mini" type="submit" title="[% tagloo.term %]" value="Reject" name="reject"><i class="fa fa-remove"></i> Reject</button>
281                 [% END %]
282                 </span>
283             </td>
284             <td>[% IF ( tagloo.approved_by_name ) %]<a href="/cgi-bin/koha/tags/review.pl?approved_by=[% tagloo.approved_by %]&amp;approved=all">[% tagloo.approved_by_name %]</a>[% ELSE %]&nbsp;[% END %]
285             </td>
286             [% ELSE %]
287             <td class="actions"><span class="ajax_buttons" style="visibility:hidden">
288             <button class="ok btn btn-mini"  type="submit" title="[% tagloo.term %]" value="Approve" name="approve"><i class="fa fa-check"></i> Approve</button>
289                 <button class="rej btn btn-mini" type="submit" title="[% tagloo.term %]" value="Reject" name="reject"><i class="fa fa-remove"></i> Reject</button>
290                 </span>
291             </td>
292             [% UNLESS ( filter_approved_pending ) %]<td>&nbsp;</td>[% END %]
293             [% END %]
294             <td>
295                 <span title="[% tagloo.date_approved %]">[% tagloo.date_approved | $KohaDates %]</span>
296             </td>
297         </tr>
298     [% END %]
299     </tbody>
300   </table>
301   [% END %]
302     [% IF ( tagloop ) %]<fieldset class="action">
303    <button type="submit" value="Approve" class="btn btn-small" id="approve_button" name="op-approve"><i class="fa fa-check"></i> Approve</button>
304    <button type="submit" value="Reject" class="btn btn-small"  id="reject_button" name="op-reject"><i class="fa fa-remove"></i> Reject</button>
305   </fieldset>[% END %]
306   </form>
307 </div>
308 <div class="yui-u">
309  <fieldset class="brief">
310   <h4>Terms summary</h4>
311   <ul>
312     <li><a href="/cgi-bin/koha/tags/review.pl?approved=1">Approved</a>:
313         <span id="terms_summary_approved_count">[% approved_count %]</span>
314         </li>
315     <li><a href="/cgi-bin/koha/tags/review.pl?approved=-1">Rejected</a>:
316         <span id="terms_summary_rejected_count">[% rejected_count %]</span>
317     </li>
318     <li><a href="/cgi-bin/koha/tags/review.pl?approved=0">Pending</a>:
319     <span id="terms_summary_unapproved_count">[% unapproved_count %]</span>
320     </li>
321     <li><a href="/cgi-bin/koha/tags/review.pl?approved=all">Total</a>:
322         <span id="terms_summary_approved_total">[% approved_total %]</span>
323     </li>
324   </ul>
325   <span id="terms_summary_status">&nbsp;</span>
326   </fieldset>
327   <fieldset class="brief">
328    <h4>Check lists</h4>
329    <div class="description">Enter a word or phrase to check against approved/rejected lists: </div>
330    <form method="post" action="/cgi-bin/koha/tags/review.pl">
331    <input type="text" size="14" name="test" id="test" />
332    <fieldset class="action"><button type="submit" value="Test" class="btn btn-small" id="test_button" name="op-test"><i class="fa fa-check-square-o" aria-hidden="true"></i> Test</button></fieldset>
333    <div id="verdict">
334         [% IF ( test_term ) %]
335         [% IF ( verdict_ok ) %]
336                 &quot;[% test_term %]&quot; is permitted.
337         [% ELSIF ( verdict_rej ) %]
338                 &quot;[% test_term %]&quot; is prohibited.
339         [% ELSIF ( verdict_indeterminate ) %]
340                 &quot;[% test_term %]&quot; is neither permitted nor prohibited.
341         [% END %]
342         [% END %]
343    </div>
344    </form>
345   </fieldset>
346 </div>
347 </div>
348
349
350   </div>
351  </div>
352  <div class="yui-b">
353 <form method="post" action="/cgi-bin/koha/tags/review.pl">
354 <fieldset class="brief">
355   <h4>Filters</h4>
356         <ol>
357             <li><label for="tag">Term:</label> <input type="text" name="tag" id="tag" value="[% filter_tag %]" />
358             </li>
359             <li><label for="approved">Status:</label>
360             <select name="approved" id="approved">
361             [% IF ( filter_approved_all ) %]<option selected="selected" value="all">all</option>
362             [% ELSE %]<option value="all">all</option>[% END %]
363             [% IF ( filter_approved_ok ) %]<option selected="selected" value="1">approved</option>
364             [% ELSE %]<option value="1">approved</option>[% END %]
365             [% IF ( filter_approved_pending ) %]<option selected="selected" value="0">pending</option>
366             [% ELSE %]<option value="0">pending</option>[% END %]
367             [% IF ( filter_approved_rej ) %]<option selected="selected" value="-1">rejected</option>
368             [% ELSE %]<option value="-1">rejected</option>[% END %]
369                         </select>
370             </li>
371             <li><label for="approver">Reviewer:</label> <input type="text" name="approver" id="approver" value="[% filter_approver %]" />
372             </li>
373             <li>
374                         <label for="from">Date: from </label>
375             <input type="text" size="10" id="from" name="from" value="[% filter_date_approved_from %]" class="datepickerfrom" />
376                         <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
377
378                         <label for="to">...to </label>
379             <input type="text" size="10" id="to" name="to" value="[% filter_date_approved_to %]" class="datepickerto" />
380                         <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
381             </li>
382   </ol>
383  <fieldset class="action"><button type="submit" class="btn btn-small"><i class="fa fa-filter" aria-hidden="true"></i> Apply filter(s)</button></fieldset>
384 </fieldset>
385 </form>
386 </div>
387 </div>
388 [% INCLUDE 'intranet-bottom.inc' %]
389