keeweb/app/scripts/views/settings/settings-file-view.js

83 lines
2.4 KiB
JavaScript
Raw Normal View History

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;