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