diff --git a/js/exporters/exporter-csv.js b/js/exporters/exporter-csv.js
index f3a25345..f9b427ca 100644
--- a/js/exporters/exporter-csv.js
+++ b/js/exporters/exporter-csv.js
@@ -69,7 +69,7 @@ PassmanExporter.csv.export = function (credentials, FileService, EncryptService)
this.call_then();
download(file_data, 'passman-export.csv');
}).bind(this)).progress(function(progress) {
- console.log(progress);
+
});
diff --git a/js/exporters/exporter-json.js b/js/exporters/exporter-json.js
new file mode 100644
index 00000000..92478293
--- /dev/null
+++ b/js/exporters/exporter-json.js
@@ -0,0 +1,64 @@
+/**
+ * Nextcloud - passman
+ *
+ * @copyright Copyright (c) 2016, Sander Brand (brantje@gmail.com)
+ * @copyright Copyright (c) 2016, Marcos Zuriaga Miguel (wolfi@wolfi.es)
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+
+/** global: PassmanExporter */
+PassmanExporter.json = {
+ info: {
+ name: 'JSON',
+ id: 'json',
+ description: 'Export credentials as a JSON file.'
+ }
+};
+
+PassmanExporter.json.export = function (credentials, FileService, EncryptService) {
+ /** global: C_Promise */
+ return new C_Promise(function () {
+ PassmanExporter.getCredentialsWithFiles(credentials, FileService, EncryptService).then((function(data){
+ var _output = [];
+ for (var i = 0; i < credentials.length; i++) {
+ var _credential = angular.copy(credentials[i]);
+
+ delete _credential.vault_key;
+ delete _credential.vault_id;
+ delete _credential.shared_key;
+
+ console.log(_credential);
+ _output.push(_credential);
+
+ var progress = {
+ percent: i / credentials.length * 100,
+ loaded: i,
+ total: credentials.length
+ };
+ this.call_progress(progress);
+ }
+ var file_data = JSON.stringify(_output);
+ this.call_then();
+ download(file_data, 'passman-export.json');
+ }).bind(this)).progress(function(progress) {
+ console.log(progress);
+ });
+
+
+ });
+};
diff --git a/js/templates.js b/js/templates.js
index f97e8d4b..a9d98c30 100644
--- a/js/templates.js
+++ b/js/templates.js
@@ -87,7 +87,7 @@ angular.module('views/partials/forms/settings/sharing.html', []).run(['$template
angular.module('views/partials/forms/settings/tool.html', []).run(['$templateCache', function ($templateCache) {
'use strict';
$templateCache.put('views/partials/forms/settings/tool.html',
- '
{{ \'tool.intro\' | translate}}
{{ \'min.strength\' | translate}}
{{ \'scan.result.msg\' | translate}}
{{ \'label\' | translate}}
{{ \'score\' | translate}}
{{ \'password\' | translate}}
{{ \'action\' | translate}}
{{result.label}}
');
+ '
{{ \'tool.intro\' | translate}}
{{ \'min.strength\' | translate}}
{{ \'scan.result.msg\' | translate}}
{{ \'label\' | translate}}
{{ \'score\' | translate}}
{{ \'password\' | translate}}
{{ \'action\' | translate}}
{{result.label}}
');
}]);
angular.module('views/partials/forms/share_credential/basics.html', []).run(['$templateCache', function ($templateCache) {
@@ -126,7 +126,7 @@ angular.module('views/show_vault.html', []).run(['$templateCache', function ($te
'use strict';
$templateCache.put('views/show_vault.html',
'