mirror of
https://github.com/bitwarden/desktop.git
synced 2024-09-07 00:38:13 +02:00
Delete site/folder
This commit is contained in:
parent
f28b690a2a
commit
95ab611595
@ -1,7 +1,7 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.settings')
|
.module('bit.settings')
|
||||||
|
|
||||||
.controller('settingsEditFolderController', function ($scope, $stateParams, folderService, toastr, $q, $state) {
|
.controller('settingsEditFolderController', function ($scope, $stateParams, folderService, toastr, $q, $state, SweetAlert) {
|
||||||
$scope.folder = {};
|
$scope.folder = {};
|
||||||
var folderId = $stateParams.folderId;
|
var folderId = $stateParams.folderId;
|
||||||
|
|
||||||
@ -28,4 +28,23 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.delete = function () {
|
||||||
|
SweetAlert.swal({
|
||||||
|
title: 'Delete Folder',
|
||||||
|
text: 'Are you sure you want to delete this folder?',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Yes',
|
||||||
|
cancelButtonText: 'No'
|
||||||
|
}, function (confirmed) {
|
||||||
|
if (confirmed) {
|
||||||
|
$q.when(folderService.deleteWithServer(folderId)).then(function () {
|
||||||
|
toastr.success('Deleted folder');
|
||||||
|
$state.go('folders', {
|
||||||
|
animation: 'out-slide-down'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
@ -19,6 +19,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="list-section">
|
||||||
|
<div class="list-section-items">
|
||||||
|
<a href="" ng-click="delete()" class="list-section-item text-danger">
|
||||||
|
<i class="fa fa-trash fa-fw fa-lg"></i> Delete Folder
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -49,6 +49,25 @@ angular
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$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 () {
|
||||||
|
toastr.success('Deleted site');
|
||||||
|
$state.go('tabs.vault', {
|
||||||
|
animation: 'out-slide-down'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
$scope.close = function () {
|
$scope.close = function () {
|
||||||
if (fromView) {
|
if (fromView) {
|
||||||
$state.go('viewSite', {
|
$state.go('viewSite', {
|
||||||
@ -70,7 +89,7 @@ angular
|
|||||||
$scope.generatePassword = function () {
|
$scope.generatePassword = function () {
|
||||||
if ($scope.site.password) {
|
if ($scope.site.password) {
|
||||||
SweetAlert.swal({
|
SweetAlert.swal({
|
||||||
title: 'Warning',
|
title: 'Overwrite Password',
|
||||||
text: 'Are you sure you want to overwrite the current password?',
|
text: 'Are you sure you want to overwrite the current password?',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonText: 'Yes',
|
confirmButtonText: 'Yes',
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
angular
|
angular
|
||||||
.module('bit.vault')
|
.module('bit.vault')
|
||||||
|
|
||||||
.controller('vaultViewSiteController', function ($scope, $state, $stateParams, siteService, tldjs, toastr, $q) {
|
.controller('vaultViewSiteController', function ($scope, $state, $stateParams, siteService, tldjs, toastr, $q) {
|
||||||
@ -7,6 +7,10 @@
|
|||||||
|
|
||||||
$scope.site = null;
|
$scope.site = null;
|
||||||
siteService.get($stateParams.siteId, function (site) {
|
siteService.get($stateParams.siteId, function (site) {
|
||||||
|
if (!site) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$q.when(site.decrypt()).then(function (model) {
|
$q.when(site.decrypt()).then(function (model) {
|
||||||
$scope.site = model;
|
$scope.site = model;
|
||||||
|
|
||||||
|
@ -64,6 +64,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="list-section">
|
||||||
|
<div class="list-section-items">
|
||||||
|
<a href="" ng-click="delete()" class="list-section-item text-danger">
|
||||||
|
<i class="fa fa-trash fa-fw fa-lg"></i> Delete Site
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -213,6 +213,10 @@
|
|||||||
color: @brand-primary !important;
|
color: @brand-primary !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.text-danger {
|
||||||
|
color: @brand-danger !important;
|
||||||
|
}
|
||||||
|
|
||||||
&:not(.wrap) {
|
&:not(.wrap) {
|
||||||
.text, .detail {
|
.text, .detail {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
@ -17,7 +17,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new TokenResponse(response))
|
success(new TokenResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -35,7 +35,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new TokenResponse(response))
|
success(new TokenResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -54,7 +54,7 @@ function initApiService() {
|
|||||||
url: self.baseUrl + '/accounts/profile?access_token=' + token,
|
url: self.baseUrl + '/accounts/profile?access_token=' + token,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new ProfileResponse(response))
|
success(new ProfileResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -105,7 +105,7 @@ function initApiService() {
|
|||||||
url: self.baseUrl + '/sites/' + id + '?access_token=' + token,
|
url: self.baseUrl + '/sites/' + id + '?access_token=' + token,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new SiteResponse(response))
|
success(new SiteResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -124,7 +124,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new SiteResponse(response))
|
success(new SiteResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -143,7 +143,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new SiteResponse(response))
|
success(new SiteResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -162,7 +162,7 @@ function initApiService() {
|
|||||||
url: self.baseUrl + '/folders/' + id + '?access_token=' + token,
|
url: self.baseUrl + '/folders/' + id + '?access_token=' + token,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new FolderResponse(response))
|
success(new FolderResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -181,7 +181,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new FolderResponse(response))
|
success(new FolderResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -200,7 +200,7 @@ function initApiService() {
|
|||||||
contentType: 'application/json; charset=utf-8',
|
contentType: 'application/json; charset=utf-8',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new FolderResponse(response))
|
success(new FolderResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -219,7 +219,7 @@ function initApiService() {
|
|||||||
url: self.baseUrl + '/ciphers/' + id + '?access_token=' + token,
|
url: self.baseUrl + '/ciphers/' + id + '?access_token=' + token,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
success(new CipherResponse(response))
|
success(new CipherResponse(response));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -241,7 +241,7 @@ function initApiService() {
|
|||||||
data.push(new CipherResponse(response.Data[i]));
|
data.push(new CipherResponse(response.Data[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
success(new ListResponse(data))
|
success(new ListResponse(data));
|
||||||
},
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
@ -256,9 +256,9 @@ function initApiService() {
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: self.baseUrl + '/ciphers/' + id + '/delete?access_token=' + token,
|
url: self.baseUrl + '/ciphers/' + id + '/delete?access_token=' + token,
|
||||||
contentType: 'application/json; charset=utf-8',
|
success: function (response) {
|
||||||
dataType: 'json',
|
success();
|
||||||
success: success,
|
},
|
||||||
error: function (jqXHR, textStatus, errorThrown) {
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
handleError(error, jqXHR, textStatus, errorThrown);
|
handleError(error, jqXHR, textStatus, errorThrown);
|
||||||
}
|
}
|
||||||
|
@ -224,6 +224,21 @@ function initFolderService() {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
FolderService.prototype.deleteWithServer = function (id) {
|
||||||
|
var deferred = Q.defer();
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
self.apiService.deleteCipher(id, function () {
|
||||||
|
self.delete(id, function () {
|
||||||
|
deferred.resolve();
|
||||||
|
});
|
||||||
|
}, function (response) {
|
||||||
|
handleError(response, deferred)
|
||||||
|
});
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
|
};
|
||||||
|
|
||||||
function handleError(error, deferred) {
|
function handleError(error, deferred) {
|
||||||
deferred.reject(error);
|
deferred.reject(error);
|
||||||
}
|
}
|
||||||
|
@ -242,7 +242,7 @@ function initSiteService() {
|
|||||||
var deferred = Q.defer();
|
var deferred = Q.defer();
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
self.apiService.deleteCipher(id, function (response) {
|
self.apiService.deleteCipher(id, function () {
|
||||||
self.delete(id, function () {
|
self.delete(id, function () {
|
||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user