folders management pages implemented

This commit is contained in:
Kyle Spearrin 2016-09-21 19:10:48 -04:00
parent db80727e1e
commit 438fbc1888
8 changed files with 59 additions and 17 deletions

View File

@ -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 }
}); });

View File

@ -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' });
});
});
};
}); });

View File

@ -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' });
});
});
};
}); });

View File

@ -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'
});
};
}); });

View File

@ -1,2 +1,2 @@
angular angular
.module('bit.settings', ['oitozero.ngSweetAlert']); .module('bit.settings', ['oitozero.ngSweetAlert', 'toastr']);

View File

@ -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>

View File

@ -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>

View File

@ -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>