From 7c4630e8ae80073d165128fa9cb45eae9736427f Mon Sep 17 00:00:00 2001 From: J Mor Date: Fri, 31 Jul 2026 13:47:07 -0400 Subject: [PATCH] Added an option to permanently disable for all relevant components --- package.json | 2 +- src/js/components/AppealReasons.ts | 3 +++ src/js/components/AutoClickPosts.ts | 3 +++ src/js/components/AutoTaggingButtons.ts | 3 +++ src/js/components/DMailBuilder.ts | 3 +++ src/js/components/DMailToStaffNote.ts | 3 +++ src/js/components/FilterOldFeedbacks.ts | 5 ++--- src/js/components/ForumBuilder.ts | 3 +++ src/js/components/ReportContentData.ts | 9 +++++++-- src/js/components/RipStaffNotes.ts | 4 +++- src/js/components/TicketReasons.ts | 3 +++ 11 files changed, 34 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 3c913fd..5be54c5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mod621", "displayName": "RE621 Mod Tools", "namespace": "mod621.bitwolfy.com", - "version": "6.6.0", + "version": "6.6.1", "description": "Moderation toolkit for e621.net", "author": "bitWolfy", "contributors": [ diff --git a/src/js/components/AppealReasons.ts b/src/js/components/AppealReasons.ts index 6474cb3..c51050c 100644 --- a/src/js/components/AppealReasons.ts +++ b/src/js/components/AppealReasons.ts @@ -79,6 +79,8 @@ export default class AppealReasons extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements: [ + $(this.enabledElement), + $(`
`), $(html`
Text insertion mode @@ -88,6 +90,7 @@ export default class AppealReasons extends Component { ], optionsOrTitle: this.settingsButtonLabel, then: (e: FormData) => { + if (!this.handleEnabledElement(e)) return; const v = e.get("setting-insertMode"); if (v && (v === "insert" || v === "replace")) this.Settings.insertMode = v; }, diff --git a/src/js/components/AutoClickPosts.ts b/src/js/components/AutoClickPosts.ts index 8615d18..f916d44 100644 --- a/src/js/components/AutoClickPosts.ts +++ b/src/js/components/AutoClickPosts.ts @@ -119,6 +119,8 @@ export default class AutoClickPosts extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements:[ + $(this.enabledElement), + $(`
`), $(this.simpleSettingsCheckbox("hideButton", undefined)), $(`
`), $(this.simpleSettingsCheckbox("testMode", undefined)), @@ -138,6 +140,7 @@ export default class AutoClickPosts extends Component { optionsOrTitle: "Auto-Click Posts Settings", then: (e: FormData) => { if (this.handleResetSettingsDialogElement(e)) return; + if (!this.handleEnabledElement(e)) return; this.Settings.hideButton = e.get(`${this.settingsIdPrefix}hideButton`) === "true"; this.Settings.testMode = e.get(`${this.settingsIdPrefix}testMode`) === "true"; this.Settings.clickBlacklisted = e.get(`${this.settingsIdPrefix}clickBlacklisted`) === "true"; diff --git a/src/js/components/AutoTaggingButtons.ts b/src/js/components/AutoTaggingButtons.ts index ae8cb73..0385ffd 100644 --- a/src/js/components/AutoTaggingButtons.ts +++ b/src/js/components/AutoTaggingButtons.ts @@ -240,6 +240,8 @@ export default class AutoTaggingButtons extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements:[ + $(this.enabledElement), + $(`
`), $(this.simpleSettingsCheckbox("doShow", "Show buttons?", "Should any button be loaded onto this page next time?")), $(`
`), $(this.simpleSettingsCheckbox("forceConfirm", "Force Confirm?", "Should you need to confirm the edit first?")), @@ -254,6 +256,7 @@ export default class AutoTaggingButtons extends Component { optionsOrTitle: "Auto Tag Edits Settings", then: (e: FormData) => { if (this.handleResetSettingsDialogElement(e)) return; + if (!this.handleEnabledElement(e)) return; this.Settings.doShow = e.get(`${this.settingsIdPrefix}doShow`) === "true"; this.Settings.forceConfirm = e.get(`${this.settingsIdPrefix}forceConfirm`) === "true"; this.Settings.testMode = e.get(`${this.settingsIdPrefix}testMode`) === "true"; diff --git a/src/js/components/DMailBuilder.ts b/src/js/components/DMailBuilder.ts index 09335f6..799415c 100644 --- a/src/js/components/DMailBuilder.ts +++ b/src/js/components/DMailBuilder.ts @@ -168,6 +168,8 @@ export default class DMailBuilder extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements: [ + $(this.enabledElement), + $(`
`), $(html`
Text insertion mode @@ -177,6 +179,7 @@ export default class DMailBuilder extends Component { ], optionsOrTitle: this.settingsButtonLabel, then: (e: FormData) => { + if (!this.handleEnabledElement(e)) return; const v = e.get("setting-insertMode"); if (v && (v === "insert" || v === "replace")) this.Settings.insertMode = v; }, diff --git a/src/js/components/DMailToStaffNote.ts b/src/js/components/DMailToStaffNote.ts index 5d2800a..9deb4d0 100644 --- a/src/js/components/DMailToStaffNote.ts +++ b/src/js/components/DMailToStaffNote.ts @@ -47,6 +47,8 @@ export default class DMailToStaffNote extends Component { private revealSettingsDialog(): boolean { DialogForm.getRequestedInput( [ + $(this.enabledElement), + $(`
`), $(''), $(``).text(this.Settings.header), $('
'), @@ -55,6 +57,7 @@ export default class DMailToStaffNote extends Component { ], "Settings", (e: FormData) => { + if (!this.handleEnabledElement(e)) return; this.Settings.header = e.get("setting-header")?.toString() ?? ""; this.Settings.footer = e.get("setting-footer")?.toString() ?? ""; // TODO: Update text boxes diff --git a/src/js/components/FilterOldFeedbacks.ts b/src/js/components/FilterOldFeedbacks.ts index 275d476..bb68479 100644 --- a/src/js/components/FilterOldFeedbacks.ts +++ b/src/js/components/FilterOldFeedbacks.ts @@ -75,7 +75,7 @@ export default class FilterOldFeedbacks extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements:[ - $(``), + $(this.enabledElement), $(`
`), $(this.simpleSettingsCheckbox("fullHide", "Fully hide the rows?", "This won't leave any indicator they're hidden; be careful.")), $(`
`), @@ -90,8 +90,7 @@ export default class FilterOldFeedbacks extends Component { ], optionsOrTitle: "Filter Old Feedbacks Settings", then: (e: FormData) => { - if (e.get("setting-enabled") !== "true" && confirm("Are you sure you want to disable the copy button? There is no UI to undo this.")) { - this.Settings.enabled = false; + if (!this.handleEnabledElement(e)) { this.all.forEach(e => e.classList.remove("hiddenForAge")); return; } diff --git a/src/js/components/ForumBuilder.ts b/src/js/components/ForumBuilder.ts index dd50411..9a2107f 100644 --- a/src/js/components/ForumBuilder.ts +++ b/src/js/components/ForumBuilder.ts @@ -52,6 +52,8 @@ export default class ForumBuilder extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements: [ + $(this.enabledElement), + $(`
`), $(html`
Text insertion mode @@ -61,6 +63,7 @@ export default class ForumBuilder extends Component { ], optionsOrTitle: this.settingsButtonLabel, then: (e: FormData) => { + if (!this.handleEnabledElement(e)) return; const v = e.get("setting-insertMode"); if (v && (v === "insert" || v === "replace")) this.Settings.insertMode = v; }, diff --git a/src/js/components/ReportContentData.ts b/src/js/components/ReportContentData.ts index ab1d7af..ca05a90 100644 --- a/src/js/components/ReportContentData.ts +++ b/src/js/components/ReportContentData.ts @@ -116,10 +116,15 @@ export default class ReportContentData extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements: [ + $(this.enabledElement), + $(`
`), $(`
`), ], - optionsOrTitle: "Mod Tools Settings", - then: (e: FormData) => this.Settings.loadMessage = e.get("setting-loadMessage") === "true", + optionsOrTitle: "Reported Message", + then: (e: FormData) => { + if (!this.handleEnabledElement(e)) return; + this.Settings.loadMessage = e.get("setting-loadMessage") === "true"; + }, }; } diff --git a/src/js/components/RipStaffNotes.ts b/src/js/components/RipStaffNotes.ts index 7d34d31..11aae9e 100644 --- a/src/js/components/RipStaffNotes.ts +++ b/src/js/components/RipStaffNotes.ts @@ -95,16 +95,18 @@ export default class RipStaffNotes extends Component { undefined, { placeholder: `Valid template parameters: ${StaffNote.extendedJsonKeys.join(", ")}` }, )), - // $(``).text(this.Settings.staffNoteTemplate), $("
"), $(this.simpleSettingsCheckbox("reverseOrder")), $("
"), + $(this.enabledElement), + $("
"), $(this.resetSettingsDialogElement), $("
"), ], optionsOrTitle: "Rip Staff Notes", then: (e: FormData) => { if (this.handleResetSettingsDialogElement(e)) return; + if (!this.handleEnabledElement(e)) return; this.Settings.reverseOrder = e.get(`${this.settingsIdPrefix}reverseOrder`) === "true"; }, }; diff --git a/src/js/components/TicketReasons.ts b/src/js/components/TicketReasons.ts index dd73343..6195f9c 100644 --- a/src/js/components/TicketReasons.ts +++ b/src/js/components/TicketReasons.ts @@ -121,6 +121,8 @@ export default class TicketReasons extends Component { private initSettingsMenu() { this.settingsMenuDialogParameters = { elements: [ + $(this.enabledElement), + $(`
`), $(html`
Text insertion mode @@ -130,6 +132,7 @@ export default class TicketReasons extends Component { ], optionsOrTitle: this.settingsButtonLabel, then: (e: FormData) => { + if (!this.handleEnabledElement(e)) return; const v = e.get("setting-insertMode"); if (v && (v === "insert" || v === "replace")) this.Settings.insertMode = v; },