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/yui/plugins/bubbling-min.js"></script>
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">
10 $(document).ready(function() {
11 $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
12 $("#"+ui.panel.id+" input:eq(0)").focus();
15 /* check cookie to hide/show marcdocs*/
16 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
18 $("#marcDocsSelect").removeAttr('checked');
20 /* reset cookie expire date */
21 $.cookie("marcdocs_[% borrowernumber %]",'true',
22 { path: "/", expires: 365 });
27 $('#header_search').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); });
30 function confirmnotdup(redirect){
31 $("#confirm_not_duplicate").attr("value","1");
32 $("#redirect").attr("value",redirect);
36 function Dopop(link,i) {
37 defaultvalue = document.getElementById(i).value;
38 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
42 * this function open a popup to search on z3950 server.
44 function PopupZ3950() {
45 var strQuery = GetZ3950Terms();
47 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');
51 function PopupMARCFieldDoc(field, blocknumber) {
52 [% IF ( marcflavour == 'MARC21' ) %]
53 _MARC21FieldDoc(field);
54 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
55 _UNIMARCFieldDoc(field, blocknumber);
59 function _MARC21FieldDoc(field) {
61 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
62 } else if (field < 900) {
63 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
65 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
69 function _UNIMARCFieldDoc(field, blocknumber) {
70 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
71 seems to be the only version available that can be linked to per tag. More recent
72 versions of the UNIMARC standard are available on the IFLA website only as
76 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
77 } else if (field < 100) {
78 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
79 } else if (field < 900) {
80 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
82 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
87 * Functions to hide/show marc docs links
89 function hideMARCdocLinks() {
90 $(".marcdocs").hide();
91 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
94 function showMARCdocLinks() {
95 $(".marcdocs").show();
96 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
100 * check if mandatory subfields are written
102 function AreMandatoriesNotOk(){
103 var mandatories = new Array();
104 var mandatoriesfields = new Array();
105 var tab = new Array();
106 var label = new Array();
108 var tabflag= new Array();
109 [% FOREACH BIG_LOO IN BIG_LOOP %]
110 [% FOREACH innerloo IN BIG_LOO.innerloop %]
111 [% IF ( innerloo.mandatory ) %]
112 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
114 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
115 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
116 tab.push("[% BIG_LOO.number %]");
117 label.push("[% subfield_loo.marc_lib %]");
122 var StrAlert = _("Can't save this record because the following field aren't filled:");
124 for(var i=0,len=mandatories.length; i<len ; i++){
125 var tag=mandatories[i].substr(4,3);
126 var subfield=mandatories[i].substr(17,1);
127 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
128 if (tabflag[tag+subfield+tagnumber] == null) {
129 tabflag[tag+subfield+tagnumber]=new Array();
130 tabflag[tag+subfield+tagnumber][0]=0;
132 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
133 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
134 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
135 $('#' + mandatories[i]).focus();
136 tabflag[tag+subfield+tagnumber][1]=label[i];
137 tabflag[tag+subfield+tagnumber][2]=tab[i];
139 tabflag[tag+subfield+tagnumber][0] = 1;
142 for (var tagsubfieldid in tabflag){
143 if (tabflag[tagsubfieldid][0]==0){
144 var tag=tagsubfieldid.substr(0,3);
145 var subfield=tagsubfieldid.substr(3,1);
146 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
147 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
152 /* Check for mandatories field(not subfields) */
153 for(var i=0,len=mandatoriesfields.length; i<len; i++){
155 arr = mandatoriesfields[i];
156 divid = "tag_" + arr[0] + "_" + arr[1];
157 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
159 if(parseInt(arr[0]) >= 10){
160 elem = document.getElementById(divid);
161 eleminputs = elem.getElementsByTagName('input');
163 for(var j=0,len2=eleminputs.length; j<len2; j++){
165 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
166 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
168 for( var k=0; k<len2; k++){
169 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
174 elemselect = elem.getElementsByTagName('select');
175 for( var k=0; k<elemselect.length; k++){
176 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
183 elemtextareas = elem.getElementsByTagName('textarea');
184 for(var j=0,len2=elemtextareas.length; j<len2; j++){
185 // this bit assumes that the only textareas in this context would be for subfields
186 if (elemtextareas[j].value) {
196 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
213 var StrAlert = AreMandatoriesNotOk();
224 * check if z3950 mandatories are set or not
226 function GetZ3950Terms(){
227 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
228 var mandatories = new Array();
229 var mandatories_label = new Array();
230 [% 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 %]");
231 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
233 for(var i=0,len=mandatories.length; i<len ; i++){
234 var field_value = document.getElementById(mandatories[i]).value;
236 strQuery += "&"+mandatories_label[i]+"="+field_value;
242 function Changefwk(FwkList) {
250 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
252 <body id="cat_addbiblio" class="cat">
253 <div id="yui-cms-loading">
254 <div id="yui-cms-float">
255 Loading, please wait...
258 <script type="text/javascript" src="[% themelang %]/lib/yui/plugins/loading-min.js"></script>
259 <script type="text/javascript">
262 // configuring the loading mask
263 YAHOO.widget.Loading.config({
269 [% INCLUDE 'header.inc' %]
271 <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>
273 <div id="doc" class="yui-t7">
280 [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])
281 [% ELSE %]Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
285 [% IF marcflavour != 'NORMARC' %]
286 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
289 [% UNLESS ( number ) %]
290 <!-- show duplicate warning on tab 0 only -->
291 [% IF ( duplicatebiblionumber ) %]
292 <div class="dialog alert">
293 <h4>Duplicate record suspected</h4>
294 <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>
295 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
296 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
297 <input type="submit" class="edit" value="Yes: Edit existing items" />
298 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
299 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
300 <input type="submit" value="Yes: View existing items" />
302 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
303 [% 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 %]
310 <script type="text/javascript">
311 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
312 opener.document.forms['f'].title.value='[% title |html %]';
316 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
317 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
318 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
323 <script type="text/javascript">
326 // prepare DOM for YUI Toolbar
328 $(document).ready(function() {
329 $('#toolbar').fixFloat();
330 $("#z3950searchc").empty();
331 $("#savebutton").empty();
334 $("#marcDocsSelect").click(function(){
335 if($(this).attr("checked")){
343 function redirect(dest){
344 $("#redirect").attr("value",dest);
347 [% IF ( CAN_user_editcatalogue_edit_items ) %]
348 var onOption = function () {
353 { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
354 { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
358 // YUI Toolbar Functions
360 function yuiToolbar() {
361 [% IF ( CAN_user_editcatalogue_edit_items ) %]
362 [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
363 new YAHOO.widget.Button({
367 container: "savebutton",
368 onclick: {fn:function(){redirect("items");}}
371 var savesplitmenu = new YAHOO.widget.Button({
375 name: "savemenubutton",
377 container: "savebutton"
379 savesplitmenu.on("click", onOption);
382 new YAHOO.widget.Button({
386 container: "savebutton",
387 onclick: {fn:function(){redirect("view");}}
390 new YAHOO.widget.Button({
393 label: _("Z39.50 Search"),
394 container: "z3950searchc",
395 onclick: {fn:function(){if (confirm(_("Please note that this Z39.50 search could replace the current record."))) PopupZ3950()}}
403 <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
404 [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
405 <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
406 <li id="changeframework"><label for="Frameworks">Change framework: </label>
407 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
408 <option value="Default">Default</option>
409 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
410 [% IF ( frameworkcodeloo.selected ) %]
411 <option value="[% frameworkcodeloo.value %]" selected="selected">
413 <option value="[% frameworkcodeloo.value %]">
415 [% frameworkcodeloo.frameworktext %]
425 <input type="hidden" name="mode" value="popup" />
427 <input type="hidden" name="op" value="addbiblio" />
428 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
429 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
430 <input type="hidden" name="breedingid" value="[% breedingid %]" />
432 <div id="addbibliotabs" class="toptabs numbered">
434 [% FOREACH BIG_LOO IN BIG_LOOP %]
435 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
439 [% FOREACH BIG_LOO IN BIG_LOOP %]
440 <div id="tab[% BIG_LOO.number %]XX">
442 [% FOREACH innerloo IN BIG_LOO.innerloop %]
443 [% IF ( innerloo.tag ) %]
444 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
445 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
446 [% UNLESS hide_marc %]
447 [% IF advancedMARCEditor %]
448 <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>
450 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
451 [% IF marcflavour != 'NORMARC' %]<a class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
454 [% IF ( innerloo.fixedfield ) %]
457 class="indicator flat"
458 style="display:none;"
459 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
462 value="[% innerloo.indicator1 %]" />
465 class="indicator flat"
466 style="display:none;"
467 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
470 value="[% innerloo.indicator2 %]" />
474 class="indicator flat"
475 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
478 value="[% innerloo.indicator1 %]" />
481 class="indicator flat"
482 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
485 value="[% innerloo.indicator2 %]" />
488 [% IF ( innerloo.fixedfield ) %]
491 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
492 value="[% innerloo.indicator1 %]" />
495 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
496 value="[% innerloo.indicator2 %]" />
500 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
501 value="[% innerloo.indicator1 %]" />
504 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
505 value="[% innerloo.indicator2 %]" />
509 [% UNLESS advancedMARCEditor %]
510 <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>
512 <span class="field_controls">
513 [% IF ( innerloo.repeatable ) %]
514 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
515 <img src="/intranet-tmpl/prog/img/repeat-tag.png" alt="Repeat this Tag" />
518 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
519 <img src="/intranet-tmpl/prog/img/delete-tag.png" alt="Delete this Tag" />
525 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
526 <!-- One line on the marc editor -->
527 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
529 [% UNLESS advancedMARCEditor %]
530 [% 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">
531 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
535 [% UNLESS hide_marc %]
536 <span class="subfieldcode">
537 [% IF ( subfield_loo.fixedfield ) %]
538 <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" />
540 <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" />
543 title="[% subfield_loo.marc_lib_plain %]"
544 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
545 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
546 value="[% subfield_loo.subfield %]"
554 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
555 value="[% subfield_loo.subfield %]" />
558 [% UNLESS advancedMARCEditor %]
559 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
560 [% subfield_loo.marc_lib_plain %]
561 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
566 [% subfield_loo.marc_value %]
568 <span class="subfield_controls">
569 [% IF ( subfield_loo.repeatable ) %]
570 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
571 <img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
573 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
574 <img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
580 <!-- End of the line -->
584 [% END %]<!-- if innerloo.tag -->
585 [% END %]<!-- BIG_LOO.innerloop -->
587 [% END %]<!-- BIG_LOOP -->
591 [%# Fields for fast cataloging %]
592 <input type="hidden" name="barcode" value="[% barcode %]" />
593 <input type="hidden" name="branch" value="[% branch %]" />
594 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
595 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
596 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
597 [%# End of fields for fast cataloging %]
605 [% INCLUDE 'intranet-bottom.inc' %]