mirror of
https://github.com/miniflux/v2.git
synced 2025-08-01 17:38:37 +00:00
Ask for confirmation before removing something
This commit is contained in:
parent
25a5250eb9
commit
5983db1a77
15 changed files with 165 additions and 40 deletions
|
@ -120,6 +120,7 @@ class App {
|
|||
|
||||
let mouseHandler = new MouseHandler();
|
||||
mouseHandler.onClick("a[data-on-click=markPageAsRead]", () => this.markPageAsRead());
|
||||
mouseHandler.onClick("a[data-confirm]", (event) => this.confirm(event));
|
||||
|
||||
if (document.documentElement.clientWidth < 600) {
|
||||
mouseHandler.onClick(".logo", () => this.toggleMainMenu());
|
||||
|
@ -127,6 +128,61 @@ class App {
|
|||
}
|
||||
}
|
||||
|
||||
remove(url) {
|
||||
let request = new Request(url, {
|
||||
method: "POST",
|
||||
cache: "no-cache",
|
||||
credentials: "include",
|
||||
headers: new Headers({
|
||||
"X-Csrf-Token": this.getCsrfToken()
|
||||
})
|
||||
});
|
||||
|
||||
fetch(request).then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
confirm(event) {
|
||||
let questionElement = document.createElement("span");
|
||||
let linkElement = event.target;
|
||||
let containerElement = linkElement.parentNode;
|
||||
linkElement.style.display = "none";
|
||||
|
||||
let yesElement = document.createElement("a");
|
||||
yesElement.href = "#";
|
||||
yesElement.appendChild(document.createTextNode(linkElement.dataset.labelYes));
|
||||
yesElement.onclick = (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
let loadingElement = document.createElement("span");
|
||||
loadingElement.className = "loading";
|
||||
loadingElement.appendChild(document.createTextNode(linkElement.dataset.labelLoading));
|
||||
|
||||
questionElement.remove();
|
||||
containerElement.appendChild(loadingElement);
|
||||
|
||||
this.remove(linkElement.dataset.url);
|
||||
};
|
||||
|
||||
let noElement = document.createElement("a");
|
||||
noElement.href = "#";
|
||||
noElement.appendChild(document.createTextNode(linkElement.dataset.labelNo));
|
||||
noElement.onclick = (event) => {
|
||||
event.preventDefault();
|
||||
linkElement.style.display = "inline";
|
||||
questionElement.remove();
|
||||
};
|
||||
|
||||
questionElement.className = "confirm";
|
||||
questionElement.appendChild(document.createTextNode(linkElement.dataset.labelQuestion + " "));
|
||||
questionElement.appendChild(yesElement);
|
||||
questionElement.appendChild(document.createTextNode(", "));
|
||||
questionElement.appendChild(noElement);
|
||||
|
||||
containerElement.appendChild(questionElement);
|
||||
}
|
||||
|
||||
clickMenuListItem(event) {
|
||||
let element = event.target;console.log(element);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue