Merge remote branch 'kc/new/enh/bug_5462' into kcmaster
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / additem.tmpl
index 4f0409d..6a32740 100644 (file)
@@ -1,8 +1,22 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha &rsaquo; Cataloging &rsaquo; Items for Bibliographic Record <!-- TMPL_VAR name="biblionumber" --></title>
+<title>Koha &rsaquo; Cataloging &rsaquo; <!-- TMPL_VAR name="title" escape="html" --> <!-- TMPL_IF NAME="author" --> by <!-- TMPL_VAR name="author" --><!-- /TMPL_IF --> (Record #<!-- TMPL_VAR NAME="biblionumber" -->) &rsaquo; Items</title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 <script type="text/javascript">
 //<![CDATA[
+$(document).ready(function(){
+               $("fieldset.rows input").keydown(function(e){ return checkEnter(e); });
+               /* Inline edit/delete links */
+               var biblionumber = $("input[name='biblionumber']").attr("value");
+               $("td").click(function(event){
+                       var $tgt = $(event.target);
+                       if($tgt.is("a")||$tgt.is(":first-child")||$tgt.is(":nth-child(2)")){ return true; } else {
+                       var rowid = $(this).parent().attr("id");
+                       num_rowid = rowid.replace("row","");
+                       $(".linktools").remove();
+                       $(this).append("<span class=\"linktools\"><a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&frameworkcode=<!-- TMPL_VAR NAME="frameworkcode" -->&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber="+num_rowid+"#edititem\">Edit Item</a> <a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=delitem&frameworkcode=<!-- TMPL_VAR NAME="frameworkcode" -->&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber="+num_rowid+"\" onclick=\"confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,"+num_rowid+"); return false;\">Delete Item</a></span>");
+               }
+               });
+});
 function active(numlayer)
 {
     for (i=10; i < 11 ; i++ ) {
@@ -20,6 +34,7 @@ function active(numlayer)
     }
 }
 function Check(f) {
+
     var total_errors=0;
 //     alert(f.field_value.length);
     for (i=0 ; i<f.field_value.length ; i++) {
@@ -33,99 +48,236 @@ function Check(f) {
     }
     var alertString2;
     if (total_errors==0) {
-        document.f.submit();
+        return true;
     } else {
         alertString2  = _("Form not submitted because of the following problem(s)");
         alertString2 += "\n------------------------------------------------------------------------------------\n";
         alertString2 += "\n- "+ total_errors+_(" mandatory fields empty (see bold subfields)");
         alert(alertString2);
+        return false;
+    }
+}
+function CheckMultipleAdd(f) {
+
+    if (!f || isNaN(f) || !parseInt(f) == f || f <= 0) {
+       alert(_("Please enter a number of items to create."));
+       return false;
     }
 }
 function Dopop(link,i) {
     defaultvalue=document.forms[0].field_value[i].value;
-    newin=window.open(link+"&result="+defaultvalue,"value builder",'width=500,height=400,toolbar=false,scrollbars=yes');
+    newin=window.open(link+"&result="+defaultvalue,"valuebuilder",'width=500,height=400,toolbar=false,scrollbars=yes');
 }
+
 function confirm_deletion(biblionumber,itemnumber) {
-    var is_confirmed = confirm(_('Are you sure you want to delete this item?'));
+       var original = $("#row"+itemnumber).attr("class");
+       $("#row"+itemnumber).attr("class","confirm");
+    var is_confirmed = confirm(_("Are you sure you want to delete this item?"));
     if (is_confirmed) {
     window.location = "additem.pl?op=delitem&biblionumber="+biblionumber+"&itemnumber="+itemnumber;
+       } else {
+       $("#row"+itemnumber).attr("class","");
+    }
+}
+
+function CloneSubfield(index){
+    var original = document.getElementById(index); //original <div>
+    var clone = original.cloneNode(true);
+    var new_key = CreateKey();
+    var old_id =  original.getAttribute('id');
+    old_id=old_id.substr(12);
+    var new_id  = old_id+new_key;
+
+    // set the attribute for the new 'div' subfields
+    var inputs     = clone.getElementsByTagName('input');
+    var selects    = clone.getElementsByTagName('select');
+    var textareas  = clone.getElementsByTagName('textarea');
+
+    // input
+    var id_input = "";
+    for(var i=0,len=inputs.length; i<len ; i++ ){
+        id_input = inputs[i].getAttribute('id')+new_key;
+        inputs[i].setAttribute('id',id_input);
+        inputs[i].setAttribute('name',inputs[i].getAttribute('name'));
+    }
+
+    // select
+    for(var i=0,len=selects.length; i<len ; i++ ){
+        id_input = selects[i].getAttribute('id')+new_key;
+        selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
+        selects[i].setAttribute('name',selects[i].getAttribute('name'));
+    }
+
+    // textarea
+    for(var i=0,len=textareas.length; i<len ; i++ ){
+        id_input = textareas[i].getAttribute('id')+new_key;
+        textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
+        textareas[i].setAttribute('name',textareas[i].getAttribute('name'));
+    }
+
+    <!-- TMPL_UNLESS NAME='advancedMARCEditor' -->
+    // when cloning a subfield, reset its label too.
+    var label = clone.getElementsByTagName('label')[0];
+    label.setAttribute('for',id_input);
+    <!-- /TMPL_UNLESS -->
+
+    // setting a new if for the parent div
+    clone.setAttribute('id',new_id);
+
+    var CloneButtonPlus;
+    try {
+      var spans = clone.getElementsByTagName('span');
+      if(spans.length){
+          for(var i = 0 ,lenspans = spans.length ; i < lenspans ; i++){
+            if(spans[i].getAttribute('class') == 'buttonPlus'){
+                    CloneButtonPlus = spans[i];
+                    CloneButtonPlus.setAttribute('onclick',"CloneSubfield('" + new_id + "')");
+                    var buttonUp = clone.getElementsByTagName('img')[0];
+                    buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
+                }
+            }
+        }
+    }
+    catch(e){
+        // do nothing if ButtonPlus & CloneButtonPlus don't exist.
+    }
+    // insert this line on the page
+    original.parentNode.insertBefore(clone,original.nextSibling);
+}
+
+/**
+ * This function creates a random number
+ */
+function CreateKey(){
+    return parseInt(Math.random() * 100000);
+}
+
+$(document).ready(function() {
+    $("#cataloguing_additem_itemlist  tr").hover(
+        function () {$(this).attr("class","highlight");},
+        function () {$(this).attr("class",""         );}
+    );
+});
+
+function set_to_today(id, force) {
+    if (! id) { alert("Bad id " + id + " sent to set_to_today()"); return 0; }
+    if ($("#" + id).val() == '' || $("#" + id).val() == '0000-00-00' || force) {
+        $("#" + id).val("<!-- TMPL_VAR NAME="today_iso" -->");
     }
 }
 //]]>
 </script>
+<link type="text/css" rel="stylesheet" href="<!-- TMPL_VAR NAME="themelang" -->/css/addbiblio.css" />
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.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; Edit <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR name="title" escape="html" --> <!-- TMPL_IF NAME="author" --> by <!-- TMPL_VAR name="author" --><!-- /TMPL_IF --> (Record #<!-- TMPL_VAR NAME="biblionumber" -->)</a>
+ &rsaquo; <a href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Items</a>
+</div>
 
 <div id="doc3" class="yui-t2">
-   
+
    <div id="bd">
        <div id="yui-main">
        <div class="yui-b">
 
 
-<h1>Items for <!-- TMPL_VAR name="title" --> <!-- TMPL_IF NAME="author" --> by <!-- TMPL_VAR name="author" --><!-- /TMPL_IF --> (Record #<!-- TMPL_VAR NAME="biblionumber" -->)</h1>
+<h1>Items for <!-- TMPL_VAR name="title" escape="html" --> <!-- TMPL_IF NAME="author" --> by <!-- TMPL_VAR name="author" --><!-- /TMPL_IF --> (Record #<!-- TMPL_VAR NAME="biblionumber" -->)</h1>
+
+<!-- TMPL_IF NAME="barcode_not_unique" --><div class="dialog alert"><strong>Error saving item</strong>: Barcode must be unique.</div><!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="no_next_barcode" --><div class="dialog alert"><strong>Error saving items</strong>: Unable to automatically determine values for barcodes. No item has been inserted.</div><!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="book_on_loan" --><div class="dialog alert"><strong>Cannot Delete</strong>: item is checked out.</div><!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="book_reserved" --><div class="dialogalert"><strong>Cannot Delete</strong>: item has a waiting hold.</div><!-- /TMPL_IF -->
+<!-- TMPL_IF Name="not_same_branch" --><div class="dialog alert"><strong>Cannot Delete</strong>: The items do not belong to your branch.</div><!-- /TMPL_IF -->
 
-    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
-    <input type="hidden" name="op" value="<!-- TMPL_VAR NAME="op" -->" />
-    <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
 <div id="cataloguing_additem_itemlist">
     <!-- TMPL_IF name="item_loop" -->
-        <h2>Existing items</h2>
+        <div>
         <table>
             <tr>
+                <th colspan="2">&nbsp;</th>
                 <!-- TMPL_LOOP NAME="item_header_loop" -->
                     <th>
                         <!-- TMPL_VAR NAME="header_value" -->
                     </th>
                 <!-- /TMPL_LOOP -->
-                <th colspan="2">&nbsp;</th>
             </tr>
                 <!-- TMPL_LOOP NAME="item_loop" -->
-                <tr>
-                    <!-- TMPL_VAR NAME="item_value" -->
-                    <td><a href="additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">Edit</a></td>
-                    <td><a href="javascript:confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,<!-- TMPL_VAR NAME="itemnumber" -->)">Delete</a></td>
+                <tr id="row<!-- TMPL_VAR NAME="itemnumber" -->">
+                    <!-- TMPL_IF Name="nomod"--> <td colspan="2">&nbsp;</td><!--TMPL_ELSE--><td><a href="additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
+                    <td><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->" onclick="confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,<!-- TMPL_VAR NAME="itemnumber" -->); return false;">Delete</a></td><!--/TMPL_IF-->
+                <!-- TMPL_LOOP NAME="item_value" -->
+                    <td><!-- TMPL_VAR ESCAPE=HTML NAME="field" --></td>
+                <!-- /TMPL_LOOP -->
                 </tr>
                 <!-- /TMPL_LOOP -->
         </table>
+        </div>
     <!-- /TMPL_IF -->
 </div>
 
 <div id="cataloguing_additem_newitem">
+    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
+    <input type="hidden" name="op" value="<!-- TMPL_VAR NAME="op" -->" />
+    <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
     <!-- TMPL_IF name="opisadd" -->
-        <h2>Add Item</h2>
+        <h2 id="additema">Add Item</h2>
     <!-- TMPL_ELSE -->
-        <h2>Edit Item</h2>
-    <!-- /TMPL_IF -->  
+        <h2 id="edititem">Edit Item #<!-- TMPL_VAR NAME="itemnumber" --></h2>
+    <!-- /TMPL_IF -->
+       <fieldset class="rows">
+       <ol>
         <!-- TMPL_LOOP NAME="item" -->
-            <p>
-                <label><!-- TMPL_VAR NAME="subfield" --> - <!-- TMPL_IF name="mandatory" --><b><!-- /TMPL_IF --><!-- TMPL_VAR NAME="marc_lib" --><!-- TMPL_IF name="mandatory" --> *</b><!-- /TMPL_IF --></label>
+               <li><div class="subfield_line" style="<!-- TMPL_VAR NAME='visibility' -->" id="subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->">
+
+               <label><!-- TMPL_VAR NAME="subfield" --> - <!-- TMPL_IF name="mandatory" --><b><!-- /TMPL_IF --><!-- TMPL_VAR NAME="marc_lib" --><!-- TMPL_IF name="mandatory" --> *</b><!-- /TMPL_IF --></label>
                 <!-- TMPL_VAR NAME="marc_value" -->
-                <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="tag" -->" />
-                <input type="hidden" name="subfield" value="<!-- TMPL_VAR NAME="subfield" -->" />
+                <input type="hidden" name="tag"       value="<!-- TMPL_VAR NAME="tag" -->" />
+                <input type="hidden" name="subfield"  value="<!-- TMPL_VAR NAME="subfield" -->" />
                 <input type="hidden" name="mandatory" value="<!-- TMPL_VAR NAME="mandatory" -->" />
-            </p>
-        <!-- /tmpl_loop -->
+                <!-- TMPL_IF NAME="repeatable" -->
+                    <span class="buttonPlus" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')">+</span>
+                <!-- /TMPL_IF -->
+
+            </div></li>
+        <!-- /TMPL_LOOP -->
+    </ol>
+    </fieldset>
+    <input type="hidden" name="indicator" value=" " />
+    <input type="hidden" name="indicator" value=" " />
     <input type="hidden" name="itemnumber" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
-    <!-- TMPL_IF name="barcode_not_unique" -->
-        ERROR : Barcode already exists !
-    <!-- /TMPL_IF -->
-    <!-- TMPL_IF name="opisadd" -->
-    <input type="button" value="Add item"  onclick="Check(this.form)" accesskey="w" />
+
+<fieldset class="action">    <!-- TMPL_IF name="opisadd" -->
+    <input type="submit" name="phony_submit" value="phony_submit" id="phony_submit" style="display:none;" onclick="return false;" />
+    <!-- Note : We use here a false submit button because we have several submit buttons and we don't want the user to believe he validated the adding of multiple copies
+               when pressing the enter key, while in fact it is the first submit button that is validated, in our case the "add (single) item" button.
+               It is a bit tricky, but necessary in the sake of UI correctness.
+    -->
+
+    <input type="submit" name="add_submit" value="Add item" onclick="return Check(this.form)" />
+    <input type="submit" name="add_duplicate_submit" value="Add &amp; Duplicate" onclick="return Check(this.form)" />
+    <input type="submit" name="add_multiple_copies" value="Add Multiple Copies" onclick="javascript:this.nextSibling.style.visibility='visible';document.f.number_of_copies.focus(); return false;" /><span id="add_multiple_copies_span" style="visibility:hidden">
+       <label for="number_of_copies">Number of copies to add : </label>
+       <input type="text" id="number_of_copies" name="number_of_copies" value="" size="2" />
+       <input type="submit" id="add_multiple_copies_submit" name="add_multiple_copies_submit" value="Add" onclick="javascript:return Check(this.form) &amp;&amp; CheckMultipleAdd(this.form.number_of_copies.value);" />
+    </span>
+
     <!-- TMPL_ELSE -->
     <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="itemtagfield" -->" />
     <input type="hidden" name="subfield" value="<!-- TMPL_VAR NAME="itemtagsubfield" -->" />
     <input type="hidden" name="field_value" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
-    <input type="button" value="Save Changes" onclick="Check(this.form)" accesskey="w" />
-    <!-- /TMPL_IF -->
+    <input type="submit" value="Save Changes" onclick="return Check(this.form)" />
+    <!-- /TMPL_IF --></fieldset>
 
-</div>
     </form>
 </div>
 </div>
+</div>
 <div class="yui-b">
-<!-- TMPL_INCLUDE NAME="additem-menu.inc" -->
+<!-- TMPL_INCLUDE NAME="biblio-view-menu.inc" -->
 </div>
 </div>
-<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
\ No newline at end of file
+<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->