Merge remote branch 'kc/new/enh/bug_5917' into kcmaster
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / serials / serials-edit.tt
1 [% INCLUDE 'doc-head-open.inc' %]
2 <title>Koha &rsaquo; Serials &rsaquo; Serial Edition [% bibliotitle %]</title>
3 [% INCLUDE 'doc-head-close.inc' %]
4 <script language="JavaScript" type="text/javascript">
5 //<![CDATA[
6 function popup(subscriptionid) {
7         window.open("subscription-renew.pl?subscriptionid="+subscriptionid,"subscription_renewal",'width=700,height=400,toolbar=false,scrollbars=yes');
8 }
9
10 function barcode_check(){
11     [% IF ( count ) %]
12     var count = [% count %];
13     for(var i=1;i<=count;i++){
14
15         var barcodenum = "barcode"+i;
16         var statusnum = "status"+i;
17         var elembarcode = "document.getElementById('"+barcodenum+"')";
18         var elemstatus = "document.getElementById('"+statusnum+"')";
19 // alert(elembarcode+"\n"+eval(elembarcode+".value));
20 // alert(elemstatus+"\n"+eval(elemstatus+".value"));
21         if(eval(elembarcode+".value") =='' && eval(elemstatus+".value") == 2){
22             var answer = confirm("Leave barcode blank?\n - Note: unable to change this later");
23             if (answer){
24                 document.f.submit();
25             } else {
26                 return false;
27             }
28         }
29         if(eval(elembarcode+".value".indexOf('TEMP')) > 0 && eval(elemstatus+".value") == 2){
30             var answer = confirm("A barcode was not entered.\nDo you want to put in a barcode\nor do you want to use a system generated barcode?");
31             if (answer){
32                 document.f.submit();
33             } else {
34                 return false;
35             }
36         }
37     }
38     [% END %]
39 }
40 function unHideItems(index,labelindex, serialId) {
41         subfield = document.getElementById(index);
42         subfield.style.display = 'block';
43         label = document.getElementById(labelindex);
44         label.style.display='none';     
45
46         // Prefilling 995$h with serial enumeration/issue number
47         // Getting item id
48         itemid = $("fieldset#" + index + " div.cataloguing_additem_itemlist div.items").attr("id");
49         // Getting subfield id
50         subfieldid = "subfield" + itemid.substr(4) + "h";
51         // Setting text field 
52         $("#" + subfieldid + " input[type='text']").val($("#serialseq" + serialId).val());
53
54 }
55 function HideItems(index,labelindex) {
56         subfield = document.getElementById(index);
57         subfield.style.display = 'none';
58         label = document.getElementById(labelindex);
59         label.style.display='block';    
60 }
61 function setStatus(serialid){
62     $("#status"+serialid).val("2").attr("selected","selected");
63 }
64 function changeDate(adate) {
65     var elem = document.getElementById("expecteddate");
66     elem.value = adate;
67 }
68 function changeDate2(adate) {
69    var elem = document.getElementById("supexpecteddate");
70     elem.value = adate;
71 }
72 function CloneSubfield(index){
73     var original = document.getElementById(index); //original <div>
74     var clone = original.cloneNode(true);
75     var new_key = CreateKey();
76     var old_id =  original.getAttribute('id');
77     old_id=old_id.substr(12);
78     var new_id  = old_id+new_key;
79     
80     // set the attribute for the new 'div' subfields
81     var inputs     = clone.getElementsByTagName('input');
82     var selects    = clone.getElementsByTagName('select');
83     var textareas  = clone.getElementsByTagName('textarea');
84         
85     // input
86     var id_input = "";
87     for(var i=0,len=inputs.length; i<len ; i++ ){
88         id_input = inputs[i].getAttribute('id')+new_key;
89         inputs[i].setAttribute('id',id_input);
90         inputs[i].setAttribute('name',inputs[i].getAttribute('name'));
91     }
92     
93     // select 
94     for(var i=0,len=selects.length; i<len ; i++ ){
95         id_input = selects[i].getAttribute('id')+new_key;
96         selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
97         selects[i].setAttribute('name',selects[i].getAttribute('name'));
98     }
99     
100     // textarea
101     for(var i=0,len=textareas.length; i<len ; i++ ){
102         id_input = textareas[i].getAttribute('id')+new_key;
103         textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
104         textareas[i].setAttribute('name',textareas[i].getAttribute('name'));
105     }
106     
107     [% UNLESS ( advancedMARCEditor ) %]
108     // when cloning a subfield, reset its label too.
109     var label = clone.getElementsByTagName('label')[0];
110     label.setAttribute('for',id_input);
111     [% END %]
112     
113     // setting a new if for the parent div
114     clone.setAttribute('id',new_id);
115     
116     var CloneButtonPlus;
117     try {
118       var spans = clone.getElementsByTagName('span');
119       if(spans.length){
120           for(var i = 0 ,lenspans = spans.length ; i < lenspans ; i++){
121             if(spans[i].getAttribute('class') == 'buttonPlus'){
122                     CloneButtonPlus = spans[i];
123                     CloneButtonPlus.setAttribute('onclick',"CloneSubfield('" + new_id + "')");
124                     var buttonUp = clone.getElementsByTagName('img')[0];
125                     buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
126                 }
127             }
128         }
129     }
130     catch(e){
131         // do nothig if ButtonPlus & CloneButtonPlus don't exist.
132     }
133     // insert this line on the page
134     original.parentNode.insertBefore(clone,original.nextSibling);
135 }
136 $(document).ready(function() {
137         $("form#serials_edit").submit(function() {
138             var total_errors = 0;
139         $(".subfield_line:visible", this).each(function() {
140             if ($("*[name=field_value]", this).val().length == 0 &&
141                 $("*[name=mandatory]", this).val() == 1) {
142                 total_errors++;
143             }
144         });
145         if ( total_errors > 0 ) {
146             var mes  = _("Form not submitted because of the following problem(s)");
147             mes += "\n------------------------------------------------------------------------------------\n";
148             mes += "\n- "+ total_errors+_(" mandatory fields empty (see bold subfields)");
149             alert(mes);
150             return false;
151         }
152     });
153 });
154 //]]>
155 </script>
156 <style type="text/css">#serials_edit fieldset.rows label, #serials_edit fieldset.rows span.label {
157         font-size : 100%;
158         width : 25%;
159 }
160 #serials_edit fieldset.rows select { max-width : 15em; }
161 #serials_edit fieldset.rows li {
162         padding-bottom : 3px;
163 }
164 #serials_edit .input_marceditor {
165         width : auto;
166 }</style>
167 </head>
168 <body>
169 [% INCLUDE 'header.inc' %]
170 [% INCLUDE 'serials-search.inc' %]
171
172 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo;  Serial Edition <i>[% bibliotitle %] [% IF ( callnumber ) %]([% callnumber %])[% END %]</i></div>
173
174 <div id="doc3" class="yui-t2">
175    
176    <div id="bd">
177         <div id="yui-main">
178         <div class="yui-b">
179
180 <h1>Serial Edition <i>[% bibliotitle %]</i>
181         ( [% location %] ) [% IF ( callnumber ) %] callnumber: [% callnumber %][% END %]</h1>
182 <form method="post" name="f" action="serials-edit.pl" id="serials_edit">
183 <!--onsubmit="return barcode_check()">-->
184
185 [% IF ( Errors ) %]
186 <div class="dialog alert">
187 <ul>
188 [% IF ( barcode_not_unique ) %]<li>Error : Barcode Not Unique For [% FOREACH errse IN errseq %]serialseq [% errse.serialseq %]<br/>[% END %]</li>[% END %]
189 </ul>
190 </div>
191 [% END %]
192
193     <input type="hidden" name="op" value="serialchangestatus" />
194     [% FOREACH subscription IN subscriptions %]
195     <input type="hidden" name="subscriptionid" value="[% subscription.subscriptionid %]" />
196     [% END %]
197         <table>
198         <tr>
199                 <th>Numbered</th>
200                 <th>Published on</th>
201                 <th>Expected on</th>
202                 <th>Status</th>
203                 <th>Notes</th>
204         </tr>
205 [% FOREACH serialslis IN serialslist %]
206     [% UNLESS ( loop.odd ) %]
207     <tr class="highlight">
208     [% ELSE %]
209     <tr>
210     [% END %]
211         <td>
212             <input type="hidden" name="serialid" value="[% serialslis.serialid %]" />
213             <input type="hidden" name="biblionumber" value="[% serialslis.biblionumber %]" />
214             <input type="hidden" name="itemcount" value="[% serialslis.issuesatonce %]" />
215             <input type="hidden" name="user" value="[% serialslis.librarian %]" />
216             Issue <input type="text" name="serialseq" id="serialseq[% serialslis.serialid %]" value="[% serialslis.serialseq %]" size="20" maxlength="100" />
217         </td>
218         <td>
219             <input type="text" name="publisheddate" value="[% serialslis.publisheddate %]" size="10" maxlength="15" />
220         </td>
221         <td>
222             <input type="text" id="expecteddate" name="planneddate" value="[% serialslis.planneddate %]" size="10" maxlength="15" />
223         </td>
224         <td>
225             [% IF ( serialslis.editdisable ) %]
226               <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="1">
227               <select name="status" size="1"  disabled="disabled">
228             [% ELSE %]
229               [% IF ( serialslis.serialsadditems ) %]
230               <select name="status" size="1" id="status[% serialslis.serialid %]" onchange="if (this.value==2){unHideItems('items'+[% serialslis.subscriptionid %][% serialslis.serialid %],'label[% serialslis.subscriptionid %][% serialslis.serialid %]','[% serialslis.serialid %]'); changeDate('[% serialslis.arriveddate %]')} else if (this.value==7){changeDate('[% serialslis.arriveddate %]')} else { HideItems('items'+[% serialslis.subscriptionid %]+[% serialslis.serialid %],'label[% serialslis.subscriptionid %][% serialslis.serialid %]'); changeDate('[% serialslis.planneddate %]')}" >
231                [% ELSE %]
232               <select name="status" size="1" id="status[% serialslis.serialid %]" onchange="if (this.value==2 || this.value==7){changeDate('[% serialslis.arriveddate %]')} else {changeDate('[% serialslis.planneddate %]')}" >
233                [% END %] 
234             [% END %]
235   [% IF ( serialslis.status1 ) %]
236                     <option value="1" selected="selected">Expected</option>
237   [% END %]
238   [% IF ( serialslis.status2 ) %]
239                     <option value="2" selected="selected">Arrived</option>
240   [% ELSE %]
241                     <option value="2">Arrived</option>
242   [% END %]
243   [% IF ( serialslis.status3 ) %]
244                     <option value="3" selected="selected">Late</option>
245   [% ELSE %]
246                     <option value="3">Late</option>
247   [% END %]
248   [% IF ( serialslis.status4 ) %]
249                     <option value="4" selected="selected">Missing</option>
250   [% ELSE %]
251                     <option value="4">Missing</option>
252   [% END %]
253   [% IF ( serialslis.status7 ) %]
254                     <option value="7" selected="selected">Claimed</option>
255   [% ELSE %]
256                     <option value="7">Claimed</option>
257   [% END %]
258   [% IF ( serialslis.status5 ) %]
259                     <option value="5" selected="selected">Not Available</option>
260   [% ELSE %]
261                     <option value="5">Not Available</option>
262   [% END %]
263   [% IF ( serialslis.status6 ) %]
264                     <option value="6" selected="selected">Delete</option>
265   [% ELSE %]
266                     <option value="6">Delete</option>
267   [% END %]
268             </select>
269
270         </td>
271         <td>
272             <input type="text" name="notes" value="[% serialslis.sernotes %]" size="20" maxlength="255" />
273         </td>
274     </tr>
275   [% UNLESS ( serialslis.subscriptionexpired ) %]
276   [% IF ( serialslis.serialsadditems ) %]
277           <tr>
278           <td colspan="5">
279       <a id="label[% serialslis.subscriptionid %][% serialslis.serialid %]" style="color: grey; font-size: 80%; cursor: pointer;"  onclick="unHideItems('items[% serialslis.subscriptionid %][% serialslis.serialid %]','label[% serialslis.subscriptionid %][% serialslis.serialid %]',  '[% serialslis.serialid %]');setStatus([% serialslis.serialid %]);">
280              Click to add item</a>
281         <fieldset class="rows" style="display:none;" id="items[% serialslis.subscriptionid %][% serialslis.serialid %]">
282         <legend><a style="cursor: pointer;"  onclick="HideItems('items[% serialslis.subscriptionid %][% serialslis.serialid %]','label[% serialslis.subscriptionid %][% serialslis.serialid %]')">
283                 Item</a>
284         </legend>
285           <div class="cataloguing_additem_itemlist">
286         [% FOREACH item IN serialslis.items %]
287         <div id="item[% item.serialid %][% item.countitems %]" class="items">
288         <ol>[% FOREACH iteminformatio IN item.iteminformation %]<li>
289                <div class="subfield_line" style="[% iteminformatio.hidden %];" id="subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
290                               
291                 <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
292                 [% iteminformatio.marc_value %]
293                 <input type="hidden" name="itemid" value="[% iteminformatio.itemid %]" />
294                 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
295                 <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
296                 <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
297                 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory %]" />
298                 [% IF ( iteminformatio.ITEM_SUBFIELDS_ARE_NOT_REPEATABLE ) %]
299                     <span class="buttonPlus" onclick="CloneSubfield('subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]')">+</span>
300                 [% END %]
301         
302             </div></li>
303         [% END %]</ol></div><!-- /iteminformation -->
304         
305         <input type="hidden" name="moditem" value="" /> 
306         <input type="hidden" name="tag" value="[% item.itemtagfield %]" />
307         <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" />
308         <input type="hidden" name="serial" value="[% item.serialid %]" />
309         <input type="hidden" name="bibnum" value="[% item.biblionumber %]" />
310         <input type="hidden" name="itemid" value="[% item.itemid %]" />
311         <input type="hidden" name="field_value" value="[% item.itemnumber %]" />
312         [% END %] <!-- /items -->
313         </div>
314         </fieldset>
315     </td>
316     </tr>
317   [% END %]
318   [% END %]
319 [% END %]
320 [% FOREACH newserialloo IN newserialloop %]
321     [% UNLESS ( newserialloo.subscriptionexpired ) %]
322     <tr>
323         <td>
324             <input type="hidden" name="serialid" value="NEW" />
325             <input type="hidden" name="biblionumber" value="[% newserialloo.biblionumber %]" />
326             <input type="hidden" name="itemcount" value="[% newserialloo.issuesatonce %]" />
327             <input type="hidden" name="user" value="[% newserialloo.librarian %]" />
328             Supplemental Issue <input type="text" name="serialseq" value="" size="20" maxlength="100" onchange="if (this.value!=''){unHideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]', '[% newserialloo.serialid %]')} else {HideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]')}" />
329         </td>
330         <td>
331             <input type="text" name="publisheddate" value="[% newserialloo.publisheddate %]" size="10" maxlength="15" />
332         </td>
333         <td>
334             <input type="text" name="planneddate" id="supexpecteddate" value="[% newserialloo.planneddate %]" size="10" maxlength="15" />
335         </td>
336         <td>
337             <select name="status" size="1" id="addstatus[% newserialloo.serialid %]" onchange="if (this.value==2 || this.value==7){changeDate2('[% newserialloo.arriveddate %]')} else {changeDate2('[% newserialloo.planneddate %]')}" >
338                     <option value="">----</option>
339   [% IF ( newserialloo.status1 ) %]
340                     <option value="1" selected="selected">Expected</option>
341   [% END %]
342   [% IF ( newserialloo.status2 ) %]
343                     <option value="2" selected="selected">Arrived</option>
344   [% ELSE %]
345                     <option value="2">Arrived</option>
346   [% END %]
347   [% IF ( newserialloo.status3 ) %]
348                     <option value="3" selected="selected">Late</option>
349   [% ELSE %]
350                     <option value="3">Late</option>
351   [% END %]
352   [% IF ( newserialloo.status4 ) %]
353                     <option value="4" selected="selected">Missing</option>
354   [% ELSE %]
355                     <option value="4">Missing</option>
356   [% END %]
357   [% IF ( newserialloo.status7 ) %]
358                     <option value="7" selected="selected">Claimed</option>
359   [% ELSE %]
360                     <option value="7">Claimed</option>
361   [% END %]
362   [% IF ( newserialloo.status5 ) %]
363                     <option value="5" selected="selected">Not Available</option>
364   [% ELSE %]
365                     <option value="5">Not Available</option>
366   [% END %]
367   [% IF ( newserialloo.status6 ) %]
368                     <option value="6" selected="selected">Delete</option>
369   [% ELSE %]
370                     <option value="6">Delete</option>
371   [% END %]
372             </select>
373
374         </td>
375         <td>
376             <input type="text" name="notes" value="" size="20" maxlength="255" />
377         </td>
378     </tr>
379   [% IF ( newserialloo.serialsadditems ) %]
380           <tr>
381           <td colspan="5">
382       <a id="label[% newserialloo.subscriptionid %][% newserialloo.serialid %]" style="color: grey; font-size: 80%; cursor: pointer;"  onclick="unHideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]', '[% newserialloo.serialid %]')">
383              Click to add item</a>
384         <fieldset  class="rows" style="display:none;" id="items[% newserialloo.subscriptionid %][% newserialloo.serialid %]">
385         <legend><a style="cursor: pointer;"  onclick="HideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]')">
386                 Item</a>
387         </legend>
388           <div class="cataloguing_additem_itemlist">
389         <div id="item[% newserialloo.serialid %][% newserialloo.countitems %]" class="items">
390         <ol>[% FOREACH iteminformatio IN newserialloo.iteminformation %]<li>
391                <div class="subfield_line" style="[% iteminformatio.hidden %];" id="subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
392    
393                 <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
394                 [% iteminformatio.marc_value %]
395                 <input type="hidden" name="itemid" value="[% iteminformatio.itemid %]" />
396                 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
397                 <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
398                 <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
399                 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory %]" />
400                 [% IF ( iteminformatio.ITEM_SUBFIELDS_ARE_NOT_REPEATABLE ) %]
401                     <span class="buttonPlus" onclick="CloneSubfield('subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]')">+</span>
402                 [% END %]
403         </div>
404        </li>[% END %]</ol>
405         
406         <input type="hidden" name="moditem" value="" /> 
407         <input type="hidden" name="tag" value="[% newserialloo.itemtagfield %]" />
408         <input type="hidden" name="subfield" value="[% newserialloo.itemtagsubfield %]" />
409         <input type="hidden" name="serial" value="[% newserialloo.serialid %]" />
410         <input type="hidden" name="bibnum" value="[% newserialloo.biblionumber %]" />
411         <input type="hidden" name="itemid" value="[% newserialloo.itemid %]" />
412         <input type="hidden" name="field_value" value="[% newserialloo.itemnumber %]" />
413         </div>
414         </div>
415         </fieldset>
416     </td>
417     </tr>
418   [% END %]
419   [% END %]
420 [% END %]
421
422 </table>
423     <fieldset class="action"><input type="submit" value="Save"  class="button" accesskey="w" />
424 </form>
425
426 </div>
427 </div>
428
429 <div class="yui-b">
430 [% INCLUDE 'serials-menu.inc' %]
431 <ul>
432     [% FOREACH subscription IN subscriptions %]
433     
434         <li><a href="serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]" title="serial collection for [% subscription.bibliotitle %]">Serial collection</a></li>
435         <li><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" title="detail of the subscription">Subscription #[% subscription.subscriptionid %]</a></li>
436         [% IF ( subscription.abouttoexpire ) %]<a href="#" onclick="javascript:popup([% subscription.subscriptionid %])">Renew [% subscription.subscriptionid %]</a>
437         [% END %]
438       [% END %]
439     <li><a href="/cgi-bin/koha/catalogue/[% default_bib_view %].pl?biblionumber=[% biblionumber %]" title="go to [% bibliotitle %]">Show Biblio</a></li></ul>
440 </div>
441 </div>
442 [% INCLUDE 'intranet-bottom.inc' %]