mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-07 02:48:27 +02:00

* extract generic behaviors * preserve query string when refreshing content * refactor details modal refresh * refactor bulk edit * update tests * restore tag modal * Make IntelliJ aware of custom attributes * improve e2e test coverage
42 lines
1010 B
JavaScript
42 lines
1010 B
JavaScript
import { fireEvents, registerBehavior } from "./index";
|
|
|
|
class FormBehavior {
|
|
constructor(element) {
|
|
this.element = element;
|
|
element.addEventListener("submit", this.onSubmit.bind(this));
|
|
}
|
|
|
|
async onSubmit(event) {
|
|
event.preventDefault();
|
|
|
|
const url = this.element.action;
|
|
const formData = new FormData(this.element);
|
|
if (event.submitter) {
|
|
formData.append(event.submitter.name, event.submitter.value);
|
|
}
|
|
|
|
await fetch(url, {
|
|
method: "POST",
|
|
body: formData,
|
|
redirect: "manual", // ignore redirect
|
|
});
|
|
|
|
const events = this.element.getAttribute("ld-fire");
|
|
if (fireEvents) {
|
|
fireEvents(events);
|
|
}
|
|
}
|
|
}
|
|
|
|
class AutoSubmitBehavior {
|
|
constructor(element) {
|
|
element.addEventListener("change", () => {
|
|
const form = element.closest("form");
|
|
form.dispatchEvent(new Event("submit", { cancelable: true }));
|
|
});
|
|
}
|
|
}
|
|
|
|
registerBehavior("ld-form", FormBehavior);
|
|
registerBehavior("ld-auto-submit", AutoSubmitBehavior);
|