mirror of
https://github.com/bitwarden/desktop.git
synced 2024-10-07 05:28:19 +02:00
folders management pages implemented
This commit is contained in:
parent
db80727e1e
commit
438fbc1888
@ -148,16 +148,16 @@
|
|||||||
params: { animation: null }
|
params: { animation: null }
|
||||||
})
|
})
|
||||||
.state('addFolder', {
|
.state('addFolder', {
|
||||||
url: '/folders',
|
url: '/addFolder',
|
||||||
templateUrl: 'app/settings/views/settingsAddFolder.html',
|
templateUrl: 'app/settings/views/settingsAddFolder.html',
|
||||||
controller: 'settingsFoldersController',
|
controller: 'settingsAddFolderController',
|
||||||
data: { authorize: true },
|
data: { authorize: true },
|
||||||
params: { animation: null }
|
params: { animation: null }
|
||||||
})
|
})
|
||||||
.state('editFolder?folderId', {
|
.state('editFolder', {
|
||||||
url: '/folders',
|
url: '/editFolder?folderId',
|
||||||
templateUrl: 'app/settings/views/settingsEditFolder.html',
|
templateUrl: 'app/settings/views/settingsEditFolder.html',
|
||||||
controller: 'settingsFoldersController',
|
controller: 'settingsEditFolderController',
|
||||||
data: { authorize: true },
|
data: { authorize: true },
|
||||||
params: { animation: null }
|
params: { animation: null }
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.settings')
|
.module('bit.settings')
|
||||||
|
|
||||||
.controller('settingsAddFolderController', function ($scope) {
|
.controller('settingsAddFolderController', function ($scope, $q, folderService, $state, toastr) {
|
||||||
|
popupUtils.initListSectionItemListeners();
|
||||||
|
$('#name').focus();
|
||||||
|
|
||||||
|
$scope.savePromise = null;
|
||||||
|
$scope.save = function (model) {
|
||||||
|
$scope.savePromise = $q.when(folderService.encrypt(model)).then(function (folderModel) {
|
||||||
|
var folder = new Folder(folderModel, true);
|
||||||
|
return $q.when(folderService.saveWithServer(folder)).then(function (folder) {
|
||||||
|
toastr.success('Added folder');
|
||||||
|
$state.go('folders', { animation: 'out-slide-down' });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,25 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.settings')
|
.module('bit.settings')
|
||||||
|
|
||||||
.controller('settingsEditFolderController', function ($scope) {
|
.controller('settingsEditFolderController', function ($scope, $stateParams, folderService, toastr, $q, $state) {
|
||||||
|
var folderId = $stateParams.folderId;
|
||||||
|
|
||||||
|
folderService.get(folderId, function (folder) {
|
||||||
|
$q.when(folder.decrypt()).then(function (model) {
|
||||||
|
$scope.folder = model;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
popupUtils.initListSectionItemListeners();
|
||||||
|
|
||||||
|
$scope.savePromise = null;
|
||||||
|
$scope.save = function (model) {
|
||||||
|
$scope.savePromise = $q.when(folderService.encrypt(model)).then(function (folderModel) {
|
||||||
|
var folder = new Folder(folderModel, true);
|
||||||
|
return $q.when(folderService.saveWithServer(folder)).then(function (folder) {
|
||||||
|
toastr.success('Edited folder');
|
||||||
|
$state.go('folders', { animation: 'out-slide-down' });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
@ -1,15 +1,26 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.settings')
|
.module('bit.settings')
|
||||||
|
|
||||||
.controller('settingsFoldersController', function ($scope, folderService, $q) {
|
.controller('settingsFoldersController', function ($scope, folderService, $q, $state) {
|
||||||
$scope.loaded = false;
|
$scope.loaded = false;
|
||||||
|
|
||||||
load();
|
load();
|
||||||
function load() {
|
function load() {
|
||||||
var foldersPromise = $q.when(folderService.getAllDecrypted());
|
var foldersPromise = $q.when(folderService.getAllDecrypted());
|
||||||
foldersPromise.then(function (folders) {
|
foldersPromise.then(function (folders) {
|
||||||
|
if (folders.length > 0 && folders[0].id === null) {
|
||||||
|
// remove the "none" folder
|
||||||
|
folders.splice(0, 1);
|
||||||
|
}
|
||||||
$scope.loaded = true;
|
$scope.loaded = true;
|
||||||
$scope.folders = folders;
|
$scope.folders = folders;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$scope.editFolder = function (folder) {
|
||||||
|
$state.go('editFolder', {
|
||||||
|
folderId: folder.id,
|
||||||
|
animation: 'in-slide-up'
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.settings', ['oitozero.ngSweetAlert']);
|
.module('bit.settings', ['oitozero.ngSweetAlert', 'toastr']);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<form name="theForm" ng-submit="theForm.$valid && save(folder)" bit-form="savePromise">
|
<form name="theForm" ng-submit="theForm.$valid && save(folder)" bit-form="savePromise">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<a ng-click="close()" href="">Cancel</a>
|
<a ui-sref="folders({animation: 'out-slide-down'})">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">Save</button>
|
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">Save</button>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<form name="theForm" ng-submit="theForm.$valid && save(folder)" bit-form="savePromise">
|
<form name="theForm" ng-submit="theForm.$valid && save(folder)" bit-form="savePromise">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<a ng-click="close()" href="">Cancel</a>
|
<a ui-sref="folders({animation: 'out-slide-down'})">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">Save</button>
|
<button type="submit" class="btn btn-link" ng-show="!theForm.$loading">Save</button>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> Settings</a>
|
<a ui-sref="tabs.settings({animation: 'out-slide-right'})"><i class="fa fa-chevron-left"></i> Settings</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<a href="" ng-click="addFolder()"><i class="fa fa-plus fa-lg"></i></a>
|
<a ui-sref="addFolder({animation: 'in-slide-up'})"><i class="fa fa-plus fa-lg"></i></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="title">Folders</div>
|
<div class="title">Folders</div>
|
||||||
</div>
|
</div>
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<div ng-if="folders.length">
|
<div ng-if="folders.length">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="list-grouped">
|
<div class="list-grouped">
|
||||||
<a ng-click="editFolder(folder)" class="list-grouped-item"
|
<a href="" ng-click="editFolder(folder)" class="list-grouped-item"
|
||||||
ng-repeat="folder in theFolders = (folders | orderBy: ['name'])">
|
ng-repeat="folder in theFolders = (folders | orderBy: ['name'])">
|
||||||
<span class="text">{{folder.name}}</span>
|
<span class="text">{{folder.name}}</span>
|
||||||
</a>
|
</a>
|
||||||
@ -19,7 +19,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="centered-message" ng-if="loaded && !folders.length">
|
<div class="centered-message" ng-if="loaded && !folders.length">
|
||||||
<p>No folders to list. <a href="" ng-click="addFolder()">Add one</a></p>
|
<p>No folders to list. <a ui-sref="addFolder({animation: 'in-slide-up'})">Add one</a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="page-loading" ng-if="!loaded">
|
<div class="page-loading" ng-if="!loaded">
|
||||||
<i class="fa fa-lg fa-spinner fa-spin"></i>
|
<i class="fa fa-lg fa-spinner fa-spin"></i>
|
||||||
|
Loading…
Reference in New Issue
Block a user