Add SettingService, setting default vault works

This commit is contained in:
brantje 2016-09-11 13:29:52 +02:00
parent 086a4879d4
commit 9c49cc3e1c
8 changed files with 71 additions and 6 deletions

View file

@ -16,7 +16,8 @@ angular
'ngRoute',
'ngSanitize',
'ngTouch',
'templates-main'
'templates-main',
'LocalStorageModule'
])
.config(function ($routeProvider) {
$routeProvider
@ -29,4 +30,7 @@ angular
});
}).config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
}]);
}]).config(function (localStorageServiceProvider) {
localStorageServiceProvider
.setNotify(true, true);
});

View file

@ -8,17 +8,35 @@
* Controller of the passmanApp
*/
angular.module('passmanApp')
.controller('VaultCtrl', ['$scope', 'VaultService', function ($scope, VaultService) {
.controller('VaultCtrl', ['$scope', 'VaultService', 'SettingsService', function ($scope, VaultService, SettingsService) {
VaultService.getVaults().then(function (vaults) {
$scope.vaults = vaults;
if(SettingsService.getSetting('defaultVault') != null){
var default_vault = SettingsService.getSetting('defaultVault');
angular.forEach(vaults, function (vault) {
if(vault.guid == default_vault.guid){
$scope.default_vault = true;
$scope.list_selected_vault = SettingsService.getSetting('defaultVault');
return;
}
})
}
});
$scope.default_vault = false;
$scope.remember_vault_password = false;
$scope.list_selected_vault = false;
$scope.toggleDefaultVault = function(){
$scope.default_vault = !$scope.default_vault;
if($scope.default_vault == true){
SettingsService.setSetting('defaultVault', $scope.list_selected_vault);
} else {
SettingsService.setSetting('defaultVault', null);
}
};
$scope.clearState = function () {
$scope.list_selected_vault = false;
$scope.creating_vault = false;

View file

@ -0,0 +1,31 @@
'use strict';
/**
* @ngdoc service
* @name passmanApp.VaultService
* @description
* # VaultService
* Service in the passmanApp.
*/
angular.module('passmanApp')
.service('SettingsService', ['localStorageService', function (localStorageService) {
var settings = {
defaultVault: null,
defaultVaultPassword: null
};
var cookie = localStorageService.get('settings');
settings = angular.merge(settings, cookie);
return {
getSettings: function(){
return settings
},
getSetting: function(name){
return settings[name]
},
setSetting: function (name, value) {
settings[name] = value;
localStorageService.set('settings', settings);
}
}
}]);

View file

@ -3,5 +3,5 @@ angular.module('templates-main', ['views/vaults.html']);
angular.module('views/vaults.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/vaults.html',
'<div class="vault_wrapper"><div class="vaults" ng-if="!list_selected_vault && !creating_vault"><div class="ui-select-container ui-select-bootstrap vaultlist"><ul><li ng-click="newVault()">+ Create a new vault</li><li ng-repeat="vault in vaults" ng-class="{\'selected\': vault == list_selected_vault }" ng-click="selectVault(vault)"><div><span class="ui-select-choices-row-inner"><div class="ng-binding ng-scope">{{vault.name}}</div><small class="ng-binding ng-scope">Created: {{vault.created * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}} | Last accessed: {{vault.last_access * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</small></span></div></li><li ng-if="vaults.length === 0">No vaults found, why not create one?</li></ul></div></div><div ng-if="creating_vault"><div class="login_form" ng-init="vault_name = \'\' ">Please give your new vault a name.<div><input type="text" ng-model="vault_name"></div><div class="button_wrapper"><div class="button button-geen" ng-click="createVault(vault_name)">Create vault</div><div class="button button-red" ng-click="clearState()">Cancel</div></div></div></div><div ng-if="list_selected_vault != false"><div class="vaultlist"><ul><li ng-click="clearState()">Go back to vaults</li></ul></div><div class="login_form">Please input the password for {{list_selected_vault.name}}<div><input type="password"></div><div><div><label><input type="checkbox" ng-model="default_vault"> Set this vault as default.</label></div><div><label><input type="checkbox" ng-model="remember_vault_password"> Login automatically to this vault.</label></div></div><div class="button button-geen">Decrypt vault</div></div></div></div>');
'<div class="vault_wrapper"><div class="vaults" ng-if="!list_selected_vault && !creating_vault"><div class="ui-select-container ui-select-bootstrap vaultlist"><ul><li ng-click="newVault()">+ Create a new vault</li><li ng-repeat="vault in vaults" ng-class="{\'selected\': vault == list_selected_vault }" ng-click="selectVault(vault)"><div><span class="ui-select-choices-row-inner"><div class="ng-binding ng-scope">{{vault.name}}</div><small class="ng-binding ng-scope">Created: {{vault.created * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}} | Last accessed: {{vault.last_access * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</small></span></div></li><li ng-if="vaults.length === 0">No vaults found, why not create one?</li></ul></div></div><div ng-if="creating_vault"><div class="login_form" ng-init="vault_name = \'\' ">Please give your new vault a name.<div><input type="text" ng-model="vault_name"></div><div class="button_wrapper"><div class="button button-geen" ng-click="createVault(vault_name)">Create vault</div><div class="button button-red" ng-click="clearState()">Cancel</div></div></div></div><div ng-if="list_selected_vault != false"><div class="vaultlist"><ul><li ng-click="clearState()">Go back to vaults</li></ul></div><div class="login_form">Please input the password for {{list_selected_vault.name}}<div><input type="password"></div><div><div><label><input type="checkbox" ng-checked="default_vault" ng-click="toggleDefaultVault()"> Set this vault as default.</label></div><div><label><input type="checkbox" ng-model="remember_vault_password"> Login automatically to this vault.</label></div></div><div class="button button-geen">Decrypt vault</div></div></div></div>');
}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -9,6 +9,7 @@ script('passman', 'vendor/angular-resource/angular-resource.min');
script('passman', 'vendor/angular-route/angular-route.min');
script('passman', 'vendor/angular-sanitize/angular-sanitize.min');
script('passman', 'vendor/angular-touch/angular-touch.min');
script('passman', 'vendor/angular-local-storage/angular-local-storage.min');
script('passman', 'app/app');
@ -19,6 +20,7 @@ script('passman', 'app/filters/propsfilter');
script('passman', 'app/services/cacheservice');
script('passman', 'app/services/vaultservice');
script('passman', 'app/services/credentialservice');
script('passman', 'app/services/settingsservice');
/*

View file

@ -56,7 +56,7 @@
<div>
<div>
<label>
<input type="checkbox" ng-model="default_vault">
<input type="checkbox" ng-checked="default_vault" ng-click="toggleDefaultVault()">
Set this vault as default.
</label>
</div>