From c7274c046952ae14bd70511ee3b3a3060390a5bd Mon Sep 17 00:00:00 2001 From: Bill Erickson <berick@esilibrary.com> Date: Wed, 31 Aug 2011 16:05:50 -0400 Subject: [PATCH] Add CSV filetype filter options Vandelay CSV export Includes generic support for specifying default filename, extension, and new filter types for the XUL NsIFilePicker wrapper Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com> --- Open-ILS/web/js/dojo/openils/XUL.js | 25 ++++++++++++++++++++++++- Open-ILS/web/js/ui/default/vandelay/vandelay.js | 8 +++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/XUL.js b/Open-ILS/web/js/dojo/openils/XUL.js index 8e367dab4c..9d93f2e907 100644 --- a/Open-ILS/web/js/dojo/openils/XUL.js +++ b/Open-ILS/web/js/dojo/openils/XUL.js @@ -148,7 +148,7 @@ if(!dojo._hasResource["openils.XUL"]) { } }; - openils.XUL.contentToFileSaveDialog = function(content, windowTitle) { + openils.XUL.contentToFileSaveDialog = function(content, windowTitle, dispositionArgs) { var api = new openils.XUL.SimpleXPCOM(); api.getPrivilegeManager().enablePrivilege("UniversalXPConnect"); @@ -156,6 +156,29 @@ if(!dojo._hasResource["openils.XUL"]) { picker.init( window, windowTitle || "Save File", api.FP.iface.modeSave ); + + if (dispositionArgs) { + /** + * https://developer.mozilla.org/En/NsIFilePicker + * Example: + * { defaultString : 'MyExport.csv', + defaultExtension : '.csv', + filterName : 'CSV', + filterExtension : '*.csv', + filterAll : true } */ + + picker.defaultString = dispositionArgs.defaultString; + picker.defaultExtension = dispositionArgs.defaultExtension; + if (dispositionArgs.filterName) { + picker.appendFilter( + dispositionArgs.filterName, + dispositionArgs.filterExtension + ); + } + if (dispositionArgs.filterAll) + picker.appendFilters(picker.filterAll) + } + var result = picker.show(); if (picker.file && (result == api.FP.iface.returnOK || diff --git a/Open-ILS/web/js/ui/default/vandelay/vandelay.js b/Open-ILS/web/js/ui/default/vandelay/vandelay.js index 75da815548..e166db7508 100644 --- a/Open-ILS/web/js/ui/default/vandelay/vandelay.js +++ b/Open-ILS/web/js/ui/default/vandelay/vandelay.js @@ -462,7 +462,13 @@ function exportHandler(type, response) { break; case 'csv': //content = content.replace(/\\t/g,'\t'); // if we really wanted to do .tsv instead - openils.XUL.contentToFileSaveDialog(content); + openils.XUL.contentToFileSaveDialog(content, null, { + defaultString : 'VandelayExport.csv', + defaultExtension : '.csv', + filterName : 'CSV', + filterExtension : '*.csv', + filterAll : true + } ); break; default: alert('response = ' + response + '\tcontent:\n' + content); -- 2.11.0