Bug 30922: Make the "Relative's checkouts" table configurable by the table settings
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / checkouts.js
index 6246684..0afb451 100644 (file)
@@ -1,8 +1,6 @@
 /* global __ */
 
 $(document).ready(function() {
-    $.ajaxSetup ({ cache: false });
-
     var barcodefield = $("#barcode");
 
     var onHoldDueDateSet = false;
@@ -258,7 +256,7 @@ $(document).ready(function() {
         $('#issues-table-load-immediately').prop('checked', true);
     }
     $('#issues-table-load-immediately').on( "change", function(){
-        Cookies.set("issues-table-load-immediately-" + script, $(this).is(':checked'), { expires: 365 });
+        Cookies.set("issues-table-load-immediately-" + script, $(this).is(':checked'), { expires: 365, sameSite: 'Lax'  });
     });
 
     function RefreshIssuesTable() {
@@ -368,6 +366,10 @@ $(document).ready(function() {
                             onsite_checkout += " <span class='onsite_checkout'>(" + __("On-site checkout") + ")</span>";
                         }
 
+                        if ( oObj.recalled == 1 ) {
+                             title += " - <span class='circ-hlt item-recalled'>This item has been recalled and the due date updated.</span>";
+                        }
+
                         title += " "
                               + "<a href='/cgi-bin/koha/catalogue/moredetail.pl?biblionumber="
                               + oObj.biblionumber
@@ -461,6 +463,13 @@ $(document).ready(function() {
 
                         if ( oObj.can_renew ) {
                             // Do nothing
+                        } else if ( oObj.can_renew_error == "recalled" ) {
+                            msg += "<span>"
+                                    + "<a href='/cgi-bin/koha/recalls/request.pl?biblionumber=" + oObj.biblionumber + "'>" + __("Recalled") + "</a>"
+                                    + "</span>";
+
+                            span_style = "display: none";
+                            span_class = "renewals-allowed-recalled";
                         } else if ( oObj.can_renew_error == "on_reserve" ) {
                             msg += "<span>"
                                     +"<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + __("On hold") + "</a>"
@@ -476,11 +485,9 @@ $(document).ready(function() {
                             span_style = "display: none";
                             span_class = "renewals-allowed";
                         } else if ( oObj.can_renew_error == "too_unseen" ) {
-                            msg += "<span class='renewals-disabled'>"
+                            msg += "<span>"
                                     + __("Must be renewed at the library")
                                     + "</span>";
-
-                            span_style = "display: none";
                             span_class = "renewals-allowed";
                         } else if ( oObj.can_renew_error == "restriction" ) {
                             msg += "<span class='renewals-disabled'>"
@@ -559,7 +566,7 @@ $(document).ready(function() {
                         var can_force_renew = ( oObj.onsite_checkout == 0 ) &&
                             ( oObj.can_renew_error != "on_reserve" || (oObj.can_renew_error == "on_reserve" && AllowRenewalOnHoldOverride))
                             ? true : false;
-                        var can_renew = ( oObj.renewals_remaining > 0  && !oObj.can_renew_error );
+                        var can_renew = ( oObj.renewals_remaining > 0 && ( !oObj.can_renew_error || oObj.can_renew_error == "too_unseen" ));
                         content += "<span>";
                         if ( can_renew || can_force_renew ) {
                             content += "<span style='padding: 0 1em;'>" + oObj.renewals_count + "</span>";
@@ -576,10 +583,10 @@ $(document).ready(function() {
                         }
                         content += msg;
                         if ( can_renew || can_force_renew ) {
-                            content += "<span class='renewals'>(";
+                            content += "<span class='renewals-info'>(";
                             content += __("%s of %s renewals remaining").format(oObj.renewals_remaining, oObj.renewals_allowed);
                             if (UnseenRenewals && oObj.unseen_allowed) {
-                                content += __("%s of %s unseen renewals remaining").format(oObj.unseen_remaining, oObj.unseen_allowed);
+                                content += __(" and %s of %s unseen renewals remaining").format(oObj.unseen_remaining, oObj.unseen_allowed);
                             }
                             content += ")</span>";
                         }
@@ -591,7 +598,9 @@ $(document).ready(function() {
                     "bSortable": false,
                     "bVisible": AllowCirculate ? true : false,
                     "mDataProp": function ( oObj ) {
-                        if ( oObj.can_renew_error == "on_reserve" ) {
+                        if ( oObj.can_renew_error == "recalled" ) {
+                            return "<a href='/cgi-bin/koha/recalls/request.pl?biblionumber=" + oObj.biblionumber + "'>" + __("Recalled") + "</a>";
+                        } else if ( oObj.can_renew_error == "on_reserve" ) {
                             return "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + __("On hold") + "</a>";
                         } else if ( oObj.materials ) {
                             return "<input type='checkbox' class='confirm' id='confirm_" + oObj.itemnumber + "' name='confirm' value='" + oObj.itemnumber + "' data-materials='" + oObj.materials.escapeHtml() + "'></input>";
@@ -680,7 +689,7 @@ $(document).ready(function() {
                     .append(ul)
                     .insertBefore(oSettings.nTableWrapper)
             },
-        }, columns_settings_issues_table);
+        }, table_settings_issues_table);
 
         if ( $("#issues-table").length ) {
             $("#issues-table_processing").position({
@@ -694,9 +703,9 @@ $(document).ready(function() {
     var relativesIssuesTable;
     $("#relatives-issues-tab").click( function() {
         if ( ! relativesIssuesTable ) {
-            relativesIssuesTable = $("#relatives-issues-table").dataTable($.extend(true, {}, dataTablesDefaults, {
+            relativesIssuesTable = KohaTable("relatives-issues-table", {
                 "bAutoWidth": false,
-                "sDom": "rt",
+                "dom": 'B<"clearfix">rt',
                 "aaSorting": [],
                 "aoColumns": [
                     {
@@ -859,7 +868,7 @@ $(document).ready(function() {
                         fnCallback(json)
                     } );
                 },
-            }));
+            }, table_settings_relatives_issues_table);
         }
     });
 
@@ -888,56 +897,12 @@ $(document).ready(function() {
         } ).prop('checked', false);
     }
 
-    // Handle return claims
-    $(document).on("click", '.claim-returned-btn', function(e){
-        e.preventDefault();
-        itemnumber = $(this).data('itemnumber');
-
-        $('#claims-returned-itemnumber').val(itemnumber);
-        $('#claims-returned-notes').val("");
-        $('#claims-returned-charge-lost-fee').attr('checked', false)
-        $('#claims-returned-modal').modal()
-    });
-    $(document).on("click", '#claims-returned-modal-btn-submit', function(e){
-        let itemnumber = $('#claims-returned-itemnumber').val();
-        let notes = $('#claims-returned-notes').val();
-        let fee = $('#claims-returned-charge-lost-fee').attr('checked') ? true : false;
-
-        $('#claims-returned-modal').modal('hide')
-
-        $('.claim-returned-btn[data-itemnumber="' + itemnumber + '"]').replaceWith('<img id="return_claim_spinner_' + itemnumber + ' src=' + interface + '/' + theme + '/img/spinner-small.gif />');
-
-        params = {
-            item_id: itemnumber,
-            notes: notes,
-            charge_lost_fee: fee,
-            created_by: logged_in_user_borrowernumber,
-        };
-
-        $.post( '/api/v1/return_claims', JSON.stringify(params), function( data ) {
-
-            id = "#return_claim_spinner_" + data.item_id;
-
-            let created_on = new Date(data.created_on);
-
-            let content = "";
-            if ( data.claim_id ) {
-                content = '<span class="badge">' + created_on.toLocaleDateString() + '</span>';
-                $(id).parent().parent().addClass('ok');
-            } else {
-                content = __("Unable to claim as returned");
-                $(id).parent().parent().addClass('warn');
-            }
-
-            $(id).replaceWith( content );
-
-            refreshReturnClaimsTable();
-            issuesTable.api().ajax.reload();
-        }, "json")
-
+    // Refresh after return claim
+    $('body').on('refreshClaimModal', function () {
+        refreshReturnClaimsTable();
+        issuesTable.api().ajax.reload();
     });
 
-
     // Don't load return claims table unless it is clicked on
     var returnClaimsTable;
     $("#return-claims-tab").click( function() {
@@ -997,8 +962,13 @@ $(document).ready(function() {
                     {
                         "sClass": "return-claim-notes-td",
                         "mDataProp": function ( oObj ) {
-                            return '<span id="return-claim-notes-static-' + oObj.id + '" class="return-claim-notes" data-return-claim-id="' + oObj.id + '">' + oObj.notes + '</span>'
-                                + '<i style="float:right" class="fa fa-pencil-square-o" title="' + __("Double click to edit") + '"></i>';
+                            let notes =  '<span id="return-claim-notes-static-' + oObj.id + '" class="return-claim-notes" data-return-claim-id="' + oObj.id + '">';
+                            if ( oObj.notes ) {
+                                notes += oObj.notes;
+                            }
+                            notes += '</span>';
+                            notes += '<i style="float:right" class="fa fa-pencil-square-o" title="' + __("Double click to edit") + '"></i>';
+                            return notes;
                         }
                     },
                     {