From: Bill Erickson <berick@esilibrary.com>
Date: Wed, 31 Aug 2011 20:05:50 +0000 (-0400)
Subject: Add CSV filetype filter options Vandelay CSV export
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=c7274c046952ae14bd70511ee3b3a3060390a5bd;p=evergreen%2Fmasslnc.git

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>
---

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);