Bug 32030: Improve I18N
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / pages / tags-review.js
1 review_ajax_params = {
2     url: "/cgi-bin/koha/tags/review.pl",
3     type: "POST",
4     dataType: "script"
5 };
6
7 var ok_count  = 0;
8 var nok_count = 0;
9 var rej_count = 0;
10 var alerted = 0;
11
12 function pull_counts () {
13     ok_count  = parseInt(document.getElementById("terms_summary_approved_count"  ).innerHTML);
14     nok_count = parseInt(document.getElementById("terms_summary_unapproved_count").innerHTML);
15     rej_count = parseInt(document.getElementById("terms_summary_rejected_count"  ).innerHTML);
16 }
17
18 function count_approve () {
19     pull_counts();
20     if (nok_count > 0) {
21         $("#terms_summary_unapproved_count").html(nok_count -1);
22         $("#terms_summary_approved_count"  ).html( ok_count +1);
23     }
24 }
25
26 function count_reject () {
27     pull_counts();
28     if (nok_count > 0) {
29         $("#terms_summary_unapproved_count").html(nok_count -1);
30         $("#terms_summary_rejected_count"  ).html(rej_count +1);
31     }
32 }
33
34 var success_approve = function(tag){
35     // window.alert(_("AJAX approved tag: ") + tag);
36 };
37 var failure_approve = function(tag){
38     window.alert( __("AJAX failed to approve tag: %s").format(decodeURIComponent(tag)) );
39 };
40 var success_reject  = function(tag){
41     // window.alert(_("AJAX rejected tag: ") + tag);
42 };
43 var failure_reject  = function(tag){
44     window.alert( __("AJAX failed to reject tag: %s").format(decodeURIComponent(tag)) );
45 };
46 var success_test    = function(tag){
47     $('#verdict').html( __("%s is permitted!").format(decodeURIComponent(tag)) );
48 };
49 var failure_test    = function(tag){
50     $('#verdict').html( __("%s is prohibited!").format(decodeURIComponent(tag)) );
51 };
52 var indeterminate_test = function(tag){
53     $('#verdict').html( __("%s is neither permitted nor prohibited!").format(decodeURIComponent(tag)) );
54 };
55
56 var success_test_call = function() {
57     $('#test_button').prop('disabled', false);
58     $('#test_button').html("<i class='fa fa-check-square-o' aria-hidden='true'></i>" +_(" Test"));
59 };
60
61 $(document).ready(function() {
62     $("#tagst").dataTable($.extend(true, {}, dataTablesDefaults, {
63         "aoColumnDefs": [
64             { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
65             { "sType": "anti-the", "aTargets" : [ "anti-the" ] }
66         ],
67         "aaSorting": [[ 2, "desc" ]],
68         "sPaginationType": "full"
69     }));
70     $('.ajax_buttons' ).css({visibility:"visible"});
71     $("p.check").html("<div id=\"searchheader\"><a id=\"CheckAll\" href=\"/cgi-bin/koha/tags/review.pl\"><i class=\"fa fa-check\" aria-hidden=\"false\"><\/i> " + __("Select all") + "<\/a> | <a id=\"CheckNone\" href=\"/cgi-bin/koha/tags/review.pl\"><i class=\"fa fa-remove\" aria-hidden=\"false\"><\/i> " + __("Clear all") + "<\/a> | <a id=\"CheckPending\" href=\"/cgi-bin/koha/tags/review.pl\"> " + __("Select all pending") + "<\/a><\/div>");
72
73     $("#CheckAll").on("click", function (e) {
74         e.preventDefault();
75         $("#tagst input:checkbox").each(function () {
76             $(this).prop("checked", true);
77         });
78     });
79
80     $("#CheckNone").on("click", function(e){
81         e.preventDefault();
82         $("#tagst input:checkbox").each(function(){
83             $(this).prop("checked", false );
84         });
85     });
86
87     $("#CheckPending").on("click", function (e) {
88         e.preventDefault();
89         $("#tagst input:checkbox").each(function () {
90             if( $(this).hasClass("pending") ){
91                 $(this).prop("checked", true);
92             } else {
93                 $(this).prop("checked", false);
94             }
95         });
96     });
97
98     $(".approval_btn").on('click',function(event) {
99         event.preventDefault();
100         pull_counts();
101         var getelement;
102         var gettitle;
103         // window.alert(_("Click detected on ") + event.target + ": " + $(event.target).html);
104         if ($(event.target).is('.ok')) {
105             $.ajax(Object.assign({}, review_ajax_params, {
106                 data: {
107                     ok: $(event.target).attr("title")
108                 },
109                 success: count_approve // success_approve
110             }));
111             $(event.target).next(".rej").prop('disabled', false).css("color","#000");
112             $(event.target).next(".rej").html("<i class='fa fa-remove' aria-hidden='false'></i> " + __("Reject"));
113             $(event.target).prop('disabled', true).css("color","#666");
114             $(event.target).html("<i class='fa fa-check' aria-hidden='false'></i> " + __("Approved") );
115             getelement = $(event.target).data("num");
116             gettitle = ".status" + getelement;
117             $(gettitle).text( __("Approved") );
118             $("#checkbox" + getelement ).attr("class", "approved");
119             if ($(gettitle).hasClass("pending") ){
120                 $(gettitle).toggleClass("pending approved");
121             } else {
122                 $(gettitle).toggleClass("rejected approved");
123             }
124         }
125         if ($(event.target).is('.rej')) {
126             $.ajax(Object.assign({}, review_ajax_params, {
127                 data: {
128                     rej: $(event.target).attr("title")
129                 },
130                 success: count_reject // success_reject
131             }));
132             $(event.target).prev(".ok").prop('disabled', false).css("color","#000");
133             $(event.target).prev(".ok").html("<i class='fa fa-check' aria-hidden='false'></i> " + __("Approve"));
134             $(event.target).prop('disabled', true).css("color","#666");
135             $(event.target).html("<i class='fa fa-remove' aria-hidden='false'></i> " + __("Rejected"));
136             getelement = $(event.target).data("num");
137             gettitle = ".status" + getelement;
138             $(gettitle).text(__("Rejected"));
139             $("#checkbox" + getelement).attr("class", "rejected");
140             if ($(gettitle).hasClass("pending") ){
141                 $(gettitle).toggleClass("pending rejected");
142             } else {
143                 $(gettitle).toggleClass("approved rejected");
144             }
145             return false;   // cancel submit
146         }
147         if ($(event.target).is('#test_button')) {
148             $(event.target).text( __("Testing...") ).prop('disabled', true);
149             $.ajax(Object.assign({}, review_ajax_params, {
150                 data: {
151                     test: $('#test').attr("value")
152                 },
153                 success: success_test_call // success_reject
154             }));
155             return false;   // cancel submit
156         }
157     });
158     $("*").ajaxError(function(evt, request, settings){
159         if ((alerted +=1) <= 1){ window.alert( __("AJAX error (%s alert)").format(alerted) ); }
160     });
161
162     patron_autocomplete($("#approver"), { 'on-select-callback': function( event, ui ) {
163             $("#approver").val( ui.item.patron_id );
164             return false;
165         }
166     });
167 });