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