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