2 url: "/cgi-bin/koha/tags/review.pl",
11 function pull_counts () {
12 ok_count = parseInt(document.getElementById("terms_summary_approved_count" ).innerHTML);
13 nok_count = parseInt(document.getElementById("terms_summary_unapproved_count").innerHTML);
14 rej_count = parseInt(document.getElementById("terms_summary_rejected_count" ).innerHTML);
17 function count_approve () {
20 $("#terms_summary_unapproved_count").html(nok_count -1);
21 $("#terms_summary_approved_count" ).html( ok_count +1);
25 function count_reject () {
28 $("#terms_summary_unapproved_count").html(nok_count -1);
29 $("#terms_summary_rejected_count" ).html(rej_count +1);
33 var success_approve = function(tag){
34 // window.alert(__("AJAX approved tag: ") + tag);
36 var failure_approve = function(tag){
37 window.alert( __("AJAX failed to approve tag: %s").format(decodeURIComponent(tag)) );
39 var success_reject = function(tag){
40 // window.alert(__("AJAX rejected tag: ") + tag);
42 var failure_reject = function(tag){
43 window.alert( __("AJAX failed to reject tag: %s").format(decodeURIComponent(tag)) );
45 var success_test = function(tag){
46 $('#verdict').html( __("%s is permitted!").format(decodeURIComponent(tag)) );
48 var failure_test = function(tag){
49 $('#verdict').html( __("%s is prohibited!").format(decodeURIComponent(tag)) );
51 var indeterminate_test = function(tag){
52 $('#verdict').html( __("%s is neither permitted nor prohibited!").format(decodeURIComponent(tag)) );
55 var success_test_call = function() {
56 $('#test_button').prop('disabled', false);
57 $('#test_button').html("<i class='fa fa-check-square' aria-hidden='true'></i>" +__(" Test"));
60 $(document).ready(function() {
61 $("#tagst").dataTable($.extend(true, {}, dataTablesDefaults, {
63 { "orderable": false, "searchable": false, "targets": [ 'NoSort' ] },
64 { "type": "anti-the", "targets": [ "anti-the" ] }
66 "order": [[ 2, "desc" ]],
69 $('.ajax_buttons' ).css({visibility:"visible"});
70 $("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-times\" aria-hidden=\"false\"><\/i> " + __("Clear all") + "<\/a> | <a id=\"CheckPending\" href=\"/cgi-bin/koha/tags/review.pl\"> " + __("Select all pending") + "<\/a><\/div>");
72 $("#CheckAll").on("click", function (e) {
74 $("#tagst input:checkbox").each(function () {
75 $(this).prop("checked", true);
79 $("#CheckNone").on("click", function(e){
81 $("#tagst input:checkbox").each(function(){
82 $(this).prop("checked", false );
86 $("#CheckPending").on("click", function (e) {
88 $("#tagst input:checkbox").each(function () {
89 if( $(this).hasClass("pending") ){
90 $(this).prop("checked", true);
92 $(this).prop("checked", false);
97 $(".approval_btn").on('click',function(event) {
98 event.preventDefault();
102 // window.alert(__("Click detected on ") + event.target + ": " + $(event.target).html);
103 if ($(event.target).is('.ok')) {
104 $.ajax(Object.assign({}, {...review_ajax_params, type: "POST"}, {
106 tag: $(event.target).attr("title"),
108 csrf_token: $('meta[name="csrf-token"]').attr('content')
110 success: count_approve // success_approve
112 $(event.target).next(".rej").prop('disabled', false).css("color","#000");
113 $(event.target).next(".rej").html("<i class='fa fa-times' aria-hidden='false'></i> " + __("Reject"));
114 $(event.target).prop('disabled', true).css("color","#666");
115 $(event.target).html("<i class='fa fa-check' aria-hidden='false'></i> " + __("Approved") );
116 getelement = $(event.target).data("num");
117 gettitle = ".status" + getelement;
118 $(gettitle).text( __("Approved") );
119 $("#checkbox" + getelement ).attr("class", "approved");
120 if ($(gettitle).hasClass("pending") ){
121 $(gettitle).toggleClass("pending approved");
123 $(gettitle).toggleClass("rejected approved");
126 if ($(event.target).is('.rej')) {
127 $.ajax(Object.assign({}, {...review_ajax_params, type: "POST"}, {
129 tag: $(event.target).attr("title"),
131 csrf_token: $('meta[name="csrf-token"]').attr('content')
133 success: count_reject // success_reject
135 $(event.target).prev(".ok").prop('disabled', false).css("color","#000");
136 $(event.target).prev(".ok").html("<i class='fa fa-check' aria-hidden='false'></i> " + __("Approve"));
137 $(event.target).prop('disabled', true).css("color","#666");
138 $(event.target).html("<i class='fa fa-times' aria-hidden='false'></i> " + __("Rejected"));
139 getelement = $(event.target).data("num");
140 gettitle = ".status" + getelement;
141 $(gettitle).text(__("Rejected"));
142 $("#checkbox" + getelement).attr("class", "rejected");
143 if ($(gettitle).hasClass("pending") ){
144 $(gettitle).toggleClass("pending rejected");
146 $(gettitle).toggleClass("approved rejected");
148 return false; // cancel submit
150 if ($(event.target).is('#test_button')) {
151 $(event.target).text( __("Testing...") ).prop('disabled', true);
152 $.ajax(Object.assign({}, {...review_ajax_params, type: "GET"}, {
154 tag: $('#test').val(),
157 success: success_test_call // success_reject
159 return false; // cancel submit
162 $("*").ajaxError(function(evt, request, settings){
163 if ((alerted +=1) <= 1){ window.alert( __("AJAX error (%s alert)").format(alerted) ); }
166 patron_autocomplete($("#approver"), { 'on-select-callback': function( event, ui ) {
167 $("#approver").val( ui.item.patron_id );