diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index ea69d45fa2003..5fe9aac5fe974 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -2382,6 +2382,8 @@ settings.event_desc = Trigger On:
settings.event_push_only = Push Events
settings.event_send_everything = All Events
settings.event_choose = Custom Events…
+settings.event_button_select_all = Select All
+settings.event_button_deselect_all = Deselect All
settings.event_header_repository = Repository Events
settings.event_create = Create
settings.event_create_desc = Branch or tag created.
diff --git a/templates/repo/settings/webhook/settings.tmpl b/templates/repo/settings/webhook/settings.tmpl
index 1f71b9cfab7c4..1b3e51744531d 100644
--- a/templates/repo/settings/webhook/settings.tmpl
+++ b/templates/repo/settings/webhook/settings.tmpl
@@ -81,6 +81,16 @@
+
+
+
+
+
+
diff --git a/web_src/js/features/comp/WebHookEditor.ts b/web_src/js/features/comp/WebHookEditor.ts
index 794b3c99ca7d7..2b1f1f80e7693 100644
--- a/web_src/js/features/comp/WebHookEditor.ts
+++ b/web_src/js/features/comp/WebHookEditor.ts
@@ -22,6 +22,19 @@ export function initCompWebHookEditor() {
});
}
+ const section = document.querySelector('.events.fields.ui.grid');
+ if (section) {
+ const checkboxes = section.querySelectorAll
('input[type="checkbox"]');
+
+ document.querySelector('#event-select-all')?.addEventListener('click', () => {
+ for (const i of checkboxes) { i.checked = true }
+ });
+
+ document.querySelector('#event-deselect-all')?.addEventListener('click', () => {
+ for (const i of checkboxes) { i.checked = false }
+ });
+ }
+
// some webhooks (like Gitea) allow to set the request method (GET/POST), and it would toggle the "Content Type" field
const httpMethodInput = document.querySelector('#http_method');
if (httpMethodInput) {