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