3 [% USE AuthorisedValues %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>Koha › Serials › Serial edition [% bibliotitle | html %]</title>
6 [% INCLUDE 'doc-head-close.inc' %]
7 [% Asset.js("js/cataloging.js") | $raw %]
8 [% Asset.js("js/prevent_submit.js") | $raw %]
9 [% INCLUDE 'calendar.inc' %]
12 $(document).ready(function() {
13 $('#multi_receiving').on('show', function () {
14 $(this).find(".modal-body").html($(".serials_multi_receiving")[0].outerHTML);
18 function popup(subscriptionid) {
19 window.open("subscription-renew.pl?subscriptionid="+subscriptionid,"subscription_renewal",'width=700,height=400,toolbar=false,scrollbars=yes');
22 function unHideItems(index,labelindex, serialId) {
23 subfield = document.getElementById(index);
24 subfield.style.display = 'block';
25 label = document.getElementById(labelindex);
26 label.style.display='none';
28 // Prefilling enumcron subfield with serial enumeration/issue number
30 item_div = $("fieldset#" + index + " div.cataloguing_additem_itemlist div.items");
31 // Getting subfield with enumcron mapping
32 subfield_div = $(item_div).find("input[name='kohafield'][value='items.enumchron']").parent();
33 // Setting text field if no saved default value
34 if(! $(subfield_div).children("input[type='text'][name='field_value']").val() ){
35 $(subfield_div).children("input[type='text'][name='field_value']").val($("#serialseq" + serialId).val());
38 function HideItems(index,labelindex) {
39 subfield = document.getElementById(index);
40 subfield.style.display = 'none';
41 label = document.getElementById(labelindex);
42 label.style.display='block';
44 function setStatus(serialid){
45 $("#status"+serialid).val("2").attr("selected","selected");
47 function changeDate(elem, adate) {
48 $(elem).closest('tr').find('[name=planneddate]').val(adate);
51 $(document).ready(function() {
52 $("form#serials_edit").submit(function() {
54 $(this).find(".cataloguing_additem_itemlist:visible").each(function(){
55 total_errors = total_errors + CheckMandatorySubfields(this);
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);
67 $(".datepicker").datepicker();
71 <style>#serials_edit fieldset.rows label, #serials_edit fieldset.rows span.label {
75 #serials_edit fieldset.rows select { max-width : 15em; }
76 #serials_edit fieldset.rows li {
79 #serials_edit .input_marceditor {
83 <body id="ser_serials-edit" class="ser">
84 [% INCLUDE 'header.inc' %]
85 [% INCLUDE 'serials-search.inc' %]
87 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> › Serial edition <i>[% bibliotitle | html %] [% IF ( callnumber ) %]([% callnumber | html %])[% END %]</i></div>
89 <div class="main container-fluid">
91 <div class="col-sm-10 col-sm-push-2">
94 [% INCLUDE 'modals/serials_multi_receiving.inc' %]
96 <h1>Serial edition <i>[% bibliotitle | html %]</i>
97 [% IF location %] ([% AuthorisedValues.GetByCode('LOC', location) | html %])[% END %]
98 [% IF ( callnumber ) %] callnumber: [% callnumber | html %][% END %]</h1>
99 [% IF internalnotes %]<p>Nonpublic note: [% internalnotes | html %]</p>[% END %]
100 <form method="post" name="f" action="serials-edit.pl" id="serials_edit">
103 <div class="dialog alert">
105 [% IF ( barcode_not_unique ) %]<li>Error: Barcode not unique for [% FOREACH errse IN errseq %]serialseq [% errse.serialseq | html %]<br/>[% END %]</li>[% END %]
110 <input type="hidden" name="op" value="serialchangestatus" />
111 [% FOREACH subscription IN subscriptions %]
112 <input type="hidden" name="subscriptionid" value="[% subscription.subscriptionid | html %]" />
117 <th>Published on</th>
118 <th>Published on (text)</th>
123 [% FOREACH serialslis IN serialslist %]
126 <input type="hidden" name="serialid" value="[% serialslis.serialid | html %]" />
127 <input type="hidden" name="biblionumber" value="[% serialslis.biblionumber | html %]" />
128 <input type="hidden" name="itemcount" value="[% serialslis.issuesatonce | html %]" />
129 <input type="hidden" name="user" value="[% serialslis.librarian | html %]" />
130 Issue <input type="text" name="serialseq" id="serialseq[% serialslis.serialid | html %]" value="[% serialslis.serialseq | html %]" size="20" maxlength="100" />
133 <input type="text" name="publisheddate" value="[% serialslis.publisheddate | html %]" size="10" maxlength="15" class="datepicker" />
136 <input type="text" name="publisheddatetext" value="[% serialslis.publisheddatetext | html %]" size="10" maxlength="100" />
139 <input type="text" name="planneddate" value="[% serialslis.planneddate | html %]" size="10" maxlength="15" class="datepicker" />
142 [% IF ( serialslis.editdisable ) %]
143 <input type="hidden" name="status" id="status[% serialslis.serialid | html %]" value="[% serialslis.serstatus | html %]">
144 <select name="status" size="1" disabled="disabled">
146 [% IF ( serialslis.serialsadditems ) %]
147 <select name="status" size="1" id="status[% serialslis.serialid | html %]" onchange="if (this.value==2){unHideItems('items'+[% serialslis.subscriptionid | html %][% serialslis.serialid | html %],'label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]','[% serialslis.serialid | html %]'); changeDate(this, '[% serialslis.arriveddate | html %]')} else if (this.value==7){changeDate(this, '[% serialslis.arriveddate | html %]')} else { HideItems('items'+[% serialslis.subscriptionid | html %]+[% serialslis.serialid | html %],'label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]'); changeDate(this, '[% serialslis.planneddate | html %]')}" >
149 <select name="status" size="1" id="status[% serialslis.serialid | html %]" onchange="if (this.value==2 || this.value==7){changeDate(this, '[% serialslis.arriveddate | html %]')} else {changeDate(this, '[% serialslis.planneddate | html %]')}" >
152 [% IF ( serialslis.status1 ) %]
153 <option value="1" selected="selected">Expected</option>
155 <option value="1">Expected</option>
157 [% IF ( serialslis.status2 ) %]
158 <option value="2" selected="selected">Arrived</option>
160 <option value="2">Arrived</option>
162 [% IF ( serialslis.status3 ) %]
163 <option value="3" selected="selected">Late</option>
165 <option value="3">Late</option>
167 [% IF ( serialslis.status4 ) %]
168 <option value="4" selected="selected">Missing</option>
170 <option value="4">Missing</option>
172 [% IF ( serialslis.status41 ) %]
173 <option value="41" selected="selected">Missing (never received)</option>
175 <option value="41">Missing (never received)</option>
177 [% IF ( serialslis.status42 ) %]
178 <option value="42" selected="selected">Missing (sold out)</option>
180 <option value="42">Missing (sold out)</option>
182 [% IF ( serialslis.status43 ) %]
183 <option value="43" selected="selected">Missing (damaged)</option>
185 <option value="43">Missing (damaged)</option>
187 [% IF ( serialslis.status44 ) %]
188 <option value="44" selected="selected">Missing (lost)</option>
190 <option value="44">Missing (lost)</option>
192 [% IF ( serialslis.status7 ) %]
193 <option value="7" selected="selected">Claimed</option>
195 <option value="7">Claimed</option>
197 [% IF ( serialslis.status5 ) %]
198 <option value="5" selected="selected">Not available</option>
200 <option value="5">Not available</option>
202 [% IF ( serialslis.status6 ) %]
203 <option value="6" selected="selected">Delete</option>
205 <option value="6">Delete</option>
207 [% IF serialslis.status8 %]
208 <option value="8" selected="selected">Stopped</option>
214 <input type="text" name="notes" value="[% serialslis.sernotes | html %]" size="20" maxlength="255" />
217 [% UNLESS ( serialslis.subscriptionexpired ) %]
218 [% IF ( serialslis.serialsadditems ) %]
221 <a id="label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]" style="color: grey; font-size: 80%; cursor: pointer;" onclick="unHideItems('items[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]','label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]', '[% serialslis.serialid | html %]');setStatus([% serialslis.serialid | html %]);">
222 Click to add item</a>
223 <fieldset class="rows" style="display:none;" id="items[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]">
224 <legend><a style="cursor: pointer;" onclick="HideItems('items[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]','label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]')">
227 <div class="cataloguing_additem_itemlist">
228 [% FOREACH item IN serialslis.items %]
229 <div id="item[% item.serialid | html %][% item.countitems | html %]" class="items">
230 <ol>[% FOREACH iteminformatio IN item.iteminformation %]<li>
231 <div class="subfield_line" style="[% iteminformatio.hidden | html %]" id="subfield[% item.serialid | html %][% item.countitems | html %][% iteminformatio.subfield | html %][% iteminformatio.random | html %]">
232 [% IF (iteminformatio.mandatory) %]
233 <label class="required">[% iteminformatio.subfield | html %] - [% iteminformatio.marc_lib | $raw %]</label>
235 <label>[% iteminformatio.subfield | html %] - [% iteminformatio.marc_lib | $raw %]</label>
237 [% IF ( iteminformatio.marc_value.type == 'select' ) %]
238 <select name="field_value" size="1">
239 [% FOREACH value IN iteminformatio.marc_value.values %]
240 [% IF ( value == iteminformatio.marc_value.default ) %]
241 <option value="[% value | html %]" selected="selected">[% iteminformatio.marc_value.labels.$value | html %]</option>
243 <option value="[% value | html %]">[% iteminformatio.marc_value.labels.$value | html %]</option>
248 [% iteminformatio.marc_value | $raw %]
250 <input type="hidden" name="itemid" value="[% item.itemid | html %]" />
251 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield | html %]" />
252 <input type="hidden" name="tag" value="[% iteminformatio.tag | html %]" />
253 <input type="hidden" name="subfield" value="[% iteminformatio.subfield | html %]" />
254 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory | html %]" />
255 [% IF ( iteminformatio.repeatable ) %]
256 <a href="#" class="buttonPlus" onclick="CloneItemSubfield(this.parentNode); return false;">
257 <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
260 [% IF ( iteminformatio.mandatory ) %] <span class="required">Required</span>[% END %]
262 [% END %]</ol></div><!-- /iteminformation -->
264 <input type="hidden" name="moditem" value="" />
265 <input type="hidden" name="tag" value="[% item.itemtagfield | html %]" />
266 <input type="hidden" name="subfield" value="[% item.itemtagsubfield | html %]" />
267 <input type="hidden" name="serial" value="[% item.serialid | html %]" />
268 <input type="hidden" name="bibnum" value="[% item.biblionumber | html %]" />
269 <input type="hidden" name="itemid" value="[% item.itemid | html %]" />
270 <input type="hidden" name="field_value" value="[% item.itemnumber | html %]" />
271 [% END %] <!-- /items -->
279 [% FOREACH newserialloo IN newserialloop %]
280 [% UNLESS ( newserialloo.subscriptionexpired ) %]
283 <input type="hidden" name="serialid" value="NEW" />
284 <input type="hidden" name="biblionumber" value="[% newserialloo.biblionumber | html %]" />
285 <input type="hidden" name="itemcount" value="[% newserialloo.issuesatonce | html %]" />
286 <input type="hidden" name="user" value="[% newserialloo.librarian | html %]" />
287 Supplemental issue <input type="text" name="serialseq" id="serialseq[% newserialloo.serialid | html %]" value="" size="20" maxlength="100" onchange="if (this.value!=''){unHideItems('items[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]', '[% newserialloo.serialid | html %]')} else {HideItems('items[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]')}" />
290 <input type="text" name="publisheddate" value="[% newserialloo.publisheddate | html %]" size="10" maxlength="15" class="datepicker" />
293 <input type="text" name="publisheddatetext" value="[% newserialloo.publisheddatetext | html %]" size="10" maxlength="100" />
296 <input type="text" name="planneddate" value="[% newserialloo.planneddate | html %]" size="10" maxlength="15" class="datepicker" />
299 <select name="status" size="1" id="addstatus[% newserialloo.serialid | html %]" onchange="if (this.value==2){unHideItems('items'+'[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','[% newserialloo.serialid | html %]'); changeDate(this, '[% newserialloo.arriveddate | html %]')} else if (this.value==7){changeDate(this, '[% newserialloo.arriveddate | html %]')} else { HideItems('items'+'[% newserialloo.subscriptionid | html %]'+[% newserialloo.serialid | html %],'label[% serialslis.subscriptionid | html %][% serialslis.serialid | html %]'); changeDate(this, '[% serialslis.planneddate | html %]')}" >
301 <option value="">----</option>
302 [% IF ( newserialloo.status1 ) %]
303 <option value="1" selected="selected">Expected</option>
305 [% IF ( newserialloo.status2 ) %]
306 <option value="2" selected="selected">Arrived</option>
308 <option value="2">Arrived</option>
310 [% IF ( newserialloo.status3 ) %]
311 <option value="3" selected="selected">Late</option>
313 <option value="3">Late</option>
315 [% IF ( newserialloo.status4 ) %]
316 <option value="4" selected="selected">Missing</option>
318 <option value="4">Missing</option>
320 [% IF ( newserialloo.status41 ) %]
321 <option value="41" selected="selected">Missing (never received)</option>
323 <option value="41">Missing (never received)</option>
325 [% IF ( newserialloo.status42 ) %]
326 <option value="42" selected="selected">Missing (sold out)</option>
328 <option value="42">Missing (sold out)</option>
330 [% IF ( newserialloo.status43 ) %]
331 <option value="43" selected="selected">Missing (damaged)</option>
333 <option value="43">Missing (damaged)</option>
335 [% IF ( newserialloo.status44 ) %]
336 <option value="44" selected="selected">Missing (lost)</option>
338 <option value="44">Missing (lost)</option>
340 [% IF ( newserialloo.status7 ) %]
341 <option value="7" selected="selected">Claimed</option>
343 <option value="7">Claimed</option>
345 [% IF ( newserialloo.status5 ) %]
346 <option value="5" selected="selected">Not available</option>
348 <option value="5">Not available</option>
350 [% IF ( newserialloo.status6 ) %]
351 <option value="6" selected="selected">Delete</option>
353 <option value="6">Delete</option>
355 [% IF newserialloo.status8 %]
356 <option value="8" selected="selected">Stopped</option>
362 <input type="text" name="notes" value="" size="20" maxlength="255" />
365 [% IF ( newserialloo.serialsadditems ) %]
368 <a id="label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]" style="color: grey; font-size: 80%; cursor: pointer;" onclick="unHideItems('items[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]', '[% newserialloo.serialid | html %]')">
369 Click to add item</a>
370 <fieldset class="rows" style="display:none;" id="items[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]">
371 <legend><a style="cursor: pointer;" onclick="HideItems('items[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]','label[% newserialloo.subscriptionid | html %][% newserialloo.serialid | html %]')">
374 <div class="cataloguing_additem_itemlist">
375 <div id="item[% newserialloo.serialid | html %][% newserialloo.countitems | html %]" class="items">
376 <ol>[% FOREACH iteminformatio IN newserialloo.iteminformation %]<li>
377 <div class="subfield_line" style="[% iteminformatio.hidden | html %]" id="subfield[% newserialloo.serialid | html %][% newserialloo.countitems | html %][% iteminformatio.subfield | html %][% iteminformatio.random | html %]">
378 [% IF (iteminformatio.mandatory) %]
379 <label class="required">[% iteminformatio.subfield | html %] - [% iteminformatio.marc_lib | $raw %]</label>
381 <label>[% iteminformatio.subfield | html %] - [% iteminformatio.marc_lib | $raw %]</label>
383 [% IF ( iteminformatio.marc_value.type == 'select' ) %]
384 <select name="field_value" size="1">
385 [% FOREACH value IN iteminformatio.marc_value.values %]
386 [% IF ( value == iteminformatio.marc_value.default ) %]
387 <option value="[% value | html %]" selected="selected">[% iteminformatio.marc_value.labels.$value | html %]</option>
389 <option value="[% value | html %]">[% iteminformatio.marc_value.labels.$value | html %]</option>
394 [% iteminformatio.marc_value | $raw %]
396 <input type="hidden" name="itemid" value="[% newserialloo.itemid | html %]" />
397 <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield | html %]" />
398 <input type="hidden" name="tag" value="[% iteminformatio.tag | html %]" />
399 <input type="hidden" name="subfield" value="[% iteminformatio.subfield | html %]" />
400 <input type="hidden" name="mandatory" value="[% iteminformatio.mandatory | html %]" />
401 [% IF ( iteminformatio.repeatable ) %]
402 <a href="#" class="buttonPlus" onclick="CloneItemSubfield(this.parentNode); return false;">
403 <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
406 [% IF ( iteminformatio.mandatory ) %] <span class="required">Required</span>[% END %]
410 <input type="hidden" name="moditem" value="" />
411 <input type="hidden" name="tag" value="[% newserialloo.itemtagfield | html %]" />
412 <input type="hidden" name="subfield" value="[% newserialloo.itemtagsubfield | html %]" />
413 <input type="hidden" name="serial" value="[% newserialloo.serialid | html %]" />
414 <input type="hidden" name="bibnum" value="[% newserialloo.biblionumber | html %]" />
415 <input type="hidden" name="itemid" value="[% newserialloo.itemid | html %]" />
416 <input type="hidden" name="field_value" value="[% newserialloo.itemnumber | html %]" />
427 <fieldset class="action">
428 <div class="btn-group"><input type="submit" value="Save" class="btn btn-default btn-sm" accesskey="w" /></div>
429 [% UNLESS ( serialsadditems ) %]
430 <div class="btn-group"><a href="#multi_receiving" role="button" class="btn btn-default btn-sm" data-toggle="modal"><i class="fa fa-plus"></i> Multi receiving</a></div>
437 </div> <!-- /.col-sm-10.col-sm-push-2 -->
439 <div class="col-sm-2 col-sm-pull-10">
441 [% INCLUDE 'serials-menu.inc' %]
443 [% FOREACH subscription IN subscriptions %]
444 <li><a href="serials-collection.pl?subscriptionid=[% subscription.subscriptionid | uri %]" title="serial collection for [% subscription.bibliotitle | uri %]">Serial collection #[% subscription.subscriptionid | html %]</a></li>
445 <li><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid | uri %]" title="detail of the subscription">Subscription #[% subscription.subscriptionid | html %]</a></li>
446 [% IF ( subscription.abouttoexpire ) %]
447 [% UNLESS subscription.closed %]
448 <li><a href="#" onclick="javascript:popup([% subscription.subscriptionid | html %])">Renew #[% subscription.subscriptionid | html %]</a></li>
452 <li><a href="/cgi-bin/koha/catalogue/[% default_bib_view | uri %].pl?biblionumber=[% biblionumber | uri %]" title="go to [% bibliotitle | html %]">Show biblio</a></li></ul>
454 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
455 </div> <!-- /.row -->
457 [% INCLUDE 'intranet-bottom.inc' %]