Koha/koha-tmpl/intranet-tmpl/prog/en/js/biblio_framework.js
Owen Leonard 902ea66d24 Bug 15846: Move MARC Framework JavaScript into separate file
The JavaScript embedded in the MARC framework template is not
dependent on template processing to such an extent that it can't
be safely moved to a separate file. This patch does so, adding
definition of a few translatable strings to the template.

To test, apply the patch and go to Administration -> MARC frameworks.

- The table of existing frameworks should be sortable.
- The "Export" link should trigger the export modal.
- The "Import" link should trigger the import modal.
  -- Clicking "Import" without selecting a file should trigger an alert.
  -- Selecting the wrong file type should trigger an alert.
  -- Importing a file of the correct type should trigger an overwrite
     warning ("Do you really want to import...?").
  -- A progress indicator should show during the import, with correct
     values for "Importing from" and "Importing to".
  -- Importing an incorrectly-formatted file of a correct type should
     trigger an alert, "Error importing the framework..."

Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised. Export and Import options work properly

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
2016-03-24 19:46:04 +00:00

76 lines
No EOL
3.2 KiB
JavaScript

/* Import/Export from/to spreadsheet */
var importing = false;
$(document).ready(function() {
$("#table_biblio_frameworks").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
{ "aTargets": [ 0, 1 ], "sType": "natural" },
],
"bSort": true,
"sPaginationType": "four_button"
}));
$("body").css("cursor", "auto");
$('.import_export_options').hide();
$('a.import_export_fw').click(function() {
if (!importing) {
$('.import_export_options').hide();
$(this).next().show('slide');
}
return false;
});
$('.import_export_close').click(function() {
if (!importing) {
$('.import_export_options').fadeOut('fast');
$("body").css("cursor", "auto");
return false;
}
});
$('.input_import').val("");
var matches = new RegExp("\\?error_import_export=(.+)$").exec(window.location.search);
if (matches && matches.length > 1) {
alert( MSG_IMPORT_ERROR + " %s".format(decodeURIComponent(matches[1])));
}
$('input.input_import').change( function() {
var filename = $(this).val();
if ( ! /(?:\.csv|\.ods|\.xml)$/.test(filename)) {
$(this).css("background-color","yellow");
alert( MSG_SELECT_FILE_FORMAT );
$(this).val("");
$(this).css("background-color","white");
}
});
$('form.form_export').submit(function() {
$('.modal').modal("hide");
return true;
});
$('form.form_import').submit(function() {
var id = $(this).attr('id');
var obj = $('#' + id + ' input:file');
if (/(?:\.csv|\.ods|\.xml)$/.test(obj.val())) {
if (confirm( MSG_OVERWRITE_WARNING )) {
var frameworkcode = $('#' + id + ' input:hidden[name=frameworkcode]').val();
$('#importing_' + frameworkcode).find("span").html(MSG_IMPORTING_TO_FRAMEWORK.format("<strong>" + frameworkcode + "</strong>", "<i>" + obj.val().replace(new RegExp("^.+[/\\\\]"),"") + "</i>"));
if (navigator.userAgent.toLowerCase().indexOf('msie') != -1) {
var timestamp = new Date().getTime();
$('#importing_' + frameworkcode).find("img").attr('src', template_path + '/img/loading-small.gif' + '?' +timestamp);
}
$('#importing_' + frameworkcode).css('display', 'block');
if (navigator.userAgent.toLowerCase().indexOf('firefox') == -1) $("body").css("cursor", "progress");
importing = true;
$(".modal-footer,.closebtn").hide();
return true;
} else
return false;
}
obj.css("background-color","yellow");
alert( MSG_SELECT_FILE_FORMAT );
obj.val("");
obj.css("background-color","white");
return false;
});
});