summaryrefslogtreecommitdiff
path: root/client/js/views/posts_header_view.js
diff options
context:
space:
mode:
authorHunternif <hunternif@gmail.com>2025-02-15 18:12:57 +0000
committerHunternif <hunternif@gmail.com>2025-02-15 18:12:57 +0000
commit6a5300502df8b4de9c8f269b444cd309f02b28ad (patch)
tree0cf2ba56bce802c94ad324f9eda7a31d37a42e2e /client/js/views/posts_header_view.js
parent34e7c883808738871aed371948a3c9896a95905c (diff)
parent376f687c386f65522b2f65e98b998b21af26ee29 (diff)
Merge branch 'master' into hunternif
Diffstat (limited to 'client/js/views/posts_header_view.js')
-rw-r--r--client/js/views/posts_header_view.js50
1 files changed, 47 insertions, 3 deletions
diff --git a/client/js/views/posts_header_view.js b/client/js/views/posts_header_view.js
index 7f5acac..7923752 100644
--- a/client/js/views/posts_header_view.js
+++ b/client/js/views/posts_header_view.js
@@ -160,6 +160,34 @@ class BulkAddRelationEditor extends BulkEditor {
}
}
+class BulkDeleteEditor extends BulkEditor {
+ constructor(hostNode) {
+ super(hostNode);
+ this._hostNode.addEventListener("submit", (e) =>
+ this._evtFormSubmit(e)
+ );
+ }
+
+ _evtFormSubmit(e) {
+ e.preventDefault();
+ this.dispatchEvent(
+ new CustomEvent("deleteSelectedPosts", { detail: {} })
+ );
+ }
+
+ _evtOpenLinkClick(e) {
+ e.preventDefault();
+ this.toggleOpen(true);
+ this.dispatchEvent(new CustomEvent("open", { detail: {} }));
+ }
+
+ _evtCloseLinkClick(e) {
+ e.preventDefault();
+ this.toggleOpen(false);
+ this.dispatchEvent(new CustomEvent("close", { detail: {} }));
+ }
+}
+
class PostsHeaderView extends events.EventTarget {
constructor(ctx) {
super();
@@ -247,6 +275,13 @@ class PostsHeaderView extends events.EventTarget {
this._evtCloseMetricsBtnClick(e)
);
}
+
+ if (this._bulkEditDeleteNode) {
+ this._bulkDeleteEditor = new BulkDeleteEditor(
+ this._bulkEditDeleteNode
+ );
+ this._bulkEditors.push(this._bulkDeleteEditor);
+ }
for (let editor of this._bulkEditors) {
editor.addEventListener("submit", (e) => {
@@ -268,6 +303,8 @@ class PostsHeaderView extends events.EventTarget {
this._openBulkEditor(this._bulkSafetyEditor);
} else if (ctx.parameters.relations && this._bulkAddRelationEditor) {
this._openBulkEditor(this._bulkAddRelationEditor);
+ } else if (ctx.parameters.delete && this._bulkDeleteEditor) {
+ this._openBulkEditor(this._bulkDeleteEditor);
}
if (ctx.parameters.metrics && this._metricsBlockNode) {
this._toggleMetricsBlock(true);
@@ -322,6 +359,10 @@ class PostsHeaderView extends events.EventTarget {
return this._hostNode.querySelector(".bulk-add-relation");
}
+ get _bulkEditDeleteNode() {
+ return this._hostNode.querySelector(".bulk-edit-delete");
+ }
+
get _metricsButtonHolderNode() {
return this._hostNode.querySelector(".metrics-btn-holder");
}
@@ -400,9 +441,8 @@ class PostsHeaderView extends events.EventTarget {
e.target.classList.toggle("disabled");
const safety = e.target.getAttribute("data-safety");
let browsingSettings = settings.get();
- browsingSettings.listPosts[safety] = !browsingSettings.listPosts[
- safety
- ];
+ browsingSettings.listPosts[safety] =
+ !browsingSettings.listPosts[safety];
settings.save(browsingSettings, true);
this.dispatchEvent(
new CustomEvent("navigate", {
@@ -498,6 +538,10 @@ class PostsHeaderView extends events.EventTarget {
this._bulkAddRelationEditor && this._bulkAddRelationEditor.opened
? this._ctx.parameters.relations || " "
: null;
+ parameters.delete =
+ this._bulkDeleteEditor && this._bulkDeleteEditor.opened
+ ? "1"
+ : null;
this.dispatchEvent(
new CustomEvent("navigate", { detail: { parameters: parameters } })
);