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