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">
9 var fields_in_use = {};
10 $(document).ready(function() {
11 $('#addbibliotabs > ul').tabs().bind('show.ui-tabs', function(e, ui) {
12 $("#"+ui.panel.id+" input:eq(0)").focus();
14 $('.tag').each(function() {
15 var field_id = this.getAttribute('id').substring(0, 7);
16 if (field_id in fields_in_use) {
17 fields_in_use[field_id]++;
19 fields_in_use[field_id] = 1;
22 $('.subfield_line').each(function() {
23 var field_id = this.getAttribute('id').substring(0, 12);
24 if (field_id in fields_in_use) {
25 fields_in_use[field_id]++;
27 fields_in_use[field_id] = 1;
30 /* check cookie to hide/show marcdocs*/
31 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
33 $("#marcDocsSelect").attr('checked',false);
35 /* reset cookie expire date */
36 $.cookie("marcdocs_[% borrowernumber %]",'true',
37 { path: "/", expires: 365 });
42 $('#header_search > ul').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); });
45 function confirmnotdup(redirect){
46 $("#confirm_not_duplicate").attr("value","1");
47 $("#redirect").attr("value",redirect);
56 var StrAlert = AreMandatoriesNotOk();
66 function Dopop(link,i) {
67 defaultvalue = document.getElementById(i).value;
68 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
72 * this function open a popup to search on z3950 server.
74 function PopupZ3950() {
75 var strQuery = GetZ3950Terms();
77 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');
81 function PopupMARCFieldDoc(field, blocknumber) {
82 [% IF ( marcflavour == 'MARC21' ) %]
83 _MARC21FieldDoc(field);
84 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
85 _UNIMARCFieldDoc(field, blocknumber);
89 function _MARC21FieldDoc(field) {
91 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
92 } else if (field < 900) {
93 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
95 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
99 function _UNIMARCFieldDoc(field, blocknumber) {
100 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
101 seems to be the only version available that can be linked to per tag. More recent
102 versions of the UNIMARC standard are available on the IFLA website only as
106 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
107 } else if (field < 100) {
108 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
109 } else if (field < 900) {
110 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
112 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
117 * Functions to hide/show marc docs links
119 function hideMARCdocLinks() {
120 $(".marcdocs").hide();
121 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
124 function showMARCdocLinks() {
125 $(".marcdocs").show();
126 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
130 * check if mandatory subfields are written
132 function AreMandatoriesNotOk(){
133 var mandatories = new Array();
134 var mandatoriesfields = new Array();
135 var tab = new Array();
136 var label = new Array();
138 var tabflag= new Array();
139 [% FOREACH BIG_LOO IN BIG_LOOP %]
140 [% FOREACH innerloo IN BIG_LOO.innerloop %]
141 [% IF ( innerloo.mandatory ) %]
142 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
144 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
145 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
146 tab.push("[% BIG_LOO.number %]");
147 label.push("[% subfield_loo.marc_lib %]");
152 var StrAlert = _("Can't save this record because the following field aren't filled:");
154 for(var i=0,len=mandatories.length; i<len ; i++){
155 var tag=mandatories[i].substr(4,3);
156 var subfield=mandatories[i].substr(17,1);
157 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
158 if (tabflag[tag+subfield+tagnumber] == null) {
159 tabflag[tag+subfield+tagnumber]=new Array();
160 tabflag[tag+subfield+tagnumber][0]=0;
162 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
163 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
164 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
165 $('#' + mandatories[i]).focus();
166 tabflag[tag+subfield+tagnumber][1]=label[i];
167 tabflag[tag+subfield+tagnumber][2]=tab[i];
169 tabflag[tag+subfield+tagnumber][0] = 1;
172 for (var tagsubfieldid in tabflag){
173 if (tabflag[tagsubfieldid][0]==0){
174 var tag=tagsubfieldid.substr(0,3);
175 var subfield=tagsubfieldid.substr(3,1);
176 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
177 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
182 /* Check for mandatories field(not subfields) */
183 for(var i=0,len=mandatoriesfields.length; i<len; i++){
185 arr = mandatoriesfields[i];
186 divid = "tag_" + arr[0] + "_" + arr[1];
187 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
189 if(parseInt(arr[0]) >= 10){
190 elem = document.getElementById(divid);
191 eleminputs = elem.getElementsByTagName('input');
193 for(var j=0,len2=eleminputs.length; j<len2; j++){
195 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
196 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
198 for( var k=0; k<len2; k++){
199 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
204 elemselect = elem.getElementsByTagName('select');
205 for( var k=0; k<elemselect.length; k++){
206 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
213 elemtextareas = elem.getElementsByTagName('textarea');
214 for(var j=0,len2=elemtextareas.length; j<len2; j++){
215 // this bit assumes that the only textareas in this context would be for subfields
216 if (elemtextareas[j].value) {
226 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
239 * check if z3950 mandatories are set or not
241 function GetZ3950Terms(){
242 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
243 var mandatories = new Array();
244 var mandatories_label = new Array();
245 [% 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 %]");
246 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
248 for(var i=0,len=mandatories.length; i<len ; i++){
249 var field_value = document.getElementById(mandatories[i]).value;
251 strQuery += "&"+mandatories_label[i]+"="+field_value;
257 function Changefwk(FwkList) {
263 // returns the subfieldcode based upon subfieldid writing
264 function getSubfieldcode(tagsubfieldid){
265 // 3 : tag +3 : tagnumber +4 : number of _ +8 subfield -1 begins at 0
266 return tagsubfieldid.substr(3+3+4+8-1,1);
269 // Take the base of tagsubfield information (removing the subfieldcodes and subfieldindexes)
270 // returns the filter
271 function getTagInputnameFilter(tagsubfieldid){
272 var tagsubfield=tagsubfieldid.substr(0,tagsubfieldid.lastIndexOf("_"));
273 var tagcode=tagsubfield.substr(tagsubfield.lastIndexOf("_"));
274 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
275 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
276 tagsubfield=tagsubfield+"_."+tagcode;
280 function openAuth(tagsubfieldid,authtype) {
281 // let's take the base of tagsubfield information (removing the indexes and the codes
282 var element=document.getElementById(tagsubfieldid);
283 var tagsubfield=getTagInputnameFilter(tagsubfieldid);
284 var elementsubfcode=getSubfieldcode(element.name);
285 var mainmainstring=element.value;
287 var inputs = element.parentNode.parentNode.getElementsByTagName("input");
289 for (var myindex =0; myindex<inputs.length;myindex++){
290 if (inputs[myindex].name && inputs[myindex].name.match(tagsubfield)){
291 var subfieldcode=getSubfieldcode(inputs[myindex].name);
292 if (isNaN(parseInt(subfieldcode)) && inputs[myindex].value != "" && subfieldcode!=elementsubfcode){
293 mainstring=inputs[myindex].value+" "+mainstring;
297 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');
301 function ExpandField(index) {
302 var original = document.getElementById(index); //original <div>
303 var divs = original.getElementsByTagName('div');
304 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
305 if(divs[i].getAttribute('id').match(/^subfield/)){ // if it s a subfield
306 if (divs[i].style.display == 'block') {
307 divs[i].style.display = 'none';
309 divs[i].style.display = 'block';
316 * To clone a field or a subfield by clicking on '+' button
318 function CloneField(index) {
319 var original = document.getElementById(index); //original <div>
320 fields_in_use[index.substr(0, 7)]++;
321 var clone = original.cloneNode(true);
322 var new_key = CreateKey();
323 var new_id = original.getAttribute('id')+new_key;
325 clone.setAttribute('id',new_id); // setting a new id for the parent div
327 var divs = clone.getElementsByTagName('div');
329 [% UNLESS ( hide_marc ) %] // No indicator if hide_marc
330 // setting a new name for the new indicator
331 for(var i=0; i < 2; i++) {
332 var indicator = clone.getElementsByTagName('input')[i];
333 indicator.setAttribute('name',indicator.getAttribute('name')+new_key);
337 // settings all subfields
338 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
339 if(divs[i].getAttribute("id").match(/^subfield/)){ // if it s a subfield
341 // set the attribute for the new 'div' subfields
342 divs[i].setAttribute('id',divs[i].getAttribute('id')+new_key);
344 var inputs = divs[i].getElementsByTagName('input');
347 for( j = 0 ; j < inputs.length ; j++ ) {
348 if(inputs[j].getAttribute("id") && inputs[j].getAttribute("id").match(/^tag_/) ){
349 inputs[j].value = "";
353 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
354 inputs[0].setAttribute('name',inputs[0].getAttribute('name')+new_key);
357 id_input = inputs[1].getAttribute('id')+new_key;
358 inputs[1].setAttribute('id',id_input);
359 inputs[1].setAttribute('name',inputs[1].getAttribute('name')+new_key);
361 try{ // it s a select if it is not an input
362 var selects = divs[i].getElementsByTagName('select');
363 id_input = selects[0].getAttribute('id')+new_key;
364 selects[0].setAttribute('id',id_input);
365 selects[0].setAttribute('name',selects[0].getAttribute('name')+new_key);
366 }catch(e2){ // it is a textarea if it s not a select or an input
367 var textaeras = divs[i].getElementsByTagName('textarea');
368 id_input = textaeras[0].getAttribute('id')+new_key;
369 textaeras[0].setAttribute('id',id_input);
370 textaeras[0].setAttribute('name',textaeras[0].getAttribute('name')+new_key);
374 [% UNLESS ( advancedMARCEditor ) %]
375 // when cloning a subfield, re set its label too.
376 var labels = divs[i].getElementsByTagName('label');
377 labels[0].setAttribute('for',id_input);
380 [% UNLESS ( hide_marc ) %]
381 // updating javascript parameters on button up
382 var imgs = divs[i].getElementsByTagName('img');
383 imgs[0].setAttribute('onclick',"upSubfield(\'"+divs[i].getAttribute('id')+"\');");
386 // setting its '+' and '-' buttons
388 var anchors = divs[i].getElementsByTagName('a');
389 for (var j = 0; j < anchors.length; j++) {
390 if(anchors[j].getAttribute('class') == 'buttonPlus'){
391 anchors[j].setAttribute('onclick',"CloneSubfield('" + divs[i].getAttribute('id') + "')");
392 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
393 anchors[j].setAttribute('onclick',"UnCloneField('" + divs[i].getAttribute('id') + "')");
398 // do nothig if ButtonPlus & CloneButtonPlus don t exist.
404 spans = divs[i].getElementsByTagName('a');
410 if(!CloneButtonPlus){ // it s impossible to have + ... (buttonDot AND buttonPlus)
411 buttonDot = spans[0];
415 var buttonDotOnClick = buttonDot.getAttribute('onclick');
416 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
417 var re = /\('.*'\)/i;
418 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+inputs[1].getAttribute('id')+"')");
419 if(buttonDotOnClick){
420 buttonDot.setAttribute('onclick',buttonDotOnClick);
423 if(buttonDotOnClick.match('Dopop')) { // -2- It's a auth value
424 var re1 = /&index=.*',/;
427 buttonDotOnClick = buttonDotOnClick.replace(re1,"&index="+inputs[1].getAttribute('id')+"',");
428 buttonDotOnClick = buttonDotOnClick.replace(re2,",'"+inputs[1].getAttribute('id')+"')");
430 if(buttonDotOnClick){
431 buttonDot.setAttribute('onclick',buttonDotOnClick);
436 // do not copy the script section.
437 var script = spans[0].getElementsByTagName('script')[0];
438 spans[0].removeChild(script);
440 // do nothing if there is no script
446 [% UNLESS ( hide_marc ) %]
447 var buttonUp = divs[i].getElementsByTagName('img')[0];
448 buttonUp.setAttribute('onclick',"upSubfield('" + divs[i].getAttribute('id') + "')");
451 } else { // it's a indicator div
452 if(divs[i].getAttribute('id').match(/^div_indicator/)){
453 var inputs = divs[i].getElementsByTagName('input');
454 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
455 inputs[1].setAttribute('id',inputs[1].getAttribute('id')+new_key);
459 var anchors = divs[i].getElementsByTagName('a');
460 for (var j = 0; j < anchors.length; j++) {
461 if (anchors[j].getAttribute('class') == 'buttonPlus') {
462 anchors[j].setAttribute('onclick',"CloneField('" + new_id + "')");
463 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
464 anchors[j].setAttribute('onclick',"UnCloneField('" + new_id + "')");
465 } else if (anchors[j].getAttribute('class') == 'expandfield') {
466 anchors[j].setAttribute('onclick',"ExpandField('" + new_id + "')");
471 // do nothig CloneButtonPlus doesn't exist.
478 // insert this line on the page
479 original.parentNode.insertBefore(clone,original.nextSibling);
482 function CloneSubfield(index){
483 var original = document.getElementById(index); //original <div>
484 fields_in_use[index.substr(0, 12)]++;
485 var clone = original.cloneNode(true);
486 var new_key = CreateKey();
487 var new_id = original.getAttribute('id')+new_key;
488 // set the attribute for the new 'div' subfields
489 var inputs = clone.getElementsByTagName('input');
490 var selects = clone.getElementsByTagName('select');
491 var textareas = clone.getElementsByTagName('textarea');
496 for(var i=0,len=inputs.length; i<len ; i++ ){
497 id_input = inputs[i].getAttribute('id')+new_key;
498 inputs[i].setAttribute('id',id_input);
499 inputs[i].setAttribute('name',inputs[i].getAttribute('name')+new_key);
504 for(var i=0,len=selects.length; i<len ; i++ ){
505 id_input = selects[i].getAttribute('id')+new_key;
506 selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
507 selects[i].setAttribute('name',selects[i].getAttribute('name')+new_key);
511 for(var i=0,len=textareas.length; i<len ; i++ ){
512 id_input = textareas[i].getAttribute('id')+new_key;
513 textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
514 textareas[i].setAttribute('name',textareas[i].getAttribute('name')+new_key);
517 // Changing the "..." link's onclick attribute for plugin callback
518 var links = clone.getElementsByTagName('a');
520 var buttonDotOnClick = link.getAttribute('onclick');
521 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
522 var re = /\('.*'\)/i;
523 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+linkid+"')");
524 if(buttonDotOnClick){
525 link.setAttribute('onclick',buttonDotOnClick);
530 [% UNLESS ( advancedMARCEditor ) %]
531 // when cloning a subfield, reset its label too.
532 var label = clone.getElementsByTagName('label')[0];
533 label.setAttribute('for',id_input);
536 // setting a new id for the parent div
537 clone.setAttribute('id',new_id);
540 var buttonUp = clone.getElementsByTagName('img')[0];
541 buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
542 var anchors = clone.getElementsByTagName('a');
544 for(var i = 0 ,lenanchors = anchors.length ; i < lenanchors ; i++){
545 if(anchors[i].getAttribute('class') == 'buttonPlus'){
546 anchors[i].setAttribute('onclick',"CloneSubfield('" + new_id + "')");
547 } else if (anchors[i].getAttribute('class') == 'buttonMinus') {
548 anchors[i].setAttribute('onclick',"UnCloneField('" + new_id + "')");
554 // do nothig if ButtonPlus & CloneButtonPlus don't exist.
556 // insert this line on the page
557 original.parentNode.insertBefore(clone,original.nextSibling);
561 * This function removes or clears unwanted subfields
563 function UnCloneField(index) {
564 var original = document.getElementById(index);
566 if (index.match("tag")) {
567 field_id = index.substr(0, 7);
569 field_id = index.substr(0, 12);
571 if (1 == fields_in_use[field_id]) {
572 // clear inputs, but don't delete
573 $(":input.input_marceditor", original).each(function(){
574 // thanks to http://www.learningjquery.com/2007/08/clearing-form-data for
575 // hint about clearing selects correctly
576 var type = this.type;
577 var tag = this.tagName.toLowerCase();
578 if (type == 'text' || type == 'password' || tag == 'textarea') {
580 } else if (type == 'checkbox' || type == 'radio') {
581 this.checked = false;
582 } else if (tag == 'select') {
583 this.selectedIndex = -1;
586 $(":input.indicator", original).val("");
588 original.parentNode.removeChild(original);
589 fields_in_use[field_id]--;
594 * This function create a random number
596 function CreateKey(){
597 return parseInt(Math.random() * 100000);
601 * This function allows to move a subfield up by clickink on the 'up' button .
603 function upSubfield(index) {
605 var line = document.getElementById(index); // get the line where the user has clicked.
607 return; // this line doesn't exist...
609 var tag = line.parentNode; // get the dad of this line. (should be "<div id='tag_...'>")
611 // getting all subfields for this tag
612 var subfields = tag.getElementsByTagName('div');
613 var subfieldsLength = subfields.length;
615 if(subfieldsLength<=1) return; // nothing to do if there is just one subfield.
617 // among all subfields
618 for(var i=0;i<subfieldsLength;i++){
619 if(subfields[i].getAttribute('id') == index){ //looking for the subfield which is clicked :
620 if(i==1){ // if the clicked subfield is on the top
621 tag.appendChild(subfields[1]);
624 var lineAbove = subfields[i-1];
625 tag.insertBefore(line,lineAbove);
632 function unHideSubfield(index,labelindex) { // FIXME :: is it used ?
633 subfield = document.getElementById(index);
634 subfield.style.display = 'block';
635 label = document.getElementById(labelindex);
636 label.style.display='none';
640 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
642 <body id="cat_addbiblio" class="cat">
643 <div id="yui-cms-loading">
644 <div id="yui-cms-float">
645 Loading, please wait...
648 <script type="text/javascript" src="[% themelang %]/lib/yui/plugins/loading-min.js"></script>
649 <script type="text/javascript">
652 // configuring the loading mask
653 YAHOO.widget.Loading.config({
659 [% INCLUDE 'header.inc' %]
660 <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>
662 <div id="doc" class="yui-t7">
668 <h1>[% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])</h1>[% ELSE %]Add MARC record</h1>[% END %]
669 [% IF marcflavour != 'NORMARC' %]
670 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
673 [% UNLESS ( number ) %]
674 <!-- show duplicate warning on tab 0 only -->
675 [% IF ( duplicatebiblionumber ) %]
676 <div class="dialog alert">
677 <h4>Duplicate record suspected</h4>
678 <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]" onclick="openWindow('../MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]&popup=1', 'Duplicate biblio'; return false;)">[% duplicatetitle %]</a>?</p>
679 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
680 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
681 <input type="submit" class="edit" value="Yes: Edit existing items" />
682 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
683 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
684 <input type="submit" value="Yes: View existing items" />
686 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
687 [% 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 %]
694 <script type="text/javascript">
695 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
696 opener.document.forms['f'].title.value='[% title |html %]';
700 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
701 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
702 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
707 <script type="text/javascript">
710 // prepare DOM for YUI Toolbar
712 $(document).ready(function() {
713 $('#toolbar').fixFloat();
714 $("#z3950searchc").empty();
715 $("#savebutton").empty();
718 $("#marcDocsSelect").click(function(){
719 if($(this).attr("checked")){
727 function redirect(dest){
728 $("#redirect").attr("value",dest);
731 [% IF ( CAN_user_editcatalogue_edit_items ) %]
732 var onOption = function () {
737 { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
738 { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
742 // YUI Toolbar Functions
744 function yuiToolbar() {
745 [% IF ( CAN_user_editcatalogue_edit_items ) %]
746 var savesplitmenu = new YAHOO.widget.Button({
750 name: "savemenubutton",
752 container: "savebutton"
755 savesplitmenu.on("click", onOption);
757 new YAHOO.widget.Button({
761 container: "savebutton",
762 onclick: {fn:function(){redirect("view");}}
765 new YAHOO.widget.Button({
768 label: _("Z39.50 Search"),
769 container: "z3950searchc",
770 onclick: {fn:function(){PopupZ3950()}}
778 <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
779 <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
780 <li id="changeframework"><label for="Frameworks">Change framework: </label>
781 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
782 <option value="Default">Default</option>
783 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
784 [% IF ( frameworkcodeloo.selected ) %]
785 <option value="[% frameworkcodeloo.value %]" selected="selected">
787 <option value="[% frameworkcodeloo.value %]">
789 [% frameworkcodeloo.frameworktext %]
793 <input type="hidden" name="op" value="addbiblio" /></li>
798 <input type="hidden" name="mode" value="popup" />
800 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
801 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
802 <input type="hidden" name="breedingid" value="[% breedingid %]" />
804 <div id="addbibliotabs" class="toptabs numbered">
805 <ul>[% FOREACH BIG_LOO IN BIG_LOOP %]
806 <li> [% IF ( BIG_LOO.number ) %]
807 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
809 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
813 [% FOREACH BIG_LOO IN BIG_LOOP %]
814 <!-- hide every tab except the 1st -->
815 [% IF ( BIG_LOO.number ) %]
816 <div id="tab[% BIG_LOO.number %]XX">
818 <div id="tab[% BIG_LOO.number %]XX">
822 [% FOREACH innerloo IN BIG_LOO.innerloop %]
823 [% IF ( innerloo.tag ) %]
824 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
825 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
826 [% UNLESS hide_marc %]
827 [% IF advancedMARCEditor %]
828 <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>
830 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
831 [% IF marcflavour != 'NORMARC' %]<a class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
834 [% IF ( innerloo.fixedfield ) %]
835 <input tabindex="1" class="indicator flat" type="text" style="display:none;" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator1 %]" />
836 <input tabindex="1" class="indicator flat" type="text" style="display:none;" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator2 %]" />
838 <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator1 %]" />
839 <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator2 %]" />
842 [% IF ( innerloo.fixedfield ) %]
843 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
844 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
846 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
847 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
851 [% UNLESS advancedMARCEditor %]
852 <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>
854 [% IF ( innerloo.repeatable ) %]
855 <span class="subfield_controls"><a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Repeat this Tag"><img src="/intranet-tmpl/prog/img/repeat-tag.png" alt="Repeat this Tag" /></a>
857 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag"><img src="/intranet-tmpl/prog/img/delete-tag.png" alt="Delete this Tag" /></a></span>
862 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
863 <!-- One line on the marc editor -->
864 <div class="subfield_line" style="[% subfield_loo.visibility %]; float: left; clear: left; width: 100%;" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
866 [% UNLESS advancedMARCEditor %]
867 [% 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">
868 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">[% END %]
871 [% UNLESS hide_marc %]
872 <span class="subfieldcode">[% IF ( subfield_loo.fixedfield ) %]
873 <img class="buttonUp" style="display:none;" src="[% themelang %]/../img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
875 <img class="buttonUp" src="[% themelang %]/../img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
877 <input title="[% subfield_loo.marc_lib_plain %]" style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;" type="text" tabindex="0" name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" value="[% subfield_loo.subfield %]" size="1" maxlength="1" class="flat" />
880 <input type="hidden" name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" value="[% subfield_loo.subfield %]" />
884 [% UNLESS advancedMARCEditor %]
885 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
886 [% subfield_loo.marc_lib_plain %]
887 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
892 [% subfield_loo.marc_value %]
894 [% IF ( subfield_loo.repeatable ) %]
895 <span class="subfield_controls"><a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;"><img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /></a>
896 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;"><img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /></a></span>
901 <!-- End of the line -->
905 [% END %]<!-- tag -->
910 <!-- Fields for fast add cataloguing -->
911 <input type="hidden" name="barcode" value="[% barcode %]" />
912 <input type="hidden" name="branch" value="[% branch %]" />
913 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
914 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
915 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
916 <!-- /End of fast add fields -->
923 [% INCLUDE 'intranet-bottom.inc' %]