From 566faa14760112f81eea78fe441d5adc1b872da1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 27 Dec 2011 21:09:22 +0400 Subject: implement neutral-format personal data export --- js/prefs.js | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) (limited to 'js/prefs.js') diff --git a/js/prefs.js b/js/prefs.js index 27598285c..7f9e44ad5 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -1935,3 +1935,81 @@ function showHelp() { exception_error("showHelp", e); } } + +function exportData() { + try { + + var query = "backend.php?op=dlg&method=exportData"; + + if (dijit.byId("dataExportDlg")) + dijit.byId("dataExportDlg").destroyRecursive(); + + var exported = 0; + + dialog = new dijit.Dialog({ + id: "dataExportDlg", + title: __("Export Data"), + style: "width: 600px", + prepare: function() { + + notify_progress("Loading, please wait..."); + + new Ajax.Request("backend.php", { + parameters: "?op=rpc&method=exportrun&offset=" + exported, + onComplete: function(transport) { + try { + var rv = JSON.parse(transport.responseText); + + if (rv && rv.exported != undefined) { + if (rv.exported > 0) { + + exported += rv.exported; + + $("export_status_message").innerHTML = + " " + + "Exported %d articles, please wait...".replace("%d", + exported); + + setTimeout('dijit.byId("dataExportDlg").prepare()', 2000); + + } else { + + $("export_status_message").innerHTML = + __("Finished, exported %d articles. You can download the data here.") + .replace("%d", exported) + .replace("%u", "backend.php?op=rpc&subop=exportget"); + + exported = 0; + + } + + } else { + $("export_status_message").innerHTML = + "Error occured, could not export data."; + } + } catch (e) { + exception_error("exportData", e, transport.responseText); + } + + notify(''); + + } }); + + }, + execute: function() { + if (this.validate()) { + + + + } + }, + href: query}); + + dialog.show(); + + + } catch (e) { + exception_error("exportData", e); + } +} + -- cgit v1.2.3