From df4972887b8249bc9d078b32152d8f7aec58aa41 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 15 Nov 2016 21:20:24 -0500 Subject: [PATCH] webstaff: teach egJsonExporter about generators This patch adds an attribute called 'generator' to the eg-json-exporter directive as an alternative to using 'container' to pass a JavaScript object. 'generator' should be a function that returns a promise with the data to be exported. Signed-off-by: Galen Charlton Signed-off-by: Kathy Lussier --- Open-ILS/web/js/ui/default/staff/services/file.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/services/file.js b/Open-ILS/web/js/ui/default/staff/services/file.js index 473f4feba6..83e0d295d8 100644 --- a/Open-ILS/web/js/ui/default/staff/services/file.js +++ b/Open-ILS/web/js/ui/default/staff/services/file.js @@ -31,12 +31,20 @@ angular.module('egCoreMod') return { scope: { container: '=', + generator: '=', defaultFileName: '=' }, link: function (scope, element, attributes) { element.bind('click', function (clickEvent) { - var data = new Blob([JSON.stringify(scope.container)], {type : 'application/json'}); - FileSaver.saveAs(data, scope.defaultFileName); + if (scope.generator) { + scope.generator().then(function(value) { + var data = new Blob([JSON.stringify(value)], {type : 'application/json'}); + FileSaver.saveAs(data, scope.defaultFileName); + }); + } else { + var data = new Blob([JSON.stringify(scope.container)], {type : 'application/json'}); + FileSaver.saveAs(data, scope.defaultFileName); + } }); } } -- 2.11.0