Bug 24819: (follow-up) Rename suggestion_search to suggestor_search
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / holds.js
index 14ca154..41d4762 100644 (file)
@@ -10,28 +10,34 @@ $(document).ready(function() {
     function load_holds_table() {
         var holds = new Array();
         if ( ! holdsTable ) {
-            holdsTable = $("#holds-table").dataTable({
+            holdsTable = $("#holds-table").dataTable($.extend(true, {}, dataTablesDefaults, {
                 "bAutoWidth": false,
                 "sDom": "rt",
                 "columns": [
                     {
-                        "mDataProp": "reservedate_formatted"
+                        "data": { _: "reservedate_formatted", "sort": "reservedate" }
                     },
                     {
                         "mDataProp": function ( oObj ) {
                             title = "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber="
                                   + oObj.biblionumber
                                   + "'>"
-                                  + oObj.title;
+                                  + oObj.title.escapeHtml();
 
                             $.each(oObj.subtitle, function( index, value ) {
-                                      title += " " + value.subfield;
+                                      title += " " + value.escapeHtml();
                             });
 
+                            title += " " + oObj.part_number + " " + oObj.part_name;
+
+                            if ( oObj.enumchron ) {
+                                title += " (" + oObj.enumchron.escapeHtml() + ")";
+                            }
+
                             title += "</a>";
 
                             if ( oObj.author ) {
-                                title += " " + BY.replace( "_AUTHOR_",  oObj.author );
+                                title += " " + BY.replace( "_AUTHOR_",  oObj.author.escapeHtml() );
                             }
 
                             if ( oObj.itemnotes ) {
@@ -39,7 +45,7 @@ $(document).ready(function() {
                                 if ( $.datepicker.formatDate('yy-mm-dd', new Date(oObj.issuedate) ) == ymd ) {
                                     span_class = "circ-hlt";
                                 }
-                                title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"
+                                title += " - <span class='" + span_class + "'>" + oObj.itemnotes.escapeHtml() + "</span>"
                             }
 
                             return title;
@@ -47,54 +53,23 @@ $(document).ready(function() {
                     },
                     {
                         "mDataProp": function( oObj ) {
-                            return oObj.itemcallnumber || "";
+                            return oObj.itemcallnumber && oObj.itemcallnumber.escapeHtml() || "";
                         }
                     },
                     {
                         "mDataProp": function( oObj ) {
                             var data = "";
-
-                            if ( oObj.suspend == 1 ) {
-                                data += "<p>" + HOLD_IS_SUSPENDED;
-                                if ( oObj.suspend_until ) {
-                                    data += " " + UNTIL.format( oObj.suspend_until_formatted );
-                                }
-                                data += "</p>";
-                            }
-
-                            if ( oObj.itemtype_limit ) {
-                                data += NEXT_AVAILABLE_ITYPE.format( oObj.itemtype_limit );
-                            }
-
                             if ( oObj.barcode ) {
-                                data += "<em>";
-                                if ( oObj.found == "W" ) {
-
-                                    if ( oObj.waiting_here ) {
-                                        data += ITEM_IS_WAITING_HERE;
-                                    } else {
-                                        data += ITEM_IS_WAITING;
-                                        data += " " + AT.format( oObj.waiting_at );
-                                    }
-
-                                } else if ( oObj.transferred ) {
-                                    data += ITEM_IS_IN_TRANSIT.format( oObj.from_branch, oObj.date_sent );
-                                } else if ( oObj.not_transferred ) {
-                                    data += NOT_TRANSFERRED_YET.format( oObj.not_transferred_by );
-                                }
-                                data += "</em>";
-
-                                data += " <a href='/cgi-bin/koha/catalogue/detail.pl?biblionumber="
+                                data += " <a href='/cgi-bin/koha/catalogue/moredetail.pl?biblionumber="
                                   + oObj.biblionumber
                                   + "&itemnumber="
                                   + oObj.itemnumber
-                                  + "#"
+                                  + "#item"
                                   + oObj.itemnumber
                                   + "'>"
-                                  + oObj.barcode
+                                  + oObj.barcode.escapeHtml()
                                   + "</a>";
                             }
-
                             return data;
                         }
                     },
@@ -106,22 +81,24 @@ $(document).ready(function() {
                                     var selectedbranch;
                                     var setbranch;
                                     if( oObj.branches[i].selected ){
+
                                         selectedbranch = " selected='selected' ";
-                                        setbranch = " (set) ";
-                                    }
-                                    else{
+                                        setbranch = CURRENT;
+                                    } else if ( oObj.branches[i].pickup_location == 0 ) {
+                                        continue;
+                                    } else{
                                         selectedbranch = '';
                                         setbranch = '';
                                     }
-                                    branchSelect += '<option value="'+ oObj.branches[i].value +'"'+selectedbranch+'>'+oObj.branches[i].branchname+setbranch+'</option>';
+                                    branchSelect += '<option value="'+ oObj.branches[i].branchcode.escapeHtml() +'"'+selectedbranch+'>'+oObj.branches[i].branchname.escapeHtml()+setbranch+'</option>';
                                 }
                                 branchSelect +='</select>';
                                 return branchSelect;
                             }
-                            else { return oObj.branchcode || ""; }
+                            else { return oObj.branchcode.escapeHtml() || ""; }
                         }
                     },
-                    { "mDataProp": "expirationdate_formatted" },
+                    { "data": { _: "expirationdate_formatted", "sort": "expirationdate" } },
                     {
                         "mDataProp": function( oObj ) {
                             if ( oObj.priority && parseInt( oObj.priority ) && parseInt( oObj.priority ) > 0 ) {
@@ -145,20 +122,58 @@ $(document).ready(function() {
                     },
                     {
                         "bSortable": false,
+                        "visible": SuspendHoldsIntranet,
                         "mDataProp": function( oObj ) {
                             holds[oObj.reserve_id] = oObj; //Store holds for later use
 
                             if ( oObj.found ) {
                                 return "";
                             } else if ( oObj.suspend == 1 ) {
-                                return "<a class='hold-resume btn btn-mini' id='resume" + oObj.reserve_id + "'>"
+                                return "<a class='hold-resume btn btn-default btn-xs' id='resume" + oObj.reserve_id + "'>"
                                      + "<i class='fa fa-play'></i> " + RESUME + "</a>";
                             } else {
-                                return "<a class='hold-suspend btn btn-mini' id='suspend" + oObj.reserve_id + "'>"
+                                return "<a class='hold-suspend btn btn-default btn-xs' id='suspend" + oObj.reserve_id + "'>"
                                      + "<i class='fa fa-pause'></i> " + SUSPEND + "</a>";
                             }
                         }
-                    }
+                    },
+                    {
+                        "mDataProp": function( oObj ) {
+                            var data = "";
+
+                            if ( oObj.suspend == 1 ) {
+                                data += "<p>" + HOLD_IS_SUSPENDED;
+                                if ( oObj.suspend_until ) {
+                                    data += " " + UNTIL.format( oObj.suspend_until_formatted );
+                                }
+                                data += "</p>";
+                            }
+
+                            if ( oObj.itemtype_limit ) {
+                                data += NEXT_AVAILABLE_ITYPE.format( oObj.itemtype_limit );
+                            }
+
+                            if ( oObj.barcode ) {
+                                data += "<em>";
+                                if ( oObj.found == "W" ) {
+
+                                    if ( oObj.waiting_here ) {
+                                        data += ITEM_IS_WAITING_HERE;
+                                    } else {
+                                        data += ITEM_IS_WAITING;
+                                        data += " " + AT.format( oObj.waiting_at );
+                                    }
+
+                                } else if ( oObj.transferred ) {
+                                    data += ITEM_IS_IN_TRANSIT.format( oObj.from_branch, oObj.date_sent );
+                                } else if ( oObj.not_transferred ) {
+                                    data += NOT_TRANSFERRED_YET.format( oObj.not_transferred_by );
+                                }
+                                data += "</em>";
+                            }
+                            return data;
+                        }
+                   }
                 ],
                 "bPaginate": false,
                 "bProcessing": true,
@@ -169,7 +184,7 @@ $(document).ready(function() {
                         d.borrowernumber = borrowernumber;
                     }
                 },
-            });
+            }));
 
             $('#holds-table').on( 'draw.dt', function () {
                 $(".hold-suspend").on( "click", function() {
@@ -196,28 +211,24 @@ $(document).ready(function() {
                 });
 
                 $(".hold_location_select").change(function(){
-                    if( confirm( _("Do you want to change the pickup location?") ) ){
-                        $(this).prop("disabled",true);
-                        var cur_select = $(this);
-                        $(this).after('<i id="holdwaiter" class="fa fa-circle-o-notch fa-spin fa-lg fa-fw"></i>');
-                        var api_url = '/api/v1/holds/'+$(this).attr('reserve_id');
-                        var update_info = JSON.stringify({ branchcode: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
-                        $.ajax({
-                            method: "PUT",
-                            url: api_url,
-                            data: update_info ,
-                            success: function( data ){ holdsTable.api().ajax.reload(); },
-                            error: function( jqXHR, textStatus, errorThrown) {
-                                alert('There was an error:'+textStatus+" "+errorThrown);
-                                cur_select.prop("disabled",false);
-                                $("#holdwaiter").remove();
-                                cur_select.val( cur_select.children('option[selected="selected"]').val() );
-                            },
-                        });
-                    }
-                    else{
-                        $(this).val( $(this).children('option[selected="selected"]').val()  );
-                    }
+                    $(this).prop("disabled",true);
+                    var cur_select = $(this);
+                    var res_id = $(this).attr('reserve_id');
+                    $(this).after('<div id="updating_reserveno'+res_id+'" class="waiting"><img src="/intranet-tmpl/prog/img/spinner-small.gif" alt="" /><span class="waiting_msg"></span></div>');
+                    var api_url = '/api/v1/holds/'+res_id;
+                    var update_info = JSON.stringify({ pickup_library_id: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
+                    $.ajax({
+                        method: "PUT",
+                        url: api_url,
+                        data: update_info ,
+                        success: function( data ){ holdsTable.api().ajax.reload(); },
+                        error: function( jqXHR, textStatus, errorThrown) {
+                            alert('There was an error:'+textStatus+" "+errorThrown);
+                            cur_select.prop("disabled",false);
+                            $("#updating_reserveno"+res_id).remove();
+                            cur_select.val( cur_select.children('option[selected="selected"]').val() );
+                        },
+                    });
                 });
 
             });
@@ -232,7 +243,9 @@ $(document).ready(function() {
     }
 
     $("body").append("\
-        <div id='suspend-modal' class='modal hide fade' tabindex='-1' role='dialog' aria-hidden='true'>\
+        <div id='suspend-modal' class='modal fade' role='dialog' aria-hidden='true'>\
+            <div class='modal-dialog'>\
+            <div class='modal-content'>\
             <form id='suspend-modal-form' class='form-inline'>\
                 <div class='modal-header'>\
                     <button type='button' class='closebtn' data-dismiss='modal' aria-hidden='true'>×</button>\
@@ -242,7 +255,7 @@ $(document).ready(function() {
                 <div class='modal-body'>\
                     <input type='hidden' id='suspend-modal-reserve_id' name='reserve_id' />\
 \
-                    <label for='suspend-modal-until'>Suspend until:</label>\
+                    <label for='suspend-modal-until'>" + SUSPEND_UNTIL + "</label>\
                     <input name='suspend_until' id='suspend-modal-until' class='suspend-until' size='10' />\
 \
                     <p/><a class='btn btn-link' id='suspend-modal-clear-date' >" + CLEAR_DATE_TO_SUSPEND_INDEFINITELY + "</a></p>\
@@ -254,6 +267,8 @@ $(document).ready(function() {
                     <a href='#' data-dismiss='modal' aria-hidden='true' class='cancel'>" + CANCEL + "</a>\
                 </div>\
             </form>\
+            </div>\
+            </div>\
         </div>\
     ");