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 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
4 [% INCLUDE 'doc-head-close.inc' %]
5 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.fixFloat.js"></script>
6 <script type="text/javascript" src="[% themelang %]/js/cataloging.js"></script>
7 <script type="text/javascript">
9 $(window).load(function(){
12 $(document).ready(function() {
13 $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
14 $("#"+ui.panel.id+" input:eq(0)").focus();
17 /* check cookie to hide/show marcdocs*/
18 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
20 $("#marcDocsSelect").removeAttr('checked');
22 /* reset cookie expire date */
23 $.cookie("marcdocs_[% borrowernumber %]",'true',
24 { path: "/", expires: 365 });
26 $('#toolbar').fixFloat();
27 $("#marcDocsSelect").click(function(){
28 if($(this).attr("checked")){
34 $("#z3950search").click(function(){
35 if (confirm(_("Please note that this Z39.50 search could replace the current record."))){
40 $("#saverecord").click(function(){
41 $(".btn-group").removeClass("open");
46 $("#saveandview").click(function(){
47 $(".btn-group").removeClass("open");
52 $("#saveanditems").click(function(){
53 $(".btn-group").removeClass("open");
59 function redirect(dest){
60 $("#redirect").attr("value",dest);
64 [% IF ( CAN_user_editcatalogue_edit_items ) %]
65 var onOption = function () {
70 function confirmnotdup(redirect){
71 $("#confirm_not_duplicate").attr("value","1");
72 $("#redirect").attr("value",redirect);
76 function Dopop(link,i) {
77 defaultvalue = document.getElementById(i).value;
78 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
82 * this function open a popup to search on z3950 server.
84 function PopupZ3950() {
85 var strQuery = GetZ3950Terms();
87 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');
91 function PopupMARCFieldDoc(field, blocknumber) {
92 [% IF ( marcflavour == 'MARC21' ) %]
93 _MARC21FieldDoc(field);
94 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
95 _UNIMARCFieldDoc(field, blocknumber);
99 function _MARC21FieldDoc(field) {
101 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
102 } else if (field < 900) {
103 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
105 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
109 function _UNIMARCFieldDoc(field, blocknumber) {
110 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
111 seems to be the only version available that can be linked to per tag. More recent
112 versions of the UNIMARC standard are available on the IFLA website only as
116 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
117 } else if (field < 100) {
118 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
119 } else if (field < 900) {
120 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
122 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
127 * Functions to hide/show marc docs links
129 function hideMARCdocLinks() {
130 $(".marcdocs").hide();
131 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
134 function showMARCdocLinks() {
135 $(".marcdocs").show();
136 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
140 * check if mandatory subfields are written
142 function AreMandatoriesNotOk(){
143 var mandatories = new Array();
144 var mandatoriesfields = new Array();
145 var tab = new Array();
146 var label = new Array();
148 var tabflag= new Array();
149 [% FOREACH BIG_LOO IN BIG_LOOP %]
150 [% FOREACH innerloo IN BIG_LOO.innerloop %]
151 [% IF ( innerloo.mandatory ) %]
152 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
154 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
155 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
156 tab.push("[% BIG_LOO.number %]");
157 label.push("[% subfield_loo.marc_lib %]");
162 var StrAlert = _("Can't save this record because the following field aren't filled:");
164 for(var i=0,len=mandatories.length; i<len ; i++){
165 var tag=mandatories[i].substr(4,3);
166 var subfield=mandatories[i].substr(17,1);
167 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
168 if (tabflag[tag+subfield+tagnumber] == null) {
169 tabflag[tag+subfield+tagnumber]=new Array();
170 tabflag[tag+subfield+tagnumber][0]=0;
172 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
173 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
174 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
175 $('#' + mandatories[i]).focus();
176 tabflag[tag+subfield+tagnumber][1]=label[i];
177 tabflag[tag+subfield+tagnumber][2]=tab[i];
179 tabflag[tag+subfield+tagnumber][0] = 1;
182 for (var tagsubfieldid in tabflag){
183 if (tabflag[tagsubfieldid][0]==0){
184 var tag=tagsubfieldid.substr(0,3);
185 var subfield=tagsubfieldid.substr(3,1);
186 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
187 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
192 /* Check for mandatories field(not subfields) */
193 for(var i=0,len=mandatoriesfields.length; i<len; i++){
195 arr = mandatoriesfields[i];
196 divid = "tag_" + arr[0] + "_" + arr[1];
197 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
199 if(parseInt(arr[0]) >= 10){
200 elem = document.getElementById(divid);
201 eleminputs = elem.getElementsByTagName('input');
203 for(var j=0,len2=eleminputs.length; j<len2; j++){
205 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
206 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
208 for( var k=0; k<len2; k++){
209 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
214 elemselect = elem.getElementsByTagName('select');
215 for( var k=0; k<elemselect.length; k++){
216 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
223 elemtextareas = elem.getElementsByTagName('textarea');
224 for(var j=0,len2=elemtextareas.length; j<len2; j++){
225 // this bit assumes that the only textareas in this context would be for subfields
226 if (elemtextareas[j].value) {
236 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
253 var StrAlert = AreMandatoriesNotOk();
264 * check if z3950 mandatories are set or not
266 function GetZ3950Terms(){
267 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
268 var mandatories = new Array();
269 var mandatories_label = new Array();
270 [% 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 %]");
271 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
273 for(var i=0,len=mandatories.length; i<len ; i++){
274 var field_value = document.getElementById(mandatories[i]).value;
276 strQuery += "&"+mandatories_label[i]+"="+field_value;
282 function Changefwk(FwkList) {
292 <body id="cat_addbiblio" class="cat">
295 <div>Loading, please wait...</div>
298 [% INCLUDE 'header.inc' %]
300 <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>
302 <div id="doc" class="yui-t7">
309 [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])
310 [% ELSE %]Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
314 [% IF marcflavour != 'NORMARC' %]
315 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
318 [% UNLESS ( number ) %]
319 <!-- show duplicate warning on tab 0 only -->
320 [% IF ( duplicatebiblionumber ) %]
321 <div class="dialog alert">
322 <h4>Duplicate record suspected</h4>
323 <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>
324 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
325 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
326 <input type="submit" class="edit" value="Yes: Edit existing items" />
327 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
328 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
329 <input type="submit" value="Yes: View existing items" />
331 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
332 [% 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 %]
339 <script type="text/javascript">
340 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
341 opener.document.forms['f'].title.value='[% title |html %]';
345 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
346 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
347 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
350 <div id="toolbar" class="btn-toolbar">
351 [% IF ( CAN_user_editcatalogue_edit_items ) %]
352 [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
353 <!-- Action is under fast cataloging - Save button redirecting to items -->
354 <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
356 <!-- Not using fast cataloging - Display split menu -->
357 <div class="btn-group">
358 <button class="btn btn-small" id="saverecord"><i class="icon-hdd"></i> Save</button>
359 <button class="btn btn-small dropdown-toggle" data-toggle="dropdown">
360 <span class="caret"></span>
362 <ul class="dropdown-menu">
363 <li><a id="saveandview" href="#">Save and view record</a></li>
364 <li><a id="saveanditems" href="#">Save and edit items</a></li>
369 <!-- User cannot edit items - single button redirecting to view -->
370 <div class="btn-group"><a href="#" id="saveandview" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
373 [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
374 <div class="btn-group"><a class="btn btn-small" href="#" id="z3950search"><i class="icon-search"></i> Z39.50 search</a></div>
375 [% IF (biblionumber) %]
376 [% IF ( BiblioDefaultViewmarc ) %]
377 <div class="btn-group">
378 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
380 [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
381 <div class="btn-group">
382 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
384 [% ELSIF ( BiblioDefaultViewisbd ) %]
385 <div class="btn-group">
386 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
389 <div class="btn-group">
390 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
394 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
397 <div class="btn-group">
398 <label for="Frameworks">Change framework: </label>
399 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
400 <option value="Default">Default</option>
401 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
402 [% IF ( frameworkcodeloo.selected ) %]
403 <option value="[% frameworkcodeloo.value %]" selected="selected">
405 <option value="[% frameworkcodeloo.value %]">
407 [% frameworkcodeloo.frameworktext %]
415 <input type="hidden" name="mode" value="popup" />
417 <input type="hidden" name="op" value="addbiblio" />
418 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
419 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
420 <input type="hidden" name="breedingid" value="[% breedingid %]" />
422 <div id="addbibliotabs" class="toptabs numbered">
424 [% FOREACH BIG_LOO IN BIG_LOOP %]
425 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
429 [% FOREACH BIG_LOO IN BIG_LOOP %]
430 <div id="tab[% BIG_LOO.number %]XX">
432 [% FOREACH innerloo IN BIG_LOO.innerloop %]
433 [% IF ( innerloo.tag ) %]
434 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
435 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
436 [% UNLESS hide_marc %]
437 [% IF advancedMARCEditor %]
438 <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>
440 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
441 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
444 [% IF ( innerloo.fixedfield ) %]
447 class="indicator flat"
448 style="display:none;"
449 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
452 value="[% innerloo.indicator1 %]" />
455 class="indicator flat"
456 style="display:none;"
457 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
460 value="[% innerloo.indicator2 %]" />
464 class="indicator flat"
465 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
468 value="[% innerloo.indicator1 %]" />
471 class="indicator flat"
472 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
475 value="[% innerloo.indicator2 %]" />
478 [% IF ( innerloo.fixedfield ) %]
481 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
482 value="[% innerloo.indicator1 %]" />
485 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
486 value="[% innerloo.indicator2 %]" />
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 [% UNLESS advancedMARCEditor %]
500 <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>
502 <span class="field_controls">
503 [% IF ( innerloo.repeatable ) %]
504 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
505 <img src="/intranet-tmpl/prog/img/repeat-tag.png" alt="Repeat this Tag" />
508 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
509 <img src="/intranet-tmpl/prog/img/delete-tag.png" alt="Delete this Tag" />
515 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
516 <!-- One line on the marc editor -->
517 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
519 [% UNLESS advancedMARCEditor %]
520 [% 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">
521 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
525 [% UNLESS hide_marc %]
526 <span class="subfieldcode">
527 [% IF ( subfield_loo.fixedfield ) %]
528 <img class="buttonUp" style="display:none;" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
530 <img class="buttonUp" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
533 title="[% subfield_loo.marc_lib_plain %]"
534 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
535 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
536 value="[% subfield_loo.subfield %]"
544 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
545 value="[% subfield_loo.subfield %]" />
548 [% UNLESS advancedMARCEditor %]
549 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
550 [% subfield_loo.marc_lib_plain %]
551 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
556 [% subfield_loo.marc_value %]
558 <span class="subfield_controls">
559 [% IF ( subfield_loo.repeatable ) %]
560 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
561 <img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
563 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
564 <img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
570 <!-- End of the line -->
574 [% END %]<!-- if innerloo.tag -->
575 [% END %]<!-- BIG_LOO.innerloop -->
577 [% END %]<!-- BIG_LOOP -->
581 [%# Fields for fast cataloging %]
582 <input type="hidden" name="barcode" value="[% barcode %]" />
583 <input type="hidden" name="branch" value="[% branch %]" />
584 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
585 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
586 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
587 [%# End of fields for fast cataloging %]
595 [% INCLUDE 'intranet-bottom.inc' %]