Lines 44-49
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
44 |
'koha:biblioserver': { |
44 |
'koha:biblioserver': { |
45 |
name: _("Local catalog"), |
45 |
name: _("Local catalog"), |
46 |
recordtype: 'biblio', |
46 |
recordtype: 'biblio', |
|
|
47 |
enabled: true, |
47 |
checked: false, |
48 |
checked: false, |
48 |
}, |
49 |
}, |
49 |
[%- FOREACH batch = editable_batches -%] |
50 |
[%- FOREACH batch = editable_batches -%] |
Lines 58-63
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
58 |
name: '[% server.servername | html %]', |
59 |
name: '[% server.servername | html %]', |
59 |
recordtype: '[% server.recordtype | html %]', |
60 |
recordtype: '[% server.recordtype | html %]', |
60 |
checked: [% server.checked ? 'true' : 'false' | html %], |
61 |
checked: [% server.checked ? 'true' : 'false' | html %], |
|
|
62 |
enabled: true, |
61 |
}, |
63 |
}, |
62 |
[%- END -%] |
64 |
[%- END -%] |
63 |
}; |
65 |
}; |
Lines 172-188
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
172 |
|
174 |
|
173 |
$('#quicksearch .search-box').each( function() { |
175 |
$('#quicksearch .search-box').each( function() { |
174 |
shortcut.add( 'enter', $.proxy( function() { |
176 |
shortcut.add( 'enter', $.proxy( function() { |
175 |
var terms = []; |
177 |
var terms = {}; |
176 |
|
178 |
|
177 |
$('#quicksearch .search-box').each( function() { |
179 |
$('#quicksearch .search-box').each( function() { |
178 |
if ( !this.value ) return; |
180 |
if ( !this.value ) return; |
179 |
|
181 |
|
180 |
terms.push( [ $(this).data('qualifier'), this.value ] ); |
182 |
terms[ $(this).data('qualifier') ] = this.value; |
181 |
} ); |
183 |
} ); |
182 |
|
184 |
|
183 |
if ( !terms.length ) return; |
185 |
if ( $.isEmptyObject(terms) ) return; |
184 |
|
186 |
|
185 |
if ( Search.Run( z3950Servers, Search.JoinTerms(terms) ) ) { |
187 |
if ( Search.Run( z3950Servers, terms ) ) { |
186 |
$("#search-overlay").show(); |
188 |
$("#search-overlay").show(); |
187 |
showResultsBox(); |
189 |
showResultsBox(); |
188 |
} |
190 |
} |
Lines 388-393
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
388 |
$( '#save-targets input[data-target-id="' + target_id + '"]' ).closest('li').toggle(enabled); |
390 |
$( '#save-targets input[data-target-id="' + target_id + '"]' ).closest('li').toggle(enabled); |
389 |
} |
391 |
} |
390 |
|
392 |
|
|
|
393 |
function setSearchTargetChecked( server_id, checked ) { |
394 |
if ( z3950Servers[server_id] == null ) return; |
395 |
|
396 |
z3950Servers[server_id].checked = checked; |
397 |
$( '.search-target-list li[data-server-id="' + server_id + '"] input' ).prop('checked', checked); |
398 |
} |
399 |
|
400 |
function setSearchTargetEnabled( server_id, enabled ) { |
401 |
if ( !enabled ) { |
402 |
setSearchTargetChecked( server_id, false ); |
403 |
} |
404 |
|
405 |
z3950Servers[server_id].enabled = enabled; |
406 |
$( '.search-target-list li[data-server-id="' + server_id + '"]' ).toggle(enabled); |
407 |
} |
408 |
|
391 |
function setSource(parts) { |
409 |
function setSource(parts) { |
392 |
state.backend = parts[0]; |
410 |
state.backend = parts[0]; |
393 |
state.recordID = parts[1]; |
411 |
state.recordID = parts[1]; |
Lines 488-510
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
488 |
function showAdvancedSearch() { |
506 |
function showAdvancedSearch() { |
489 |
$('#advanced-search-servers').empty(); |
507 |
$('#advanced-search-servers').empty(); |
490 |
$.each( z3950Servers, function( server_id, server ) { |
508 |
$.each( z3950Servers, function( server_id, server ) { |
|
|
509 |
if ( !server.enabled ) return; |
491 |
$('#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>' ); |
510 |
$('#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>' ); |
492 |
} ); |
511 |
} ); |
493 |
$('#advanced-search-ui').modal('show'); |
512 |
$('#advanced-search-ui').modal('show'); |
494 |
} |
513 |
} |
495 |
|
514 |
|
496 |
function startAdvancedSearch() { |
515 |
function startAdvancedSearch() { |
497 |
var terms = []; |
516 |
var terms = {}; |
498 |
|
517 |
|
499 |
$('#advanced-search-ui .search-box').each( function() { |
518 |
$('#advanced-search-ui .search-box').each( function() { |
500 |
if ( !this.value ) return; |
519 |
if ( !this.value ) return; |
501 |
|
520 |
|
502 |
terms.push( [ $(this).data('qualifier'), this.value ] ); |
521 |
terms[ $(this).data('qualifier') ] = this.value; |
503 |
} ); |
522 |
} ); |
504 |
|
523 |
|
505 |
if ( !terms.length ) return; |
524 |
if ( $.isEmptyObject(terms) ) return; |
506 |
|
525 |
|
507 |
if ( Search.Run( z3950Servers, Search.JoinTerms(terms) ) ) { |
526 |
if ( Search.Run( z3950Servers, terms ) ) { |
508 |
$('#advanced-search-ui').modal('hide'); |
527 |
$('#advanced-search-ui').modal('hide'); |
509 |
$("#search-overlay").show(); |
528 |
$("#search-overlay").show(); |
510 |
showResultsBox(); |
529 |
showResultsBox(); |
Lines 577-595
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
577 |
$.each( data.hits, function( undef, hit ) { |
596 |
$.each( data.hits, function( undef, hit ) { |
578 |
backends.search.records[ hit.server + ':' + hit.index ] = hit.record; |
597 |
backends.search.records[ hit.server + ':' + hit.index ] = hit.record; |
579 |
|
598 |
|
580 |
switch ( hit.server ) { |
599 |
hit.id = 'search/' + hit.server + ':' + hit.index; |
581 |
case 'koha:biblioserver': |
600 |
if ( hit.server == 'koha:biblioserver' ) { |
582 |
var bibnumField = hit.record.field( bibnumMap[0] ); |
601 |
var bibnumField = hit.record.field( bibnumMap[0] ); |
583 |
|
|
|
584 |
if ( bibnumField && bibnumField.hasSubfield( bibnumMap[1] ) ) { |
585 |
hit.id = 'catalog/' + bibnumField.subfield( bibnumMap[1] ); |
586 |
break; |
587 |
} |
588 |
|
589 |
// Otherwise, fallthrough |
590 |
|
602 |
|
591 |
default: |
603 |
if ( bibnumField && bibnumField.hasSubfield( bibnumMap[1] ) ) { |
592 |
hit.id = 'search/' + hit.server + ':' + hit.index; |
604 |
hit.id = 'catalog/' + bibnumField.subfield( bibnumMap[1] ); |
|
|
605 |
} |
606 |
} else if ( /^batch:/.test(hit.server) && hit.import_record_id ) { |
607 |
hit.id = hit.server + '/' + hit.import_record_id; |
593 |
} |
608 |
} |
594 |
|
609 |
|
595 |
var result = '<tr>'; |
610 |
var result = '<tr>'; |
Lines 710-718
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
710 |
switch (pref) { |
725 |
switch (pref) { |
711 |
case 'enabledBatches': |
726 |
case 'enabledBatches': |
712 |
$.each( editable_batches, function( batch_id, batch ) { |
727 |
$.each( editable_batches, function( batch_id, batch ) { |
713 |
$( '#batches-list li[data-batch-id=' + batch_id + '] input' )[0].checked = Preferences.user.enabledBatches[batch_id]; |
728 |
$( '#batches-table tr[data-batch-id=' + batch_id + '] input.is-save-target' )[0].checked = Preferences.user.enabledBatches[batch_id]; |
714 |
setSaveTargetEnabled( 'batch:' + batch_id + '/', Preferences.user.enabledBatches[batch_id] || false ); |
729 |
setSaveTargetEnabled( 'batch:' + batch_id + '/', Preferences.user.enabledBatches[batch_id] || false ); |
715 |
} ); |
730 |
} ); |
|
|
731 |
case 'enabledSearchBatches': |
732 |
$.each( editable_batches, function( batch_id, batch ) { |
733 |
$( '#batches-table tr[data-batch-id=' + batch_id + '] input.is-searchable' )[0].checked = Preferences.user.enabledSearchBatches[batch_id]; |
734 |
setSearchTargetEnabled( 'batch:' + batch_id, Preferences.user.enabledSearchBatches[batch_id] || false ); |
735 |
} ); |
716 |
case 'fieldWidgets': |
736 |
case 'fieldWidgets': |
717 |
$( '#set-field-widgets' ).text( value ? _("Show fields verbatim") : _("Show helpers for fixed and coded fields") ); |
737 |
$( '#set-field-widgets' ).text( value ? _("Show fields verbatim") : _("Show helpers for fixed and coded fields") ); |
718 |
break; |
738 |
break; |
Lines 741-753
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
741 |
if ( saved_val != null ) setSaveTargetChecked( target_id, saved_val ); |
761 |
if ( saved_val != null ) setSaveTargetChecked( target_id, saved_val ); |
742 |
} ); |
762 |
} ); |
743 |
break; |
763 |
break; |
744 |
case 'selected_search_targets': |
|
|
745 |
$.each( z3950Servers, function( server_id, server ) { |
746 |
var saved_val = Preferences.user.selected_search_targets[server_id]; |
747 |
|
748 |
if ( saved_val != null ) server.checked = saved_val; |
749 |
} ); |
750 |
break; |
751 |
} |
764 |
} |
752 |
} |
765 |
} |
753 |
|
766 |
|
Lines 772-779
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
772 |
|
785 |
|
773 |
switch (pref) { |
786 |
switch (pref) { |
774 |
case 'enabledBatches': |
787 |
case 'enabledBatches': |
775 |
_addLiveHandler( '#batches-list input', 'change', function() { |
788 |
_addLiveHandler( '#batches-table input.is-save-target', 'change', function() { |
776 |
Preferences.user.enabledBatches[ $( this ).closest('li').data('batch-id') ] = this.checked; |
789 |
Preferences.user.enabledBatches[ $( this ).closest('tr').data('batch-id') ] = this.checked; |
|
|
790 |
} ); |
791 |
break; |
792 |
case 'enabledSearchBatches': |
793 |
_addLiveHandler( '#batches-table input.is-searchable', 'change', function() { |
794 |
Preferences.user.enabledSearchBatches[ $( this ).closest('tr').data('batch-id') ] = this.checked; |
777 |
} ); |
795 |
} ); |
778 |
break; |
796 |
break; |
779 |
case 'fieldWidgets': |
797 |
case 'fieldWidgets': |
Lines 930-943
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
930 |
}; |
948 |
}; |
931 |
|
949 |
|
932 |
// Build batch UI |
950 |
// Build batch UI |
933 |
var $batch_entry = $( '<li data-batch-id="' + batch.batch_id + '"><input type="checkbox" />' + batch.name + '</li>' ); |
951 |
var $batch_entry = $( '<tr data-batch-id="' + batch.batch_id + '"><td>' + batch.name + '</td><td><input type="checkbox" class="is-searchable" /></td><td><input type="checkbox" class="is-save-target" /></td></tr>' ); |
934 |
|
952 |
|
935 |
var $batch_buttons = $('<span class="batch-buttons"></span>').appendTo($batch_entry); |
953 |
var $batch_buttons = $('<td class="batch-buttons"></td>').appendTo($batch_entry); |
936 |
var $export_button = $( '<button>' + _("Export...") + '</button>' ).appendTo($batch_buttons).click( function() { |
954 |
var $export_button = $( '<button>' + _("Export...") + '</button>' ).appendTo($batch_buttons).click( function() { |
937 |
$('#batches-list .batch-export').hide(); |
955 |
$('#batches-table .batch-export').hide(); |
938 |
$export_screen.show(); |
956 |
$export_screen.show(); |
939 |
} ); |
957 |
} ); |
940 |
|
958 |
|
|
|
959 |
timestamp_pattern = '\\d{4}(0\\d|1[012])([012]\\d|3[01])(([01]\\d|2[0-3])[0-5]\\d[0-5]\\d)?' |
960 |
|
941 |
var $export_screen = $( |
961 |
var $export_screen = $( |
942 |
'<form class="batch-export form-horizontal" style="display: none">' |
962 |
'<form class="batch-export form-horizontal" style="display: none">' |
943 |
+ '<div class="control-group">' |
963 |
+ '<div class="control-group">' |
Lines 945-958
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
945 |
+ '<div class="controls"><input class="batch-control-number-start" type="text"> - <input class="batch-control-number-end" type="text"></div>' |
965 |
+ '<div class="controls"><input class="batch-control-number-start" type="text"> - <input class="batch-control-number-end" type="text"></div>' |
946 |
+ '</div>' |
966 |
+ '</div>' |
947 |
+ '<label class="control-label">' + _("Timestamp range (YYYYMMDD or YYYMMDDHHMMSS):") + '</label>' |
967 |
+ '<label class="control-label">' + _("Timestamp range (YYYYMMDD or YYYMMDDHHMMSS):") + '</label>' |
948 |
+ '<div class="controls"><input class="batch-timestamp-start" type="text"> - <input class="batch-timestamp-end" type="text"></div>' |
968 |
+ '<div class="controls"><input class="batch-timestamp-start" type="text" pattern="' + timestamp_pattern + '"> - <input class="batch-timestamp-end" type="text" pattern="' + timestamp_pattern + '"></div>' |
949 |
+ '</div>' |
969 |
+ '</div>' |
950 |
+ '<div class="control-group">' |
970 |
+ '<div class="control-group">' |
951 |
+ '<div class="controls"><button class="batch-export-start">' + _("Start export") + '</div>' |
971 |
+ '<div class="controls"><button class="batch-export-start">' + _("Start export") + '</div>' |
952 |
+ '</form>' |
972 |
+ '</form>' |
953 |
).appendTo($batch_entry); |
973 |
).appendTo($batch_buttons); |
954 |
|
974 |
|
955 |
$export_screen.find('.batch-export-start').click( function() { |
975 |
$export_screen.submit( function() { |
956 |
function getFormVal(name) { |
976 |
function getFormVal(name) { |
957 |
return $export_screen.find( '.batch-' + name ).val(); |
977 |
return $export_screen.find( '.batch-' + name ).val(); |
958 |
} |
978 |
} |
Lines 967-973
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
967 |
KohaBackend.StartBatchExport( batch.batch_id, options ); |
987 |
KohaBackend.StartBatchExport( batch.batch_id, options ); |
968 |
} ); |
988 |
} ); |
969 |
|
989 |
|
970 |
$('#batches-list').append( $batch_entry ); |
990 |
$('#batches-table tbody').append( $batch_entry ); |
971 |
} |
991 |
} |
972 |
|
992 |
|
973 |
$(document).ready( function() { |
993 |
$(document).ready( function() { |