Lines 82-87
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
82 |
|
82 |
|
83 |
var editor; |
83 |
var editor; |
84 |
var macroEditor; |
84 |
var macroEditor; |
|
|
85 |
var exportRecordEditor; |
85 |
|
86 |
|
86 |
function makeAuthorisedValueWidgets( frameworkCode ) { |
87 |
function makeAuthorisedValueWidgets( frameworkCode ) { |
87 |
$.each( KohaBackend.GetAllTagsInfo( frameworkCode ), function( tag, tagInfo ) { |
88 |
$.each( KohaBackend.GetAllTagsInfo( frameworkCode ), function( tag, tagInfo ) { |
Lines 279-284
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
279 |
done( { error: data.error, newRecord: data.marcxml && data.marcxml[0], newId: data.biblionumber && [ 'catalog', data.biblionumber ] } ); |
280 |
done( { error: data.error, newRecord: data.marcxml && data.marcxml[0], newId: data.biblionumber && [ 'catalog', data.biblionumber ] } ); |
280 |
} |
281 |
} |
281 |
|
282 |
|
|
|
283 |
//Add the record to the exportRecords list if there is one |
284 |
if(Preferences.user.exportRecords) { |
285 |
var export_list = $.map (Preferences.user.exportRecords, function (exportRecord, name) { |
286 |
return $.extend( { name: name}, exportRecord ); |
287 |
}); |
288 |
$.each (export_list, function ( undef, exportRecord ) { |
289 |
exportRecord.contents += "\n" + state.recordID; |
290 |
storeExportRecord( exportRecord.name, { contents: exportRecord.contents} ); |
291 |
} ); |
292 |
} |
293 |
|
282 |
if ( id ) { |
294 |
if ( id ) { |
283 |
KohaBackend.SaveRecord( id, record, finishCb ); |
295 |
KohaBackend.SaveRecord( id, record, finishCb ); |
284 |
} else { |
296 |
} else { |
Lines 643-648
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
643 |
case 'macros': |
655 |
case 'macros': |
644 |
// Macros loaded on first show of modal |
656 |
// Macros loaded on first show of modal |
645 |
break; |
657 |
break; |
|
|
658 |
case 'exportRecords': |
659 |
//Export records loaded on first show of modal |
660 |
break; |
646 |
case 'selected_search_targets': |
661 |
case 'selected_search_targets': |
647 |
$.each( z3950Servers, function( index, server ) { |
662 |
$.each( z3950Servers, function( index, server ) { |
648 |
var saved_val = Preferences.user.selected_search_targets[server.server_id]; |
663 |
var saved_val = Preferences.user.selected_search_targets[server.server_id]; |
Lines 696-701
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
696 |
} ); |
711 |
} ); |
697 |
} |
712 |
} |
698 |
|
713 |
|
|
|
714 |
//> Export record functions |
715 |
function loadExportRecord( name ) { |
716 |
$( '#export-list li' ).removeClass ('active' ); |
717 |
exportRecordEditor.activeExportRecord = name; |
718 |
|
719 |
if ( !name ) { |
720 |
exportRecordEditor.setValue ( '' ); |
721 |
return; |
722 |
} |
723 |
|
724 |
$( '#export-list li[data-name="' + name + '"]' ).addClass( 'active' ); |
725 |
var exportRecord = Preferences.user.exportRecords[name]; |
726 |
exportRecord.contents = dedupeString( exportRecord.contents ); |
727 |
exportRecordEditor.setValue( exportRecord.contents ); |
728 |
exportRecordEditor.setOption( 'readOnly', false ); |
729 |
if ( exportRecord.history ) exportRecordEditor.setHistory( exportRecord.history ); |
730 |
} |
731 |
|
732 |
function dedupeString( strg ) { |
733 |
var pieces = strg.split("\n"); |
734 |
var output = []; //Output array |
735 |
for (var i = 0; i < pieces.length; i++) { |
736 |
if (output.indexOf(pieces[i]) < 0 && pieces[i].length > 0) { |
737 |
output.push(pieces[i]); |
738 |
} |
739 |
} |
740 |
|
741 |
return output.join("\n"); |
742 |
} |
743 |
|
744 |
function storeExportRecord( name, exportRecord ) { |
745 |
if ( exportRecord ) { |
746 |
Preferences.user.exportRecords[name] = exportRecord; |
747 |
} else { |
748 |
delete Preferences.user.exportRecords[name]; |
749 |
} |
750 |
|
751 |
Preferences.Save( [% logged_in_user.borrowernumber | html %] ); |
752 |
} |
753 |
|
754 |
function showSavedExportRecords ( exportRecords ) { |
755 |
var scrollTop = $('#export-list').scrollTop(); |
756 |
$( '#export-list').empty(); |
757 |
var export_list = $.map (Preferences.user.exportRecords, function (exportRecord, name) { |
758 |
return $.extend( { name: name }, exportRecord ); |
759 |
} ); |
760 |
export_list.sort (function ( a, b ) { |
761 |
return a.name.localeCompare(b.name); |
762 |
} ); |
763 |
$.each ( export_list, function ( undef, exportRecord ) { |
764 |
var $li = $( '<li data-name="' + exportRecord.name + '"><a href"#">' + exportRecord.name + '</a><ol class="exportRecord-info"><ol></li>' ); |
765 |
$li.click ( function() { |
766 |
loadExportRecord(exportRecord.name); |
767 |
return false; |
768 |
} ); |
769 |
if ( exportRecord.name == exportRecordEditor.activeExportRecord ) $li.addClass ( 'active' ); |
770 |
var modified = exportRecord.modified && new Date(exportRecord.modified); |
771 |
$('#export-list').append($li); |
772 |
} ); |
773 |
var $new_li = $( '<li class="new-exportRecord"><a href="#">' + _("New Export File...") + '</a></li>' ); |
774 |
$new_li.click( function () { |
775 |
var name = prompt(_("Please enter the name for the new export record:")); |
776 |
if (!name) return; |
777 |
|
778 |
if ( !Preferences.user.exportRecords[name] ) storeExportRecord( name, {contents: "" } ); |
779 |
showSavedExportRecords(); |
780 |
loadExportRecord( name ); |
781 |
} ); |
782 |
$('#export-list').append($new_li); |
783 |
$('#export-list').scrollTop(scrollTop); |
784 |
} |
785 |
|
786 |
function saveExportRecord() { |
787 |
var name = exportRecordEditor.activeExportRecord; |
788 |
if (!name || exportRecordEditor.savedGeneration == exportRecordEditor.changeGeneration() ) return; |
789 |
exportRecordEditor.savedGeneration = exportRecordEditor.changeGeneration(); |
790 |
storeExportRecord( name, { contents: exportRecordEditor.getValue(), modified: (new Date()).valueOf(), history: exportRecordEditor.getHistory() } ); |
791 |
} |
792 |
|
793 |
|
794 |
//> End Exporter Record Functions |
795 |
|
699 |
//> Macro functions |
796 |
//> Macro functions |
700 |
var canCreatePublic = "[% CAN_user_editcatalogue_create_shared_macros | html %]"; |
797 |
var canCreatePublic = "[% CAN_user_editcatalogue_create_shared_macros | html %]"; |
701 |
var canDeletePublic = "[% CAN_user_editcatalogue_delete_shared_macros | html %]"; |
798 |
var canDeletePublic = "[% CAN_user_editcatalogue_delete_shared_macros | html %]"; |
Lines 1034-1039
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
1034 |
showSavedMacros(); |
1131 |
showSavedMacros(); |
1035 |
} ); |
1132 |
} ); |
1036 |
|
1133 |
|
|
|
1134 |
$( '#exporter-ui').on( 'show.bs.modal', function() { |
1135 |
if ( exportRecordEditor ) return; |
1136 |
|
1137 |
exportRecordEditor = CodeMirror( |
1138 |
$('#export-editor')[0], |
1139 |
{ |
1140 |
mode: 'null', |
1141 |
lineNumbers: true, |
1142 |
readOnly: true, |
1143 |
} |
1144 |
); |
1145 |
|
1146 |
var saveTimeout; |
1147 |
exportRecordEditor.on ( 'change', function ( cm, change ) { |
1148 |
$('#export-save-message').empty(); |
1149 |
if ( change.origin == 'setValue' ) return; |
1150 |
|
1151 |
if ( saveTimeout ) clearTimeout( saveTimeout ); |
1152 |
saveTimeout = setTimeout ( function() { |
1153 |
saveExportRecord(); |
1154 |
saveTimeout = null; |
1155 |
}, 500 ); |
1156 |
} ); |
1157 |
|
1158 |
showSavedExportRecords(); |
1159 |
} ); |
1160 |
|
1037 |
var saveableBackends = []; |
1161 |
var saveableBackends = []; |
1038 |
$.each( backends, function( id, backend ) { |
1162 |
$.each( backends, function( id, backend ) { |
1039 |
if ( backend.save ) saveableBackends.push( [ backend.saveLabel, id ] ); |
1163 |
if ( backend.save ) saveableBackends.push( [ backend.saveLabel, id ] ); |
Lines 1106-1111
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
1106 |
saveRecord( backend + '/', editor, finishCb ); |
1230 |
saveRecord( backend + '/', editor, finishCb ); |
1107 |
} |
1231 |
} |
1108 |
|
1232 |
|
|
|
1233 |
|
1109 |
return false; |
1234 |
return false; |
1110 |
} ); |
1235 |
} ); |
1111 |
|
1236 |
|
Lines 1196-1201
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
1196 |
} |
1321 |
} |
1197 |
} ); |
1322 |
} ); |
1198 |
|
1323 |
|
|
|
1324 |
$('#open-exporter').click( function () { |
1325 |
$('#exporter-ui').modal('show'); |
1326 |
|
1327 |
return false; |
1328 |
} ); |
1329 |
|
1330 |
$('#generate-file').click( function () { |
1331 |
var bibs = exportRecordEditor.getValue(); |
1332 |
bibs = bibs.replace(/\r?\n/g, ",") + ","; |
1333 |
$.post("/cgi-bin/koha/tools/export.pl", {"record_type":"bibs", "export_bibs":bibs, "filename":"test.mrc", "op":"export" }, function (data) { |
1334 |
var blob = new Blob([data], { 'type': 'application/octet-stream;charset=utf-8'}); |
1335 |
saveAs(blob, exportRecordEditor.activeExportRecord + ".mrc" ); |
1336 |
} ); |
1337 |
} ); |
1338 |
|
1339 |
$('#delete-export-file').click( function() { |
1340 |
if ( !exportRecordEditor.activeExportRecord || !confirm( _("Are you sure you want to delete this Export File?") ) ) return; |
1341 |
|
1342 |
storeExportRecord( exportRecordEditor.activeExportRecord, undefined ); |
1343 |
showSavedExportRecords(); |
1344 |
loadExportRecord( undefined ); |
1345 |
|
1346 |
return false; |
1347 |
} ); |
1348 |
|
1199 |
$( '#show-advanced-search' ).click( function() { |
1349 |
$( '#show-advanced-search' ).click( function() { |
1200 |
showAdvancedSearch(); |
1350 |
showAdvancedSearch(); |
1201 |
|
1351 |
|
Lines 1247-1253
require( [ 'koha-backend', 'search', 'macros', 'marc-editor', 'marc-record', 'pr
Link Here
|
1247 |
bindGlobalKeys(); |
1397 |
bindGlobalKeys(); |
1248 |
|
1398 |
|
1249 |
// Setup UI |
1399 |
// Setup UI |
1250 |
$("#advanced-search-ui, #search-results-ui, #macro-ui").each( function() { |
1400 |
$("#advanced-search-ui, #search-results-ui, #macro-ui", "#exporter-ui").each( function() { |
1251 |
$(this).modal({ show: false }); |
1401 |
$(this).modal({ show: false }); |
1252 |
} ); |
1402 |
} ); |
1253 |
|
1403 |
|