1 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
2 <title>Koha › Cataloging › <!-- TMPL_IF NAME="biblionumber" -->Editing <!-- TMPL_VAR NAME="title" escape="html" --> (Record Number <!-- TMPL_VAR name="biblionumber" -->)<!-- TMPL_ELSE -->Add MARC Record<!-- /TMPL_IF --></title>
3 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
4 <script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/yui/plugins/bubbling-min.js"></script>
5 <script type="text/javascript">
8 var fields_in_use = {};
9 $(document).ready(function() {
10 $('#addbibliotabs > ul').tabs().bind('show.ui-tabs', function(e, ui) {
11 $("#"+ui.panel.id+" input:eq(0)").focus();
13 $('.tag').each(function() {
14 var field_id = this.getAttribute('id').substring(0, 7);
15 if (field_id in fields_in_use) {
16 fields_in_use[field_id]++;
18 fields_in_use[field_id] = 1;
21 $('.subfield_line').each(function() {
22 var field_id = this.getAttribute('id').substring(0, 12);
23 if (field_id in fields_in_use) {
24 fields_in_use[field_id]++;
26 fields_in_use[field_id] = 1;
29 /* check cookie to hide/show marcdocs*/
30 if($.cookie("marcdocs_<!-- TMPL_VAR NAME="borrowernumber" -->") == 'false'){
32 $("#marcDocsSelect").attr('checked',false);
34 /* reset cookie expire date */
35 $.cookie("marcdocs_<!-- TMPL_VAR NAME="borrowernumber" -->",'true',
36 { path: "/", expires: 365 });
41 $('#header_search > ul').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); });
44 function confirmnotdup(redirect){
45 $("#confirm_not_duplicate").attr("value","1");
46 $("#redirect").attr("value",redirect);
55 var StrAlert = AreMandatoriesNotOk();
65 function Dopop(link,i) {
66 defaultvalue = document.getElementById(i).value;
67 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
71 * this function open a popup to search on z3950 server.
73 function PopupZ3950() {
74 var strQuery = GetZ3950Terms();
76 window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
80 function PopupMARCFieldDoc(field, blocknumber) {
81 <!-- TMPL_IF NAME="MARC21" -->
82 _MARC21FieldDoc(field);
84 _UNIMARCFieldDoc(field, blocknumber);
88 function _MARC21FieldDoc(field) {
90 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
91 } else if (field < 900) {
92 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
94 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
98 function _UNIMARCFieldDoc(field, blocknumber) {
99 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
100 seems to be the only version available that can be linked to per tag. More recent
101 versions of the UNIMARC standard are available on the IFLA website only as
105 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
106 } else if (field < 100) {
107 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
108 } else if (field < 900) {
109 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
111 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
116 * Functions to load/unload css from the head element
118 function loadCSS(id,cssDef) {
120 var cssElem=document.createElement("style");
121 cssElem.setAttribute("type", "text/css");
122 cssElem.setAttribute("id", id);
123 cssElem.innerHTML = cssDef;
125 document.getElementsByTagName("head")[0].appendChild(cssElem);
128 function unloadCSS(id) {
129 var elem = document.getElementById(id);
130 elem.parentNode.removeChild(elem);
134 * Functions to hide/show marc docs links
136 function hideMARCdocLinks() {
137 loadCSS("marcDocsCSS",".marcdocs{display: none;}");
138 $.cookie("marcdocs_<!-- TMPL_VAR NAME="borrowernumber" -->",'false', { path: "/", expires: 365 });
141 function showMARCdocLinks() {
142 unloadCSS("marcDocsCSS");
143 $.cookie("marcdocs_<!-- TMPL_VAR NAME="borrowernumber" -->",'true', { path: "/", expires: 365 });
146 function toggleMARCDocs(checked) {
155 * check if mandatory subfields are written
157 function AreMandatoriesNotOk(){
158 var mandatories = new Array();
159 var mandatoriesfields = new Array();
160 var tab = new Array();
161 var label = new Array();
163 var tabflag= new Array();
164 <!-- TMPL_LOOP NAME='BIG_LOOP' -->
165 <!-- TMPL_LOOP NAME='innerloop' -->
166 <!-- TMPL_IF NAME="mandatory" -->
167 mandatoriesfields.push(new Array("<!-- TMPL_VAR NAME="tag" -->","<!-- TMPL_VAR NAME="index" --><!-- TMPL_VAR NAME="random" -->","<!-- TMPL_VAR NAME="index" -->"));
169 <!-- TMPL_LOOP NAME='subfield_loop'-->
170 <!-- TMPL_IF NAME='mandatory'-->mandatories.push("<!-- TMPL_VAR NAME='id' -->");
171 tab.push("<!-- TMPL_VAR NAME='number' -->");
172 label.push("<!-- TMPL_VAR NAME='marc_lib' -->");
177 var StrAlert = _("Can't save this record because the following field aren't filled:");
179 for(var i=0,len=mandatories.length; i<len ; i++){
180 var tag=mandatories[i].substr(4,3);
181 var subfield=mandatories[i].substr(17,1);
182 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
183 if (tabflag[tag+subfield+tagnumber] == null) {
184 tabflag[tag+subfield+tagnumber]=new Array();
185 tabflag[tag+subfield+tagnumber][0]=0;
187 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
188 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
189 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
190 document.getElementById(mandatories[i]).focus();
191 tabflag[tag+subfield+tagnumber][1]=label[i];
192 tabflag[tag+subfield+tagnumber][2]=tab[i];
194 tabflag[tag+subfield+tagnumber][0] = 1;
197 for (var tagsubfieldid in tabflag){
198 if (tabflag[tagsubfieldid][0]==0){
199 var tag=tagsubfieldid.substr(0,3);
200 var subfield=tagsubfieldid.substr(3,1);
201 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
202 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
207 /* Check for mandatories field(not subfields) */
208 for(var i=0,len=mandatoriesfields.length; i<len; i++){
210 arr = mandatoriesfields[i];
211 divid = "tag_" + arr[0] + "_" + arr[1];
212 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
214 if(parseInt(arr[0]) >= 10){
215 elem = document.getElementById(divid);
216 eleminputs = elem.getElementsByTagName('input');
218 for(var j=0,len2=eleminputs.length; j<len2; j++){
220 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
221 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
223 for( var k=0; k<len2; k++){
224 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
229 elemselect = elem.getElementsByTagName('select');
230 for( var k=0; k<elemselect.length; k++){
231 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
238 elemtextareas = elem.getElementsByTagName('textarea');
239 for(var j=0,len2=elemtextareas.length; j<len2; j++){
240 // this bit assumes that the only textareas in this context would be for subfields
241 if (elemtextareas[j].value) {
251 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
264 * check if z3950 mandatories are set or not
266 function GetZ3950Terms(){
267 var strQuery="&frameworkcode="+document.forms['f'].frameworkcode.value;
268 var mandatories = new Array();
269 var mandatories_label = new Array();
270 <!-- TMPL_LOOP NAME='BIG_LOOP' --><!-- TMPL_LOOP NAME='innerloop' --><!-- TMPL_LOOP NAME='subfield_loop'--><!-- TMPL_IF NAME='z3950_mandatory'-->mandatories.push("<!-- TMPL_VAR NAME='id' -->");
271 mandatories_label.push("<!-- TMPL_VAR NAME='z3950_mandatory' -->");<!-- /TMPL_IF --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP -->
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) {
283 var fwk = FwkList.options[FwkList.selectedIndex].value;
284 window.location = "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=<!--TMPL_VAR Name="biblionumber"-->&breedingid=<!-- TMPL_VAR name="breedingid" -->&frameworkcode="+fwk;
288 // returns the subfieldcode based upon subfieldid writing
289 function getSubfieldcode(tagsubfieldid){
290 // 3 : tag +3 : tagnumber +4 : number of _ +8 subfield -1 begins at 0
291 return tagsubfieldid.substr(3+3+4+8-1,1);
294 // Take the base of tagsubfield information (removing the subfieldcodes and subfieldindexes)
295 // returns the filter
296 function getTagInputnameFilter(tagsubfieldid){
297 var tagsubfield=tagsubfieldid.substr(0,tagsubfieldid.lastIndexOf("_"));
298 var tagcode=tagsubfield.substr(tagsubfield.lastIndexOf("_"));
299 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
300 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
301 tagsubfield=tagsubfield+"_."+tagcode;
305 function openAuth(tagsubfieldid,authtype) {
306 // let's take the base of tagsubfield information (removing the indexes and the codes
307 var element=document.getElementById(tagsubfieldid);
308 var tagsubfield=getTagInputnameFilter(tagsubfieldid);
309 var elementsubfcode=getSubfieldcode(element.name);
310 var mainmainstring=element.value;
312 var inputs = element.parentNode.parentNode.getElementsByTagName("input");
314 for (var myindex =0; myindex<inputs.length;myindex++){
315 if (inputs[myindex].name && inputs[myindex].name.match(tagsubfield)){
316 var subfieldcode=getSubfieldcode(inputs[myindex].name);
317 if (isNaN(parseInt(subfieldcode)) && inputs[myindex].value != "" && subfieldcode!=elementsubfcode){
318 mainstring=inputs[myindex].value+" "+mainstring;
322 newin=window.open("../authorities/auth_finder.pl?authtypecode="+ authtype+ "&index="+tagsubfieldid+"&value_mainstr="+encodeURI(mainmainstring)+"&value_main="+encodeURI(mainstring), "_blank",'width=700,height=550,toolbar=false,scrollbars=yes');
326 function ExpandField(index) {
327 var original = document.getElementById(index); //original <div>
328 var divs = original.getElementsByTagName('div');
329 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
330 if(divs[i].getAttribute('id').match(/^subfield/)){ // if it s a subfield
331 if (divs[i].style.display == 'block') {
332 divs[i].style.display = 'none';
334 divs[i].style.display = 'block';
341 * To clone a field or a subfield by clicking on '+' button
343 function CloneField(index) {
344 var original = document.getElementById(index); //original <div>
345 fields_in_use[index.substr(0, 7)]++;
346 var clone = original.cloneNode(true);
347 var new_key = CreateKey();
348 var new_id = original.getAttribute('id')+new_key;
350 clone.setAttribute('id',new_id); // setting a new id for the parent div
352 var divs = clone.getElementsByTagName('div');
354 <!-- TMPL_UNLESS NAME='hide_marc'--> // No indicator if hide_marc
355 // setting a new name for the new indicator
356 for(var i=0; i < 2; i++) {
357 var indicator = clone.getElementsByTagName('input')[i];
358 indicator.setAttribute('name',indicator.getAttribute('name')+new_key);
360 <!-- /TMPL_UNLESS -->
362 // settings all subfields
363 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
364 if(divs[i].getAttribute("id").match(/^subfield/)){ // if it s a subfield
366 // set the attribute for the new 'div' subfields
367 divs[i].setAttribute('id',divs[i].getAttribute('id')+new_key);
369 var inputs = divs[i].getElementsByTagName('input');
372 for( j = 0 ; j < inputs.length ; j++ ) {
373 if(inputs[j].getAttribute("id") && inputs[j].getAttribute("id").match(/^tag_/) ){
374 inputs[j].value = "";
378 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
379 inputs[0].setAttribute('name',inputs[0].getAttribute('name')+new_key);
382 id_input = inputs[1].getAttribute('id')+new_key;
383 inputs[1].setAttribute('id',id_input);
384 inputs[1].setAttribute('name',inputs[1].getAttribute('name')+new_key);
386 try{ // it s a select if it is not an input
387 var selects = divs[i].getElementsByTagName('select');
388 id_input = selects[0].getAttribute('id')+new_key;
389 selects[0].setAttribute('id',id_input);
390 selects[0].setAttribute('name',selects[0].getAttribute('name')+new_key);
391 }catch(e2){ // it is a textarea if it s not a select or an input
392 var textaeras = divs[i].getElementsByTagName('textarea');
393 id_input = textaeras[0].getAttribute('id')+new_key;
394 textaeras[0].setAttribute('id',id_input);
395 textaeras[0].setAttribute('name',textaeras[0].getAttribute('name')+new_key);
399 <!-- TMPL_UNLESS NAME='advancedMARCEditor'-->
400 // when cloning a subfield, re set its label too.
401 var labels = divs[i].getElementsByTagName('label');
402 labels[0].setAttribute('for',id_input);
403 <!-- /TMPL_UNLESS -->
405 <!-- TMPL_UNLESS NAME='hide_marc'-->
406 // updating javascript parameters on button up
407 var imgs = divs[i].getElementsByTagName('img');
408 imgs[0].setAttribute('onclick',"upSubfield(\'"+divs[i].getAttribute('id')+"\');");
409 <!-- /TMPL_UNLESS -->
411 // setting its '+' and '-' buttons
413 var anchors = divs[i].getElementsByTagName('a');
414 for (var j = 0; j < anchors.length; j++) {
415 if(anchors[j].getAttribute('class') == 'buttonPlus'){
416 anchors[j].setAttribute('onclick',"CloneSubfield('" + divs[i].getAttribute('id') + "')");
417 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
418 anchors[j].setAttribute('onclick',"UnCloneField('" + divs[i].getAttribute('id') + "')");
423 // do nothig if ButtonPlus & CloneButtonPlus don t exist.
429 spans = divs[i].getElementsByTagName('a');
435 if(!CloneButtonPlus){ // it s impossible to have + ... (buttonDot AND buttonPlus)
436 buttonDot = spans[0];
440 var buttonDotOnClick = buttonDot.getAttribute('onclick');
441 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
442 var re = /\('.*'\)/i;
443 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+inputs[1].getAttribute('id')+"')");
444 if(buttonDotOnClick){
445 buttonDot.setAttribute('onclick',buttonDotOnClick);
448 if(buttonDotOnClick.match('Dopop')) { // -2- It's a auth value
449 var re1 = /&index=.*',/;
452 buttonDotOnClick = buttonDotOnClick.replace(re1,"&index="+inputs[1].getAttribute('id')+"',");
453 buttonDotOnClick = buttonDotOnClick.replace(re2,",'"+inputs[1].getAttribute('id')+"')");
455 if(buttonDotOnClick){
456 buttonDot.setAttribute('onclick',buttonDotOnClick);
461 // do not copy the script section.
462 var script = spans[0].getElementsByTagName('script')[0];
463 spans[0].removeChild(script);
465 // do nothing if there is no script
471 <!-- TMPL_UNLESS NAME='hide_marc'-->
472 var buttonUp = divs[i].getElementsByTagName('img')[0];
473 buttonUp.setAttribute('onclick',"upSubfield('" + divs[i].getAttribute('id') + "')");
474 <!-- /TMPL_UNLESS -->
476 } else { // it's a indicator div
477 if(divs[i].getAttribute('id').match(/^div_indicator/)){
478 var inputs = divs[i].getElementsByTagName('input');
479 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
480 inputs[1].setAttribute('id',inputs[1].getAttribute('id')+new_key);
484 var anchors = divs[i].getElementsByTagName('a');
485 for (var j = 0; j < anchors.length; j++) {
486 if (anchors[j].getAttribute('class') == 'buttonPlus') {
487 anchors[j].setAttribute('onclick',"CloneField('" + new_id + "')");
488 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
489 anchors[j].setAttribute('onclick',"UnCloneField('" + new_id + "')");
490 } else if (anchors[j].getAttribute('class') == 'expandfield') {
491 anchors[j].setAttribute('onclick',"ExpandField('" + new_id + "')");
496 // do nothig CloneButtonPlus doesn't exist.
503 // insert this line on the page
504 original.parentNode.insertBefore(clone,original.nextSibling);
507 function CloneSubfield(index){
508 var original = document.getElementById(index); //original <div>
509 fields_in_use[index.substr(0, 12)]++;
510 var clone = original.cloneNode(true);
511 var new_key = CreateKey();
512 var new_id = original.getAttribute('id')+new_key;
513 // set the attribute for the new 'div' subfields
514 var inputs = clone.getElementsByTagName('input');
515 var selects = clone.getElementsByTagName('select');
516 var textareas = clone.getElementsByTagName('textarea');
521 for(var i=0,len=inputs.length; i<len ; i++ ){
522 id_input = inputs[i].getAttribute('id')+new_key;
523 inputs[i].setAttribute('id',id_input);
524 inputs[i].setAttribute('name',inputs[i].getAttribute('name')+new_key);
529 for(var i=0,len=selects.length; i<len ; i++ ){
530 id_input = selects[i].getAttribute('id')+new_key;
531 selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
532 selects[i].setAttribute('name',selects[i].getAttribute('name')+new_key);
536 for(var i=0,len=textareas.length; i<len ; i++ ){
537 id_input = textareas[i].getAttribute('id')+new_key;
538 textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
539 textareas[i].setAttribute('name',textareas[i].getAttribute('name')+new_key);
542 // Changing the "..." link's onclick attribute for plugin callback
543 var links = clone.getElementsByTagName('a');
545 var buttonDotOnClick = link.getAttribute('onclick');
546 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
547 var re = /\('.*'\)/i;
548 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+linkid+"')");
549 if(buttonDotOnClick){
550 link.setAttribute('onclick',buttonDotOnClick);
555 <!-- TMPL_UNLESS NAME='advancedMARCEditor' -->
556 // when cloning a subfield, reset its label too.
557 var label = clone.getElementsByTagName('label')[0];
558 label.setAttribute('for',id_input);
559 <!-- /TMPL_UNLESS -->
561 // setting a new id for the parent div
562 clone.setAttribute('id',new_id);
565 var buttonUp = clone.getElementsByTagName('img')[0];
566 buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
567 var anchors = clone.getElementsByTagName('a');
569 for(var i = 0 ,lenanchors = anchors.length ; i < lenanchors ; i++){
570 if(anchors[i].getAttribute('class') == 'buttonPlus'){
571 anchors[i].setAttribute('onclick',"CloneSubfield('" + new_id + "')");
572 } else if (anchors[i].getAttribute('class') == 'buttonMinus') {
573 anchors[i].setAttribute('onclick',"UnCloneField('" + new_id + "')");
579 // do nothig if ButtonPlus & CloneButtonPlus don't exist.
581 // insert this line on the page
582 original.parentNode.insertBefore(clone,original.nextSibling);
586 * This function removes or clears unwanted subfields
588 function UnCloneField(index) {
589 var original = document.getElementById(index);
591 if (index.match("tag")) {
592 field_id = index.substr(0, 7);
594 field_id = index.substr(0, 12);
596 if (1 == fields_in_use[field_id]) {
597 // clear inputs, but don't delete
598 $(":input.input_marceditor", original).each(function(){
599 // thanks to http://www.learningjquery.com/2007/08/clearing-form-data for
600 // hint about clearing selects correctly
601 var type = this.type;
602 var tag = this.tagName.toLowerCase();
603 if (type == 'text' || type == 'password' || tag == 'textarea') {
605 } else if (type == 'checkbox' || type == 'radio') {
606 this.checked = false;
607 } else if (tag == 'select') {
608 this.selectedIndex = -1;
611 $(":input.indicator", original).val("");
613 original.parentNode.removeChild(original);
614 fields_in_use[field_id]--;
619 * This function create a random number
621 function CreateKey(){
622 return parseInt(Math.random() * 100000);
626 * This function allows to move a subfield up by clickink on the 'up' button .
628 function upSubfield(index) {
630 var line = document.getElementById(index); // get the line where the user has clicked.
632 return; // this line doesn't exist...
634 var tag = line.parentNode; // get the dad of this line. (should be "<div id='tag_...'>")
636 // getting all subfields for this tag
637 var subfields = tag.getElementsByTagName('div');
638 var subfieldsLength = subfields.length;
640 if(subfieldsLength<=1) return; // nothing to do if there is just one subfield.
642 // among all subfields
643 for(var i=0;i<subfieldsLength;i++){
644 if(subfields[i].getAttribute('id') == index){ //looking for the subfield which is clicked :
645 if(i==1){ // if the clicked subfield is on the top
646 tag.appendChild(subfields[1]);
649 var lineAbove = subfields[i-1];
650 tag.insertBefore(line,lineAbove);
657 function unHideSubfield(index,labelindex) { // FIXME :: is it used ?
658 subfield = document.getElementById(index);
659 subfield.style.display = 'block';
660 label = document.getElementById(labelindex);
661 label.style.display='none';
665 <link type="text/css" rel="stylesheet" href="<!-- TMPL_VAR NAME="themelang" -->/css/addbiblio.css" />
668 <div id="yui-cms-loading">
669 <div id="yui-cms-float">
670 Loading, please wait...
673 <script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/yui/plugins/loading-min.js"></script>
674 <script type="text/javascript">
677 // configuring the loading mask
678 YAHOO.widget.Loading.config({
684 <!-- TMPL_INCLUDE NAME="header.inc" -->
685 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › <!-- TMPL_IF NAME="biblionumber" -->Editing <em><!-- TMPL_VAR NAME="title" escape="html" --></em> (Record Number <!-- TMPL_VAR name="biblionumber" -->)<!-- TMPL_ELSE -->Add MARC Record<!-- /TMPL_IF --></div>
687 <div id="doc" class="yui-t7">
695 <h1><!-- TMPL_IF NAME="biblionumber" -->Editing <em><!-- TMPL_VAR NAME="title" escape="html" --></em> (Record Number <!-- TMPL_VAR name="biblionumber" -->)</h1><!-- TMPL_ELSE -->Add MARC Record</h1><!-- /TMPL_IF -->
696 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" onclick="toggleMARCDocs(this.checked)"/> Show MARC tag documentation links<br/></div>
698 <!-- TMPL_UNLESS name="number" -->
699 <!-- show duplicate warning on tab 0 only -->
700 <!-- TMPL_IF name="duplicatebiblionumber" -->
701 <div class="dialog alert">
702 <h4>Duplicate Record suspected</h4>
703 <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR name="duplicatebiblionumber" -->" onclick="openWindow('../MARCdetail.pl?biblionumber=<!-- TMPL_VAR name="duplicatebiblionumber" -->&popup=1', 'Duplicate biblio'; return false;)"><!-- TMPL_VAR name="duplicatetitle" --></a>?</p>
704 <!-- TMPL_IF NAME="CAN_user_editcatalogue_edit_items" --><form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
705 <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR name="duplicatebiblionumber" -->" />
706 <input type="submit" class="edit" value="Yes: Edit existing items" />
707 </form><!-- TMPL_ELSE --><form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
708 <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR name="duplicatebiblionumber" -->" />
709 <input type="submit" value="Yes: View existing items" />
710 </form><!-- /TMPL_IF -->
711 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
712 <!-- TMPL_IF NAME="CAN_user_editcatalogue_edit_items" --><input type="button" class="save" onclick="confirmnotdup('items'); return false;" value="No: Save as New Record" /><!-- TMPL_ELSE --><input type="button" class="save" onclick="confirmnotdup('view'); return false;" value="No: Save as New Record" /><!-- /TMPL_IF -->
716 <!-- /TMPL_UNLESS -->
718 <!--TMPL_IF Name="done"-->
719 <script type="text/javascript">
720 opener.document.forms['f'].biblionumber.value=<!--TMPL_VAR Name="biblionumber"-->;
721 opener.document.forms['f'].title.value='<!--TMPL_VAR Name="title" ESCAPE="HTML"-->';
725 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
726 <input type="hidden" value="<!-- tmpl_if name="biblionumber" -->view<!-- tmpl_else -->items<!-- /tmpl_if -->" id="redirect" name="redirect" />
727 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
732 <script type="text/javascript">
735 // prepare DOM for YUI Toolbar
737 $(document).ready(function() {
738 $("#z3950searchc").empty();
739 $("#savebutton").empty();
743 function redirect(dest){
744 $("#redirect").attr("value",dest);
747 <!-- TMPL_IF NAME="CAN_user_editcatalogue_edit_items" -->
748 var onOption = function () {
753 { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
754 { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
758 // YUI Toolbar Functions
760 function yuiToolbar() {
761 <!-- TMPL_IF NAME="CAN_user_editcatalogue_edit_items" -->
762 var savesplitmenu = new YAHOO.widget.Button({
766 name: "savemenubutton",
768 container: "savebutton"
771 savesplitmenu.on("click", onOption);
773 new YAHOO.widget.Button({
777 container: "savebutton",
778 onclick: {fn:function(){redirect("view");}}
781 new YAHOO.widget.Button({
784 label: _("Z39.50 Search"),
785 container: "z3950searchc",
786 onclick: {fn:function(){PopupZ3950()}}
794 <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
795 <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
796 <li id="changeframework"><label for="Frameworks">Change framework: </label>
797 <select name="Frameworks" id="Frameworks" onchange="Changefwk(this);">
798 <option value="Default">Default</option>
799 <!-- TMPL_LOOP NAME="frameworkcodeloop" -->
800 <option value="<!-- TMPL_VAR NAME="value"-->" <!-- TMPL_VAR NAME="selected" -->>
801 <!-- TMPL_VAR NAME="frameworktext" -->
805 <input type="hidden" name="op" value="addbiblio" /></li>
809 <!--TMPL_IF Name="popup"-->
810 <input type="hidden" name="mode" value="popup" />
812 <input type="hidden" name="frameworkcode" value="<!-- TMPL_VAR NAME="frameworkcode" -->" />
813 <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
814 <input type="hidden" name="breedingid" value="<!-- TMPL_VAR NAME="breedingid" -->" />
816 <div id="addbibliotabs" class="toptabs numbered">
817 <ul><!-- TMPL_LOOP name="BIG_LOOP" -->
818 <li> <!-- TMPL_IF name="number" -->
819 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab<!-- TMPL_VAR name="number" -->XX"><!-- TMPL_VAR name="number"--></a>
821 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab<!-- TMPL_VAR name="number" -->XX"><!-- TMPL_VAR name="number"--></a>
822 <!-- /TMPL_IF --></li>
823 <!-- /TMPL_LOOP --></ul>
825 <!-- TMPL_LOOP name="BIG_LOOP" -->
826 <!-- hide every tab except the 1st -->
827 <!-- TMPL_IF name="number" -->
828 <div id="tab<!-- TMPL_VAR name="number" -->XX">
830 <div id="tab<!-- TMPL_VAR name="number" -->XX">
834 <!-- TMPL_LOOP NAME="innerloop" -->
835 <!-- TMPL_IF NAME="tag" -->
836 <div class="tag" id="tag_<!-- TMPL_VAR name="tag"-->_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->">
837 <div class="tag_title" id="div_indicator_tag_<!-- TMPL_VAR name="tag"-->_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->">
838 <!-- TMPL_UNLESS name="hide_marc" -->
839 <!-- TMPL_IF NAME="advancedMARCEditor" -->
840 <a href="#" tabindex="1" class="tagnum" title="<!-- TMPL_VAR NAME="tag_lib"--> - Click to Expand this Tag" onclick="ExpandField('tag_<!-- TMPL_VAR NAME="tag"-->_<!-- TMPL_VAR NAME='index' --><!-- TMPL_VAR NAME="random" -->'); return false;"><!-- TMPL_VAR NAME="tag" --></a>
842 <span class="tagnum" title="<!-- TMPL_VAR NAME="tag_lib" -->"><!-- TMPL_VAR NAME="tag" --><a class="marcdocs"
843 onclick="PopupMARCFieldDoc('<!-- TMPL_VAR NAME="tag" -->', <!-- TMPL_VAR NAME="number" -->); return false;"> ?</a></span>
845 <!-- TMPL_IF NAME="fixedfield" -->
846 <input tabindex="1" class="indicator flat" type="text" style="display:none;" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator1_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" size="1" maxlength="1" value="<!-- TMPL_VAR NAME="indicator1" -->" />
847 <input tabindex="1" class="indicator flat" type="text" style="display:none;" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator2_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" size="1" maxlength="1" value="<!-- TMPL_VAR NAME="indicator2" -->" />
849 <input tabindex="1" class="indicator flat" type="text" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator1_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" size="1" maxlength="1" value="<!-- TMPL_VAR NAME="indicator1" -->" />
850 <input tabindex="1" class="indicator flat" type="text" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator2_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" size="1" maxlength="1" value="<!-- TMPL_VAR NAME="indicator2" -->" />
853 <!-- TMPL_IF NAME="fixedfield" -->
854 <input tabindex="1" type="hidden" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator1_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" value="<!-- TMPL_VAR NAME="indicator1" -->" />
855 <input tabindex="1" type="hidden" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator2_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" value="<!-- TMPL_VAR NAME="indicator2" -->" />
857 <input tabindex="1" type="hidden" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator1_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" value="<!-- TMPL_VAR NAME="indicator1" -->" />
858 <input tabindex="1" type="hidden" name="tag_<!-- TMPL_VAR NAME="tag" -->_indicator2_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->" value="<!-- TMPL_VAR NAME="indicator2" -->" />
860 <!-- /TMPL_UNLESS -->
862 <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
863 <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_<!-- TMPL_VAR name="tag"-->_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->'); return false;" title="Click to Expand this Tag"><!-- TMPL_VAR NAME="tag_lib" --></a>
864 <!-- /TMPL_UNLESS -->
865 <!-- TMPL_IF name="repeatable" -->
866 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_<!-- TMPL_VAR name="tag"-->_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->'); return false;" title="Repeat this Tag">+</a>
868 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_<!-- TMPL_VAR name="tag"-->_<!-- TMPL_VAR NAME='index'--><!-- TMPL_VAR name="random" -->'); return false;" title="Delete this Tag">−</a>
872 <!-- TMPL_LOOP NAME="subfield_loop" -->
873 <!-- One line on the marc editor -->
874 <div class="subfield_line" style="<!-- TMPL_VAR NAME='visibility' -->; float: left; clear: left; width: 100%;" id="subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->">
876 <!--TMPL_UNLESS NAME="advancedMARCEditor" -->
877 <label for="tag_<!-- TMPL_VAR NAME='tag'-->_subfield_<!-- TMPL_VAR NAME='subfield'-->_<!-- TMPL_VAR NAME='index'-->_<!-- TMPL_VAR NAME='index_subfield'-->" <!-- TMPL_IF NAME="fixedfield" --> style="display:none;" <!-- /TMPL_IF --> class="labelsubfield">
878 <!-- /TMPL_UNLESS -->
880 <!-- TMPL_UNLESS name="hide_marc" -->
881 <span class="subfieldcode"><!-- TMPL_IF NAME="fixedfield" -->
882 <img class="buttonUp" style="display:none;" src="<!-- TMPL_VAR NAME="themelang" -->/../img/up.png" onclick="upSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')" alt="Move Up" title="Move Up" />
884 <img class="buttonUp" src="<!-- TMPL_VAR NAME="themelang" -->/../img/up.png" onclick="upSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')" alt="Move Up" title="Move Up" />
886 <input title="<!-- TMPL_VAR NAME='marc_lib_plain' -->" style=" <!-- TMPL_IF NAME="fixedfield" -->display:none; <!-- /TMPL_IF -->border:0;" type="text" tabindex="0" name="tag_<!-- TMPL_VAR NAME='tag'-->_code_<!-- TMPL_VAR NAME='subfield'-->_<!-- TMPL_VAR NAME='index'-->_<!-- TMPL_VAR NAME='index_subfield'-->" value="<!-- TMPL_VAR NAME="subfield" -->" size="1" maxlength="1" class="flat" />
889 <input type="hidden" name="tag_<!-- TMPL_VAR NAME='tag'-->_code_<!-- TMPL_VAR NAME='subfield'-->_<!-- TMPL_VAR NAME='index'-->_<!-- TMPL_VAR NAME='index_subfield'-->" value="<!-- TMPL_VAR NAME="subfield" -->" />
891 <!-- /TMPL_UNLESS -->
893 <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
894 <!-- TMPL_IF name="mandatory" --><span class="subfield subfield_mandatory"><!-- TMPL_ELSE --><span class="subfield"><!-- /TMPL_IF -->
895 <!-- TMPL_VAR NAME="marc_lib_plain" -->
896 <!-- TMPL_IF NAME="mandatory" --><span class="mandatory_marker" title="This field is mandatory">*</span><!-- /TMPL_IF -->
899 <!-- /TMPL_UNLESS -->
901 <!-- TMPL_VAR NAME="marc_value" -->
903 <!-- TMPL_IF NAME="repeatable" -->
904 <span class="subfield_controls"><a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->'); return false;"><img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /></a>
905 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->'); return false;"><img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /></a></span>
910 <!-- End of the line -->
914 <!-- /TMPL_IF --><!-- tag -->
925 <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->