1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-27 21:53:25 +00:00
Files
browser/src/popup/app/vault/vaultEditSiteController.js
2016-09-29 17:57:56 -04:00

125 lines
4.2 KiB
JavaScript

angular
.module('bit.vault')
.controller('vaultEditSiteController', function ($scope, $state, $stateParams, siteService, folderService,
cryptoService, $q, toastr, SweetAlert, utilsService, $analytics) {
var returnScrollY = $stateParams.returnScrollY;
var returnSearchText = $stateParams.returnSearchText;
var siteId = $stateParams.siteId;
var fromView = $stateParams.fromView;
$scope.site = {
folderId: null
};
if ($stateParams.site) {
angular.extend($scope.site, $stateParams.site);
}
else {
siteService.get(siteId, function (site) {
$q.when(site.decrypt()).then(function (model) {
$scope.site = model;
});
});
}
$q.when(folderService.getAllDecrypted()).then(function (folders) {
$scope.folders = folders;
});
utilsService.initListSectionItemListeners($(document), angular);
$scope.savePromise = null;
$scope.save = function (model) {
if (!model.name) {
toastr.error('Name is required.', 'Errors have occurred');
return;
}
if (!model.password) {
toastr.error('Password is required.', 'Errors have occurred');
return;
}
$scope.savePromise = $q.when(siteService.encrypt(model)).then(function (siteModel) {
var site = new Site(siteModel, true);
return $q.when(siteService.saveWithServer(site)).then(function (site) {
$analytics.eventTrack('Edited Site');
toastr.success('Edited site');
$scope.close();
});
});
};
$scope.delete = function () {
SweetAlert.swal({
title: 'Delete Site',
text: 'Are you sure you want to delete this site?',
showCancelButton: true,
confirmButtonText: 'Yes',
cancelButtonText: 'No'
}, function (confirmed) {
if (confirmed) {
$q.when(siteService.deleteWithServer(siteId)).then(function () {
$analytics.eventTrack('Deleted Site');
toastr.success('Deleted site');
$state.go('tabs.vault', {
animation: 'out-slide-down'
});
});
}
});
};
$scope.close = function () {
if (fromView) {
$state.go('viewSite', {
siteId: siteId,
animation: 'out-slide-down',
returnScrollY: returnScrollY || 0,
returnSearchText: returnSearchText
});
}
else {
$state.go('tabs.vault', {
animation: 'out-slide-down',
scrollY: returnScrollY || 0,
searchText: returnSearchText
});
}
};
$scope.generatePassword = function () {
if ($scope.site.password) {
SweetAlert.swal({
title: 'Overwrite Password',
text: 'Are you sure you want to overwrite the current password?',
showCancelButton: true,
confirmButtonText: 'Yes',
cancelButtonText: 'No'
}, function (confirmed) {
if (confirmed) {
goPasswordGenerator();
}
});
}
else {
goPasswordGenerator();
}
};
function goPasswordGenerator() {
$analytics.eventTrack('Clicked Generate Password');
$state.go('passwordGenerator', {
animation: 'in-slide-up',
editState: {
fromView: fromView,
siteId: siteId,
site: $scope.site,
returnScrollY: returnScrollY,
returnSearchText: returnSearchText
}
});
}
});