1 [% INCLUDE 'doc-head-open.inc' %]
2 <title>Koha › Cataloging › [% IF ( biblionumber ) %]Editing [% title |html %] (Record number [% biblionumber %])[% ELSE %]Add MARC record[% END %]</title>
3 [% INCLUDE 'doc-head-close.inc' %]
4 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.fixFloat.js"></script>
5 <script type="text/javascript" src="[% themelang %]/js/cataloging.js"></script>
6 <script type="text/javascript">
8 $(window).load(function(){
11 $(document).ready(function() {
12 $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
13 $("#"+ui.panel.id+" input:eq(0)").focus();
17 $('#addbibliotabs').tabs('option', 'selected', "#[% tab %]");
20 /* check cookie to hide/show marcdocs*/
21 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
23 $("#marcDocsSelect").removeAttr('checked');
25 /* reset cookie expire date */
26 $.cookie("marcdocs_[% borrowernumber %]",'true',
27 { path: "/", expires: 365 });
29 $('#toolbar').fixFloat();
30 $("#marcDocsSelect").click(function(){
31 if($(this).attr("checked")){
37 $("#z3950search").click(function(){
38 if (confirm(_("Please note that this Z39.50 search could replace the current record."))){
43 $("#saverecord").click(function(){
44 $(".btn-group").removeClass("open");
49 $("#saveandview").click(function(){
50 $(".btn-group").removeClass("open");
55 $("#saveanditems").click(function(){
56 $(".btn-group").removeClass("open");
60 $("#saveandcontinue").click(function(){
61 $(".btn-group").removeClass("open");
62 var tab = $("#addbibliotabs li.ui-tabs-selected:first a").attr('href');
63 tab = tab.replace('#', '');
64 $("#current_tab").val(tab);
65 redirect("just_save", tab);
71 function redirect(dest){
72 $("#redirect").attr("value",dest);
76 [% IF ( CAN_user_editcatalogue_edit_items ) %]
77 var onOption = function () {
82 function confirmnotdup(redirect){
83 $("#confirm_not_duplicate").attr("value","1");
84 $("#redirect").attr("value",redirect);
88 function Dopop(link,i) {
89 defaultvalue = document.getElementById(i).value;
90 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
94 * this function open a popup to search on z3950 server.
96 function PopupZ3950() {
97 var strQuery = GetZ3950Terms();
99 window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
103 function PopupMARCFieldDoc(field, blocknumber) {
104 [% IF ( marcflavour == 'MARC21' ) %]
105 _MARC21FieldDoc(field);
106 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
107 _UNIMARCFieldDoc(field, blocknumber);
111 function _MARC21FieldDoc(field) {
113 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
114 } else if (field < 900) {
115 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
117 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
121 function _UNIMARCFieldDoc(field, blocknumber) {
122 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
123 seems to be the only version available that can be linked to per tag. More recent
124 versions of the UNIMARC standard are available on the IFLA website only as
128 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
129 } else if (field < 100) {
130 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
131 } else if (field < 900) {
132 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
134 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
139 * Functions to hide/show marc docs links
141 function hideMARCdocLinks() {
142 $(".marcdocs").hide();
143 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
146 function showMARCdocLinks() {
147 $(".marcdocs").show();
148 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
152 * check if mandatory subfields are written
154 function AreMandatoriesNotOk(){
155 var mandatories = new Array();
156 var mandatoriesfields = new Array();
157 var tab = new Array();
158 var label = new Array();
160 var tabflag= new Array();
161 [% FOREACH BIG_LOO IN BIG_LOOP %]
162 [% FOREACH innerloo IN BIG_LOO.innerloop %]
163 [% IF ( innerloo.mandatory ) %]
164 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
166 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
167 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
168 tab.push("[% BIG_LOO.number %]");
169 label.push("[% subfield_loo.marc_lib %]");
174 var StrAlert = _("Can't save this record because the following field aren't filled:");
176 for(var i=0,len=mandatories.length; i<len ; i++){
177 var tag=mandatories[i].substr(4,3);
178 var subfield=mandatories[i].substr(17,1);
179 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
180 if (tabflag[tag+subfield+tagnumber] == null) {
181 tabflag[tag+subfield+tagnumber]=new Array();
182 tabflag[tag+subfield+tagnumber][0]=0;
184 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
185 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
186 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
187 $('#' + mandatories[i]).focus();
188 tabflag[tag+subfield+tagnumber][1]=label[i];
189 tabflag[tag+subfield+tagnumber][2]=tab[i];
191 tabflag[tag+subfield+tagnumber][0] = 1;
194 for (var tagsubfieldid in tabflag){
195 if (tabflag[tagsubfieldid][0]==0){
196 var tag=tagsubfieldid.substr(0,3);
197 var subfield=tagsubfieldid.substr(3,1);
198 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
199 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
204 /* Check for mandatories field(not subfields) */
205 for(var i=0,len=mandatoriesfields.length; i<len; i++){
207 arr = mandatoriesfields[i];
208 divid = "tag_" + arr[0] + "_" + arr[1];
209 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
211 if(parseInt(arr[0]) >= 10){
212 elem = document.getElementById(divid);
213 eleminputs = elem.getElementsByTagName('input');
215 for(var j=0,len2=eleminputs.length; j<len2; j++){
217 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
218 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
220 for( var k=0; k<len2; k++){
221 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
226 elemselect = elem.getElementsByTagName('select');
227 for( var k=0; k<elemselect.length; k++){
228 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
235 elemtextareas = elem.getElementsByTagName('textarea');
236 for(var j=0,len2=elemtextareas.length; j<len2; j++){
237 // this bit assumes that the only textareas in this context would be for subfields
238 if (elemtextareas[j].value) {
248 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
265 var StrAlert = AreMandatoriesNotOk();
276 * check if z3950 mandatories are set or not
278 function GetZ3950Terms(){
279 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
280 var mandatories = new Array();
281 var mandatories_label = new Array();
282 [% FOREACH BIG_LOO IN BIG_LOOP %][% FOREACH innerloo IN BIG_LOO.innerloop %][% FOREACH subfield_loo IN innerloo.subfield_loop %][% IF ( subfield_loo.z3950_mandatory ) %]mandatories.push("[% subfield_loo.id %]");
283 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
285 for(var i=0,len=mandatories.length; i<len ; i++){
286 var field_value = document.getElementById(mandatories[i]).value;
288 strQuery += "&"+mandatories_label[i]+"="+field_value;
294 function Changefwk(FwkList) {
296 f.op.value = "[% op %]";
297 f.biblionumber.value = "[% biblionumberdata %]";
298 f.changed_framework.value = "changed";
304 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
306 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/right-to-left.css" />
309 <body id="cat_addbiblio" class="cat">
312 <div>Loading, please wait...</div>
315 [% INCLUDE 'header.inc' %]
317 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])[% ELSE %]Add MARC record[% END %]</div>
319 <div id="doc" class="yui-t7">
326 [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])
327 [% ELSE %]Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
331 [% IF marcflavour != 'NORMARC' %]
332 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
335 [% UNLESS ( number ) %]
336 <!-- show duplicate warning on tab 0 only -->
337 [% IF ( duplicatebiblionumber ) %]
338 <div class="dialog alert">
339 <h4>Duplicate record suspected</h4>
340 <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]" onclick="openWindow('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]&popup=1', 'Duplicate biblio','800','600'); return false;">[% duplicatetitle %]</a>?</p>
341 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
342 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
343 <input type="submit" class="edit" value="Yes: Edit existing items" />
344 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
345 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
346 <input type="submit" value="Yes: View existing items" />
348 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
349 [% IF ( CAN_user_editcatalogue_edit_items ) %]<input type="button" class="save" onclick="confirmnotdup('items'); return false;" value="No: Save as new record" />[% ELSE %]<input type="button" class="save" onclick="confirmnotdup('view'); return false;" value="No: Save as new record" />[% END %]
356 <script type="text/javascript">
357 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
358 opener.document.forms['f'].title.value='[% title |html %]';
362 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
363 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
364 <input type="hidden" value="" id="current_tab" name="current_tab" />
365 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
368 <div id="toolbar" class="btn-toolbar">
369 [% IF ( CAN_user_editcatalogue_edit_items ) %]
370 [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
371 <!-- Action is under fast cataloging - Save button redirecting to items -->
372 <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
374 <!-- Not using fast cataloging - Display split menu -->
375 <div class="btn-group">
376 <button class="btn btn-small" id="saverecord"><i class="icon-hdd"></i> Save</button>
377 <button class="btn btn-small dropdown-toggle" data-toggle="dropdown">
378 <span class="caret"></span>
380 <ul class="dropdown-menu">
381 <li><a id="saveandview" href="#">Save and view record</a></li>
382 <li><a id="saveanditems" href="#">Save and edit items</a></li>
383 <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
388 <!-- User cannot edit items - single button redirecting to view -->
389 <div class="btn-group"><a href="#" id="saveandview" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
392 [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
393 <div class="btn-group"><a class="btn btn-small" href="#" id="z3950search"><i class="icon-search"></i> Z39.50 search</a></div>
394 [% IF (biblionumber) %]
395 [% IF ( BiblioDefaultViewmarc ) %]
396 <div class="btn-group">
397 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
399 [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
400 <div class="btn-group">
401 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
403 [% ELSIF ( BiblioDefaultViewisbd ) %]
404 <div class="btn-group">
405 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
408 <div class="btn-group">
409 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
413 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
416 <div class="btn-group">
417 <label for="Frameworks">Change framework: </label>
418 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
419 <option value="Default">Default</option>
420 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
421 [% IF ( frameworkcodeloo.selected ) %]
422 <option value="[% frameworkcodeloo.value %]" selected="selected">
424 <option value="[% frameworkcodeloo.value %]">
426 [% frameworkcodeloo.frameworktext %]
434 <input type="hidden" name="mode" value="popup" />
436 <input type="hidden" name="op" value="addbiblio" />
437 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
438 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
439 <input type="hidden" name="breedingid" value="[% breedingid %]" />
440 <input type="hidden" name="changed_framework" value="" />
442 <div id="addbibliotabs" class="toptabs numbered">
444 [% FOREACH BIG_LOO IN BIG_LOOP %]
445 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
449 [% FOREACH BIG_LOO IN BIG_LOOP %]
450 <div id="tab[% BIG_LOO.number %]XX">
452 [% FOREACH innerloo IN BIG_LOO.innerloop %]
453 [% IF ( innerloo.tag ) %]
454 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
455 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
456 [% UNLESS hide_marc %]
457 [% IF advancedMARCEditor %]
458 <a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;">[% innerloo.tag %]</a>
460 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
461 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
464 [% IF ( innerloo.fixedfield ) %]
467 class="indicator flat"
468 style="display:none;"
469 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
472 value="[% innerloo.indicator1 %]" />
475 class="indicator flat"
476 style="display:none;"
477 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
480 value="[% innerloo.indicator2 %]" />
484 class="indicator flat"
485 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
488 value="[% innerloo.indicator1 %]" />
491 class="indicator flat"
492 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
495 value="[% innerloo.indicator2 %]" />
498 [% IF ( innerloo.fixedfield ) %]
501 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
502 value="[% innerloo.indicator1 %]" />
505 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
506 value="[% innerloo.indicator2 %]" />
510 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
511 value="[% innerloo.indicator1 %]" />
514 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
515 value="[% innerloo.indicator2 %]" />
519 [% UNLESS advancedMARCEditor %]
520 <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Click to Expand this Tag">[% innerloo.tag_lib %]</a>
522 <span class="field_controls">
523 [% IF ( innerloo.repeatable ) %]
524 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
525 <img src="[% interface %]/[% theme %]/img/repeat-tag.png" alt="Repeat this Tag" />
528 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
529 <img src="[% interface %]/[% theme %]/img/delete-tag.png" alt="Delete this Tag" />
535 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
536 <!-- One line on the marc editor -->
537 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
539 [% UNLESS advancedMARCEditor %]
540 [% IF ( subfield_loo.fixedfield ) %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" style="display:none;" class="labelsubfield">
541 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
545 [% UNLESS hide_marc %]
546 <span class="subfieldcode">
547 [% IF ( subfield_loo.fixedfield ) %]
548 <img class="buttonUp" style="display:none;" src="[% interface %]/[% theme %]/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
550 <img class="buttonUp" src="[% interface %]/[% theme %]/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
553 title="[% subfield_loo.marc_lib_plain %]"
554 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
555 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
556 value="[% subfield_loo.subfield %]"
564 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
565 value="[% subfield_loo.subfield %]" />
568 [% UNLESS advancedMARCEditor %]
569 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
570 [% subfield_loo.marc_lib_plain %]
571 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
576 [% subfield_loo.marc_value %]
578 <span class="subfield_controls">
579 [% IF ( subfield_loo.repeatable ) %]
580 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
581 <img src="[% interface %]/[% theme %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
583 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
584 <img src="[% interface %]/[% theme %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
590 <!-- End of the line -->
594 [% END %]<!-- if innerloo.tag -->
595 [% END %]<!-- BIG_LOO.innerloop -->
597 [% END %]<!-- BIG_LOOP -->
601 [%# Fields for fast cataloging %]
602 <input type="hidden" name="barcode" value="[% barcode %]" />
603 <input type="hidden" name="branch" value="[% branch %]" />
604 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
605 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
606 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
607 [%# End of fields for fast cataloging %]
615 [% INCLUDE 'intranet-bottom.inc' %]