Bug 11299: Add a button to the biblio edition page to automatically add authority...
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / viewlog.js
index ccec003..0b867b0 100644 (file)
@@ -1,18 +1,72 @@
+var Sticky;
+
 function tickAll(section){
-    $("input[name='" + section + "']").prop("checked", true);
+    $("input[type='checkbox'][name='" + section + "']").prop("checked", true);
     $("#" + section.slice(0,-1) + "ALL").prop("checked", true);
-    $("input[name='" + section + "']").prop("disabled", true);
+    $("input[type='checkbox'][name='" + section + "']").prop("disabled", true);
     $("#" + section.slice(0,-1) + "ALL").prop("disabled", false);
 }
 
 function untickAll(section){
-    $("input[name='" + section + "']").prop("checked", false);
-    $("input[name='" + section + "']").prop("disabled", false);
+    $("input[type='checkbox'][name='" + section + "']").prop("checked", false);
+    $("input[type='checkbox'][name='" + section + "']").prop("disabled", false);
+}
+
+function limitCheckboxes() {
+    var checkboxes = $(".compare");
+    var limit = 2;
+    var compare_link = '<a href="#" class="btn btn-link compare_link"><i class="fa fa-columns"></i> ' + __("View comparison") + '</a>';
+    checkboxes.each(function(){
+        $(this).on("change", function(){
+            var checked = [];
+            checkboxes.each(function () {
+                if( $(this).prop("checked") ){
+                    checked.push( $(this).data("actionid") );
+                }
+            });
+            if (checked.length > 0) {
+                $("#select_none").removeClass("disabled");
+            } else {
+                $("#select_none").addClass("disabled");
+                $("#logst").DataTable().search("").draw();
+            }
+            if( checked.length == 1 ){
+                $("#logst").DataTable().search($(this).data("filter")).draw();
+                humanMsg.displayAlert( __("Showing results for %s").format( $(this).data("filter") ) );
+            }
+            if( checked.length == 2 ){
+                $("#compare_info" + checked[0]).prepend( compare_link );
+                $("#compare_info" + checked[1]).prepend( compare_link );
+                $("button.compare_link").removeClass("disabled");
+            } else if (checked.length > limit) {
+                humanMsg.displayAlert( __("You can select maximum of two checkboxes") );
+                $(this).prop("checked", false );
+            } else if (checked.length < limit) {
+                $("a.compare_link").remove();
+                $("button.compare_link").addClass("disabled");
+            }
+        });
+    });
 }
 
 $(document).ready(function(){
+    limitCheckboxes();
+
+    if( $(".compare_info").length == 0 ){
+        /* Remove toolbar if there are no system preference
+           entries to compare */
+        $("#toolbar").remove();
+    }
+
+    if ($('#toolbar').length) {
+        Sticky = $("#toolbar");
+        Sticky.hcSticky({
+            stickTo: "main",
+            stickyClass: "floating"
+        });
+    }
 
-    if ( $('input[name="modules"]:checked').length == 0 ) {
+    if ( $('input[type="checkbox"][name="modules"]:checked').length == 0 ) {
         tickAll('modules');
     }
     $("#moduleALL").change(function(){
@@ -22,7 +76,7 @@ $(document).ready(function(){
             untickAll('modules');
         }
     });
-    $("input[name='modules']").change(function(){
+    $("input[type='checkbox'][name='modules']").change(function(){
         if ( $("input[name='modules']:checked").length == $("input[name='modules']").length - 1 ){
             tickAll('modules');
         }
@@ -61,4 +115,61 @@ $(document).ready(function(){
             tickAll('interfaces');
         }
     });
+
+    var logst = KohaTable("logst", {
+        "autoWidth": false,
+        "order": [[0, "desc"]],
+        "pagingType" : "full"
+    }, columns_settings);
+
+    $("body").on("click", ".compare_link", function(e){
+        e.preventDefault();
+        if( $(this).hasClass('disabled') ){
+            humanMsg.displayAlert( __("You must select two entries to compare") );
+        } else {
+            var firstid = $(".compare:checked").eq(0).data("actionid");
+            var secondid = $(".compare:checked").eq(1).data("actionid");
+            var firstvalue = $("#loginfo" + firstid).text();
+            var secondvalue = $("#loginfo" + secondid).text();
+            var diffs = diffString(secondvalue, firstvalue);
+            $("#col1 pre,#col2 pre").html(diffs);
+            $("#compareInfo").modal("show");
+        }
+    });
+    $("#compareInfo").on("hidden.bs.modal", function(){
+        $("#col1 pre,#col2 pre").html("");
+    });
+
+    $("#select_none").on("click", function(e){
+        e.preventDefault();
+        $(".compare:checked").prop("checked", false).change();
+    });
+    var obj = $("#user").autocomplete({
+        source: "/cgi-bin/koha/circ/ysearch.pl",
+        minLength: 3,
+        select: function ( event, ui ) {
+            $("#user").val( ui.item.borrowernumber );
+            return false;
+        }
+    }).data("ui-autocomplete");
+    if (obj) {
+        obj._renderItem = function (ul, item) {
+            var cardnumber = "";
+            if (item.cardnumber != "") {
+                // Display card number in parentheses if it exists
+                cardnumber = " (" + item.cardnumber + ") ";
+            }
+            var itemString = "<a href=\"#\">" + (item.surname ? item.surname.escapeHtml() : "") + ", " + (item.firstname ? item.firstname.escapeHtml() : "") + cardnumber.escapeHtml() + " <small>";
+            itemString += (item.address ? item.address.escapeHtml() : "") + " "
+                + (item.city ? item.city.escapeHtml() : "") + " "
+                + (item.zipcode ? item.zipcode.escapeHtml() : "") + " "
+                + (item.country ? item.country.escapeHtml() : "")
+                + "</small></a>";
+            return $("<li></li>")
+                .data("ui-autocomplete-item", item)
+                .append(itemString)
+                .appendTo(ul);
+        };
+    }
+
 });