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

View file

@ -8,17 +8,35 @@
* Controller of the passmanApp * Controller of the passmanApp
*/ */
angular.module('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) { VaultService.getVaults().then(function (vaults) {
$scope.vaults = 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.default_vault = false;
$scope.remember_vault_password = false; $scope.remember_vault_password = false;
$scope.list_selected_vault = 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.clearState = function () {
$scope.list_selected_vault = false; $scope.list_selected_vault = false;
$scope.creating_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) { angular.module('views/vaults.html', []).run(['$templateCache', function($templateCache) {
'use strict'; 'use strict';
$templateCache.put('views/vaults.html', $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-route/angular-route.min');
script('passman', 'vendor/angular-sanitize/angular-sanitize.min'); script('passman', 'vendor/angular-sanitize/angular-sanitize.min');
script('passman', 'vendor/angular-touch/angular-touch.min'); script('passman', 'vendor/angular-touch/angular-touch.min');
script('passman', 'vendor/angular-local-storage/angular-local-storage.min');
script('passman', 'app/app'); script('passman', 'app/app');
@ -19,6 +20,7 @@ script('passman', 'app/filters/propsfilter');
script('passman', 'app/services/cacheservice'); script('passman', 'app/services/cacheservice');
script('passman', 'app/services/vaultservice'); script('passman', 'app/services/vaultservice');
script('passman', 'app/services/credentialservice'); script('passman', 'app/services/credentialservice');
script('passman', 'app/services/settingsservice');
/* /*

View file

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