Merge remote-tracking branch 'kc/new/bug_6351' 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(elem, adate) {
65     $(elem).closest('tr').find('#expecteddate').val(adate);
66 }
67 function changeDate2(adate) {
68    var elem = document.getElementById("supexpecteddate");
69     elem.value = adate;
70 }
71 function CloneSubfield(index){
72     var original = document.getElementById(index); //original <div>
73     var clone = original.cloneNode(true);
74     var new_key = CreateKey();
75     var old_id =  original.getAttribute('id');
76     old_id=old_id.substr(12);
77     var new_id  = old_id+new_key;
78     
79     // set the attribute for the new 'div' subfields
80     var inputs     = clone.getElementsByTagName('input');
81     var selects    = clone.getElementsByTagName('select');
82     var textareas  = clone.getElementsByTagName('textarea');
83         
84     // input
85     var id_input = "";
86     for(var i=0,len=inputs.length; i<len ; i++ ){
87         id_input = inputs[i].getAttribute('id')+new_key;
88         inputs[i].setAttribute('id',id_input);
89         inputs[i].setAttribute('name',inputs[i].getAttribute('name'));
90     }
91     
92     // select 
93     for(var i=0,len=selects.length; i<len ; i++ ){
94         id_input = selects[i].getAttribute('id')+new_key;
95         selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
96         selects[i].setAttribute('name',selects[i].getAttribute('name'));
97     }
98     
99     // textarea
100     for(var i=0,len=textareas.length; i<len ; i++ ){
101         id_input = textareas[i].getAttribute('id')+new_key;
102         textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
103         textareas[i].setAttribute('name',textareas[i].getAttribute('name'));
104     }
105     
106     [% UNLESS ( advancedMARCEditor ) %]
107     // when cloning a subfield, reset its label too.
108     var label = clone.getElementsByTagName('label')[0];
109     label.setAttribute('for',id_input);
110     [% END %]
111     
112     // setting a new if for the parent div
113     clone.setAttribute('id',new_id);
114     
115     var CloneButtonPlus;
116     try {
117       var spans = clone.getElementsByTagName('span');
118       if(spans.length){
119           for(var i = 0 ,lenspans = spans.length ; i < lenspans ; i++){
120             if(spans[i].getAttribute('class') == 'buttonPlus'){
121                     CloneButtonPlus = spans[i];
122                     CloneButtonPlus.setAttribute('onclick',"CloneSubfield('" + new_id + "')");
123                     var buttonUp = clone.getElementsByTagName('img')[0];
124                     buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
125                 }
126             }
127         }
128     }
129     catch(e){
130         // do nothig if ButtonPlus & CloneButtonPlus don't exist.
131     }
132     // insert this line on the page
133     original.parentNode.insertBefore(clone,original.nextSibling);
134 }
135 $(document).ready(function() {
136         $("form#serials_edit").submit(function() {
137             var total_errors = 0;
138         $(".subfield_line:visible", this).each(function() {
139             if ($("*[name=field_value]", this).val().length == 0 &&
140                 $("*[name=mandatory]", this).val() == 1) {
141                 total_errors++;
142             }
143         });
144         if ( total_errors > 0 ) {
145             var mes  = _("Form not submitted because of the following problem(s)");
146             mes += "\n------------------------------------------------------------------------------------\n";
147             mes += "\n- "+ total_errors+_(" mandatory fields empty (see bold subfields)");
148             alert(mes);
149             return false;
150         }
151     });
152 });
153 //]]>
154 </script>
155 <style type="text/css">#serials_edit fieldset.rows label, #serials_edit fieldset.rows span.label {
156         font-size : 100%;
157         width : 25%;
158 }
159 #serials_edit fieldset.rows select { max-width : 15em; }
160 #serials_edit fieldset.rows li {
161         padding-bottom : 3px;
162 }
163 #serials_edit .input_marceditor {
164         width : auto;
165 }</style>
166 </head>
167 <body>
168 [% INCLUDE 'header.inc' %]
169 [% INCLUDE 'serials-search.inc' %]
170
171 <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>
172
173 <div id="doc3" class="yui-t2">
174    
175    <div id="bd">
176         <div id="yui-main">
177         <div class="yui-b">
178
179 <h1>Serial Edition <i>[% bibliotitle %]</i>
180         [% IF location %] ( [% location %] ) [% END %]
181     [% 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(this, '[% serialslis.arriveddate %]')} else if (this.value==7){changeDate(this, '[% serialslis.arriveddate %]')} else { HideItems('items'+[% serialslis.subscriptionid %]+[% serialslis.serialid %],'label[% serialslis.subscriptionid %][% serialslis.serialid %]'); changeDate(this, '[% serialslis.planneddate %]')}" >
231                [% ELSE %]
232               <select name="status" size="1" id="status[% serialslis.serialid %]" onchange="if (this.value==2 || this.value==7){changeDate(this, '[% serialslis.arriveddate %]')} else {changeDate(this, '[% 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[% item.serialid %][% item.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="[% item.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[% item.serialid %][% item.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" id="serialseq[% newserialloo.serialid %]" 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){unHideItems('items'+'[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]','[% newserialloo.serialid %]'); changeDate2('[% newserialloo.arriveddate %]')} else if (this.value==7){changeDate('[% newserialloo.arriveddate %]')} else { HideItems('items'+'[% newserialloo.subscriptionid %]'+[% newserialloo.serialid %],'label[% serialslis.subscriptionid %][% serialslis.serialid %]'); changeDate2('[% serialslis.planneddate %]')}" >
338
339                     <option value="">----</option>
340   [% IF ( newserialloo.status1 ) %]
341                     <option value="1" selected="selected">Expected</option>
342   [% END %]
343   [% IF ( newserialloo.status2 ) %]
344                     <option value="2" selected="selected">Arrived</option>
345   [% ELSE %]
346                     <option value="2">Arrived</option>
347   [% END %]
348   [% IF ( newserialloo.status3 ) %]
349                     <option value="3" selected="selected">Late</option>
350   [% ELSE %]
351                     <option value="3">Late</option>
352   [% END %]
353   [% IF ( newserialloo.status4 ) %]
354                     <option value="4" selected="selected">Missing</option>
355   [% ELSE %]
356                     <option value="4">Missing</option>
357   [% END %]
358   [% IF ( newserialloo.status7 ) %]
359                     <option value="7" selected="selected">Claimed</option>
360   [% ELSE %]
361                     <option value="7">Claimed</option>
362   [% END %]
363   [% IF ( newserialloo.status5 ) %]
364                     <option value="5" selected="selected">Not Available</option>
365   [% ELSE %]
366                     <option value="5">Not Available</option>
367   [% END %]
368   [% IF ( newserialloo.status6 ) %]
369                     <option value="6" selected="selected">Delete</option>
370   [% ELSE %]
371                     <option value="6">Delete</option>
372   [% END %]
373             </select>
374
375         </td>
376         <td>
377             <input type="text" name="notes" value="" size="20" maxlength="255" />
378         </td>
379     </tr>
380   [% IF ( newserialloo.serialsadditems ) %]
381           <tr>
382           <td colspan="5">
383       <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 %]')">
384              Click to add item</a>
385         <fieldset  class="rows" style="display:none;" id="items[% newserialloo.subscriptionid %][% newserialloo.serialid %]">
386         <legend><a style="cursor: pointer;"  onclick="HideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]')">
387                 Item</a>
388         </legend>
389           <div class="cataloguing_additem_itemlist">
390         <div id="item[% newserialloo.serialid %][% newserialloo.countitems %]" class="items">
391         <ol>[% FOREACH iteminformatio IN newserialloo.iteminformation %]<li>
392                <div class="subfield_line" style="[% iteminformatio.hidden %];" id="subfield[% newserialloo.serialid %][% newserialloo.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
393    
394                 <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
395                 [% iteminformatio.marc_value %]
396                 <input type="hidden" name="itemid" value="[% newserialloo.itemid %]" />
397                 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
398                 <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
399                 <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
400                 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory %]" />
401                 [% IF ( iteminformatio.ITEM_SUBFIELDS_ARE_NOT_REPEATABLE ) %]
402                     <span class="buttonPlus" onclick="CloneSubfield('subfield[% newserialloo.serialid %][% newserialloo.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]')">+</span>
403                 [% END %]
404         </div>
405        </li>[% END %]</ol>
406         
407         <input type="hidden" name="moditem" value="" /> 
408         <input type="hidden" name="tag" value="[% newserialloo.itemtagfield %]" />
409         <input type="hidden" name="subfield" value="[% newserialloo.itemtagsubfield %]" />
410         <input type="hidden" name="serial" value="[% newserialloo.serialid %]" />
411         <input type="hidden" name="bibnum" value="[% newserialloo.biblionumber %]" />
412         <input type="hidden" name="itemid" value="[% newserialloo.itemid %]" />
413         <input type="hidden" name="field_value" value="[% newserialloo.itemnumber %]" />
414         </div>
415         </div>
416         </fieldset>
417     </td>
418     </tr>
419   [% END %]
420   [% END %]
421 [% END %]
422
423 </table>
424     <fieldset class="action"><input type="submit" value="Save"  class="button" accesskey="w" />
425 </form>
426
427 </div>
428 </div>
429
430 <div class="yui-b">
431 [% INCLUDE 'serials-menu.inc' %]
432 <ul>
433     [% FOREACH subscription IN subscriptions %]
434     
435         <li><a href="serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]" title="serial collection for [% subscription.bibliotitle %]">Serial collection</a></li>
436         <li><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" title="detail of the subscription">Subscription #[% subscription.subscriptionid %]</a></li>
437         [% IF ( subscription.abouttoexpire ) %]<a href="#" onclick="javascript:popup([% subscription.subscriptionid %])">Renew [% subscription.subscriptionid %]</a>
438         [% END %]
439       [% END %]
440     <li><a href="/cgi-bin/koha/catalogue/[% default_bib_view %].pl?biblionumber=[% biblionumber %]" title="go to [% bibliotitle %]">Show Biblio</a></li></ul>
441 </div>
442 </div>
443 [% INCLUDE 'intranet-bottom.inc' %]