<script>
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'preferences', 'resources', 'text-marc', 'widget' ], function( KohaBackend, Search, Macros, MARCEditor, MARC, Preferences, Resources, TextMARC, Widget ) {
- var z3950Servers = {
- 'koha:biblioserver': {
+ var z3950Servers = [
+ {
+ server_id: 'koha:biblioserver',
name: _("Local catalog"),
recordtype: 'biblio',
checked: false,
},
[%- FOREACH server = z3950_servers -%]
- [% server.id | html %]: {
- name: '[% server.servername | html %]',
+ {
+ server_id: [% server.id | html %],
+ name: '[% server.servername | html_entity %]',
recordtype: '[% server.recordtype | html %]',
checked: [% server.checked ? 'true' : 'false' | html %],
},
[%- END -%]
- };
+ ];
// The columns that should show up in a search, in order, and keyed by the corresponding <metadata> tag in the XSL and Pazpar2 config
var z3950Labels = [
'iso2709': {
saveLabel: _("Save as MARC (.mrc) file"),
save: function( id, record, done ) {
- saveAs( new Blob( [record.toISO2709()], { 'type': 'application/octet-stream;charset=utf-8' } ), 'record.mrc' );
+ var recname = 'record.mrc';
+ if(state.recordID) {
+ recname = state.recordID+'.mrc';
+ }
+
+ [% IF (Koha.Preference('SaveRecordbyControlNumber') == '1') %]
+ var controlnumfield = record.field('001');
+ if(controlnumfield) {
+ recname = controlnumfield.subfield('@')+'.mrc';
+ }
+ [% END %]
+ saveAs( new Blob( [record.toISO2709()], { 'type': 'application/octet-stream;charset=utf-8' } ), recname );
done( {} );
}
'marcxml': {
saveLabel: _("Save as MARCXML (.xml) file"),
save: function( id, record, done ) {
- saveAs( new Blob( [record.toXML()], { 'type': 'application/octet-stream;charset=utf-8' } ), 'record.xml' );
+ var recname = 'record.xml';
+ if(state.recordID) {
+ recname = state.recordID+'.xml';
+ }
+
+ [% IF (Koha.Preference('SaveRecordbyControlNumber') == '1') %]
+ var controlnumfield = record.field('001');
+ if(controlnumfield) {
+ recname = controlnumfield.subfield('@')+'.xml';
+ }
+ [% END %]
+ saveAs( new Blob( [record.toXML()], { 'type': 'application/octe t-stream;charset=utf-8' } ), recname );
done( {} );
}
// Search functions
function showAdvancedSearch() {
$('#advanced-search-servers').empty();
- $.each( z3950Servers, function( server_id, server ) {
- $('#advanced-search-servers').append( '<li data-server-id="' + server_id + '"><label><input class="search-toggle-server" type="checkbox"' + ( server.checked ? ' checked="checked">' : '>' ) + server.name + '</label></li>' );
+ $.each( z3950Servers, function( index, server ) {
+ $('#advanced-search-servers').append( '<li data-server-id="' + index + '"><label><input class="search-toggle-server" type="checkbox"' + ( server.checked ? ' checked="checked">' : '>' ) + server.name + '</label></li>' );
} );
$('#advanced-search-ui').modal('show');
}
$('#searchresults tbody').empty();
$('#search-serversinfo').empty();
- $.each( z3950Servers, function( server_id, server ) {
- var num_fetched = data.num_fetched[server_id];
+ $.each( z3950Servers, function( index, server ) {
+ var num_fetched = data.num_fetched[server.server_id];
- if ( data.errors[server_id] ) {
- num_fetched = data.errors[server_id];
+ if ( data.errors[server.server_id] ) {
+ num_fetched = data.errors[server.server_id];
} else if ( num_fetched == null ) {
num_fetched = '-';
- } else if ( num_fetched < data.num_hits[server_id] ) {
+ } else if ( num_fetched < data.num_hits[server.server_id] ) {
num_fetched += '+';
}
- $('#search-serversinfo').append( '<li data-server-id="' + server_id + '"><label><input class="search-toggle-server" type="checkbox"' + ( server.checked ? ' checked="checked">' : '>' ) + server.name + ' (' + num_fetched + ')' + '</label></li>' );
+ $('#search-serversinfo').append( '<li data-server-id="' + index + '"><label><input class="search-toggle-server" type="checkbox"' + ( server.checked ? ' checked="checked">' : '>' ) + server.name + ' (' + num_fetched + ')' + '</label></li>' );
} );
var seenColumns = {};
}
var result = '<tr>';
- result += '<td class="sourcecol">' + z3950Servers[ hit.server ].name + '</td>';
+ var server_name = hit.servername == 'koha:biblioserver' ? _("Local catalog") : hit.servername;
+ result += '<td class="sourcecol">' + server_name + '</td>';
$.each( z3950Labels, function( undef, label ) {
if ( !seenColumns[ label[0] ] ) return;
// Macros loaded on first show of modal
break;
case 'selected_search_targets':
- $.each( z3950Servers, function( server_id, server ) {
- var saved_val = Preferences.user.selected_search_targets[server_id];
+ $.each( z3950Servers, function( index, server ) {
+ var saved_val = Preferences.user.selected_search_targets[server.server_id];
if ( saved_val != null ) server.checked = saved_val;
} );
$.ajax(options)
.then(function(result) {
$.each(result,function( undef, macro ){
- var $li = $( '<li data-name="' + macro.name + '" data-id="' + macro.macro_id + '"><a href="#">'+ macro.macro_id + ' - ' + macro.name + '</a><ol class="macro-info"></ol></li>' );
+ var $li = $( '<li data-name="' + macro.name + '" data-id="' + macro.macro_id + '"><a href="#">' + macro.name + '</a><ol class="macro-info"></ol></li>' );
if ( macro.macro_id == macroEditor.activeMacroId ) $li.addClass( 'active' );
$li.click( function() {
loadMacro(macro.name, macro.macro_id, macro.shared);
var errors = [];
$.each( result.errors, function() {
- var error = '<b>' + _("Line ") + (this.line + 1) + ':</b> ';
+ var error = '<strong>' + _("Line ") + (this.line + 1) + ':</strong> ';
switch ( this.error ) {
case 'failed': error += _("failed to run"); break;