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