+[% USE raw %]
+[% USE Asset %]
+[% USE Koha %]
[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Cataloging › [% IF ( biblionumber ) %]Editing [% title |html %] (Record Number [% biblionumber %])[% ELSE %]Add MARC Record[% END %]</title>
+<title>Koha › Cataloging › [% IF ( biblionumber ) %]Editing [% title | html %] (Record number [% biblionumber | html %])[% ELSE %]Add MARC record[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/yui/plugins/bubbling-min.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-
- var fields_in_use = {};
- $(document).ready(function() {
- $('#addbibliotabs > ul').tabs().bind('show.ui-tabs', function(e, ui) {
- $("#"+ui.panel.id+" input:eq(0)").focus();
- });
- $('.tag').each(function() {
- var field_id = this.getAttribute('id').substring(0, 7);
- if (field_id in fields_in_use) {
- fields_in_use[field_id]++;
+[% Asset.js("lib/hc-sticky.js") | $raw %]
+[% Asset.js("js/cataloging.js") | $raw %]
+[% INCLUDE 'browser-strings.inc' %]
+[% Asset.js("js/browser.js") | $raw %]
+<script>
+ var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10));
+ browser.show();
+
+ $(window).load(function(){
+ $("#loading").hide();
+ });
+ var Sticky;
+ $(document).ready(function() {
+
+ [% IF bib_doesnt_exist %]
+ $("#addbibliotabs").hide();
+ $("#toolbar").hide();
+ [% END %]
+
+ $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
+ $("#"+ui.panel.id+" input:eq(0)").focus();
+ });
+
+ [% IF tab %]
+ link = $("a[href='#[% tab | html %]']");
+ selectTab( link );
+ [% END %]
+
+ Sticky = $("#toolbar");
+ Sticky.hcSticky({
+ stickTo: "#f",
+ stickyClass: "floating"
+ });
+
+ /* check cookie to hide/show marcdocs*/
+ if($.cookie("marcdocs_[% borrowernumber | html %]") == 'hide'){
+ toggleMARCdocLinks(false);
+ } else {
+ toggleMARCdocLinks(true);
+ }
+
+ $("#marcDocsSelect").click(function(){
+ if($.cookie("marcdocs_[% borrowernumber | html %]") == 'hide'){
+ toggleMARCdocLinks(true);
} else {
- fields_in_use[field_id] = 1;
+ toggleMARCdocLinks(false);
}
});
- $('.subfield_line').each(function() {
- var field_id = this.getAttribute('id').substring(0, 12);
- if (field_id in fields_in_use) {
- fields_in_use[field_id]++;
+
+ /* check cookie to hide/show marc tags*/
+ var marctags_cookie = $.cookie("marctags_[% borrowernumber | html %]");
+ if( marctags_cookie == 'hide'){
+ toggleMARCTagLinks(false);
+ } else if( marctags_cookie == 'show'){
+ toggleMARCTagLinks(true)
+ } else {
+ [% UNLESS Koha.Preference("hide_marc") %]
+ toggleMARCTagLinks(true)
+ [% ELSE %]
+ toggleMARCTagLinks(false);
+ [% END %]
+ }
+
+ $("#marcTagsSelect").click(function(){
+ if( $.cookie("marctags_[% borrowernumber | html %]") == 'hide'){
+ toggleMARCTagLinks(true)
} else {
- fields_in_use[field_id] = 1;
+ toggleMARCTagLinks(false);
}
});
- /* check cookie to hide/show marcdocs*/
- if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){
- hideMARCdocLinks();
- $("#marcDocsSelect").attr('checked',false);
- } else {
- /* reset cookie expire date */
- $.cookie("marcdocs_[% borrowernumber %]",'true',
- { path: "/", expires: 365 });
- }
-
- });
-
- $('#header_search > ul').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); });
-
-
-function confirmnotdup(redirect){
- $("#confirm_not_duplicate").attr("value","1");
- $("#redirect").attr("value",redirect);
- Check();
-}
-
-/**
- *
- *
- */
-function Check(){
- var StrAlert = AreMandatoriesNotOk();
- if( ! StrAlert ){
- document.f.submit();
- return true;
- } else {
- alert(StrAlert);
- return false;
+
+ [%# Only ask for a confirmation if it is an edit %]
+ $("#z3950search").click(function(){
+ [% IF biblionumber %]
+ if (confirm(_("Please note that this external search could replace the current record."))){
+ PopupZ3950();
+ }
+ [% ELSE %]
+ PopupZ3950();
+ [% END %]
+ });
+
+ $("#saverecord").click(function(){
+ $(".btn-group").removeClass("open");
+ onOption();
+ return false;
+ });
+
+ $("#saveandview").click(function(){
+ $(".btn-group").removeClass("open");
+ redirect("view");
+ return false;
+ });
+
+ $("#saveanditems").click(function(){
+ $(".btn-group").removeClass("open");
+ redirect("items");
+ return false;
+ });
+ $("#saveandcontinue").click(function(){
+ $(".btn-group").removeClass("open");
+ var tab = $("#addbibliotabs li.ui-tabs-active:first a").attr('href');
+ tab = tab.replace('#', '');
+ $("#current_tab").val(tab);
+ redirect("just_save", tab);
+ return false;
+ });
+
+ $( '#switcheditor' ).click( function() {
+ var breedingid = [% breedingid || "null" | html %];
+
+ if ( !confirm( breedingid ? _("This record cannot be transferred to the advanced editor. Continue?") : _("Any changes will not be saved. Continue?") ) ) return false;
+
+ $.cookie( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } );
+
+ var biblionumber = [% biblionumber || "null" | html %];
+
+ if ( biblionumber ) {
+ window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber;
+ } else {
+ window.location = '/cgi-bin/koha/cataloguing/editor.pl';
+ }
+
+ return false;
+ } );
+ $(".change-framework").on("click", function(){
+ var frameworkcode = $(this).data("frameworkcode");
+ $("#frameworkcode").val( frameworkcode );
+ Changefwk();
+ });
+
+ $(".toolbar-tabs a").on("click",function(e){
+ e.preventDefault();
+ selectTab( $(this ) );
+ });
+
+ $(".tag_anchor").on("click", function(e){
+ e.preventDefault();
+ var toolbar_height = $("#toolbar").outerHeight();
+ $(".tag_anchor").removeClass("selected");
+ $(this).addClass("selected");
+ var link = this.href;
+ var linkid = link.substring( link.indexOf("#") + 1 );
+ var dest = $("#" + linkid );
+ var yoffset = dest.offset();
+ window.scrollTo( 0, yoffset.top - toolbar_height - 20 );
+ });
+
+ });
+
+ function selectTab( tablink ){
+ $(".toolbar-tabs li").removeClass("selected");
+ tablink.parent().addClass("selected");
+ var tabid = tablink.data("tabid");
+ $('#addbibliotabs').selectTabByID("#tab" + tabid + "XX");
+ $(".tag_anchors").removeClass("tab_selected").hide();
+ $(".tag_anchors_" + tabid ).addClass("tab_selected").show();
}
-}
-
-function Dopop(link,i) {
- defaultvalue = document.getElementById(i).value;
- window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
-}
-
-/**
- * this function open a popup to search on z3950 server.
- */
-function PopupZ3950() {
- var strQuery = GetZ3950Terms();
- if(strQuery){
- 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');
- }
-}
-
-function PopupMARCFieldDoc(field, blocknumber) {
- [% IF ( MARC21 ) %]
- _MARC21FieldDoc(field);
- [% ELSE %]
- _UNIMARCFieldDoc(field, blocknumber);
+
+ function redirect(dest){
+ $("#redirect").attr("value",dest);
+ return Check();
+ }
+
+ [% IF ( CAN_user_editcatalogue_edit_items ) %]
+ var onOption = function () {
+ return Check();
+ }
[% END %]
-}
-
-function _MARC21FieldDoc(field) {
- if(field == 0) {
- window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
- } else if (field < 900) {
- window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
- } else {
- window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
+
+ function confirmnotdup(redirect){
+ $("#confirm_not_duplicate").attr("value","1");
+ $("#redirect").attr("value",redirect);
+ Check();
}
-}
-
-function _UNIMARCFieldDoc(field, blocknumber) {
- /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
- seems to be the only version available that can be linked to per tag. More recent
- versions of the UNIMARC standard are available on the IFLA website only as
- PDFs!
- */
- if(field == 0) {
- window.open("http://archive.ifla.org/VI/3/p1996-1/uni.htm");
- } else if (field < 100) {
- window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#b" + ("000"+field).slice(-3));
- } else if (field < 900) {
- window.open("http://archive.ifla.org/VI/3/p1996-1/uni"+blocknumber+".htm#" + ("000"+field).slice(-3));
- } else {
- window.open("http://archive.ifla.org/VI/3/p1996-1/uni9.htm");
+
+ function Dopop(link,i) {
+ defaultvalue = document.getElementById(i).value;
+ window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
}
-}
-
-/*
- * Functions to hide/show marc docs links
- */
-function hideMARCdocLinks() {
- $(".marcdocs").hide();
- $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 });
-}
-
-function showMARCdocLinks() {
- $(".marcdocs").show();
- $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 });
-}
-
-/**
- * check if mandatory subfields are written
- */
-function AreMandatoriesNotOk(){
- var mandatories = new Array();
- var mandatoriesfields = new Array();
- var tab = new Array();
- var label = new Array();
- var flag=0;
- var tabflag= new Array();
- [% FOREACH BIG_LOO IN BIG_LOOP %]
- [% FOREACH innerloo IN BIG_LOO.innerloop %]
- [% IF ( innerloo.mandatory ) %]
- mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
- [% END %]
- [% FOREACH subfield_loo IN innerloo.subfield_loop %]
- [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]");
- tab.push("[% BIG_LOO.number %]");
- label.push("[% subfield_loo.marc_lib %]");
- [% END %]
- [% END %]
- [% END %]
- [% END %]
- var StrAlert = _("Can't save this record because the following field aren't filled:");
- StrAlert += "\n\n";
- for(var i=0,len=mandatories.length; i<len ; i++){
- var tag=mandatories[i].substr(4,3);
- var subfield=mandatories[i].substr(17,1);
- var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
- if (tabflag[tag+subfield+tagnumber] == null) {
- tabflag[tag+subfield+tagnumber]=new Array();
- tabflag[tag+subfield+tagnumber][0]=0;
- }
- if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
- tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
- document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled');
- $('#' + mandatories[i]).focus();
- tabflag[tag+subfield+tagnumber][1]=label[i];
- tabflag[tag+subfield+tagnumber][2]=tab[i];
- } else {
- tabflag[tag+subfield+tagnumber][0] = 1;
- }
+
+ /**
+ * this function open a popup to search on z3950 server.
+ */
+ function PopupZ3950() {
+ var strQuery = GetZ3950Terms();
+ if(strQuery){
+ window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber | html %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
+ }
}
- for (var tagsubfieldid in tabflag){
- if (tabflag[tagsubfieldid][0]==0){
- var tag=tagsubfieldid.substr(0,3);
- var subfield=tagsubfieldid.substr(3,1);
- StrAlert += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
- //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
- flag=1;
- }
- }
-
- /* Check for mandatories field(not subfields) */
- for(var i=0,len=mandatoriesfields.length; i<len; i++){
- isempty = true;
- arr = mandatoriesfields[i];
- divid = "tag_" + arr[0] + "_" + arr[1];
- varegexp = new RegExp("^tag_" + arr[0] + "_code_");
-
- if(parseInt(arr[0]) >= 10){
- elem = document.getElementById(divid);
- eleminputs = elem.getElementsByTagName('input');
-
- for(var j=0,len2=eleminputs.length; j<len2; j++){
-
- if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
- inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
-
- for( var k=0; k<len2; k++){
- if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
- isempty = false
- }
- }
-
- elemselect = elem.getElementsByTagName('select');
- for( var k=0; k<elemselect.length; k++){
- if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
- isempty = false
- }
- }
- }
- }
-
- elemtextareas = elem.getElementsByTagName('textarea');
- for(var j=0,len2=elemtextareas.length; j<len2; j++){
- // this bit assumes that the only textareas in this context would be for subfields
- if (elemtextareas[j].value) {
- isempty = false;
- }
- }
- }else{
- isempty = false;
- }
-
- if(isempty){
- flag = 1;
- StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n";
- }
-
+
+ function PopupMARCFieldDoc(field) {
+ [% IF Koha.Preference('marcfielddocurl') %]
+ var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','"') | html %]";
+ docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
+ docurl = docurl.replace("{FIELD}", ""+field);
+ docurl = docurl.replace("{LANG}", "[% lang | html %]");
+ window.open(docurl);
+ [% ELSIF ( marcflavour == 'MARC21' ) %]
+ _MARC21FieldDoc(field);
+ [% ELSIF ( marcflavour == 'UNIMARC' ) %]
+ _UNIMARCFieldDoc(field);
+ [% END %]
}
-
- if(flag){
- return StrAlert;
- } else {
- return flag;
- }
-}
-
-/**
- * check if z3950 mandatories are set or not
- */
-function GetZ3950Terms(){
- var strQuery="&frameworkcode="+document.forms['f'].frameworkcode.value;
- var mandatories = new Array();
- var mandatories_label = new Array();
- [% 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 %]");
- mandatories_label.push("[% subfield_loo.z3950_mandatory %]");[% END %][% END %][% END %][% END %]
-
- for(var i=0,len=mandatories.length; i<len ; i++){
- var field_value = document.getElementById(mandatories[i]).value;
- if( field_value ){
- strQuery += "&"+mandatories_label[i]+"="+field_value;
+
+ function _MARC21FieldDoc(field) {
+ if(field == 0) {
+ window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
+ } else if (field < 900) {
+ window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
+ } else {
+ window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
}
}
- return strQuery;
-}
-
-function Changefwk(FwkList) {
- var fwk = FwkList.options[FwkList.selectedIndex].value;
- window.location = "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumberdata %]&op=[% op %]&breedingid=[% breedingid %]&mode=[% popup %]&frameworkcode="+fwk;
-
-}
-
-// returns the subfieldcode based upon subfieldid writing
-function getSubfieldcode(tagsubfieldid){
- // 3 : tag +3 : tagnumber +4 : number of _ +8 subfield -1 begins at 0
- return tagsubfieldid.substr(3+3+4+8-1,1);
-}
-
-// Take the base of tagsubfield information (removing the subfieldcodes and subfieldindexes)
-// returns the filter
-function getTagInputnameFilter(tagsubfieldid){
- var tagsubfield=tagsubfieldid.substr(0,tagsubfieldid.lastIndexOf("_"));
- var tagcode=tagsubfield.substr(tagsubfield.lastIndexOf("_"));
- tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
- tagsubfield=tagsubfield.substr(0,tagsubfield.lastIndexOf("_"));
- tagsubfield=tagsubfield+"_."+tagcode;
- return tagsubfield;
-}
-
-function openAuth(tagsubfieldid,authtype) {
- // let's take the base of tagsubfield information (removing the indexes and the codes
- var element=document.getElementById(tagsubfieldid);
- var tagsubfield=getTagInputnameFilter(tagsubfieldid);
- var elementsubfcode=getSubfieldcode(element.name);
- var mainmainstring=element.value;
- var mainstring="";
- var inputs = element.parentNode.parentNode.getElementsByTagName("input");
-
- for (var myindex =0; myindex<inputs.length;myindex++){
- if (inputs[myindex].name && inputs[myindex].name.match(tagsubfield)){
- var subfieldcode=getSubfieldcode(inputs[myindex].name);
- if (isNaN(parseInt(subfieldcode)) && inputs[myindex].value != "" && subfieldcode!=elementsubfcode){
- mainstring=inputs[myindex].value+" "+mainstring;
- }
+
+ function _UNIMARCFieldDoc(field) {
+ /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
+ seems to be the only version available that can be linked to per tag. More recent
+ versions of the UNIMARC standard are available on the IFLA website only as
+ PDFs!
+ */
+ var url;
+ if (field == 0) {
+ url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm";
+ } else {
+ var first = field.substring(0,1);
+ url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#";
+ if (first == 0) url = url + "b";
+ url = first == 9
+ ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm"
+ : url + field;
}
- }
- 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');
-}
-
-
-function ExpandField(index) {
- var original = document.getElementById(index); //original <div>
- var divs = original.getElementsByTagName('div');
- for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
- if(divs[i].getAttribute('id').match(/^subfield/)){ // if it s a subfield
- if (divs[i].style.display == 'block') {
- divs[i].style.display = 'none';
- } else {
- divs[i].style.display = 'block';
- }
+ window.open(url);
+ }
+
+ /*
+ * Functions to hide/show marc docs and tags links
+ */
+
+ function toggleMARCdocLinks(flag){
+ if( flag === true ){
+ $(".marcdocs").show();
+ $.cookie("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
+ $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
+ } else {
+ $(".marcdocs").hide();
+ $.cookie("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
+ $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
}
}
-}
-
-/**
- * To clone a field or a subfield by clicking on '+' button
- */
-function CloneField(index) {
- var original = document.getElementById(index); //original <div>
- fields_in_use[index.substr(0, 7)]++;
- var clone = original.cloneNode(true);
- var new_key = CreateKey();
- var new_id = original.getAttribute('id')+new_key;
-
- clone.setAttribute('id',new_id); // setting a new id for the parent div
-
- var divs = clone.getElementsByTagName('div');
-
- [% UNLESS ( hide_marc ) %] // No indicator if hide_marc
- // setting a new name for the new indicator
- for(var i=0; i < 2; i++) {
- var indicator = clone.getElementsByTagName('input')[i];
- indicator.setAttribute('name',indicator.getAttribute('name')+new_key);
+
+ function toggleMARCTagLinks(flag){
+ if( flag === true ){
+ $(".tagnum").show();
+ $(".subfieldcode").show();
+ $.cookie("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
+ $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
+ } else {
+ $(".tagnum").hide();
+ $(".subfieldcode").hide();
+ $.cookie("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
+ $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
}
- [% END %]
-
- // settings all subfields
- for(var i=0,divslen = divs.length ; i<divslen ; i++){ // foreach div
- if(divs[i].getAttribute("id").match(/^subfield/)){ // if it s a subfield
-
- // set the attribute for the new 'div' subfields
- divs[i].setAttribute('id',divs[i].getAttribute('id')+new_key);
-
- var inputs = divs[i].getElementsByTagName('input');
- var id_input = "";
-
- for( j = 0 ; j < inputs.length ; j++ ) {
- if(inputs[j].getAttribute("id") && inputs[j].getAttribute("id").match(/^tag_/) ){
- inputs[j].value = "";
- }
- }
-
- inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
- inputs[0].setAttribute('name',inputs[0].getAttribute('name')+new_key);
- var id_input;
- try {
- id_input = inputs[1].getAttribute('id')+new_key;
- inputs[1].setAttribute('id',id_input);
- inputs[1].setAttribute('name',inputs[1].getAttribute('name')+new_key);
- } catch(e) {
- try{ // it s a select if it is not an input
- var selects = divs[i].getElementsByTagName('select');
- id_input = selects[0].getAttribute('id')+new_key;
- selects[0].setAttribute('id',id_input);
- selects[0].setAttribute('name',selects[0].getAttribute('name')+new_key);
- }catch(e2){ // it is a textarea if it s not a select or an input
- var textaeras = divs[i].getElementsByTagName('textarea');
- id_input = textaeras[0].getAttribute('id')+new_key;
- textaeras[0].setAttribute('id',id_input);
- textaeras[0].setAttribute('name',textaeras[0].getAttribute('name')+new_key);
- }
- }
-
- [% UNLESS ( advancedMARCEditor ) %]
- // when cloning a subfield, re set its label too.
- var labels = divs[i].getElementsByTagName('label');
- labels[0].setAttribute('for',id_input);
- [% END %]
-
- [% UNLESS ( hide_marc ) %]
- // updating javascript parameters on button up
- var imgs = divs[i].getElementsByTagName('img');
- imgs[0].setAttribute('onclick',"upSubfield(\'"+divs[i].getAttribute('id')+"\');");
+ }
+
+ /**
+ * check if mandatory subfields are written
+ */
+ function AreMandatoriesNotOk(){
+ var mandatories = new Array();
+ var mandatoriesfields = new Array();
+ var tab = new Array();
+ var label = new Array();
+ var flag=0;
+ var tabflag= new Array();
+ [% FOREACH BIG_LOO IN BIG_LOOP %]
+ [% FOREACH innerloo IN BIG_LOO.innerloop %]
+ [% IF ( innerloo.mandatory ) %]
+ mandatoriesfields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
+ [% END %]
+ [% FOREACH subfield_loo IN innerloo.subfield_loop %]
+ [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id | html %]");
+ tab.push("[% BIG_LOO.number | html %]");
+ label.push("[% subfield_loo.marc_lib | $raw %]");
+ [% END %]
+ [% END %]
[% END %]
-
- // setting its '+' and '-' buttons
- try {
- var anchors = divs[i].getElementsByTagName('a');
- for (var j = 0; j < anchors.length; j++) {
- if(anchors[j].getAttribute('class') == 'buttonPlus'){
- anchors[j].setAttribute('onclick',"CloneSubfield('" + divs[i].getAttribute('id') + "')");
- } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
- anchors[j].setAttribute('onclick',"UnCloneField('" + divs[i].getAttribute('id') + "')");
- }
- }
- }
- catch(e){
- // do nothig if ButtonPlus & CloneButtonPlus don t exist.
+ [% END %]
+ var StrAlert = _("Can't save this record because the following field aren't filled:");
+ StrAlert += "\n\n";
+ for(var i=0,len=mandatories.length; i<len ; i++){
+ var tag=mandatories[i].substr(4,3);
+ var subfield=mandatories[i].substr(17,1);
+ var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
+ if (tabflag[tag+subfield+tagnumber] == null) {
+ tabflag[tag+subfield+tagnumber]=new Array();
+ tabflag[tag+subfield+tagnumber][0]=0;
+ }
+ if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
+ tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
+ document.getElementById(mandatories[i]).setAttribute('class','input_marceditor noEnterSubmit subfield_not_filled');
+ $('#' + mandatories[i]).focus();
+ tabflag[tag+subfield+tagnumber][1]=label[i];
+ tabflag[tag+subfield+tagnumber][2]=tab[i];
+ } else {
+ tabflag[tag+subfield+tagnumber][0] = 1;
}
-
- // button ...
- var spans=0;
- try {
- spans = divs[i].getElementsByTagName('a');
- } catch(e) {
- // no spans
+ }
+ for (var tagsubfieldid in tabflag){
+ if (tabflag[tagsubfieldid][0]==0){
+ var tag=tagsubfieldid.substr(0,3);
+ var subfield=tagsubfieldid.substr(3,1);
+ StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n";
+ //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
+ flag=1;
}
- if(spans){
- var buttonDot;
- if(!CloneButtonPlus){ // it s impossible to have + ... (buttonDot AND buttonPlus)
- buttonDot = spans[0];
- if(buttonDot){
- // 2 possibilities :
- try{
- var buttonDotOnClick = buttonDot.getAttribute('onclick');
- if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
- var re = /\('.*'\)/i;
- buttonDotOnClick = buttonDotOnClick.replace(re,"('"+inputs[1].getAttribute('id')+"')");
- if(buttonDotOnClick){
- buttonDot.setAttribute('onclick',buttonDotOnClick);
- }
- } else {
- if(buttonDotOnClick.match('Dopop')) { // -2- It's a auth value
- var re1 = /&index=.*',/;
- var re2 = /,.*\)/;
-
- buttonDotOnClick = buttonDotOnClick.replace(re1,"&index="+inputs[1].getAttribute('id')+"',");
- buttonDotOnClick = buttonDotOnClick.replace(re2,",'"+inputs[1].getAttribute('id')+"')");
-
- if(buttonDotOnClick){
- buttonDot.setAttribute('onclick',buttonDotOnClick);
- }
- }
+ }
+
+ /* Check for mandatories field(not subfields) */
+ for(var i=0,len=mandatoriesfields.length; i<len; i++){
+ isempty = true;
+ arr = mandatoriesfields[i];
+ divid = "tag_" + arr[0] + "_" + arr[1];
+ varegexp = new RegExp("^tag_" + arr[0] + "_code_");
+
+ if(parseInt(arr[0]) >= 10){
+ elem = document.getElementById(divid);
+ eleminputs = elem.getElementsByTagName('input');
+
+ for(var j=0,len2=eleminputs.length; j<len2; j++){
+
+ if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
+ inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
+
+ for( var k=0; k<len2; k++){
+ if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
+ isempty = false
}
- try {
- // do not copy the script section.
- var script = spans[0].getElementsByTagName('script')[0];
- spans[0].removeChild(script);
- } catch(e) {
- // do nothing if there is no script
+ }
+
+ elemselect = elem.getElementsByTagName('select');
+ for( var k=0; k<elemselect.length; k++){
+ if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
+ isempty = false
}
- }catch(e){}
- }
- }
- }
- [% UNLESS ( hide_marc ) %]
- var buttonUp = divs[i].getElementsByTagName('img')[0];
- buttonUp.setAttribute('onclick',"upSubfield('" + divs[i].getAttribute('id') + "')");
- [% END %]
-
- } else { // it's a indicator div
- if(divs[i].getAttribute('id').match(/^div_indicator/)){
- var inputs = divs[i].getElementsByTagName('input');
- inputs[0].setAttribute('id',inputs[0].getAttribute('id')+new_key);
- inputs[1].setAttribute('id',inputs[1].getAttribute('id')+new_key);
-
- var CloneButtonPlus;
- try {
- var anchors = divs[i].getElementsByTagName('a');
- for (var j = 0; j < anchors.length; j++) {
- if (anchors[j].getAttribute('class') == 'buttonPlus') {
- anchors[j].setAttribute('onclick',"CloneField('" + new_id + "')");
- } else if (anchors[j].getAttribute('class') == 'buttonMinus') {
- anchors[j].setAttribute('onclick',"UnCloneField('" + new_id + "')");
- } else if (anchors[j].getAttribute('class') == 'expandfield') {
- anchors[j].setAttribute('onclick',"ExpandField('" + new_id + "')");
}
}
}
- catch(e){
- // do nothig CloneButtonPlus doesn't exist.
+
+ elemtextareas = elem.getElementsByTagName('textarea');
+ for(var j=0,len2=elemtextareas.length; j<len2; j++){
+ // this bit assumes that the only textareas in this context would be for subfields
+ if (elemtextareas[j].value) {
+ isempty = false;
+ }
}
+ } else {
+ isempty = false;
+ }
+ if(isempty){
+ flag = 1;
+ StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n";
}
+
+ }
+
+ if(flag){
+ return StrAlert;
+ } else {
+ return flag;
}
- }
-
- // insert this line on the page
- original.parentNode.insertBefore(clone,original.nextSibling);
-}
-
-function CloneSubfield(index){
- var original = document.getElementById(index); //original <div>
- fields_in_use[index.substr(0, 12)]++;
- var clone = original.cloneNode(true);
- var new_key = CreateKey();
- var new_id = original.getAttribute('id')+new_key;
- // set the attribute for the new 'div' subfields
- var inputs = clone.getElementsByTagName('input');
- var selects = clone.getElementsByTagName('select');
- var textareas = clone.getElementsByTagName('textarea');
- var linkid;
-
- // input
- var id_input = "";
- for(var i=0,len=inputs.length; i<len ; i++ ){
- id_input = inputs[i].getAttribute('id')+new_key;
- inputs[i].setAttribute('id',id_input);
- inputs[i].setAttribute('name',inputs[i].getAttribute('name')+new_key);
- linkid = id_input;
- }
-
- // select
- for(var i=0,len=selects.length; i<len ; i++ ){
- id_input = selects[i].getAttribute('id')+new_key;
- selects[i].setAttribute('id',selects[i].getAttribute('id')+new_key);
- selects[i].setAttribute('name',selects[i].getAttribute('name')+new_key);
- }
-
- // textarea
- for(var i=0,len=textareas.length; i<len ; i++ ){
- id_input = textareas[i].getAttribute('id')+new_key;
- textareas[i].setAttribute('id',textareas[i].getAttribute('id')+new_key);
- textareas[i].setAttribute('name',textareas[i].getAttribute('name')+new_key);
}
- // Changing the "..." link's onclick attribute for plugin callback
- var links = clone.getElementsByTagName('a');
- var link = links[0];
- var buttonDotOnClick = link.getAttribute('onclick');
- if(buttonDotOnClick.match('Clictag')){ // -1- It s a plugin
- var re = /\('.*'\)/i;
- buttonDotOnClick = buttonDotOnClick.replace(re,"('"+linkid+"')");
- if(buttonDotOnClick){
- link.setAttribute('onclick',buttonDotOnClick);
+ /**
+ *
+ *
+ */
+ function Check(){
+ var StrAlert = AreMandatoriesNotOk();
+ if( ! StrAlert ){
+ document.f.submit();
+ return true;
+ } else {
+ alert(StrAlert);
+ return false;
}
}
+ /**
+ * check if z3950 mandatories are set or not
+ */
+ function GetZ3950Terms(){
+ var frameworkcode = document.getElementById("frameworkcode").value;
+ var strQuery = "&frameworkcode=" + frameworkcode;
+ var mandatories = new Array();
+ var mandatories_label = new Array();
+ [% 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 | html %]");
+ mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]");
+ [% END %]
+ [% END %]
+ [% END %]
+ [% END %]
- [% UNLESS ( advancedMARCEditor ) %]
- // when cloning a subfield, reset its label too.
- var label = clone.getElementsByTagName('label')[0];
- label.setAttribute('for',id_input);
- [% END %]
-
- // setting a new id for the parent div
- clone.setAttribute('id',new_id);
-
- try {
- var buttonUp = clone.getElementsByTagName('img')[0];
- buttonUp.setAttribute('onclick',"upSubfield('" + new_id + "')");
- var anchors = clone.getElementsByTagName('a');
- if(anchors.length){
- for(var i = 0 ,lenanchors = anchors.length ; i < lenanchors ; i++){
- if(anchors[i].getAttribute('class') == 'buttonPlus'){
- anchors[i].setAttribute('onclick',"CloneSubfield('" + new_id + "')");
- } else if (anchors[i].getAttribute('class') == 'buttonMinus') {
- anchors[i].setAttribute('onclick',"UnCloneField('" + new_id + "')");
- }
+ for(var i=0,len=mandatories.length; i<len ; i++){
+ var field_value = document.getElementById(mandatories[i]).value;
+ if( field_value ){
+ strQuery += "&"+mandatories_label[i]+"="+field_value;
}
}
+ return strQuery;
}
- catch(e){
- // do nothig if ButtonPlus & CloneButtonPlus don't exist.
- }
- // insert this line on the page
- original.parentNode.insertBefore(clone,original.nextSibling);
-}
-
- /**
- * This function removes or clears unwanted subfields
- */
-function UnCloneField(index) {
- var original = document.getElementById(index);
- var field_id;
- if (index.match("tag")) {
- field_id = index.substr(0, 7);
- } else {
- field_id = index.substr(0, 12);
- }
- if (1 == fields_in_use[field_id]) {
- // clear inputs, but don't delete
- $(":input.input_marceditor", original).each(function(){
- // thanks to http://www.learningjquery.com/2007/08/clearing-form-data for
- // hint about clearing selects correctly
- var type = this.type;
- var tag = this.tagName.toLowerCase();
- if (type == 'text' || type == 'password' || tag == 'textarea') {
- this.value = "";
- } else if (type == 'checkbox' || type == 'radio') {
- this.checked = false;
- } else if (tag == 'select') {
- this.selectedIndex = -1;
- }
- });
- $(":input.indicator", original).val("");
- } else {
- original.parentNode.removeChild(original);
- fields_in_use[field_id]--;
- }
-}
-
-/**
- * This function create a random number
- */
-function CreateKey(){
- return parseInt(Math.random() * 100000);
-}
-
-/**
- * This function allows to move a subfield up by clickink on the 'up' button .
- */
-function upSubfield(index) {
- try{
- var line = document.getElementById(index); // get the line where the user has clicked.
- } catch(e) {
- return; // this line doesn't exist...
- }
- var tag = line.parentNode; // get the dad of this line. (should be "<div id='tag_...'>")
-
- // getting all subfields for this tag
- var subfields = tag.getElementsByTagName('div');
- var subfieldsLength = subfields.length;
-
- if(subfieldsLength<=1) return; // nothing to do if there is just one subfield.
-
- // among all subfields
- for(var i=0;i<subfieldsLength;i++){
- if(subfields[i].getAttribute('id') == index){ //looking for the subfield which is clicked :
- if(i==1){ // if the clicked subfield is on the top
- tag.appendChild(subfields[1]);
- return;
- } else {
- var lineAbove = subfields[i-1];
- tag.insertBefore(line,lineAbove);
- return;
- }
- }
+
+ function Changefwk() {
+ var f = document.f;
+ f.op.value = "[% op | html %]";
+ f.biblionumber.value = "[% biblionumberdata | html %]";
+ f.changed_framework.value = "changed";
+ f.submit();
}
-}
-
-function unHideSubfield(index,labelindex) { // FIXME :: is it used ?
- subfield = document.getElementById(index);
- subfield.style.display = 'block';
- label = document.getElementById(labelindex);
- label.style.display='none';
-}
-//]]>
-</script>
-<link type="text/css" rel="stylesheet" href="[% themelang %]/css/addbiblio.css" />
-</head>
-<body>
-<div id="yui-cms-loading">
- <div id="yui-cms-float">
- Loading, please wait...
- </div>
- </div>
-<script type="text/javascript" src="[% themelang %]/lib/yui/plugins/loading-min.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-(function() {
- // configuring the loading mask
- YAHOO.widget.Loading.config({
- opacity: 0.8
- });
-})();
-//]]>
-</script>
-[% INCLUDE 'header.inc' %]
-<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>
-<div id="doc" class="yui-t7">
+</script>
+[% Asset.css("css/addbiblio.css") | $raw %]
-<div id="bd">
- <div id="yui-main">
- <div class="yui-g">
+[% INCLUDE 'select2.inc' %]
+<script>
+ $(document).ready(function() {
+ $('.subfield_line select').select2();
+ });
+</script>
+</head>
+<body id="cat_addbiblio" class="cat">
+ <div id="loading">
+ <div>Loading, please wait...</div>
+ </div>
-<h1>[% IF ( biblionumber ) %]Editing <em>[% title |html %]</em> (Record Number [% biblionumber %])</h1>[% ELSE %]Add MARC Record</h1>[% END %]
-<div><input type="checkbox" name="marcDocsSelect" id="marcDocsSelect" checked="true" /> Show MARC tag documentation links<br/></div>
+ [% INCLUDE 'header.inc' %]
-[% UNLESS ( number ) %]
- <!-- show duplicate warning on tab 0 only -->
- [% IF ( duplicatebiblionumber ) %]
- <div class="dialog alert">
- <h4>Duplicate Record suspected</h4>
- <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>
- [% IF ( CAN_user_editcatalogue_edit_items ) %]<form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
- <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
- <input type="submit" class="edit" value="Yes: Edit existing items" />
- </form>[% ELSE %]<form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
- <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber %]" />
- <input type="submit" value="Yes: View existing items" />
- </form>[% END %]
- <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
- [% 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 %]
- </form>
- </div>
+ <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 | html %])
+ [% ELSE %]
+ Add MARC record
[% END %]
- [% END %]
-
-[% IF ( done ) %]
- <script type="text/javascript">
- opener.document.forms['f'].biblionumber.value=[% biblionumber %];
- opener.document.forms['f'].title.value='[% title |html %]';
- window.close();
- </script>
-[% ELSE %]
- <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
- <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
- <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
-[% END %]
-
-<div id="toolbar">
-
-<script type="text/javascript">
- //<![CDATA[
-
- // prepare DOM for YUI Toolbar
-
- $(document).ready(function() {
- $("#z3950searchc").empty();
- $("#savebutton").empty();
- yuiToolbar();
-
- $("#marcDocsSelect").click(function(){
- if($(this).attr("checked")){
- showMARCdocLinks();
- } else {
- hideMARCdocLinks();
- }
- });
- });
+ </div>
- function redirect(dest){
- $("#redirect").attr("value",dest);
- return Check();
- }
-[% IF ( CAN_user_editcatalogue_edit_items ) %]
- var onOption = function () {
- return Check();
- }
+ <div class="main container-fluid">
+ <div class="row">
+ <div class="col-md-10 col-md-offset-1">
- var savemenu = [
- { text: _("Save and view record"), value: 1, onclick: {fn:function(){redirect("view");}} },
- { text: _("Save and edit items"), value: 2, onclick: {fn:function(){redirect("items");}} }
- ];
-[% END %]
-
- // YUI Toolbar Functions
-
- function yuiToolbar() {
-[% IF ( CAN_user_editcatalogue_edit_items ) %]
- var savesplitmenu = new YAHOO.widget.Button({
- type: "split",
- label: _("Save"),
- id: "addbiblio",
- name: "savemenubutton",
- menu: savemenu,
- container: "savebutton"
- });
-
- savesplitmenu.on("click", onOption);
-[% ELSE %]
- new YAHOO.widget.Button({
- id: "addbiblio",
- type: "button",
- label: _("Save"),
- container: "savebutton",
- onclick: {fn:function(){redirect("view");}}
- });
-[% END %]
- new YAHOO.widget.Button({
- id: "z3950search",
- type: "button",
- label: _("Z39.50 Search"),
- container: "z3950searchc",
- onclick: {fn:function(){PopupZ3950()}}
- });
- }
-
- //]]>
- </script>
-
- <ul class="toolbar">
- <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li>
- <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
- <li id="changeframework"><label for="Frameworks">Change framework: </label>
- <select name="Frameworks" id="Frameworks" onchange="Changefwk(this);">
- <option value="Default">Default</option>
- [% FOREACH frameworkcodeloo IN frameworkcodeloop %]
- <option value="[% frameworkcodeloo.value %]" [% frameworkcodeloo.selected %]>
- [% frameworkcodeloo.frameworktext %]
- </option>
- [% END %]
- </select>
-<input type="hidden" name="op" value="addbiblio" /></li>
- </ul>
-</div>
-
-[% IF ( popup ) %]
- <input type="hidden" name="mode" value="popup" />
-[% END %]
- <input type="hidden" name="frameworkcode" value="[% frameworkcode %]" />
- <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
- <input type="hidden" name="breedingid" value="[% breedingid %]" />
-
-<div id="addbibliotabs" class="toptabs numbered">
- <ul>[% FOREACH BIG_LOO IN BIG_LOOP %]
- <li> [% IF ( BIG_LOO.number ) %]
- <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
- [% ELSE %]
- <a href="/cgi-bin/koha/cataloguing/addbiblio.pl#tab[% BIG_LOO.number %]XX">[% BIG_LOO.number %]</a>
- [% END %]</li>
- [% END %]</ul>
-
-[% FOREACH BIG_LOO IN BIG_LOOP %]
-<!-- hide every tab except the 1st -->
-[% IF ( BIG_LOO.number ) %]
- <div id="tab[% BIG_LOO.number %]XX">
-[% ELSE %]
- <div id="tab[% BIG_LOO.number %]XX">
-[% END %]
-
-
- [% FOREACH innerloo IN BIG_LOO.innerloop %]
- [% IF ( innerloo.tag ) %]
- <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
- <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]">
- [% UNLESS hide_marc %]
- [% IF advancedMARCEditor %]
- <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>
- [% ELSE %]
- <span class="tagnum" title="[% innerloo.tag_lib %]">[% innerloo.tag %]<a class="marcdocs"
- onclick="PopupMARCFieldDoc('[% innerloo.tag %]', [% BIG_LOO.number %]); return false;"> ?</a></span>
- [% END %]
- [% IF ( innerloo.fixedfield ) %]
- <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 %]" />
- <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 %]" />
- [% ELSE %]
- <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator1 %]" />
- <input tabindex="1" class="indicator flat" type="text" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" size="1" maxlength="1" value="[% innerloo.indicator2 %]" />
- [% END %] -
- [% ELSE %]
- [% IF ( innerloo.fixedfield ) %]
- <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
- <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
+ <h1>
+ [% IF ( biblionumber ) %]
+ Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
+ [% ELSE %]
+ Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
+ [% END %]
+ </h1>
+
+ [% UNLESS ( number ) %]
+ <!-- show duplicate warning on tab 0 only -->
+ [% IF ( duplicatebiblionumber ) %]
+ <div class="dialog alert">
+ <h3>Duplicate record suspected</h3>
+ <p>Is this a duplicate of <a class="popup" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | html %]" onclick="openWindow('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | html %]&popup=1', 'DuplicateBiblio','800','600'); return false;">[% duplicatetitle | html %]</a> ?</p>
+ [% IF ( CAN_user_editcatalogue_edit_items ) %]
+ <form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
+ <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
+ <button type="submit" class="new"><i class="fa fa-fw fa-pencil"></i> Yes, edit existing items</button>
+ </form>
+ [% ELSE %]
+ <form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
+ <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
+ <input type="submit" value="Yes: View existing items" />
+ </form>
+ [% END %]
+ <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
+ [% IF ( CAN_user_editcatalogue_edit_items ) %]
+ <button type="submit" class="new" onclick="confirmnotdup('items'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
+ [% ELSE %]
+ <button type="submit" class="new" onclick="confirmnotdup('view'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
+ [% END %]
+ </form>
+ </div> <!-- /.dialog.alert -->
+ [% END # /IF duplicatebiblionumber %]
+ [% END # /UNLESS number %]
+
+ [% IF ( done ) %]
+ <script>
+ opener.document.forms['f'].biblionumber.value=[% biblionumber | html %];
+ opener.document.forms['f'].title.value='[% title | html %]';
+ window.close();
+ </script>
[% ELSE %]
- <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator1_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator1 %]" />
- <input tabindex="1" type="hidden" name="tag_[% innerloo.tag %]_indicator2_[% innerloo.index %][% innerloo.random %]" value="[% innerloo.indicator2 %]" />
+ <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
+ <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
+ <input type="hidden" value="" id="current_tab" name="current_tab" />
+ <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
[% END %]
- [% END %]
- [% UNLESS advancedMARCEditor %]
- <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>
- [% END %]
- [% IF ( innerloo.repeatable ) %]
- <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>
- [% END %]
- <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>
-
-
- </div>
-
- [% FOREACH subfield_loo IN innerloo.subfield_loop %]
- <!-- One line on the marc editor -->
- <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 %]">
-
- [% UNLESS advancedMARCEditor %]
- <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">
- [% END %]
-
- [% UNLESS hide_marc %]
- <span class="subfieldcode">[% IF ( subfield_loo.fixedfield ) %]
- <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" />
+ <div id="toolbar" class="btn-toolbar">
+ [% IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
+ [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
+ <!-- Action is under fast cataloging - Save button redirecting to items -->
+ <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
+ [% ELSE %]
+ <!-- Not using fast cataloging - Display split menu -->
+ <div class="btn-group">
+ <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button>
+ <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
+ <span class="caret"></span>
+ </button>
+ <ul class="dropdown-menu">
+ <li><a id="saveandview" href="#">Save and view record</a></li>
+ <li><a id="saveanditems" href="#">Save and edit items</a></li>
+ <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
+ </ul>
+ </div>
+ [% END %]
[% ELSE %]
- <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" />
+ <!-- User cannot edit items - single button redirecting to view -->
+ <div class="btn-group"><a href="#" id="saveandview" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
+ [% END # /IF CAN_user_editcatalogue_edit_items %]
+
+ [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
+ <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Z39.50/SRU search</a></div>
[% END %]
- <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" />
- </span>
- [% ELSE %]
- <input type="hidden" name="tag_[% subfield_loo.tag %]_code_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" value="[% subfield_loo.subfield %]" />
- </span>
- [% END %]
-
- [% UNLESS advancedMARCEditor %]
- [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
- [% subfield_loo.marc_lib_plain %]
- [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
- </span>
- </label>
- [% END %]
-
- [% subfield_loo.marc_value %]
-
- [% IF ( subfield_loo.repeatable ) %]
- <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>
- <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>
+
+ <div class="btn-group">
+ <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button>
+ <ul id="settings-menu" class="dropdown-menu">
+ [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
+ <li><a href="#" id="switcheditor">Switch to advanced editor</a></li>
+ [% END %]
+ [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %]
+ <li>
+ <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a>
+ <li>
+ <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a>
+ </li>
+ [% END %]
+ <li class="divider"></li>
+ <li class="nav-header">Change framework</li>
+ <li>
+ <a href="#" class="change-framework" data-frameworkcode="">
+ [% IF ( frameworkcode ) %]
+ <i class="fa fa-fw"> </i>
+ [% ELSE %]
+ <i class="fa fa-fw fa-check"></i>
+ [% END %]
+ Default
+ </a>
+ </li>
+ [% FOREACH framework IN frameworks%]
+ <li>
+ <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]">
+ [% IF framework.frameworkcode == frameworkcode %]
+ <i class="fa fa-fw fa-check"></i>
+ [% ELSE %]
+ <i class="fa fa-fw"> </i>
+ [% END %]
+ [% framework.frameworktext | html %]
+ </a>
+ </li>
+ [% END %]
+ </ul> <!-- /#settings-menu -->
+ </div> <!-- /.btn-group -->
+ [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
+ [% IF (biblionumber) %]
+ [% IF ( BiblioDefaultViewmarc ) %]
+ <div class="btn-group">
+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
+ </div>
+ [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
+ <div class="btn-group">
+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
+ </div>
+ [% ELSIF ( BiblioDefaultViewisbd ) %]
+ <div class="btn-group">
+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
+ </div>
+ [% ELSE %]
+ <div class="btn-group">
+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
+ </div>
+ [% END %]
+ [% ELSE %]
+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
+ [% END %]
+ [% END # /UNLESS circborrowernumber %]
+ <div class="toolbar-tabs-container">
+ [% IF ( BIG_LOOP.size > 1 ) %]
+ <ul class="toolbar-tabs">
+ [%- FOREACH BIG_LOO IN BIG_LOOP -%]
+ [% IF loop.first %]
+ <li class="selected">
+ [% ELSE %]
+ <li>
+ [% END %]
+ <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a>
+ </li>
+ [%- END -%]
+ </ul>
+ [% END %]
+ <ul class="tag_anchors_list">
+ [% FOREACH BIG_LOO IN BIG_LOOP %]
+ [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %]
+ [% FOREACH innerloo IN BIG_LOO.innerloop %]
+ [% IF ( innerloo.tag ) %]
+ <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]">
+ <a class="tag_anchor" id="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" title="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" href="#div_indicator_tag_[% innerloo.tag | uri %]_[% innerloo.index | uri %][% innerloo.random | uri %]">[% innerloo.tag | uri %]</a>
+ </li>
+ [% END %]
+ [% END %]
+ [% END %]
+ </ul>
+ </div>
+ </div> <!-- /#toolbar.btn-toolbar -->
+
+ [% IF bib_doesnt_exist %]
+ <div class="dialog alert">
+ The record you are trying to edit doesn't exist.<br>
+ <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=">Add a new record</a> or <a href="/cgi-bin/koha/catalogue/search.pl">do a catalog search</a>.
+ </div>
[% END %]
-
- </div>
- <!-- End of the line -->
-
- [% END %]
- </div>
- [% END %]<!-- tag -->
- [% END %]
- </div>
-[% END %]
-</div>
-<!-- Fields for fast add cataloguing -->
-<input type="hidden" name="barcode" value="[% barcode %]" />
-<input type="hidden" name="branch" value="[% branch %]" />
-<input type="hidden" name="circborrowernumber" value="[% circborrowernumber %]" />
-<input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
-<input type="hidden" name="duedatespec" value="[% duedatespec %]" />
-<!-- /End of fast add fields -->
-</form>
-
-</div>
-</div>
-</div>
+ [% IF ( popup ) %]
+ <input type="hidden" name="mode" value="popup" />
+ [% END %]
+ <input type="hidden" name="op" value="addbiblio" />
+ <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" />
+ <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
+ <input type="hidden" name="breedingid" value="[% breedingid | html %]" />
+ <input type="hidden" name="changed_framework" value="" />
+
+ <div id="addbibliotabs" class="toptabs numbered">
+ <ul>
+ [% FOREACH BIG_LOO IN BIG_LOOP %]
+ <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li>
+ [% END %]
+ </ul>
+
+ [% FOREACH BIG_LOO IN BIG_LOOP %]
+ <div id="tab[% BIG_LOO.number | html %]XX">
+
+ [% IF ( BIG_LOOP.size > 1 ) %]
+ <h3>Section [% BIG_LOO.number | html %]</h3>
+ [% END %]
+ [% FOREACH innerloo IN BIG_LOO.innerloop %]
+ [% IF ( innerloo.tag ) %]
+ <div class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
+ <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
+ [% IF advancedMARCEditor %]
+ <a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a>
+ [% ELSE %]
+ <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span>
+ [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;"> ?</a>[% END %]
+ [% END %]
+
+ [% IF ( innerloo.fixedfield ) %]
+ <input type="text"
+ tabindex="1"
+ class="indicator flat"
+ style="display:none;"
+ name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
+ size="1"
+ maxlength="1"
+ value="[% innerloo.indicator1 | html %]" />
+ <input type="text"
+ tabindex="1"
+ class="indicator flat"
+ style="display:none;"
+ name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
+ size="1"
+ maxlength="1"
+ value="[% innerloo.indicator2 | html %]" />
+ [% ELSE %]
+ <input type="text"
+ tabindex="1"
+ class="indicator flat"
+ name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
+ size="1"
+ maxlength="1"
+ value="[% innerloo.indicator1 | html %]" />
+ <input type="text"
+ tabindex="1"
+ class="indicator flat"
+ name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
+ size="1"
+ maxlength="1"
+ value="[% innerloo.indicator2 | html %]" />
+ [% END # /IF innerloo.fixedfield %] -
+
+ [% UNLESS advancedMARCEditor %]
+ <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Click to Expand this Tag">[% innerloo.tag_lib | html %]</a>
+ [% END %]
+
+ <span class="field_controls">
+ [% IF ( innerloo.repeatable ) %]
+ <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]','0','[% advancedMARCEditor | html %]'); return false;" title="Repeat this Tag">
+ <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" />
+ </a>
+ [% END %]
+ <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag">
+ <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" />
+ </a>
+ </span> <!-- /.field_controls -->
+ </div> <!-- /div.tag_title -->
+
+ [% FOREACH subfield_loo IN innerloo.subfield_loop %]
+ <!-- One line on the marc editor -->
+ <div class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]">
+ [% UNLESS advancedMARCEditor %]
+ [% IF ( subfield_loo.fixedfield ) %]
+ <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield">
+ [% ELSE %]
+ <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield">
+ [% END %]
+ [% END %]
+
+ <span class="subfieldcode">
+ [% IF ( subfield_loo.fixedfield ) %]
+ <img class="buttonUp" style="display:none;" src="[% interface | html %]/[% theme | html %]/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]')" alt="Move Up" title="Move Up" />
+ [% ELSE %]
+ <img class="buttonUp" src="[% interface | html %]/[% theme | html %]/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]')" alt="Move Up" title="Move Up" />
+ [% END %]
+ <input type="text"
+ title="[% subfield_loo.marc_lib | $raw %]"
+ style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
+ name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]"
+ value="[% subfield_loo.subfield | html %]"
+ size="1"
+ maxlength="1"
+ class="flat"
+ tabindex="0" />
+ </span>
+
+ [% UNLESS advancedMARCEditor %]
+ [% IF ( subfield_loo.mandatory ) %]
+ <span class="subfield subfield_mandatory">
+ [% ELSE %]
+ <span class="subfield">
+ [% END %]
+ [% subfield_loo.marc_lib | $raw %]
+ </span>
+ </label>
+ [% END %]
+
+ [% SET mv = subfield_loo.marc_value %]
+ [% IF ( mv.type == 'text' ) %]
+ [% IF ( mv.readonly == 1 ) %]
+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" />
+ [% ELSE %]
+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
+ [% END %]
+
+ [% IF ( mv.authtype ) %]
+ <span class="subfield_controls"><a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','biblio'); return false;" tabindex="1" title="Tag editor">Tag editor</a></span>
+ [% END %]
+ [% ELSIF ( mv.type == 'text_complex' ) %]
+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
+ <span class="subfield_controls">
+ [% IF mv.noclick %]
+ <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span>
+ [% ELSE %]
+ <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a>
+ [% END %]
+ </span>
+ [% mv.javascript | $raw %]
+ [% ELSIF ( mv.type == 'hidden' ) %]
+ <input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
+ [% ELSIF ( mv.type == 'textarea' ) %]
+ <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea>
+ [% ELSIF ( mv.type == 'select' ) %]
+ <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor" id="[%- mv.id | html -%]">
+ [% FOREACH aval IN mv.values %]
+ [% IF aval == mv.default %]
+ <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
+ [% ELSE %]
+ <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
+ [% END %]
+ [% END %]
+ </select>
+ [% END # /IF (mv.type...) %]
+ [% IF ( subfield_loo.mandatory ) %]
+ <span class="required">Required</span>
+ [% END %]
+ <span class="subfield_controls">
+ [% IF ( subfield_loo.repeatable ) %]
+ <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;">
+ <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
+ </a>
+ <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;">
+ <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
+ </a>
+ [% END %]
+ </span>
+ </div> <!-- /.subfield_line -->
+ <!-- End of the line -->
+ [% END # /FOREACH subfield_loop %]
+ </div> <!-- /.tag.clearfix -->
+ [% END %]<!-- if innerloo.tag -->
+ [% END # /FOREACH BIG_LOO.innerloop %]
+ </div> <!-- /#tabXXX -->
+ [% END # /FOREACH BIG_LOOP %]
+ </div><!-- /#addbibliotabs -->
+
+ [%# Fields for fast cataloging %]
+ <input type="hidden" name="barcode" value="[% barcode | html %]" />
+ <input type="hidden" name="branch" value="[% branch | html %]" />
+ <input type="hidden" name="circborrowernumber" value="[% circborrowernumber | html %]" />
+ <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
+ <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
+ [%# End of fields for fast cataloging %]
+ </form> <!-- /name=f -->
+ </div> <!-- /.col-md-10.col-md-offset-1 -->
+ </div> <!-- /.row -->
[% INCLUDE 'intranet-bottom.inc' %]