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', '
+
{{ \'use.regex\' | translate }}
{{ ::tag.text}} {{ ::credential.label}}
  • {{ ::credential.label}}
    {{ ::tag.text}}

{{selectedCredential.label}}

'); + ' (settings.user_sharing_enabled === 1 || settings.user_sharing_enabled === \'1\' || settings.link_sharing_enabled === 1 || settings.link_sharing_enabled === \'1\')"> {{ \'share\' | translate}} '); }]); angular.module('views/vault_req_deletion.html', []).run(['$templateCache', function ($templateCache) { diff --git a/templates/main.php b/templates/main.php index aa10b94c..bea143e6 100644 --- a/templates/main.php +++ b/templates/main.php @@ -94,6 +94,7 @@ script('passman', 'importers/importer-passpackcsv'); script('passman', 'importers/importer-randomdata'); script('passman', 'exporters/exporter-main'); script('passman', 'exporters/exporter-csv'); +script('passman', 'exporters/exporter-json'); /*build-js-end*/