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");
58 function redirect(dest){
59 $("#redirect").attr("value",dest);
63 [% IF ( CAN_user_editcatalogue_edit_items ) %]
64 var onOption = function () {
69 function confirmnotdup(redirect){
70 $("#confirm_not_duplicate").attr("value","1");
71 $("#redirect").attr("value",redirect);
75 function Dopop(link,i) {
76 defaultvalue = document.getElementById(i).value;
77 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
81 * this function open a popup to search on z3950 server.
83 function PopupZ3950() {
84 var strQuery = GetZ3950Terms();
86 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');
90 function PopupMARCFieldDoc(field, blocknumber) {
91 [% IF ( marcflavour == 'MARC21' ) %]
92 _MARC21FieldDoc(field);
93 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
94 _UNIMARCFieldDoc(field, blocknumber);
98 function _MARC21FieldDoc(field) {
100 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
101 } else if (field < 900) {
102 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
104 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
108 function _UNIMARCFieldDoc(field, blocknumber) {
109 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
110 seems to be the only version available that can be linked to per tag. More recent
111 versions of the UNIMARC standard are available on the IFLA website only as
115 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
116 } else if (field < 100) {
117 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
118 } else if (field < 900) {
119 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
121 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
126 * Functions to hide/show marc docs links
128 function hideMARCdocLinks() {
129 $(".marcdocs").hide();
130 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
133 function showMARCdocLinks() {
134 $(".marcdocs").show();
135 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
139 * check if mandatory subfields are written
141 function AreMandatoriesNotOk(){
142 var mandatories = new Array();
143 var mandatoriesfields = new Array();
144 var tab = new Array();
145 var label = new Array();
147 var tabflag= new Array();
148 [% FOREACH BIG_LOO IN BIG_LOOP %]
149 [% FOREACH innerloo IN BIG_LOO.innerloop %]
150 [% IF ( innerloo.mandatory ) %]
151 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
153 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
154 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
155 tab.push("[% BIG_LOO.number %]");
156 label.push("[% subfield_loo.marc_lib %]");
161 var StrAlert = _("Can't save this record because the following field aren't filled:");
163 for(var i=0,len=mandatories.length; i<len ; i++){
164 var tag=mandatories[i].substr(4,3);
165 var subfield=mandatories[i].substr(17,1);
166 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
167 if (tabflag[tag+subfield+tagnumber] == null) {
168 tabflag[tag+subfield+tagnumber]=new Array();
169 tabflag[tag+subfield+tagnumber][0]=0;
171 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
172 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
173 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
174 $('#' + mandatories[i]).focus();
175 tabflag[tag+subfield+tagnumber][1]=label[i];
176 tabflag[tag+subfield+tagnumber][2]=tab[i];
178 tabflag[tag+subfield+tagnumber][0] = 1;
181 for (var tagsubfieldid in tabflag){
182 if (tabflag[tagsubfieldid][0]==0){
183 var tag=tagsubfieldid.substr(0,3);
184 var subfield=tagsubfieldid.substr(3,1);
185 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
186 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
191 /* Check for mandatories field(not subfields) */
192 for(var i=0,len=mandatoriesfields.length; i<len; i++){
194 arr = mandatoriesfields[i];
195 divid = "tag_" + arr[0] + "_" + arr[1];
196 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
198 if(parseInt(arr[0]) >= 10){
199 elem = document.getElementById(divid);
200 eleminputs = elem.getElementsByTagName('input');
202 for(var j=0,len2=eleminputs.length; j<len2; j++){
204 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
205 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
207 for( var k=0; k<len2; k++){
208 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
213 elemselect = elem.getElementsByTagName('select');
214 for( var k=0; k<elemselect.length; k++){
215 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
222 elemtextareas = elem.getElementsByTagName('textarea');
223 for(var j=0,len2=elemtextareas.length; j<len2; j++){
224 // this bit assumes that the only textareas in this context would be for subfields
225 if (elemtextareas[j].value) {
235 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
252 var StrAlert = AreMandatoriesNotOk();
263 * check if z3950 mandatories are set or not
265 function GetZ3950Terms(){
266 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
267 var mandatories = new Array();
268 var mandatories_label = new Array();
269 [% 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 %]");
270 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
272 for(var i=0,len=mandatories.length; i<len ; i++){
273 var field_value = document.getElementById(mandatories[i]).value;
275 strQuery += "&"+mandatories_label[i]+"="+field_value;
281 function Changefwk(FwkList) {
289 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
291 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/right-to-left.css" />
294 <body id="cat_addbiblio" class="cat">
297 <div>Loading, please wait...</div>
300 [% INCLUDE 'header.inc' %]
302 <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>
304 <div id="doc" class="yui-t7">
311 [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])
312 [% ELSE %]Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
316 [% IF marcflavour != 'NORMARC' %]
317 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
320 [% UNLESS ( number ) %]
321 <!-- show duplicate warning on tab 0 only -->
322 [% IF ( duplicatebiblionumber ) %]
323 <div class="dialog alert">
324 <h4>Duplicate record suspected</h4>
325 <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>
326 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
327 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
328 <input type="submit" class="edit" value="Yes: Edit existing items" />
329 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
330 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
331 <input type="submit" value="Yes: View existing items" />
333 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
334 [% 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 %]
341 <script type="text/javascript">
342 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
343 opener.document.forms['f'].title.value='[% title |html %]';
347 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
348 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
349 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
352 <div id="toolbar" class="btn-toolbar">
353 [% IF ( CAN_user_editcatalogue_edit_items ) %]
354 [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
355 <!-- Action is under fast cataloging - Save button redirecting to items -->
356 <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
358 <!-- Not using fast cataloging - Display split menu -->
359 <div class="btn-group">
360 <button class="btn btn-small" id="saverecord"><i class="icon-hdd"></i> Save</button>
361 <button class="btn btn-small dropdown-toggle" data-toggle="dropdown">
362 <span class="caret"></span>
364 <ul class="dropdown-menu">
365 <li><a id="saveandview" href="#">Save and view record</a></li>
366 <li><a id="saveanditems" href="#">Save and edit items</a></li>
371 <!-- User cannot edit items - single button redirecting to view -->
372 <div class="btn-group"><a href="#" id="saveandview" class="btn btn-small"><i class="icon-hdd"></i> Save</a></div>
375 [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
376 <div class="btn-group"><a class="btn btn-small" href="#" id="z3950search"><i class="icon-search"></i> Z39.50 search</a></div>
377 [% IF (biblionumber) %]
378 [% IF ( BiblioDefaultViewmarc ) %]
379 <div class="btn-group">
380 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
382 [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
383 <div class="btn-group">
384 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
386 [% ELSIF ( BiblioDefaultViewisbd ) %]
387 <div class="btn-group">
388 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
391 <div class="btn-group">
392 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
396 <a class="btn btn-small" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
399 <div class="btn-group">
400 <label for="Frameworks">Change framework: </label>
401 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
402 <option value="Default">Default</option>
403 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
404 [% IF ( frameworkcodeloo.selected ) %]
405 <option value="[% frameworkcodeloo.value %]" selected="selected">
407 <option value="[% frameworkcodeloo.value %]">
409 [% frameworkcodeloo.frameworktext %]
417 <input type="hidden" name="mode" value="popup" />
419 <input type="hidden" name="op" value="addbiblio" />
420 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
421 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
422 <input type="hidden" name="breedingid" value="[% breedingid %]" />
424 <div id="addbibliotabs" class="toptabs numbered">
426 [% FOREACH BIG_LOO IN BIG_LOOP %]
427 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
431 [% FOREACH BIG_LOO IN BIG_LOOP %]
432 <div id="tab[% BIG_LOO.number %]XX">
434 [% FOREACH innerloo IN BIG_LOO.innerloop %]
435 [% IF ( innerloo.tag ) %]
436 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
437 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
438 [% UNLESS hide_marc %]
439 [% IF advancedMARCEditor %]
440 <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>
442 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
443 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
446 [% IF ( innerloo.fixedfield ) %]
449 class="indicator flat"
450 style="display:none;"
451 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
454 value="[% innerloo.indicator1 %]" />
457 class="indicator flat"
458 style="display:none;"
459 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
462 value="[% innerloo.indicator2 %]" />
466 class="indicator flat"
467 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
470 value="[% innerloo.indicator1 %]" />
473 class="indicator flat"
474 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
477 value="[% innerloo.indicator2 %]" />
480 [% IF ( innerloo.fixedfield ) %]
483 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
484 value="[% innerloo.indicator1 %]" />
487 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
488 value="[% innerloo.indicator2 %]" />
492 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
493 value="[% innerloo.indicator1 %]" />
496 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
497 value="[% innerloo.indicator2 %]" />
501 [% UNLESS advancedMARCEditor %]
502 <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>
504 <span class="field_controls">
505 [% IF ( innerloo.repeatable ) %]
506 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
507 <img src="/intranet-tmpl/prog/img/repeat-tag.png" alt="Repeat this Tag" />
510 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
511 <img src="/intranet-tmpl/prog/img/delete-tag.png" alt="Delete this Tag" />
517 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
518 <!-- One line on the marc editor -->
519 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
521 [% UNLESS advancedMARCEditor %]
522 [% 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">
523 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
527 [% UNLESS hide_marc %]
528 <span class="subfieldcode">
529 [% IF ( subfield_loo.fixedfield ) %]
530 <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" />
532 <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" />
535 title="[% subfield_loo.marc_lib_plain %]"
536 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
537 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
538 value="[% subfield_loo.subfield %]"
546 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
547 value="[% subfield_loo.subfield %]" />
550 [% UNLESS advancedMARCEditor %]
551 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
552 [% subfield_loo.marc_lib_plain %]
553 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
558 [% subfield_loo.marc_value %]
560 <span class="subfield_controls">
561 [% IF ( subfield_loo.repeatable ) %]
562 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
563 <img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
565 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
566 <img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
572 <!-- End of the line -->
576 [% END %]<!-- if innerloo.tag -->
577 [% END %]<!-- BIG_LOO.innerloop -->
579 [% END %]<!-- BIG_LOOP -->
583 [%# Fields for fast cataloging %]
584 <input type="hidden" name="barcode" value="[% barcode %]" />
585 <input type="hidden" name="branch" value="[% branch %]" />
586 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
587 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
588 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
589 [%# End of fields for fast cataloging %]
597 [% INCLUDE 'intranet-bottom.inc' %]