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();
16 /* check cookie to hide/show marcdocs*/
17 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
19 $("#marcDocsSelect").removeAttr('checked');
21 /* reset cookie expire date */
22 $.cookie("marcdocs_[% borrowernumber %]",'true',
23 { path: "/", expires: 365 });
25 $('#toolbar').fixFloat();
26 $("#marcDocsSelect").click(function(){
27 if($(this).attr("checked")){
33 $("#z3950search").click(function(){
34 if (confirm(_("Please note that this Z39.50 search could replace the current record."))){
39 $("#saverecord").click(function(){
40 $(".btn-group").removeClass("open");
45 $("#saveandview").click(function(){
46 $(".btn-group").removeClass("open");
51 $("#saveanditems").click(function(){
52 $(".btn-group").removeClass("open");
56 $("#saveandcontinue").click(function(){
57 $(".btn-group").removeClass("open");
58 redirect("just_save");
64 function redirect(dest){
65 $("#redirect").attr("value",dest);
69 [% IF ( CAN_user_editcatalogue_edit_items ) %]
70 var onOption = function () {
75 function confirmnotdup(redirect){
76 $("#confirm_not_duplicate").attr("value","1");
77 $("#redirect").attr("value",redirect);
81 function Dopop(link,i) {
82 defaultvalue = document.getElementById(i).value;
83 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
87 * this function open a popup to search on z3950 server.
89 function PopupZ3950() {
90 var strQuery = GetZ3950Terms();
92 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');
96 function PopupMARCFieldDoc(field, blocknumber) {
97 [% IF ( marcflavour == 'MARC21' ) %]
98 _MARC21FieldDoc(field);
99 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
100 _UNIMARCFieldDoc(field, blocknumber);
104 function _MARC21FieldDoc(field) {
106 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
107 } else if (field < 900) {
108 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
110 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
114 function _UNIMARCFieldDoc(field, blocknumber) {
115 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
116 seems to be the only version available that can be linked to per tag. More recent
117 versions of the UNIMARC standard are available on the IFLA website only as
121 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
122 } else if (field < 100) {
123 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
124 } else if (field < 900) {
125 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
127 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
132 * Functions to hide/show marc docs links
134 function hideMARCdocLinks() {
135 $(".marcdocs").hide();
136 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
139 function showMARCdocLinks() {
140 $(".marcdocs").show();
141 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
145 * check if mandatory subfields are written
147 function AreMandatoriesNotOk(){
148 var mandatories = new Array();
149 var mandatoriesfields = new Array();
150 var tab = new Array();
151 var label = new Array();
153 var tabflag= new Array();
154 [% FOREACH BIG_LOO IN BIG_LOOP %]
155 [% FOREACH innerloo IN BIG_LOO.innerloop %]
156 [% IF ( innerloo.mandatory ) %]
157 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
159 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
160 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
161 tab.push("[% BIG_LOO.number %]");
162 label.push("[% subfield_loo.marc_lib %]");
167 var StrAlert = _("Can't save this record because the following field aren't filled:");
169 for(var i=0,len=mandatories.length; i<len ; i++){
170 var tag=mandatories[i].substr(4,3);
171 var subfield=mandatories[i].substr(17,1);
172 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
173 if (tabflag[tag+subfield+tagnumber] == null) {
174 tabflag[tag+subfield+tagnumber]=new Array();
175 tabflag[tag+subfield+tagnumber][0]=0;
177 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
178 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
179 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
180 $('#' + mandatories[i]).focus();
181 tabflag[tag+subfield+tagnumber][1]=label[i];
182 tabflag[tag+subfield+tagnumber][2]=tab[i];
184 tabflag[tag+subfield+tagnumber][0] = 1;
187 for (var tagsubfieldid in tabflag){
188 if (tabflag[tagsubfieldid][0]==0){
189 var tag=tagsubfieldid.substr(0,3);
190 var subfield=tagsubfieldid.substr(3,1);
191 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
192 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
197 /* Check for mandatories field(not subfields) */
198 for(var i=0,len=mandatoriesfields.length; i<len; i++){
200 arr = mandatoriesfields[i];
201 divid = "tag_" + arr[0] + "_" + arr[1];
202 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
204 if(parseInt(arr[0]) >= 10){
205 elem = document.getElementById(divid);
206 eleminputs = elem.getElementsByTagName('input');
208 for(var j=0,len2=eleminputs.length; j<len2; j++){
210 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
211 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
213 for( var k=0; k<len2; k++){
214 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
219 elemselect = elem.getElementsByTagName('select');
220 for( var k=0; k<elemselect.length; k++){
221 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
228 elemtextareas = elem.getElementsByTagName('textarea');
229 for(var j=0,len2=elemtextareas.length; j<len2; j++){
230 // this bit assumes that the only textareas in this context would be for subfields
231 if (elemtextareas[j].value) {
241 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
258 var StrAlert = AreMandatoriesNotOk();
269 * check if z3950 mandatories are set or not
271 function GetZ3950Terms(){
272 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
273 var mandatories = new Array();
274 var mandatories_label = new Array();
275 [% 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 %]");
276 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
278 for(var i=0,len=mandatories.length; i<len ; i++){
279 var field_value = document.getElementById(mandatories[i]).value;
281 strQuery += "&"+mandatories_label[i]+"="+field_value;
287 function Changefwk(FwkList) {
295 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
297 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/right-to-left.css" />
300 <body id="cat_addbiblio" class="cat">
303 <div>Loading, please wait...</div>
306 [% INCLUDE 'header.inc' %]
308 <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>
310 <div id="doc" class="yui-t7">
317 [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])
318 [% ELSE %]Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
322 [% IF marcflavour != 'NORMARC' %]
323 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
326 [% UNLESS ( number ) %]
327 <!-- show duplicate warning on tab 0 only -->
328 [% IF ( duplicatebiblionumber ) %]
329 <div class="dialog alert">
330 <h4>Duplicate record suspected</h4>
331 <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>
332 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
333 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
334 <input type="submit" class="edit" value="Yes: Edit existing items" />
335 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
336 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
337 <input type="submit" value="Yes: View existing items" />
339 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
340 [% 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 %]
347 <script type="text/javascript">
348 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
349 opener.document.forms['f'].title.value='[% title |html %]';
353 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
354 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
355 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
358 <div id="toolbar" class="btn-toolbar">
359 [% IF ( CAN_user_editcatalogue_edit_items ) %]
360 [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
361 <!-- Action is under fast cataloging - Save button redirecting to items -->
362 <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
364 <!-- Not using fast cataloging - Display split menu -->
365 <div class="btn-group">
366 <button class="btn btn-small" id="saverecord"><i class="icon-hdd"></i> Save</button>
367 <button class="btn btn-small dropdown-toggle" data-toggle="dropdown">
368 <span class="caret"></span>
370 <ul class="dropdown-menu">
371 <li><a id="saveandview" href="#">Save and view record</a></li>
372 <li><a id="saveanditems" href="#">Save and edit items</a></li>
373 <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
378 <!-- User cannot edit items - single button redirecting to view -->
379 <div class="btn-group"><a href="#" id="saveandview" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
382 [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
383 <div class="btn-group"><a class="btn btn-small" href="#" id="z3950search"><i class="icon-search"></i> Z39.50 search</a></div>
384 [% IF (biblionumber) %]
385 [% IF ( BiblioDefaultViewmarc ) %]
386 <div class="btn-group">
387 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
389 [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
390 <div class="btn-group">
391 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
393 [% ELSIF ( BiblioDefaultViewisbd ) %]
394 <div class="btn-group">
395 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
398 <div class="btn-group">
399 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
403 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
406 <div class="btn-group">
407 <label for="Frameworks">Change framework: </label>
408 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
409 <option value="Default">Default</option>
410 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
411 [% IF ( frameworkcodeloo.selected ) %]
412 <option value="[% frameworkcodeloo.value %]" selected="selected">
414 <option value="[% frameworkcodeloo.value %]">
416 [% frameworkcodeloo.frameworktext %]
424 <input type="hidden" name="mode" value="popup" />
426 <input type="hidden" name="op" value="addbiblio" />
427 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
428 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
429 <input type="hidden" name="breedingid" value="[% breedingid %]" />
431 <div id="addbibliotabs" class="toptabs numbered">
433 [% FOREACH BIG_LOO IN BIG_LOOP %]
434 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
438 [% FOREACH BIG_LOO IN BIG_LOOP %]
439 <div id="tab[% BIG_LOO.number %]XX">
441 [% FOREACH innerloo IN BIG_LOO.innerloop %]
442 [% IF ( innerloo.tag ) %]
443 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
444 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
445 [% UNLESS hide_marc %]
446 [% IF advancedMARCEditor %]
447 <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>
449 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
450 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
453 [% IF ( innerloo.fixedfield ) %]
456 class="indicator flat"
457 style="display:none;"
458 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
461 value="[% innerloo.indicator1 %]" />
464 class="indicator flat"
465 style="display:none;"
466 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
469 value="[% innerloo.indicator2 %]" />
473 class="indicator flat"
474 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
477 value="[% innerloo.indicator1 %]" />
480 class="indicator flat"
481 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
484 value="[% innerloo.indicator2 %]" />
487 [% IF ( innerloo.fixedfield ) %]
490 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
491 value="[% innerloo.indicator1 %]" />
494 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
495 value="[% innerloo.indicator2 %]" />
499 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
500 value="[% innerloo.indicator1 %]" />
503 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
504 value="[% innerloo.indicator2 %]" />
508 [% UNLESS advancedMARCEditor %]
509 <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>
511 <span class="field_controls">
512 [% IF ( innerloo.repeatable ) %]
513 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
514 <img src="[% interface %]/[% theme %]/img/repeat-tag.png" alt="Repeat this Tag" />
517 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
518 <img src="[% interface %]/[% theme %]/img/delete-tag.png" alt="Delete this Tag" />
524 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
525 <!-- One line on the marc editor -->
526 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
528 [% UNLESS advancedMARCEditor %]
529 [% 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">
530 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
534 [% UNLESS hide_marc %]
535 <span class="subfieldcode">
536 [% IF ( subfield_loo.fixedfield ) %]
537 <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" />
539 <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" />
542 title="[% subfield_loo.marc_lib_plain %]"
543 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
544 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
545 value="[% subfield_loo.subfield %]"
553 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
554 value="[% subfield_loo.subfield %]" />
557 [% UNLESS advancedMARCEditor %]
558 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
559 [% subfield_loo.marc_lib_plain %]
560 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
565 [% subfield_loo.marc_value %]
567 <span class="subfield_controls">
568 [% IF ( subfield_loo.repeatable ) %]
569 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
570 <img src="[% interface %]/[% theme %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
572 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
573 <img src="[% interface %]/[% theme %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
579 <!-- End of the line -->
583 [% END %]<!-- if innerloo.tag -->
584 [% END %]<!-- BIG_LOO.innerloop -->
586 [% END %]<!-- BIG_LOOP -->
590 [%# Fields for fast cataloging %]
591 <input type="hidden" name="barcode" value="[% barcode %]" />
592 <input type="hidden" name="branch" value="[% branch %]" />
593 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
594 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
595 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
596 [%# End of fields for fast cataloging %]
604 [% INCLUDE 'intranet-bottom.inc' %]