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">
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_[% borrowernumber %]") == 'false'){
32 $("#marcDocsSelect").attr('checked',false);
34 /* reset cookie expire date */
35 $.cookie("marcdocs_[% 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=[% biblionumber %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
80 function PopupMARCFieldDoc(field, blocknumber) {
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 hide/show marc docs links
118 function hideMARCdocLinks() {
119 $(".marcdocs").hide();
120 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
123 function showMARCdocLinks() {
124 $(".marcdocs").show();
125 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
129 * check if mandatory subfields are written
131 function AreMandatoriesNotOk(){
132 var mandatories = new Array();
133 var mandatoriesfields = new Array();
134 var tab = new Array();
135 var label = new Array();
137 var tabflag= new Array();
138 [% FOREACH BIG_LOO IN BIG_LOOP %]
139 [% FOREACH innerloo IN BIG_LOO.innerloop %]
140 [% IF ( innerloo.mandatory ) %]
141 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
143 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
144 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
145 tab.push("[% BIG_LOO.number %]");
146 label.push("[% subfield_loo.marc_lib %]");
151 var StrAlert = _("Can't save this record because the following field aren't filled:");
153 for(var i=0,len=mandatories.length; i<len ; i++){
154 var tag=mandatories[i].substr(4,3);
155 var subfield=mandatories[i].substr(17,1);
156 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
157 if (tabflag[tag+subfield+tagnumber] == null) {
158 tabflag[tag+subfield+tagnumber]=new Array();
159 tabflag[tag+subfield+tagnumber][0]=0;
161 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
162 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
163 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
164 $('#' + mandatories[i]).focus();
165 tabflag[tag+subfield+tagnumber][1]=label[i];
166 tabflag[tag+subfield+tagnumber][2]=tab[i];
168 tabflag[tag+subfield+tagnumber][0] = 1;
171 for (var tagsubfieldid in tabflag){
172 if (tabflag[tagsubfieldid][0]==0){
173 var tag=tagsubfieldid.substr(0,3);
174 var subfield=tagsubfieldid.substr(3,1);
175 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
176 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
181 /* Check for mandatories field(not subfields) */
182 for(var i=0,len=mandatoriesfields.length; i<len; i++){
184 arr = mandatoriesfields[i];
185 divid = "tag_" + arr[0] + "_" + arr[1];
186 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
188 if(parseInt(arr[0]) >= 10){
189 elem = document.getElementById(divid);
190 eleminputs = elem.getElementsByTagName('input');
192 for(var j=0,len2=eleminputs.length; j<len2; j++){
194 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
195 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
197 for( var k=0; k<len2; k++){
198 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
203 elemselect = elem.getElementsByTagName('select');
204 for( var k=0; k<elemselect.length; k++){
205 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
212 elemtextareas = elem.getElementsByTagName('textarea');
213 for(var j=0,len2=elemtextareas.length; j<len2; j++){
214 // this bit assumes that the only textareas in this context would be for subfields
215 if (elemtextareas[j].value) {
225 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
238 * check if z3950 mandatories are set or not
240 function GetZ3950Terms(){
241 var strQuery="&frameworkcode="+document.forms['f'].frameworkcode.value;
242 var mandatories = new Array();
243 var mandatories_label = new Array();
244 [% 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 %]");
245 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
247 for(var i=0,len=mandatories.length; i<len ; i++){
248 var field_value = document.getElementById(mandatories[i]).value;
250 strQuery += "&"+mandatories_label[i]+"="+field_value;
256 function Changefwk(FwkList) {
257 var fwk = FwkList.options[FwkList.selectedIndex].value;
258 window.location = "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumberdata %]&op=[% op %]&breedingid=[% breedingid %]&mode=[% popup %]&frameworkcode="+fwk;
262 // returns the subfieldcode based upon subfieldid writing
263 function getSubfieldcode(tagsubfieldid){
264 // 3 : tag +3 : tagnumber +4 : number of _ +8 subfield -1 begins at 0
265 return tagsubfieldid.substr(3+3+4+8-1,1);
268 // Take the base of tagsubfield information (removing the subfieldcodes and subfieldindexes)
269 // returns the filter
270 function getTagInputnameFilter(tagsubfieldid){
271 var tagsubfield=tagsubfieldid.substr(0,tagsubfieldid.lastIndexOf("_"));
272 var tagcode=tagsubfield.substr(tagsubfield.lastIndexOf("_"));
273 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
274 tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
275 tagsubfield=tagsubfield+"_."+tagcode;
279 function openAuth(tagsubfieldid,authtype) {
280 // let's take the base of tagsubfield information (removing the indexes and the codes
281 var element=document.getElementById(tagsubfieldid);
282 var tagsubfield=getTagInputnameFilter(tagsubfieldid);
283 var elementsubfcode=getSubfieldcode(element.name);
284 var mainmainstring=element.value;
286 var inputs = element.parentNode.parentNode.getElementsByTagName("input");
288 for (var myindex =0; myindex<inputs.length;myindex++){
289 if (inputs[myindex].name && inputs[myindex].name.match(tagsubfield)){
290 var subfieldcode=getSubfieldcode(inputs[myindex].name);
291 if (isNaN(parseInt(subfieldcode)) && inputs[myindex].value != "" && subfieldcode!=elementsubfcode){
292 mainstring=inputs[myindex].value+" "+mainstring;
296 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');
300 function ExpandField(index) {
301 var original = document.getElementById(index); //original <div>
302 var divs = original.getElementsByTagName('div');
303 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
304 if(divs[i].getAttribute('id').match(/^subfield/)){ // if it s a subfield
305 if (divs[i].style.display == 'block') {
306 divs[i].style.display = 'none';
308 divs[i].style.display = 'block';
315 * To clone a field or a subfield by clicking on '+' button
317 function CloneField(index) {
318 var original = document.getElementById(index); //original <div>
319 fields_in_use[index.substr(0, 7)]++;
320 var clone = original.cloneNode(true);
321 var new_key = CreateKey();
322 var new_id = original.getAttribute('id')+new_key;
324 clone.setAttribute('id',new_id); // setting a new id for the parent div
326 var divs = clone.getElementsByTagName('div');
328 [% UNLESS ( hide_marc ) %] // No indicator if hide_marc
329 // setting a new name for the new indicator
330 for(var i=0; i < 2; i++) {
331 var indicator = clone.getElementsByTagName('input')[i];
332 indicator.setAttribute('name',indicator.getAttribute('name')+new_key);
336 // settings all subfields
337 for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
338 if(divs[i].getAttribute("id").match(/^subfield/)){ // if it s a subfield
340 // set the attribute for the new 'div' subfields
341 divs[i].setAttribute('id',divs[i].getAttribute('id')+new_key);
343 var inputs = divs[i].getElementsByTagName('input');
346 for( j = 0 ; j < inputs.length ; j++ ) {
347 if(inputs[j].getAttribute("id") && inputs[j].getAttribute("id").match(/^tag_/) ){
348 inputs[j].value = "";
352 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
353 inputs[0].setAttribute('name',inputs[0].getAttribute('name')+new_key);
356 id_input = inputs[1].getAttribute('id')+new_key;
357 inputs[1].setAttribute('id',id_input);
358 inputs[1].setAttribute('name',inputs[1].getAttribute('name')+new_key);
360 try{ // it s a select if it is not an input
361 var selects = divs[i].getElementsByTagName('select');
362 id_input = selects[0].getAttribute('id')+new_key;
363 selects[0].setAttribute('id',id_input);
364 selects[0].setAttribute('name',selects[0].getAttribute('name')+new_key);
365 }catch(e2){ // it is a textarea if it s not a select or an input
366 var textaeras = divs[i].getElementsByTagName('textarea');
367 id_input = textaeras[0].getAttribute('id')+new_key;
368 textaeras[0].setAttribute('id',id_input);
369 textaeras[0].setAttribute('name',textaeras[0].getAttribute('name')+new_key);
373 [% UNLESS ( advancedMARCEditor ) %]
374 // when cloning a subfield, re set its label too.
375 var labels = divs[i].getElementsByTagName('label');
376 labels[0].setAttribute('for',id_input);
379 [% UNLESS ( hide_marc ) %]
380 // updating javascript parameters on button up
381 var imgs = divs[i].getElementsByTagName('img');
382 imgs[0].setAttribute('onclick',"upSubfield(\'"+divs[i].getAttribute('id')+"\');");
385 // setting its '+' and '-' buttons
387 var anchors = divs[i].getElementsByTagName('a');
388 for (var j = 0; j < anchors.length; j++) {
389 if(anchors[j].getAttribute('class') == 'buttonPlus'){
390 anchors[j].setAttribute('onclick',"CloneSubfield('" + divs[i].getAttribute('id') + "')");
391 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
392 anchors[j].setAttribute('onclick',"UnCloneField('" + divs[i].getAttribute('id') + "')");
397 // do nothig if ButtonPlus & CloneButtonPlus don t exist.
403 spans = divs[i].getElementsByTagName('a');
409 if(!CloneButtonPlus){ // it s impossible to have + ... (buttonDot AND buttonPlus)
410 buttonDot = spans[0];
414 var buttonDotOnClick = buttonDot.getAttribute('onclick');
415 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
416 var re = /\('.*'\)/i;
417 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+inputs[1].getAttribute('id')+"')");
418 if(buttonDotOnClick){
419 buttonDot.setAttribute('onclick',buttonDotOnClick);
422 if(buttonDotOnClick.match('Dopop')) { // -2- It's a auth value
423 var re1 = /&index=.*',/;
426 buttonDotOnClick = buttonDotOnClick.replace(re1,"&index="+inputs[1].getAttribute('id')+"',");
427 buttonDotOnClick = buttonDotOnClick.replace(re2,",'"+inputs[1].getAttribute('id')+"')");
429 if(buttonDotOnClick){
430 buttonDot.setAttribute('onclick',buttonDotOnClick);
435 // do not copy the script section.
436 var script = spans[0].getElementsByTagName('script')[0];
437 spans[0].removeChild(script);
439 // do nothing if there is no script
445 [% UNLESS ( hide_marc ) %]
446 var buttonUp = divs[i].getElementsByTagName('img')[0];
447 buttonUp.setAttribute('onclick',"upSubfield('" + divs[i].getAttribute('id') + "')");
450 } else { // it's a indicator div
451 if(divs[i].getAttribute('id').match(/^div_indicator/)){
452 var inputs = divs[i].getElementsByTagName('input');
453 inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
454 inputs[1].setAttribute('id',inputs[1].getAttribute('id')+new_key);
458 var anchors = divs[i].getElementsByTagName('a');
459 for (var j = 0; j < anchors.length; j++) {
460 if (anchors[j].getAttribute('class') == 'buttonPlus') {
461 anchors[j].setAttribute('onclick',"CloneField('" + new_id + "')");
462 } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
463 anchors[j].setAttribute('onclick',"UnCloneField('" + new_id + "')");
464 } else if (anchors[j].getAttribute('class') == 'expandfield') {
465 anchors[j].setAttribute('onclick',"ExpandField('" + new_id + "')");
470 // do nothig CloneButtonPlus doesn't exist.
477 // insert this line on the page
478 original.parentNode.insertBefore(clone,original.nextSibling);
481 function CloneSubfield(index){
482 var original = document.getElementById(index); //original <div>
483 fields_in_use[index.substr(0, 12)]++;
484 var clone = original.cloneNode(true);
485 var new_key = CreateKey();
486 var new_id = original.getAttribute('id')+new_key;
487 // set the attribute for the new 'div' subfields
488 var inputs = clone.getElementsByTagName('input');
489 var selects = clone.getElementsByTagName('select');
490 var textareas = clone.getElementsByTagName('textarea');
495 for(var i=0,len=inputs.length; i<len ; i++ ){
496 id_input = inputs[i].getAttribute('id')+new_key;
497 inputs[i].setAttribute('id',id_input);
498 inputs[i].setAttribute('name',inputs[i].getAttribute('name')+new_key);
503 for(var i=0,len=selects.length; i<len ; i++ ){
504 id_input = selects[i].getAttribute('id')+new_key;
505 selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
506 selects[i].setAttribute('name',selects[i].getAttribute('name')+new_key);
510 for(var i=0,len=textareas.length; i<len ; i++ ){
511 id_input = textareas[i].getAttribute('id')+new_key;
512 textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
513 textareas[i].setAttribute('name',textareas[i].getAttribute('name')+new_key);
516 // Changing the "..." link's onclick attribute for plugin callback
517 var links = clone.getElementsByTagName('a');
519 var buttonDotOnClick = link.getAttribute('onclick');
520 if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
521 var re = /\('.*'\)/i;
522 buttonDotOnClick = buttonDotOnClick.replace(re,"('"+linkid+"')");
523 if(buttonDotOnClick){
524 link.setAttribute('onclick',buttonDotOnClick);
529 [% UNLESS ( advancedMARCEditor ) %]
530 // when cloning a subfield, reset its label too.
531 var label = clone.getElementsByTagName('label')[0];
532 label.setAttribute('for',id_input);
535 // setting a new id for the parent div
536 clone.setAttribute('id',new_id);
539 var buttonUp = clone.getElementsByTagName('img')[0];
540 buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
541 var anchors = clone.getElementsByTagName('a');
543 for(var i = 0 ,lenanchors = anchors.length ; i < lenanchors ; i++){
544 if(anchors[i].getAttribute('class') == 'buttonPlus'){
545 anchors[i].setAttribute('onclick',"CloneSubfield('" + new_id + "')");
546 } else if (anchors[i].getAttribute('class') == 'buttonMinus') {
547 anchors[i].setAttribute('onclick',"UnCloneField('" + new_id + "')");
553 // do nothig if ButtonPlus & CloneButtonPlus don't exist.
555 // insert this line on the page
556 original.parentNode.insertBefore(clone,original.nextSibling);
560 * This function removes or clears unwanted subfields
562 function UnCloneField(index) {
563 var original = document.getElementById(index);
565 if (index.match("tag")) {
566 field_id = index.substr(0, 7);
568 field_id = index.substr(0, 12);
570 if (1 == fields_in_use[field_id]) {
571 // clear inputs, but don't delete
572 $(":input.input_marceditor", original).each(function(){
573 // thanks to http://www.learningjquery.com/2007/08/clearing-form-data for
574 // hint about clearing selects correctly
575 var type = this.type;
576 var tag = this.tagName.toLowerCase();
577 if (type == 'text' || type == 'password' || tag == 'textarea') {
579 } else if (type == 'checkbox' || type == 'radio') {
580 this.checked = false;
581 } else if (tag == 'select') {
582 this.selectedIndex = -1;
585 $(":input.indicator", original).val("");
587 original.parentNode.removeChild(original);
588 fields_in_use[field_id]--;
593 * This function create a random number
595 function CreateKey(){
596 return parseInt(Math.random() * 100000);
600 * This function allows to move a subfield up by clickink on the 'up' button .
602 function upSubfield(index) {
604 var line = document.getElementById(index); // get the line where the user has clicked.
606 return; // this line doesn't exist...
608 var tag = line.parentNode; // get the dad of this line. (should be "<div id='tag_...'>")
610 // getting all subfields for this tag
611 var subfields = tag.getElementsByTagName('div');
612 var subfieldsLength = subfields.length;
614 if(subfieldsLength<=1) return; // nothing to do if there is just one subfield.
616 // among all subfields
617 for(var i=0;i<subfieldsLength;i++){
618 if(subfields[i].getAttribute('id') == index){ //looking for the subfield which is clicked :
619 if(i==1){ // if the clicked subfield is on the top
620 tag.appendChild(subfields[1]);
623 var lineAbove = subfields[i-1];
624 tag.insertBefore(line,lineAbove);
631 function unHideSubfield(index,labelindex) { // FIXME :: is it used ?
632 subfield = document.getElementById(index);
633 subfield.style.display = 'block';
634 label = document.getElementById(labelindex);
635 label.style.display='none';
639 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
642 <div id="yui-cms-loading">
643 <div id="yui-cms-float">
644 Loading, please wait...
647 <script type="text/javascript" src="[% themelang %]/lib/yui/plugins/loading-min.js"></script>
648 <script type="text/javascript">
651 // configuring the loading mask
652 YAHOO.widget.Loading.config({
658 [% INCLUDE 'header.inc' %]
659 <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>
661 <div id="doc" class="yui-t7">
669 <h1>[% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record Number [% biblionumber %])</h1>[% ELSE %]Add MARC Record</h1>[% END %]
670 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
672 [% UNLESS ( number ) %]
673 <!-- show duplicate warning on tab 0 only -->
674 [% IF ( duplicatebiblionumber ) %]
675 <div class="dialog alert">
676 <h4>Duplicate Record suspected</h4>
677 <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>
678 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
679 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
680 <input type="submit" class="edit" value="Yes: Edit existing items" />
681 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
682 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
683 <input type="submit" value="Yes: View existing items" />
685 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
686 [% 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 %]
693 <script type="text/javascript">
694 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
695 opener.document.forms['f'].title.value='[% title |html %]';
699 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
700 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
701 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
706 <script type="text/javascript">
709 // prepare DOM for YUI Toolbar
711 $(document).ready(function() {
712 $("#z3950searchc").empty();
713 $("#savebutton").empty();
716 $("#marcDocsSelect").click(function(){
717 if($(this).attr("checked")){
725 function redirect(dest){
726 $("#redirect").attr("value",dest);
729 [% IF ( CAN_user_editcatalogue_edit_items ) %]
730 var onOption = function () {
735 { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
736 { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
740 // YUI Toolbar Functions
742 function yuiToolbar() {
743 [% IF ( CAN_user_editcatalogue_edit_items ) %]
744 var savesplitmenu = new YAHOO.widget.Button({
748 name: "savemenubutton",
750 container: "savebutton"
753 savesplitmenu.on("click", onOption);
755 new YAHOO.widget.Button({
759 container: "savebutton",
760 onclick: {fn:function(){redirect("view");}}
763 new YAHOO.widget.Button({
766 label: _("Z39.50 Search"),
767 container: "z3950searchc",
768 onclick: {fn:function(){PopupZ3950()}}
776 <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
777 <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
778 <li id="changeframework"><label for="Frameworks">Change framework: </label>
779 <select name="Frameworks" id="Frameworks" onchange="Changefwk(this);">
780 <option value="Default">Default</option>
781 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
782 <option value="[% frameworkcodeloo.value %]" [% frameworkcodeloo.selected %]>
783 [% frameworkcodeloo.frameworktext %]
787 <input type="hidden" name="op" value="addbiblio" /></li>
792 <input type="hidden" name="mode" value="popup" />
794 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
795 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
796 <input type="hidden" name="breedingid" value="[% breedingid %]" />
798 <div id="addbibliotabs" class="toptabs numbered">
799 <ul>[% FOREACH BIG_LOO IN BIG_LOOP %]
800 <li> [% IF ( BIG_LOO.number ) %]
801 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
803 <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
807 [% FOREACH BIG_LOO IN BIG_LOOP %]
808 <!-- hide every tab except the 1st -->
809 [% IF ( BIG_LOO.number ) %]
810 <div id="tab[% BIG_LOO.number %]XX">
812 <div id="tab[% BIG_LOO.number %]XX">
816 [% FOREACH innerloo IN BIG_LOO.innerloop %]
817 [% IF ( innerloo.tag ) %]
818 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
819 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
820 [% UNLESS ( innerloo.hide_marc ) %]
821 [% IF advancedMARCEditor %]
822 <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>
824 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]<a class="marcdocs"
825 onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a></span>
827 [% IF ( innerloo.fixedfield ) %]
828 <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 %]" />
829 <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 %]" />
831 <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator1 %]" />
832 <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator2 %]" />
835 [% IF ( innerloo.fixedfield ) %]
836 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
837 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
839 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
840 <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
844 [% UNLESS advancedMARCEditor %]
845 <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>
847 [% IF ( innerloo.repeatable ) %]
848 <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>
850 <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>
855 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
856 <!-- One line on the marc editor -->
857 <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 %]">
859 [% UNLESS advancedMARCEditor %]
860 <label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" [% IF ( subfield_loo.fixedfield ) %] style="display:none;" [% END %] class="labelsubfield">
863 [% UNLESS ( subfield_loo.hide_marc ) %]
864 <span class="subfieldcode">[% IF ( subfield_loo.fixedfield ) %]
865 <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" />
867 <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" />
869 <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" />
872 <input type="hidden" name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" value="[% subfield_loo.subfield %]" />
876 [% UNLESS advancedMARCEditor %]
877 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
878 [% subfield_loo.marc_lib_plain %]
879 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
884 [% subfield_loo.marc_value %]
886 [% IF ( subfield_loo.repeatable ) %]
887 <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>
888 <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>
893 <!-- End of the line -->
897 [% END %]<!-- tag -->
902 <!-- Fields for fast add cataloguing -->
903 <input type="hidden" name="barcode" value="[% barcode %]" />
904 <input type="hidden" name="branch" value="[% branch %]" />
905 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
906 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
907 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
908 <!-- /End of fast add fields -->
915 [% INCLUDE 'intranet-bottom.inc' %]