diff --git a/src/app/organization/organizationSubvaultsController.js b/src/app/organization/organizationSubvaultsController.js index 4876d90cac3..e52137d70a6 100644 --- a/src/app/organization/organizationSubvaultsController.js +++ b/src/app/organization/organizationSubvaultsController.js @@ -1,7 +1,7 @@ angular .module('bit.organization') - .controller('organizationSubvaultsController', function ($scope, $state, apiService, $uibModal, cipherService) { + .controller('organizationSubvaultsController', function ($scope, $state, apiService, $uibModal, cipherService, $filter) { $scope.subvaults = []; $scope.loading = true; $scope.$on('$viewContentLoaded', function () { @@ -20,6 +20,24 @@ }); }; + $scope.edit = function (subvault) { + var modal = $uibModal.open({ + animation: true, + templateUrl: 'app/organization/views/organizationSubvaultsEdit.html', + controller: 'organizationSubvaultsEditController', + resolve: { + id: function () { return subvault.id; } + } + }); + + modal.result.then(function (editedSubvault) { + var existingSubvaults = $filter('filter')($scope.subvaults, { id: editedSubvault.id }, true); + if (existingSubvaults && existingSubvaults.length > 0) { + existingSubvaults[0].name = editedSubvault.name; + } + }); + }; + $scope.delete = function (subvault) { if (!confirm('Are you sure you want to delete this subvault (' + subvault.name + ')?')) { return; diff --git a/src/app/organization/organizationSubvaultsEditController.js b/src/app/organization/organizationSubvaultsEditController.js new file mode 100644 index 00000000000..383cc33f479 --- /dev/null +++ b/src/app/organization/organizationSubvaultsEditController.js @@ -0,0 +1,26 @@ +angular + .module('bit.organization') + + .controller('organizationSubvaultsEditController', function ($scope, $state, $uibModalInstance, apiService, cipherService, + $analytics, id) { + $scope.subvault = {}; + + $uibModalInstance.opened.then(function () { + apiService.subvaults.get({ orgId: $state.params.orgId, id: id }, function (subvault) { + $scope.subvault = cipherService.decryptSubvault(subvault); + }); + }); + + $scope.submit = function (model) { + var subvault = cipherService.encryptSubvault(model, $state.params.orgId); + $scope.submitPromise = apiService.subvaults.put({ orgId: $state.params.orgId }, subvault, function (response) { + $analytics.eventTrack('Edited Subvault'); + var decSubvault = cipherService.decryptSubvault(response, $state.params.orgId, true); + $uibModalInstance.close(decSubvault); + }).$promise; + }; + + $scope.close = function () { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/src/app/organization/views/organizationSubvaults.html b/src/app/organization/views/organizationSubvaults.html index bc515f47c3e..d54c671c922 100644 --- a/src/app/organization/views/organizationSubvaults.html +++ b/src/app/organization/views/organizationSubvaults.html @@ -7,19 +7,27 @@
-

- -

+   +
-