Bug 21186: Incorrect Bootstrap modal event name in multiple templates
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / merge.tt
index 2805661..586a495 100644 (file)
+[% USE raw %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
 [% PROCESS 'merge-record.inc' %]
 
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Cataloging &rsaquo; Merging records</title>
 [% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% interface %]/[% theme %]/js/merge-record.js"></script>
-[% INCLUDE 'merge-record-strings.inc' %]
 <style type="text/css">
 div.record ul, div.record li { float:none; display:block; }
 div#result { margin-top: 1em; }
 /* We use this style "against" the li ui-tabs-nav style automatically applied */
-#dataPreview { width : 80%; margin-left : -40%; } @media (max-width: 767px) { #dataPreview { margin: 0; width : auto; } }
+#dataPreview { width : 80%; } @media (max-width: 767px) { #dataPreview { margin: 0; width : auto; } }
 </style>
-<script type="text/javascript">
-//<![CDATA[
-[% UNLESS (result) %]
-  [% IF (choosereference) %]
-    function changeFramework(fw) {
-        $("#frameworkcode").val(fw);
-    }
-    $(document).ready(function(){
-            $(".previewData").on("click", function(e){
-            e.preventDefault();
-            var ltitle = $(this).text();
-            var page = $(this).attr("href");
-            $("#dataPreviewLabel").text(ltitle);
-            $("#dataPreview .modal-body").load(page + " div");
-            $('#dataPreview').modal({show:true});
-        });
-        $("#dataPreview").on("hidden", function(){
-            $("#dataPreviewLabel").html("");
-            $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/loading-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
-        });
-    });
-  [% ELSE %]
-    function check_mandatory () {
-        var missing = {
-            'fields': [],
-            'subfields': []
-        };
-        for (tag in tagslib) {
-            if (tag == '000' || tag == '001')
-                continue;
-            if (tagslib[tag].mandatory == 1) {
-                if ($("#resultul span.field:contains("+ tag +")").length == 0) {
-                    missing.fields.push(tag);
-                }
-            }
-            for (subfieldcode in tagslib[tag]) {
-                if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
-                || subfieldcode == 'repeatable' || subfieldcode == 'tab'
-                || subfieldcode == '@') {
-                    continue;
-                }
-                if (tagslib[tag][subfieldcode].mandatory == 1 && tagslib[tag][subfieldcode].tab >= 0) {
-                    var fields = $("#resultul span.field:contains("+ tag +")");
-                    $(fields).each(function() {
-                        var subfields = $(this).parents('li').find("span.subfield:contains("+ subfieldcode +")");
-                        if (subfields.length == 0) {
-                            missing.subfields.push( {
-                                'tag': tag,
-                                'subfieldcode': subfieldcode
-                            } );
-                        }
-                    });
-                }
-            }
-        }
-        return missing;
-    }
-
-    // When submiting the form
-    function mergeformsubmit() {
-        var missing = check_mandatory();
-        var alert_msg = '';
-        var error = 0;
-        if (missing.fields.length > 0) {
-            alert_msg += _("Following required fields are missing:") + "\n";
-            for (var i in missing.fields) {
-                alert_msg += "\t- " + missing.fields[i] + "\n";
-                error ++;
-            }
-            alert_msg += "\n";
-        }
-        if (missing.subfields.length > 0) {
-            alert_msg += _("Following required subfields are missing:") + "\n";
-            for (var i in missing.subfields) {
-                var subfield = missing.subfields[i];
-                alert_msg += "\t- " + subfield.tag + "$" + subfield.subfieldcode + "\n";
-                error ++;
-            }
-        }
-
-        if (error != 0) {
-            alert(alert_msg);
-            return false;
-        } else {
-            $("#tabs").remove();
-        }
-    }
-
-$(document).ready(function(){
-    tagslib = [];
-    $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
-      tagslib = json;
-      rebuild_target($("#tabs"), $("#resultul"));
-    });
-
-    // Creating tabs
-    $("#tabs").tabs();
-
-    // Check all checkboxes in first tab, and uncheck all others to avoid
-    // inconsistencies from a page refresh.
-    $('#tabs div#tabrecord[% ref_biblionumber %]').find('input[type="checkbox"]').prop('checked', true);
-    $('#tabs > div:not("#tabrecord[% ref_biblionumber %]")').find('input[type="checkbox"]').prop('checked', false);
-
-    //Set focus to cataloging search
-    $("input[name=q]:eq(0)").focus();
-});
-
-  [% END %]
-[% END %]
-//]]>
-</script>
 </head>
+
 <body id="cat_merge" class="cat">
 [% INCLUDE 'header.inc' %]
 [% INCLUDE 'cataloging-search.inc' %]
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo; Merging records</div>
 
-<div id="doc" class="yui-t7">
-
-<div id="bd">
-        <div id="yui-main">
-
+<div class="main container-fluid">
+    <div class="row">
+        <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
 
 <h1>Merging records</h1>
 [% IF ( result ) %]
