Merge remote-tracking branch 'kc/new/awaiting_qa/bug_6316' 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         [% IF location %] ( [% location %] ) [% END %]
182     [% IF ( callnumber ) %] callnumber: [% callnumber %][% END %]</h1>
183 <form method="post" name="f" action="serials-edit.pl" id="serials_edit">
184 <!--onsubmit="return barcode_check()">-->
185
186 [% IF ( Errors ) %]
187 <div class="dialog alert">
188 <ul>
189 [% IF ( barcode_not_unique ) %]<li>Error : Barcode Not Unique For [% FOREACH errse IN errseq %]serialseq [% errse.serialseq %]<br/>[% END %]</li>[% END %]
190 </ul>
191 </div>
192 [% END %]
193
194     <input type="hidden" name="op" value="serialchangestatus" />
195     [% FOREACH subscription IN subscriptions %]
196     <input type="hidden" name="subscriptionid" value="[% subscription.subscriptionid %]" />
197     [% END %]
198         <table>
199         <tr>
200                 <th>Numbered</th>
201                 <th>Published on</th>
202                 <th>Expected on</th>
203                 <th>Status</th>
204                 <th>Notes</th>
205         </tr>
206 [% FOREACH serialslis IN serialslist %]
207     [% UNLESS ( loop.odd ) %]
208     <tr class="highlight">
209     [% ELSE %]
210     <tr>
211     [% END %]
212         <td>
213             <input type="hidden" name="serialid" value="[% serialslis.serialid %]" />
214             <input type="hidden" name="biblionumber" value="[% serialslis.biblionumber %]" />
215             <input type="hidden" name="itemcount" value="[% serialslis.issuesatonce %]" />
216             <input type="hidden" name="user" value="[% serialslis.librarian %]" />
217             Issue <input type="text" name="serialseq" id="serialseq[% serialslis.serialid %]" value="[% serialslis.serialseq %]" size="20" maxlength="100" />
218         </td>
219         <td>
220             <input type="text" name="publisheddate" value="[% serialslis.publisheddate %]" size="10" maxlength="15" />
221         </td>
222         <td>
223             <input type="text" id="expecteddate" name="planneddate" value="[% serialslis.planneddate %]" size="10" maxlength="15" />
224         </td>
225         <td>
226             [% IF ( serialslis.editdisable ) %]
227               <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="1">
228               <select name="status" size="1"  disabled="disabled">
229             [% ELSE %]
230               [% IF ( serialslis.serialsadditems ) %]
231               <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 %]')}" >
232                [% ELSE %]
233               <select name="status" size="1" id="status[% serialslis.serialid %]" onchange="if (this.value==2 || this.value==7){changeDate('[% serialslis.arriveddate %]')} else {changeDate('[% serialslis.planneddate %]')}" >
234                [% END %] 
235             [% END %]
236   [% IF ( serialslis.status1 ) %]
237                     <option value="1" selected="selected">Expected</option>
238   [% END %]
239   [% IF ( serialslis.status2 ) %]
240                     <option value="2" selected="selected">Arrived</option>
241   [% ELSE %]
242                     <option value="2">Arrived</option>
243   [% END %]
244   [% IF ( serialslis.status3 ) %]
245                     <option value="3" selected="selected">Late</option>
246   [% ELSE %]
247                     <option value="3">Late</option>
248   [% END %]
249   [% IF ( serialslis.status4 ) %]
250                     <option value="4" selected="selected">Missing</option>
251   [% ELSE %]
252                     <option value="4">Missing</option>
253   [% END %]
254   [% IF ( serialslis.status7 ) %]
255                     <option value="7" selected="selected">Claimed</option>
256   [% ELSE %]
257                     <option value="7">Claimed</option>
258   [% END %]
259   [% IF ( serialslis.status5 ) %]
260                     <option value="5" selected="selected">Not Available</option>
261   [% ELSE %]
262                     <option value="5">Not Available</option>
263   [% END %]
264   [% IF ( serialslis.status6 ) %]
265                     <option value="6" selected="selected">Delete</option>
266   [% ELSE %]
267                     <option value="6">Delete</option>
268   [% END %]
269             </select>
270
271         </td>
272         <td>
273             <input type="text" name="notes" value="[% serialslis.sernotes %]" size="20" maxlength="255" />
274         </td>
275     </tr>
276   [% UNLESS ( serialslis.subscriptionexpired ) %]
277   [% IF ( serialslis.serialsadditems ) %]
278           <tr>
279           <td colspan="5">
280       <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 %]);">
281              Click to add item</a>
282         <fieldset class="rows" style="display:none;" id="items[% serialslis.subscriptionid %][% serialslis.serialid %]">
283         <legend><a style="cursor: pointer;"  onclick="HideItems('items[% serialslis.subscriptionid %][% serialslis.serialid %]','label[% serialslis.subscriptionid %][% serialslis.serialid %]')">
284                 Item</a>
285         </legend>
286           <div class="cataloguing_additem_itemlist">
287         [% FOREACH item IN serialslis.items %]
288         <div id="item[% item.serialid %][% item.countitems %]" class="items">
289         <ol>[% FOREACH iteminformatio IN item.iteminformation %]<li>
290                <div class="subfield_line" style="[% iteminformatio.hidden %];" id="subfield[% item.serialid %][% item.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
291                               
292                 <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
293                 [% iteminformatio.marc_value %]
294                 <input type="hidden" name="itemid" value="[% item.itemid %]" />
295                 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
296                 <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
297                 <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
298                 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory %]" />
299                 [% IF ( iteminformatio.ITEM_SUBFIELDS_ARE_NOT_REPEATABLE ) %]
300                     <span class="buttonPlus" onclick="CloneSubfield('subfield[% item.serialid %][% item.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]')">+</span>
301                 [% END %]
302         
303             </div></li>
304         [% END %]</ol></div><!-- /iteminformation -->
305         
306         <input type="hidden" name="moditem" value="" /> 
307         <input type="hidden" name="tag" value="[% item.itemtagfield %]" />
308         <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" />
309         <input type="hidden" name="serial" value="[% item.serialid %]" />
310         <input type="hidden" name="bibnum" value="[% item.biblionumber %]" />
311         <input type="hidden" name="itemid" value="[% item.itemid %]" />
312         <input type="hidden" name="field_value" value="[% item.itemnumber %]" />
313         [% END %] <!-- /items -->
314         </div>
315         </fieldset>
316     </td>
317     </tr>
318   [% END %]
319   [% END %]
320 [% END %]
321 [% FOREACH newserialloo IN newserialloop %]
322     [% UNLESS ( newserialloo.subscriptionexpired ) %]
323     <tr>
324         <td>
325             <input type="hidden" name="serialid" value="NEW" />
326             <input type="hidden" name="biblionumber" value="[% newserialloo.biblionumber %]" />
327             <input type="hidden" name="itemcount" value="[% newserialloo.issuesatonce %]" />
328             <input type="hidden" name="user" value="[% newserialloo.librarian %]" />
329             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 %]')}" />
330         </td>
331         <td>
332             <input type="text" name="publisheddate" value="[% newserialloo.publisheddate %]" size="10" maxlength="15" />
333         </td>
334         <td>
335             <input type="text" name="planneddate" id="supexpecteddate" value="[% newserialloo.planneddate %]" size="10" maxlength="15" />
336         </td>
337         <td>
338             <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 %]')}" >
339
340                     <option value="">----</option>
341   [% IF ( newserialloo.status1 ) %]
342                     <option value="1" selected="selected">Expected</option>
343   [% END %]
344   [% IF ( newserialloo.status2 ) %]
345                     <option value="2" selected="selected">Arrived</option>
346   [% ELSE %]
347                     <option value="2">Arrived</option>
348   [% END %]
349   [% IF ( newserialloo.status3 ) %]
350                     <option value="3" selected="selected">Late</option>
351   [% ELSE %]
352                     <option value="3">Late</option>
353   [% END %]
354   [% IF ( newserialloo.status4 ) %]
355                     <option value="4" selected="selected">Missing</option>
356   [% ELSE %]
357                     <option value="4">Missing</option>
358   [% END %]
359   [% IF ( newserialloo.status7 ) %]
360                     <option value="7" selected="selected">Claimed</option>
361   [% ELSE %]
362                     <option value="7">Claimed</option>
363   [% END %]
364   [% IF ( newserialloo.status5 ) %]
365                     <option value="5" selected="selected">Not Available</option>
366   [% ELSE %]
367                     <option value="5">Not Available</option>
368   [% END %]
369   [% IF ( newserialloo.status6 ) %]
370                     <option value="6" selected="selected">Delete</option>
371   [% ELSE %]
372                     <option value="6">Delete</option>
373   [% END %]
374             </select>
375
376         </td>
377         <td>
378             <input type="text" name="notes" value="" size="20" maxlength="255" />
379         </td>
380     </tr>
381   [% IF ( newserialloo.serialsadditems ) %]
382           <tr>
383           <td colspan="5">
384       <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 %]')">
385              Click to add item</a>
386         <fieldset  class="rows" style="display:none;" id="items[% newserialloo.subscriptionid %][% newserialloo.serialid %]">
387         <legend><a style="cursor: pointer;"  onclick="HideItems('items[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]')">
388                 Item</a>
389         </legend>
390           <div class="cataloguing_additem_itemlist">
391         <div id="item[% newserialloo.serialid %][% newserialloo.countitems %]" class="items">
392         <ol>[% FOREACH iteminformatio IN newserialloo.iteminformation %]<li>
393                <div class="subfield_line" style="[% iteminformatio.hidden %];" id="subfield[% newserialloo.serialid %][% newserialloo.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
394    
395                 <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
396                 [% iteminformatio.marc_value %]
397                 <input type="hidden" name="itemid" value="[% newserialloo.itemid %]" />
398                 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
399                 <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
400                 <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
401                 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory %]" />
402                 [% IF ( iteminformatio.ITEM_SUBFIELDS_ARE_NOT_REPEATABLE ) %]
403                     <span class="buttonPlus" onclick="CloneSubfield('subfield[% newserialloo.serialid %][% newserialloo.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]')">+</span>
404                 [% END %]
405         </div>
406        </li>[% END %]</ol>
407         
408         <input type="hidden" name="moditem" value="" /> 
409         <input type="hidden" name="tag" value="[% newserialloo.itemtagfield %]" />
410         <input type="hidden" name="subfield" value="[% newserialloo.itemtagsubfield %]" />
411         <input type="hidden" name="serial" value="[% newserialloo.serialid %]" />
412         <input type="hidden" name="bibnum" value="[% newserialloo.biblionumber %]" />
413         <input type="hidden" name="itemid" value="[% newserialloo.itemid %]" />
414         <input type="hidden" name="field_value" value="[% newserialloo.itemnumber %]" />
415         </div>
416         </div>
417         </fieldset>
418     </td>
419     </tr>
420   [% END %]
421   [% END %]
422 [% END %]
423
424 </table>
425     <fieldset class="action"><input type="submit" value="Save"  class="button" accesskey="w" />
426 </form>
427
428 </div>
429 </div>
430
431 <div class="yui-b">
432 [% INCLUDE 'serials-menu.inc' %]
433 <ul>
434     [% FOREACH subscription IN subscriptions %]
435     
436         <li><a href="serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]" title="serial collection for [% subscription.bibliotitle %]">Serial collection</a></li>
437         <li><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" title="detail of the subscription">Subscription #[% subscription.subscriptionid %]</a></li>
438         [% IF ( subscription.abouttoexpire ) %]<a href="#" onclick="javascript:popup([% subscription.subscriptionid %])">Renew [% subscription.subscriptionid %]</a>
439         [% END %]
440       [% END %]
441     <li><a href="/cgi-bin/koha/catalogue/[% default_bib_view %].pl?biblionumber=[% biblionumber %]" title="go to [% bibliotitle %]">Show Biblio</a></li></ul>
442 </div>
443 </div>
444 [% INCLUDE 'intranet-bottom.inc' %]