From 532515ef08001855c291ac4266a25a7e3d8954f6 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 17 Feb 2016 11:19:51 -0500 Subject: [PATCH] [SIGNED-OFF]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 Works as advertised. Export and Import options work properly --- .../intranet-tmpl/prog/en/js/biblio_framework.js | 76 ++++++++++++++++++ .../prog/en/modules/admin/biblio_framework.tt | 84 ++------------------ 2 files changed, 83 insertions(+), 77 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/js/biblio_framework.js diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/biblio_framework.js b/koha-tmpl/intranet-tmpl/prog/en/js/biblio_framework.js new file mode 100644 index 0000000..36b7232 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/js/biblio_framework.js @@ -0,0 +1,76 @@ +/* Import/Export from/to spreadsheet */ + + var importing = false; + + $(document).ready(function() { + $("#table_biblio_frameworks").dataTable($.extend(true, {}, dataTablesDefaults, { + "aoColumnDefs": [ + { "aTargets": [ -1, -2, -3, -4, -5 ], "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("" + frameworkcode + "", "" + obj.val().replace(new RegExp("^.+[/\\\\]"),"") + "")); + 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; + }); + }); \ No newline at end of file diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt index 52ce915..b037d06 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt @@ -10,84 +10,14 @@ [% INCLUDE 'datatables.inc' %] + -- 1.7.10.4