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