1 [% INCLUDE 'doc-head-open.inc' %]
2 <title>Koha › Cataloging › [% IF ( biblionumber ) %]Editing [% title |html %] (Record number [% biblionumber %])[% ELSE %]Add MARC record[% END %]</title>
3 [% INCLUDE 'doc-head-close.inc' %]
4 <script type="text/javascript" src="[% themelang %]/lib/yui/plugins/bubbling-min.js"></script>
5 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.fixFloat.js"></script>
6 <script type="text/javascript" src="[% themelang %]/js/cataloging.js"></script>
7 <script type="text/javascript">
10 $(document).ready(function() {
11 $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
12 $("#"+ui.panel.id+" input:eq(0)").focus();
15 /* check cookie to hide/show marcdocs*/
16 if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
18 $("#marcDocsSelect").removeAttr('checked');
20 /* reset cookie expire date */
21 $.cookie("marcdocs_[% borrowernumber %]",'true',
22 { path: "/", expires: 365 });
27 $('#header_search').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); });
30 function confirmnotdup(redirect){
31 $("#confirm_not_duplicate").attr("value","1");
32 $("#redirect").attr("value",redirect);
36 function Dopop(link,i) {
37 defaultvalue = document.getElementById(i).value;
38 window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
42 * this function open a popup to search on z3950 server.
44 function PopupZ3950() {
45 var strQuery = GetZ3950Terms();
47 window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
51 function PopupMARCFieldDoc(field, blocknumber) {
52 [% IF ( marcflavour == 'MARC21' ) %]
53 _MARC21FieldDoc(field);
54 [% ELSIF ( marcflavour == 'UNIMARC' ) %]
55 _UNIMARCFieldDoc(field, blocknumber);
59 function _MARC21FieldDoc(field) {
61 window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
62 } else if (field < 900) {
63 window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
65 window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
69 function _UNIMARCFieldDoc(field, blocknumber) {
70 /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
71 seems to be the only version available that can be linked to per tag. More recent
72 versions of the UNIMARC standard are available on the IFLA website only as
76 window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
77 } else if (field < 100) {
78 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
79 } else if (field < 900) {
80 window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
82 window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
87 * Functions to hide/show marc docs links
89 function hideMARCdocLinks() {
90 $(".marcdocs").hide();
91 $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
94 function showMARCdocLinks() {
95 $(".marcdocs").show();
96 $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
100 * check if mandatory subfields are written
102 function AreMandatoriesNotOk(){
103 var mandatories = new Array();
104 var mandatoriesfields = new Array();
105 var tab = new Array();
106 var label = new Array();
108 var tabflag= new Array();
109 [% FOREACH BIG_LOO IN BIG_LOOP %]
110 [% FOREACH innerloo IN BIG_LOO.innerloop %]
111 [% IF ( innerloo.mandatory ) %]
112 mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
114 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
115 [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
116 tab.push("[% BIG_LOO.number %]");
117 label.push("[% subfield_loo.marc_lib %]");
122 var StrAlert = _("Can't save this record because the following field aren't filled:");
124 for(var i=0,len=mandatories.length; i<len ; i++){
125 var tag=mandatories[i].substr(4,3);
126 var subfield=mandatories[i].substr(17,1);
127 var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
128 if (tabflag[tag+subfield+tagnumber] == null) {
129 tabflag[tag+subfield+tagnumber]=new Array();
130 tabflag[tag+subfield+tagnumber][0]=0;
132 if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
133 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
134 document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
135 $('#' + mandatories[i]).focus();
136 tabflag[tag+subfield+tagnumber][1]=label[i];
137 tabflag[tag+subfield+tagnumber][2]=tab[i];
139 tabflag[tag+subfield+tagnumber][0] = 1;
142 for (var tagsubfieldid in tabflag){
143 if (tabflag[tagsubfieldid][0]==0){
144 var tag=tagsubfieldid.substr(0,3);
145 var subfield=tagsubfieldid.substr(3,1);
146 StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
147 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
152 /* Check for mandatories field(not subfields) */
153 for(var i=0,len=mandatoriesfields.length; i<len; i++){
155 arr = mandatoriesfields[i];
156 divid = "tag_" + arr[0] + "_" + arr[1];
157 varegexp = new RegExp("^tag_" + arr[0] + "_code_");
159 if(parseInt(arr[0]) >= 10){
160 elem = document.getElementById(divid);
161 eleminputs = elem.getElementsByTagName('input');
163 for(var j=0,len2=eleminputs.length; j<len2; j++){
165 if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
166 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
168 for( var k=0; k<len2; k++){
169 if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
174 elemselect = elem.getElementsByTagName('select');
175 for( var k=0; k<elemselect.length; k++){
176 if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
183 elemtextareas = elem.getElementsByTagName('textarea');
184 for(var j=0,len2=elemtextareas.length; j<len2; j++){
185 // this bit assumes that the only textareas in this context would be for subfields
186 if (elemtextareas[j].value) {
196 StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
213 var StrAlert = AreMandatoriesNotOk();
224 * check if z3950 mandatories are set or not
226 function GetZ3950Terms(){
227 var strQuery="&frameworkcode="+document.forms['f'].Frameworks.value;
228 var mandatories = new Array();
229 var mandatories_label = new Array();
230 [% FOREACH BIG_LOO IN BIG_LOOP %][% FOREACH innerloo IN BIG_LOO.innerloop %][% FOREACH subfield_loo IN innerloo.subfield_loop %][% IF ( subfield_loo.z3950_mandatory ) %]mandatories.push("[% subfield_loo.id %]");
231 mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
233 for(var i=0,len=mandatories.length; i<len ; i++){
234 var field_value = document.getElementById(mandatories[i]).value;
236 strQuery += "&"+mandatories_label[i]+"="+field_value;
242 function Changefwk(FwkList) {
250 <link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
252 <body id="cat_addbiblio" class="cat">
253 <div id="yui-cms-loading">
254 <div id="yui-cms-float">
255 Loading, please wait...
258 <script type="text/javascript" src="[% themelang %]/lib/yui/plugins/loading-min.js"></script>
259 <script type="text/javascript">
262 // configuring the loading mask
263 YAHOO.widget.Loading.config({
269 [% INCLUDE 'header.inc' %]
271 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › [% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])[% ELSE %]Add MARC record[% END %]</div>
273 <div id="doc" class="yui-t7">
279 <h1>[% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record number [% biblionumber %])</h1>[% ELSE %]Add MARC record</h1>[% END %]
280 [% IF marcflavour != 'NORMARC' %]
281 <div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
284 [% UNLESS ( number ) %]
285 <!-- show duplicate warning on tab 0 only -->
286 [% IF ( duplicatebiblionumber ) %]
287 <div class="dialog alert">
288 <h4>Duplicate record suspected</h4>
289 <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]" onclick="openWindow('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber %]&popup=1', 'Duplicate biblio','800','600'); return false;">[% duplicatetitle %]</a>?</p>
290 [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
291 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
292 <input type="submit" class="edit" value="Yes: Edit existing items" />
293 </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
294 <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
295 <input type="submit" value="Yes: View existing items" />
297 <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
298 [% 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 %]
305 <script type="text/javascript">
306 opener.document.forms['f'].biblionumber.value=[% biblionumber %];
307 opener.document.forms['f'].title.value='[% title |html %]';
311 <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
312 <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
313 <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
318 <script type="text/javascript">
321 // prepare DOM for YUI Toolbar
323 $(document).ready(function() {
324 $('#toolbar').fixFloat();
325 $("#z3950searchc").empty();
326 $("#savebutton").empty();
329 $("#marcDocsSelect").click(function(){
330 if($(this).attr("checked")){
338 function redirect(dest){
339 $("#redirect").attr("value",dest);
342 [% IF ( CAN_user_editcatalogue_edit_items ) %]
343 var onOption = function () {
348 { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
349 { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
353 // YUI Toolbar Functions
355 function yuiToolbar() {
356 [% IF ( CAN_user_editcatalogue_edit_items ) %]
357 var savesplitmenu = new YAHOO.widget.Button({
361 name: "savemenubutton",
363 container: "savebutton"
366 savesplitmenu.on("click", onOption);
368 new YAHOO.widget.Button({
372 container: "savebutton",
373 onclick: {fn:function(){redirect("view");}}
376 new YAHOO.widget.Button({
379 label: _("Z39.50 Search"),
380 container: "z3950searchc",
381 onclick: {fn:function(){if (confirm(_("Please note that this Z39.50 search could replace the current record."))) PopupZ3950()}}
389 <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
390 <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
391 <li id="changeframework"><label for="Frameworks">Change framework: </label>
392 <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);">
393 <option value="Default">Default</option>
394 [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
395 [% IF ( frameworkcodeloo.selected ) %]
396 <option value="[% frameworkcodeloo.value %]" selected="selected">
398 <option value="[% frameworkcodeloo.value %]">
400 [% frameworkcodeloo.frameworktext %]
404 <input type="hidden" name="op" value="addbiblio" /></li>
409 <input type="hidden" name="mode" value="popup" />
411 <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
412 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
413 <input type="hidden" name="breedingid" value="[% breedingid %]" />
415 <div id="addbibliotabs" class="toptabs numbered">
417 [% FOREACH BIG_LOO IN BIG_LOOP %]
418 <li><a href="#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a></li>
422 [% FOREACH BIG_LOO IN BIG_LOOP %]
423 <div id="tab[% BIG_LOO.number %]XX">
425 [% FOREACH innerloo IN BIG_LOO.innerloop %]
426 [% IF ( innerloo.tag ) %]
427 <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
428 <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
429 [% UNLESS hide_marc %]
430 [% IF advancedMARCEditor %]
431 <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>
433 <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]
434 [% IF marcflavour != 'NORMARC' %]<a class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a>[% END %]
437 [% IF ( innerloo.fixedfield ) %]
440 class="indicator flat"
441 style="display:none;"
442 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
445 value="[% innerloo.indicator1 %]" />
448 class="indicator flat"
449 style="display:none;"
450 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
453 value="[% innerloo.indicator2 %]" />
457 class="indicator flat"
458 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
461 value="[% innerloo.indicator1 %]" />
464 class="indicator flat"
465 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
468 value="[% innerloo.indicator2 %]" />
471 [% IF ( innerloo.fixedfield ) %]
474 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
475 value="[% innerloo.indicator1 %]" />
478 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
479 value="[% innerloo.indicator2 %]" />
483 name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]"
484 value="[% innerloo.indicator1 %]" />
487 name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]"
488 value="[% innerloo.indicator2 %]" />
492 [% UNLESS advancedMARCEditor %]
493 <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>
495 <span class="field_controls">
496 [% IF ( innerloo.repeatable ) %]
497 <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]','[% hide_marc %]','[% advancedMARCEditor %]'); return false;" title="Repeat this Tag">
498 <img src="/intranet-tmpl/prog/img/repeat-tag.png" alt="Repeat this Tag" />
501 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]'); return false;" title="Delete this Tag">
502 <img src="/intranet-tmpl/prog/img/delete-tag.png" alt="Delete this Tag" />
508 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
509 <!-- One line on the marc editor -->
510 <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]">
512 [% UNLESS advancedMARCEditor %]
513 [% 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">
514 [% ELSE %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" class="labelsubfield">
518 [% UNLESS hide_marc %]
519 <span class="subfieldcode">
520 [% IF ( subfield_loo.fixedfield ) %]
521 <img class="buttonUp" style="display:none;" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
523 <img class="buttonUp" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" />
526 title="[% subfield_loo.marc_lib_plain %]"
527 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
528 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
529 value="[% subfield_loo.subfield %]"
537 name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]"
538 value="[% subfield_loo.subfield %]" />
541 [% UNLESS advancedMARCEditor %]
542 [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
543 [% subfield_loo.marc_lib_plain %]
544 [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
549 [% subfield_loo.marc_value %]
551 <span class="subfield_controls">
552 [% IF ( subfield_loo.repeatable ) %]
553 <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]','[% advancedMARCEditor %]'); return false;">
554 <img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
556 <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]'); return false;">
557 <img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
563 <!-- End of the line -->
567 [% END %]<!-- if innerloo.tag -->
568 [% END %]<!-- BIG_LOO.innerloop -->
570 [% END %]<!-- BIG_LOOP -->
574 <!-- Fields for fast add cataloguing -->
575 <input type="hidden" name="barcode" value="[% barcode %]" />
576 <input type="hidden" name="branch" value="[% branch %]" />
577 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
578 <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
579 <input type="hidden" name="duedatespec" value="[% duedatespec %]" />
580 <!-- /End of fast add fields -->
588 [% INCLUDE 'intranet-bottom.inc' %]