@@ -140,9 +29,9 @@ $(document).ready(function(){
        [% FOREACH error IN errors %]
            <div class="dialog alert">
                 [% IF error.code == 'CANNOT_MOVE' %]
-                    The following items could not be moved from the old record to the new one: [% error.value %]
+                    The following items could not be moved from the old record to the new one: [% error.value | html %]
                 [% ELSE %]
-                    [% error %]
+                    [% error | html %]
                 [% END %]
                 <br />
                 Therefore, the record to be merged has not been deleted.
@@ -150,7 +39,7 @@ $(document).ready(function(){
        [% END %]
 
     [% ELSE %]
-        <p>The merge was successful. <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% ref_biblionumber %]">Click here to see the merged record.</a></p>
+        <p>The merge was successful. <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% ref_biblionumber | uri %]">Click here to see the merged record.</a></p>
         <h3>Report</h3>
         <table>
             <thead>
@@ -164,7 +53,7 @@ $(document).ready(function(){
                         [% ELSE %]
                             [% header = tag _ '$' _ code %]
                         [% END %]
-                        <th>[% header %]</th>
+                        <th>[% header | html %]</th>
                     [% END %]
                 </tr>
             </thead>
@@ -172,7 +61,7 @@ $(document).ready(function(){
                 [% FOREACH record IN report_records %]
                     <tr>
                         <td>
-                            [% record.biblionumber %]
+                            [% record.biblionumber | html %]
                             [% IF loop.first %]
                                 (record kept)
                             [% END %]
@@ -182,7 +71,7 @@ $(document).ready(function(){
                                 [% values = record.fields.$key %]
                                 [% IF values %]
                                     [% FOREACH value IN record.fields.$key %]
-                                        [% value %]
+                                        [% value | html %]
                                         [% UNLESS loop.last %]<br />[% END %]
                                     [% END %]
                                 [% END %]
@@ -205,41 +94,33 @@ $(document).ready(function(){
         [% FOREACH record IN records %]
             <li class="radio">
                 [% IF loop.first %]
-                    <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
+                    <input type="radio" value="[% record.biblionumber | html %]" checked="checked" id="ref_biblionumber[% record.biblionumber | html %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode | html %]')" />
                 [% ELSE %]
-                    <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
+                    <input type="radio" value="[% record.biblionumber | html %]" id="ref_biblionumber[% record.biblionumber | html %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode | html %]')" />
                 [% END %]
-                <label for="ref_biblionumber[% record.biblionumber %]">
-                    [% record.data.title %]
+                <label for="ref_biblionumber[% record.biblionumber | html %]">
+                    [% record.data.title | html %]
                     [% FOREACH subtitle IN record.subtitles %]
-                        [% subtitle.subfield %]
+                        [% subtitle.subfield | html %]
                     [% END %]
-                    ([% record.biblionumber %]) <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" class="previewData">View MARC</a>
+                    ([% record.biblionumber | uri %]) <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber | uri %]" class="previewData">View MARC</a>
                 </label>
             </li>
         [% END %]
 
-        [% IF frameworkselect.size %]
             <li>
                 <label for="frameworkcode">Using framework:</label>
                 <select name="frameworkcode" id="frameworkcode">
                     <option value="">Default</option>
-                    [% FOREACH frameworkcode IN frameworkselect %]
-                        [% IF ( frameworkcode.selected ) %]
-                            <option value="[% frameworkcode.value %]" selected="selected">
-                        [% ELSE %]
-                            <option value="[% frameworkcode.value %]">
-                        [% END %]
-                            [% frameworkcode.frameworktext %]
-                        </option>
+                    [% FOREACH framework IN frameworks %]
+                        <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option>
                     [% END %]
                 </select>
             </li>
-        [% END %]
     </ol>
 
     [% FOREACH record IN records %]
-        <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
+        <input type="hidden" name="biblionumber" value="[% record.biblionumber | html %]" />
     [% END %]
     <fieldset class="action">
         <input type="submit" value="Next" />
@@ -247,16 +128,20 @@ $(document).ready(function(){
     </fieldset>
 </form>
 
-<div id="dataPreview" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="dataPreviewLabel" aria-hidden="true">
+<div id="dataPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="dataPreviewLabel" aria-hidden="true">
+    <div class="modal-dialog">
+    <div class="modal-content">
     <div class="modal-header">
         <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
         <h3 id="dataPreviewLabel">Preview</h3>
     </div>
     <div class="modal-body">
-        <div id="loading"> <img src="[% interface %]/[% theme %]/img/loading-small.gif" alt="" /> Loading </div>
+        <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
     </div>
     <div class="modal-footer">
-        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
+        <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+    </div>
+    </div>
     </div>
 </div>
 
@@ -264,30 +149,30 @@ $(document).ready(function(){
 [% IF ( errors.size ) %]
     <div class="dialog alert">
         [% FOREACH error IN errors %]
-            <p>[% error %]</p>
+            <p>[% error | html %]</p>
         [% END %]
     </div>
 [% ELSE %]
 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
 
 <div class="yui-g">
-<div class="yui-u first">
+<div class="col-sm-6">
 [% PROCESS mergesource sourcerecords=records %]
 </div>
-<div class="yui-u">
+<div class="col-sm-6">
 [% PROCESS mergetarget %]
-</div> <!-- .yui-u -->
+</div> <!-- .col-sm-6 -->
 
-<input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
+<input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber | html %]" />
 [% FOREACH record IN records %]
-    <input type="hidden" name="biblionumber" value="[% record.recordid %]" />
+    <input type="hidden" name="biblionumber" value="[% record.recordid | html %]" />
 [% END %]
-<input type="hidden" name="frameworkcode" value="[% framework %]" />
+<input type="hidden" name="frameworkcode" value="[% framework | html %]" />
 
 <fieldset class="action">
     <input type="submit" name="merge" value="Merge" />
     <label for="report_fields">Fields to display in report:</label>
-    <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields %]" />
+    <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields | html %]" />
     <span class="hint">(Example: "001,245ab,600")
 </fieldset>
 </div>
@@ -298,6 +183,119 @@ $(document).ready(function(){
 
 </div>
 </div>
-</div>
+
+[% MACRO jsinclude BLOCK %]
+    [% Asset.js("js/merge-record.js") | $raw %]
+    [% INCLUDE 'merge-record-strings.inc' %]
+    <script type="text/javascript">
+        [% UNLESS (result) %]
+          [% IF (choosereference) %]
+            function changeFramework(fw) {
+                $("#frameworkcode").val(fw);
+            }
+            $(document).ready(function(){
+                    $(".previewData").on("click", function(e){
+                    e.preventDefault();
+                    var ltitle = $(this).text();
+                    var page = $(this).attr("href");
+                    $("#dataPreviewLabel").text(ltitle);
+                    $("#dataPreview .modal-body").load(page + " div");
+                    $('#dataPreview').modal({show:true});
+                });
+                $("#dataPreview").on("hidden.bs.modal", function(){
+                    $("#dataPreviewLabel").html("");
+                    $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface | html %]/[% theme | html %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+                });
+            });
+          [% ELSE %]
+            function check_mandatory () {
+                var missing = {
+                    'fields': [],
+                    'subfields': []
+                };
+                for (tag in tagslib) {
+                    if (tag == '000' || tag == '001')
+                        continue;
+                    if (tagslib[tag].mandatory == 1) {
+                        if ($("#resultul span.field:contains("+ tag +")").length == 0) {
+                            missing.fields.push(tag);
+                        }
+                    }
+                    for (subfieldcode in tagslib[tag]) {
+                        if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
+                        || subfieldcode == 'repeatable' || subfieldcode == 'tab'
+                        || subfieldcode == '@') {
+                            continue;
+                        }
+                        if (tagslib[tag][subfieldcode].mandatory == 1 && tagslib[tag][subfieldcode].tab >= 0) {
+                            var fields = $("#resultul span.field:contains("+ tag +")");
+                            $(fields).each(function() {
+                                var subfields = $(this).parents('li').find("span.subfield:contains("+ subfieldcode +")");
+                                if (subfields.length == 0) {
+                                    missing.subfields.push( {
+                                        'tag': tag,
+                                        'subfieldcode': subfieldcode
+                                    } );
+                                }
+                            });
+                        }
+                    }
+                }
+                return missing;
+            }
+
+            // When submiting the form
+            function mergeformsubmit() {
+                var missing = check_mandatory();
+                var alert_msg = '';
+                var error = 0;
+                if (missing.fields.length > 0) {
+                    alert_msg += _("Following required fields are missing:") + "\n";
+                    for (var i in missing.fields) {
+                        alert_msg += "\t- " + missing.fields[i] + "\n";
+                        error ++;
+                    }
+                    alert_msg += "\n";
+                }
+                if (missing.subfields.length > 0) {
+                    alert_msg += _("Following required subfields are missing:") + "\n";
+                    for (var i in missing.subfields) {
+                        var subfield = missing.subfields[i];
+                        alert_msg += "\t- " + subfield.tag + "$" + subfield.subfieldcode + "\n";
+                        error ++;
+                    }
+                }
+
+                if (error != 0) {
+                    alert(alert_msg);
+                    return false;
+                } else {
+                    $("#tabs").remove();
+                }
+            }
+
+        $(document).ready(function(){
+            tagslib = [];
+            $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework | html %]" }, function(json) {
+              tagslib = json;
+              rebuild_target($("#tabs"), $("#resultul"));
+            });
+
+            // Creating tabs
+            $("#tabs").tabs();
+
+            // Check all checkboxes in first tab, and uncheck all others to avoid
+            // inconsistencies from a page refresh.
+            $('#tabs div#tabrecord[% ref_biblionumber | html %]').find('input[type="checkbox"]').prop('checked', true);
+            $('#tabs > div:not("#tabrecord[% ref_biblionumber | html %]")').find('input[type="checkbox"]').prop('checked', false);
+
+            //Set focus to cataloging search
+            $("input[name=q]:eq(0)").focus();
+        });
+
+          [% END %]
+        [% END %]
+    </script>
+[% END %]
 
 [% INCLUDE 'intranet-bottom.inc' %]