archive: add confirm delete dialog

This commit is contained in:
Girish Ramakrishnan
2024-12-10 14:26:07 +01:00
parent a8035d01c6
commit e201d4c896
3 changed files with 49 additions and 6 deletions

View File

@@ -652,6 +652,13 @@
},
"archive": {
"description": "Deleted archives are cleaned up based on the backup policy."
},
"deleteArchiveDialog": {
"title": "Delete Archive of {{appTitle}} ({{fqdn}})",
"description": "After deletion, the archive will be cleaned up based on the backup policy."
},
"deleteArchive": {
"deleteAction": "Delete"
}
},
"branding": {

View File

@@ -541,6 +541,24 @@
</div>
</div>
<!-- Modal delete archive -->
<div class="modal fade" id="archiveDeleteModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">{{ 'backups.deleteArchiveDialog.title' | tr:{ appTitle: archiveDelete.archive.appConfig.manifest.title, fqdn: archiveDelete.archive.appConfig.fqdn } }}</h4>
</div>
<div class="modal-body">
<p>{{ 'backups.deleteArchiveDialog.description' | tr }}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'main.dialog.cancel' | tr }}</button>
<button type="button" class="btn btn-danger" ng-click="archiveDelete.submit()" ng-disabled="archiveDelete.busy"><i class="fa fa-circle-notch fa-spin" ng-show="archiveDelete.busy"></i> {{ 'backups.deleteArchive.deleteAction' | tr }}</button>
</div>
</div>
</div>
</div>
<div class="content">
<h1 class="section-header">{{ 'backups.title' | tr }}</h1>
@@ -776,7 +794,7 @@
</td>
<td class="text-right no-wrap" style="vertical-align: middle;">
<button class="btn btn-xs btn-default" ng-click="clone.show(archive)" uib-tooltip="Restore Archive"><i class="fas fa-history"></i></button>
<button class="btn btn-xs btn-danger" ng-click="listArchives.delete(archive)" uib-tooltip="Delete Archive"><i class="fa fa-trash-alt"></i></button>
<button class="btn btn-xs btn-danger" ng-click="archiveDelete.ask(archive)" uib-tooltip="Delete Archive"><i class="fa fa-trash-alt"></i></button>
</td>
</tr>
</tbody>

View File

@@ -284,13 +284,31 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
});
});
},
};
delete: function (archive) {
Client.deleteArchive(archive.id, function (error) {
if (error) Client.error(error);
$scope.listArchives.fetch();
});
$scope.archiveDelete = {
busy: false,
error: {},
archive: null,
ask: function (archive) {
$scope.archiveDelete.busy = false;
$scope.archiveDelete.error = {};
$scope.archiveDelete.archive = archive;
$('#archiveDeleteModal').modal('show');
},
submit: function () {
$scope.archiveDelete.busy = true;
$scope.archiveDelete.error = {};
Client.deleteArchive($scope.archiveDelete.archive.id, function (error) {
$scope.archiveDelete.busy = false;
if (error) return console.error('Unable to delete archive.', error.statusCode, error.message);
$scope.listArchives.fetch();
$('#archiveDeleteModal').modal('hide');
});
}
};
// keep in sync with app.js