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