propose users to disable an alias instead of deleting it
This commit is contained in:
parent
9dede0a281
commit
8bb324e82b
|
@ -418,18 +418,23 @@
|
|||
|
||||
<div>
|
||||
<div class="btn-group float-right" role="group" aria-label="Basic example">
|
||||
<a href="{{ url_for('dashboard.alias_transfer_send_route', alias_id=alias.id) }}" class="btn btn-sm btn-link">
|
||||
<a href="{{ url_for('dashboard.alias_transfer_send_route', alias_id=alias.id) }}"
|
||||
class="btn btn-sm btn-link">
|
||||
Transfer
|
||||
<i class="ml-0 dropdown-icon fe fe-share-2 text-primary"></i>
|
||||
</a>
|
||||
|
||||
|
||||
<form method="post">
|
||||
<input type="hidden" name="form-name" value="delete-email">
|
||||
<input type="hidden" name="form-name" value="delete-alias">
|
||||
<input type="hidden" name="alias-id" value="{{ alias.id }}">
|
||||
<input type="hidden" name="alias" class="alias" value="{{ alias.email }}">
|
||||
|
||||
<span class="delete-email btn btn-link btn-sm float-right text-danger">
|
||||
<span class="btn btn-link btn-sm float-right text-danger"
|
||||
onclick="confirmDeleteAlias.call(this)"
|
||||
data-alias="{{ alias.id }}"
|
||||
data-alias-email="{{ alias.email }}"
|
||||
>
|
||||
Delete <i class="dropdown-icon fe fe-trash-2 text-danger"></i>
|
||||
</span>
|
||||
</form>
|
||||
|
|
|
@ -106,10 +106,10 @@ def index():
|
|||
else:
|
||||
flash("You need to upgrade your plan to create new alias.", "warning")
|
||||
|
||||
elif request.form.get("form-name") == "delete-email":
|
||||
elif request.form.get("form-name") in ("delete-alias", "disable-alias"):
|
||||
alias_id = request.form.get("alias-id")
|
||||
alias: Alias = Alias.get(alias_id)
|
||||
if not alias:
|
||||
if not alias or alias.user_id != current_user.id:
|
||||
flash("Unknown error, sorry for the inconvenience", "error")
|
||||
return redirect(
|
||||
url_for(
|
||||
|
@ -120,10 +120,15 @@ def index():
|
|||
)
|
||||
)
|
||||
|
||||
LOG.d("delete alias %s", alias)
|
||||
email = alias.email
|
||||
alias_utils.delete_alias(alias, current_user)
|
||||
flash(f"Alias {email} has been deleted", "success")
|
||||
if request.form.get("form-name") == "delete-alias":
|
||||
LOG.d("delete alias %s", alias)
|
||||
email = alias.email
|
||||
alias_utils.delete_alias(alias, current_user)
|
||||
flash(f"Alias {email} has been deleted", "success")
|
||||
elif request.form.get("form-name") == "disable-alias":
|
||||
alias.enabled = False
|
||||
db.session.commit()
|
||||
flash(f"Alias {alias.email} has been disabled", "success")
|
||||
|
||||
return redirect(
|
||||
url_for("dashboard.index", query=query, sort=sort, filter=alias_filter)
|
||||
|
|
|
@ -1,33 +1,41 @@
|
|||
$('.mailbox-select').multipleSelect();
|
||||
|
||||
$(".delete-email").on("click", function () {
|
||||
let alias = $(this).parent().find(".alias").val();
|
||||
let message = `Once <b>${alias}</b> is deleted, people/apps ` +
|
||||
"who used to contact you via this alias cannot reach you any more," +
|
||||
" please confirm.";
|
||||
function confirmDeleteAlias() {
|
||||
let that = $(this);
|
||||
let alias = that.data("alias-email");
|
||||
|
||||
bootbox.confirm({
|
||||
message: message,
|
||||
bootbox.dialog({
|
||||
title: `Delete ${alias}`,
|
||||
message: `Maybe you want to disable the alias instead? Please note once deleted, it <b>can't</b> be restored.`,
|
||||
size: 'large',
|
||||
onEscape: true,
|
||||
backdrop: true,
|
||||
buttons: {
|
||||
confirm: {
|
||||
label: 'Yes, delete it',
|
||||
className: 'btn-danger'
|
||||
disable: {
|
||||
label: 'Disable it',
|
||||
className: 'btn-primary',
|
||||
callback: function () {
|
||||
that.closest("form").find('input[name="form-name"]').val("disable-alias");
|
||||
that.closest("form").submit();
|
||||
}
|
||||
},
|
||||
|
||||
delete: {
|
||||
label: "Yes, I don't need it anymore",
|
||||
className: 'btn-outline-danger',
|
||||
callback: function () {
|
||||
that.closest("form").submit();
|
||||
}
|
||||
},
|
||||
|
||||
cancel: {
|
||||
label: 'Cancel',
|
||||
className: 'btn-outline-primary'
|
||||
}
|
||||
},
|
||||
callback: function (result) {
|
||||
if (result) {
|
||||
that.closest("form").submit();
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
$(".enable-disable-alias").change(async function () {
|
||||
let aliasId = $(this).data("alias");
|
||||
|
|
Loading…
Reference in New Issue