11de340639
add authority type in the form to create the missing authority. when authority was found, the 600$9 field have the authid. Testing scenario (Creating an authority record for a failed automatic link) : 1 - In your system preferences set: AutoCreateAuthorities: Don't generate BiblioAddsAuthorities: Allow 2 - Go to the Cataloging -> New record (koha/cataloguing/addbiblio.pl) Ensure you are using the basic editor 3 - Click the "Link authorities automatically" button. A message should appear, telling the user "No authority link was changed." 4 - Add random informations in field 600$a of the biblio record. 5 - Click the "Link authorities automatically" button. the message box should now show "600 - No matching authority found.". the 9 subfield is red Above the 9 subfield is a red X with a blue plus next to it Hover on the plus, see it is titled 'Create authority' 6 - Click the 'Create authority' link 7 - A new authroity form pops up, the info from the cataloging editor is prefilled Click the 100 field heading to expand and confirm info is transferred 8 - Fill in necessary fields and save the new authority 9 - The cataloging screen now has the 9 subfield populated and is green 10 - Click "Link authorities automatically" again Dialog says "No authority link was changed" 11 - In another tab go to System preferences and set AutoCreateAuthorities to 'Generate' 12 - Add random information to the 650 field 13 - Click 'Link authorities' button 14 - Dialog says:650 - No matching authority found. A new authority was created automatically. 15 - The subfield 9 is green and has the id of the new authority record 16 - In another tab search authorities and find an existing subject heading 17 - Add a new 650 with the info from the existing record 18 - Click 'Link authorities' 19 - The new field is correctly linked to existing authority Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> https://bugs.koha-community.org/show_bug.cgi?id=12299 Signed-off-by: Michal Denar <black23@gmail.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Michal Denar <black23@gmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
172 lines
7.9 KiB
Text
172 lines
7.9 KiB
Text
[% USE To %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Authority details</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
</head>
|
|
|
|
<body id="auth_blinddetail-biblio-search" class="auth">
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-md-8 col-md-offset-2">
|
|
|
|
<div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
<script>
|
|
$(document).ready(function(){
|
|
[% IF rancor %]
|
|
function RancorReplaceField( new_text, ind_1, ind_2 ){
|
|
var cur_field = opener.opener.jQuery(".CodeMirror")[0].CodeMirror.marceditor.getCurrentField();
|
|
cur_field.setText(new_text);
|
|
[% IF update_ind1 %]cur_field.setIndicator1(ind_1);[% END %]
|
|
[% IF update_ind2 %]cur_field.setIndicator2(ind_2);[% END %]
|
|
return true;
|
|
}
|
|
[% IF ( clear ) %]
|
|
var new_line = "";
|
|
[% ELSE %]
|
|
var new_line = "
|
|
[%- FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP -%]‡
|
|
[%- To.json( SUBFIELD_LOO.marc_subfield ) | $raw -%]
|
|
[%- FOREACH marc_value IN SUBFIELD_LOO.marc_values -%]
|
|
[%- To.json( marc_value ) | $raw -%]
|
|
[%- END -%]
|
|
[%- END -%]‡9[% authid | html %]";
|
|
[% END %]
|
|
RancorReplaceField( new_line, "[% indicator1 | html %]", "[% indicator2 | html %]" );
|
|
[% ELSE %]
|
|
var index_start = "[% index | html %]";
|
|
var whichfield;
|
|
try {
|
|
whichfield = opener.opener.document.getElementById(index_start);
|
|
autolinker_dialog = opener.opener.document.getElementById("autolinker_dialog");
|
|
} catch(e) {
|
|
whichfield = opener.document.getElementById(index_start);
|
|
autolinker_dialog = opener.document.getElementById("autolinker_dialog");
|
|
}
|
|
var field_start = whichfield.parentNode.parentNode.parentNode.parentNode;
|
|
|
|
// Sets the good number of form fields for the specified subfield
|
|
// Returns false if the cloning failed
|
|
function SetSubfieldNumber(subfield_name, nb) {
|
|
// Nothing to do if we only have one value
|
|
if(nb <= 1) {
|
|
return true;
|
|
}
|
|
|
|
// Find the subfield we want to clone
|
|
var re = new RegExp('^subfield' + subfield_name,'g');
|
|
var subfields = $(field_start).children('ul').children('li').filter( function() {
|
|
return this.id.match(re);
|
|
});
|
|
|
|
// Try to add as many clones as needed
|
|
try {
|
|
for(var i=0; i<nb-subfields.length; i++) {
|
|
window.opener.opener.CloneSubfield(subfields[0].getAttribute('id'),'[% advancedMARCEditor | html %]');
|
|
}
|
|
}
|
|
catch(err) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Fills the subfield with the values entered in argument
|
|
function SetSubfieldValues() {
|
|
// Get the arguments
|
|
var subfield_name = arguments[0];
|
|
var values = new Array();
|
|
for(var i=1; i<arguments.length; i++) {
|
|
values.push(arguments[i]);
|
|
}
|
|
|
|
// Create the correct number of form fields for all values
|
|
// If the field cloning failed, only the first value will be added to the form.
|
|
SetSubfieldNumber(subfield_name, values.length);
|
|
|
|
// Find the subfields where we will add the new values
|
|
var re = new RegExp('^subfield' + subfield_name,'g');
|
|
var subfields = $(field_start).children('ul').children('li').filter( function() {
|
|
return this.id.match(re);
|
|
});
|
|
|
|
// Add the new values to those subfields, empty the additional fields
|
|
var i=0;
|
|
subfields.each(function() {
|
|
if(i in values) {
|
|
this.getElementsByTagName('input')[1].value = values[i];
|
|
}
|
|
else {
|
|
this.getElementsByTagName('input')[1].value = "";
|
|
}
|
|
i++;
|
|
});
|
|
}
|
|
[% UNLESS ( clear ) %]
|
|
[% FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP %]
|
|
SetSubfieldValues(
|
|
"[% To.json(tag_number) | $raw %][% To.json(SUBFIELD_LOO.marc_subfield) | $raw %]"
|
|
[% FOREACH marc_value IN SUBFIELD_LOO.marc_values %]
|
|
,"[% To.json( marc_value ) | $raw %]"
|
|
[% END %]
|
|
);
|
|
[% END %]
|
|
var indicators = field_start.getElementsByClassName('indicator flat');
|
|
[% IF update_ind1 %]
|
|
indicators[0].value="[% indicator1 | html %]";
|
|
[% END %]
|
|
[% IF update_ind2 %]
|
|
indicators[1].value="[% indicator2 | html %]";
|
|
[% END %]
|
|
[% END %]
|
|
|
|
// browse all its subfields (clear and $9)
|
|
var subfields = field_start.getElementsByTagName('input');
|
|
var re = /^tag_\d*_code_/;
|
|
for(var i=0, len = subfields.length ; i< len ; i++) { // browse all subfields
|
|
if(subfields[i].hasAttribute('name') == 0 ) {continue; } // div elements specific to Select2
|
|
if(subfields[i].getAttribute('name').match(re)){ // it s a subfield
|
|
var code = subfields[i]; // code is the first input
|
|
var subfield = subfields[i+1]; // subfield the second
|
|
|
|
[% IF ( clear ) %]
|
|
if (subfield){subfield.value="" ;}
|
|
[% ELSE %]
|
|
if(code.value=='9'){
|
|
subfield.value = "[% To.json(authid) | $raw %]";
|
|
subfield.className = subfield.className.replace("no_matching_authority_field", "matching_authority_field");
|
|
break;
|
|
}
|
|
[% END %]
|
|
}
|
|
}
|
|
[% END %]
|
|
|
|
//Delete create authority button and status
|
|
var linkinfos = field_start.getElementsByTagName('i');
|
|
for (index = linkinfos.length - 1; index >= 0; index--) {
|
|
linkinfos[index].parentNode.removeChild(linkinfos[index]);
|
|
}
|
|
//Change message autolinker_dialog
|
|
var subfield_dialog = $(autolinker_dialog).children('ul').children('li');
|
|
for (index = subfield_dialog.length - 1; index >= 0; index--){
|
|
var tag_field = field_start.id.split("_")[1];
|
|
if (subfield_dialog[index].innerHTML.indexOf(tag_field) !== -1 ){
|
|
subfield_dialog[index].innerHTML = subfield_dialog[index].innerHTML.replace(_("No matching authority found."), _("No matching authority found. A new authority was created or imported"));
|
|
break;
|
|
}
|
|
}
|
|
opener.close();
|
|
window.close();
|
|
return false;
|
|
});
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' popup_window = 1 %]
|