2015-10-17 23:49:24 +02:00
|
|
|
'use strict';
|
|
|
|
|
2015-10-18 16:02:00 +02:00
|
|
|
var Backbone = require('backbone'),
|
|
|
|
FeatureDetector = require('../../util/feature-detector'),
|
2015-10-22 22:39:30 +02:00
|
|
|
PasswordDisplay = require('../../util/password-display'),
|
2015-10-18 16:02:00 +02:00
|
|
|
Alerts = require('../../util/alerts'),
|
|
|
|
FileSaver = require('filesaver');
|
2015-10-17 23:49:24 +02:00
|
|
|
|
|
|
|
var SettingsAboutView = Backbone.View.extend({
|
|
|
|
template: require('templates/settings/settings-file.html'),
|
|
|
|
|
2015-10-18 16:02:00 +02:00
|
|
|
events: {
|
|
|
|
'click .settings__file-button-save-file': 'saveToFile',
|
|
|
|
'click .settings__file-button-export-xml': 'exportAsXml',
|
2015-10-22 20:03:44 +02:00
|
|
|
'click .settings__file-button-save-dropbox': 'saveToDropbox',
|
2015-10-22 22:39:30 +02:00
|
|
|
'change #settings__file-key-file': 'keyfileChange',
|
|
|
|
'focus #settings__file-master-pass': 'focusMasterPass'
|
2015-10-18 16:02:00 +02:00
|
|
|
},
|
|
|
|
|
2015-10-17 23:49:24 +02:00
|
|
|
render: function() {
|
2015-10-18 16:02:00 +02:00
|
|
|
this.renderTemplate({
|
2015-10-22 22:39:30 +02:00
|
|
|
cmd: FeatureDetector.actionShortcutSymbol(true),
|
|
|
|
name: this.model.get('name'),
|
|
|
|
password: PasswordDisplay.present(this.model.get('passwordLength')),
|
|
|
|
defaultUser: this.model.get('defaultUser'),
|
|
|
|
recycleBinEnabled: this.model.get('recycleBinEnabled'),
|
|
|
|
historyMaxItems: this.model.get('historyMaxItems'),
|
|
|
|
historyMaxSize: Math.round(this.model.get('historyMaxSize') / 1024 / 1024),
|
|
|
|
keyEncryptionRounds: this.model.get('keyEncryptionRounds')
|
2015-10-18 16:02:00 +02:00
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
saveToFile: function() {
|
|
|
|
var data = this.model.getData();
|
|
|
|
var blob = new Blob([data], {type: 'application/octet-stream'});
|
|
|
|
FileSaver.saveAs(blob, this.model.get('name') + '.kdbx');
|
|
|
|
},
|
|
|
|
|
|
|
|
exportAsXml: function() {
|
|
|
|
var data = this.model.getXml();
|
|
|
|
var blob = new Blob([data], {type: 'text/xml'});
|
|
|
|
FileSaver.saveAs(blob, this.model.get('name') + '.xml');
|
|
|
|
},
|
|
|
|
|
|
|
|
saveToDropbox: function() {
|
|
|
|
Alerts.notImplemented();
|
2015-10-22 20:03:44 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
keyfileChange: function(e) {
|
|
|
|
switch (e.target.value) {
|
|
|
|
case 'ex':
|
|
|
|
this.useExistingKeyFile();
|
|
|
|
break;
|
|
|
|
case 'sel':
|
|
|
|
this.selectKeyFile();
|
|
|
|
break;
|
|
|
|
case 'gen':
|
|
|
|
this.generateKeyFile();
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
this.clearKeyFile();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
useExistingKeyFile: function() {
|
|
|
|
},
|
|
|
|
|
|
|
|
selectKeyFile: function() {
|
|
|
|
},
|
|
|
|
|
|
|
|
generateKeyFile: function() {
|
|
|
|
},
|
|
|
|
|
|
|
|
clearKeyFile: function() {
|
2015-10-22 22:39:30 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
focusMasterPass: function(e) {
|
2015-10-17 23:49:24 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = SettingsAboutView;
|