load folder dropdowns for site add/edit forms

This commit is contained in:
Kyle Spearrin 2016-09-10 23:06:34 -04:00
parent 9ebec2a1bc
commit 1069b51266
4 changed files with 54 additions and 10 deletions

View File

@ -1,7 +1,7 @@
angular angular
.module('bit.vault') .module('bit.vault')
.controller('vaultAddSiteController', function ($scope, $state, siteService, cipherService, $q) { .controller('vaultAddSiteController', function ($scope, $state, siteService, folderService, cipherService, $q) {
$scope.site = { $scope.site = {
folderId: null folderId: null
}; };
@ -9,6 +9,30 @@
$('#name').focus(); $('#name').focus();
popupUtils.initListSectionItemListeners(); popupUtils.initListSectionItemListeners();
var promises = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
for (var i = 1; i < folders.length; i++) {
decFolders.push({
id: folders[i].id
});
var folderNamePromise = cipherService.decrypt(folders[i].name, i);
promises.push(folderNamePromise);
folderNamePromise.then(function (obj) {
decFolders[obj.index].name = obj.val;
});
}
$q.all(promises).then(function () {
$scope.folders = decFolders;
});
});
$scope.savePromise = null; $scope.savePromise = null;
$scope.save = function (model) { $scope.save = function (model) {
$scope.savePromise = cipherService.encryptSite(model).then(function (siteModel) { $scope.savePromise = cipherService.encryptSite(model).then(function (siteModel) {

View File

@ -1,7 +1,7 @@
angular angular
.module('bit.vault') .module('bit.vault')
.controller('vaultEditSiteController', function ($scope, $state, $stateParams, siteService, cipherService, $q) { .controller('vaultEditSiteController', function ($scope, $state, $stateParams, siteService, folderService, cipherService, $q) {
$scope.site = { $scope.site = {
folderId: null folderId: null
}; };
@ -12,6 +12,30 @@
}); });
}); });
var promises = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
for (var i = 1; i < folders.length; i++) {
decFolders.push({
id: folders[i].id
});
var folderNamePromise = cipherService.decrypt(folders[i].name, i);
promises.push(folderNamePromise);
folderNamePromise.then(function (obj) {
decFolders[obj.index].name = obj.val;
});
}
$q.all(promises).then(function () {
$scope.folders = decFolders;
});
});
popupUtils.initListSectionItemListeners(); popupUtils.initListSectionItemListeners();
$scope.savePromise = null; $scope.savePromise = null;

View File

@ -42,10 +42,8 @@
<div class="list-section-items"> <div class="list-section-items">
<div class="list-section-item"> <div class="list-section-item">
<label for="folder">Folder</label> <label for="folder">Folder</label>
<select id="folder" name="FolderId"> <select id="folder" name="FolderId" ng-model="site.folderId" bit-field>
<option>Blue</option> <option ng-repeat="folder in folders" value="{{folder.id}}">{{folder.name}}</option>
<option selected>Green</option>
<option>Red</option>
</select> </select>
</div> </div>
<div class="list-section-item list-section-item-checkbox"> <div class="list-section-item list-section-item-checkbox">

View File

@ -42,10 +42,8 @@
<div class="list-section-items"> <div class="list-section-items">
<div class="list-section-item"> <div class="list-section-item">
<label for="folder">Folder</label> <label for="folder">Folder</label>
<select id="folder" name="FolderId"> <select id="folder" name="FolderId" ng-model="site.folderId" bit-field>
<option>Blue</option> <option ng-repeat="folder in folders" value="{{folder.id}}">{{folder.name}}</option>
<option selected>Green</option>
<option>Red</option>
</select> </select>
</div> </div>
<div class="list-section-item list-section-item-checkbox"> <div class="list-section-item list-section-item-checkbox">