1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-10 06:08:34 +02:00
bitwarden-browser/src/app/organization/organizationSubvaultsController.js
2017-03-30 21:08:07 -04:00

70 lines
2.5 KiB
JavaScript

angular
.module('bit.organization')
.controller('organizationSubvaultsController', function ($scope, $state, apiService, $uibModal, cipherService, $filter,
toastr) {
$scope.subvaults = [];
$scope.loading = true;
$scope.$on('$viewContentLoaded', function () {
loadList();
});
$scope.add = function () {
var modal = $uibModal.open({
animation: true,
templateUrl: 'app/organization/views/organizationSubvaultsAdd.html',
controller: 'organizationSubvaultsAddController'
});
modal.result.then(function (subvault) {
$scope.subvaults.push(subvault);
});
};
$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;
}
apiService.subvaults.del({ orgId: $state.params.orgId, id: subvault.id }, function () {
var index = $scope.subvaults.indexOf(subvault);
if (index > -1) {
$scope.subvaults.splice(index, 1);
}
toastr.success(subvault.name + ' has been deleted.', 'Subvault Deleted');
}, function () {
toastr.error(subvault.name + ' was not able to be deleted.', 'Error');
});
};
$scope.users = function (subvault) {
};
function loadList() {
apiService.subvaults.listOrganization({ orgId: $state.params.orgId }, function (list) {
$scope.subvaults = cipherService.decryptSubvaults(list.Data, $state.params.orgId, true);
$scope.loading = false;
});
}
});