From 438fbc1888eb3e24d5839f09416477ed664974f9 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 21 Sep 2016 19:10:48 -0400 Subject: [PATCH] folders management pages implemented --- src/popup/app/config.js | 10 ++++---- .../settings/settingsAddFolderController.js | 18 ++++++++++++--- .../settings/settingsEditFolderController.js | 23 +++++++++++++++++-- .../app/settings/settingsFoldersController.js | 13 ++++++++++- src/popup/app/settings/settingsModule.js | 2 +- .../app/settings/views/settingsAddFolder.html | 2 +- .../settings/views/settingsEditFolder.html | 2 +- .../app/settings/views/settingsFolders.html | 6 ++--- 8 files changed, 59 insertions(+), 17 deletions(-) diff --git a/src/popup/app/config.js b/src/popup/app/config.js index d3811b0971..1896ca9d59 100644 --- a/src/popup/app/config.js +++ b/src/popup/app/config.js @@ -148,16 +148,16 @@ params: { animation: null } }) .state('addFolder', { - url: '/folders', + url: '/addFolder', templateUrl: 'app/settings/views/settingsAddFolder.html', - controller: 'settingsFoldersController', + controller: 'settingsAddFolderController', data: { authorize: true }, params: { animation: null } }) - .state('editFolder?folderId', { - url: '/folders', + .state('editFolder', { + url: '/editFolder?folderId', templateUrl: 'app/settings/views/settingsEditFolder.html', - controller: 'settingsFoldersController', + controller: 'settingsEditFolderController', data: { authorize: true }, params: { animation: null } }); diff --git a/src/popup/app/settings/settingsAddFolderController.js b/src/popup/app/settings/settingsAddFolderController.js index 6551e65ce3..a3eb09f753 100644 --- a/src/popup/app/settings/settingsAddFolderController.js +++ b/src/popup/app/settings/settingsAddFolderController.js @@ -1,6 +1,18 @@ -angular +angular .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' }); + }); + }); + }; }); diff --git a/src/popup/app/settings/settingsEditFolderController.js b/src/popup/app/settings/settingsEditFolderController.js index 9b0f0963a4..25a1a00087 100644 --- a/src/popup/app/settings/settingsEditFolderController.js +++ b/src/popup/app/settings/settingsEditFolderController.js @@ -1,6 +1,25 @@ angular .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' }); + }); + }); + }; }); diff --git a/src/popup/app/settings/settingsFoldersController.js b/src/popup/app/settings/settingsFoldersController.js index d80b7f0c21..1b9f62166d 100644 --- a/src/popup/app/settings/settingsFoldersController.js +++ b/src/popup/app/settings/settingsFoldersController.js @@ -1,15 +1,26 @@ angular .module('bit.settings') - .controller('settingsFoldersController', function ($scope, folderService, $q) { + .controller('settingsFoldersController', function ($scope, folderService, $q, $state) { $scope.loaded = false; load(); function load() { var foldersPromise = $q.when(folderService.getAllDecrypted()); foldersPromise.then(function (folders) { + if (folders.length > 0 && folders[0].id === null) { + // remove the "none" folder + folders.splice(0, 1); + } $scope.loaded = true; $scope.folders = folders; }); } + + $scope.editFolder = function (folder) { + $state.go('editFolder', { + folderId: folder.id, + animation: 'in-slide-up' + }); + }; }); diff --git a/src/popup/app/settings/settingsModule.js b/src/popup/app/settings/settingsModule.js index 087cba1448..8e435ebb33 100644 --- a/src/popup/app/settings/settingsModule.js +++ b/src/popup/app/settings/settingsModule.js @@ -1,2 +1,2 @@ angular - .module('bit.settings', ['oitozero.ngSweetAlert']); + .module('bit.settings', ['oitozero.ngSweetAlert', 'toastr']); diff --git a/src/popup/app/settings/views/settingsAddFolder.html b/src/popup/app/settings/views/settingsAddFolder.html index 514d217884..9f7b161c01 100644 --- a/src/popup/app/settings/views/settingsAddFolder.html +++ b/src/popup/app/settings/views/settingsAddFolder.html @@ -1,7 +1,7 @@ 
diff --git a/src/popup/app/settings/views/settingsEditFolder.html b/src/popup/app/settings/views/settingsEditFolder.html index 83cd9b463d..ff01afaf88 100644 --- a/src/popup/app/settings/views/settingsEditFolder.html +++ b/src/popup/app/settings/views/settingsEditFolder.html @@ -1,7 +1,7 @@ 
diff --git a/src/popup/app/settings/views/settingsFolders.html b/src/popup/app/settings/views/settingsFolders.html index f89b5fc6e7..358fda0520 100644 --- a/src/popup/app/settings/views/settingsFolders.html +++ b/src/popup/app/settings/views/settingsFolders.html @@ -3,7 +3,7 @@ Settings
- +
Folders
@@ -11,7 +11,7 @@
- {{folder.name}} @@ -19,7 +19,7 @@
-

No folders to list. Add one

+

No folders to list. Add one