feat: richer Webhooks tab — create, toggle, delete subscriptions (#454)

* feat: richer Webhooks tab — create, toggle, delete subscriptions

Adds full webhook subscription management matching the dashboard UI:
- Create subscription dialog (name, description, events, deliver, secret)
- Per-subscription enable/disable toggle via PUT endpoint
- Delete with confirmation dialog
- Enhanced subscription cards: description, event chips, delivery badge,
  secret indicator, URL display
- Search filtering across name, description, and events
- Updated Webhook.kt model with full API shape
- New HermesApiService endpoints for CRUD operations

Closes #447

* fix: remove double top padding on webhooks screen LazyColumn

* fix: use string resources in webhooks screen (sweep hardcoded strings)

* fix: resolve unresolved merge conflict in AchievementsScreen

Leftover <<<<<<< markers from a main merge broke compilation on the
webhooks-full-parity branch, cascading through ktlint/lint/tests.

---------

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-07-03 00:52:49 +03:00
1 parent f887146056
commit d875c8a040
6 files changed
+660 -161

No files matched your search

+19
View File
@@ -300,8 +300,27 @@
<string name="webhooks_sec_status">Global Webhooks Status</string>
<string name="webhooks_sec_subscriptions">Subscriptions</string>
<string name="webhooks_empty_desc">No webhook subscriptions configured.</string>
<string name="webhooks_search_placeholder">Search subscriptions…</string>
<string name="webhooks_label_target">Target URL:</string>
<string name="webhooks_label_events">Events Subscribed:</string>
<string name="webhooks_action_add">Add subscription</string>
<string name="webhooks_action_create">Create</string>
<string name="webhooks_action_delete">Delete</string>
<string name="webhooks_dialog_create_title">Create Subscription</string>
<string name="webhooks_dialog_delete_title">Delete Subscription</string>
<string name="webhooks_dialog_delete_message">Are you sure you want to delete \"%1$s\"? This action cannot be undone. All events sent to this URL will be rejected.</string>
<string name="webhooks_field_name">Name *</string>
<string name="webhooks_field_description">Description</string>
<string name="webhooks_field_events">Events</string>
<string name="webhooks_field_deliver">Deliver To</string>
<string name="webhooks_field_secret">Secret</string>
<string name="webhooks_hint_name">e.g. github-push</string>
<string name="webhooks_hint_events">comma separated (e.g. push, pull_request)</string>
<string name="webhooks_hint_deliver">log, telegram, discord, origin, all…</string>
<string name="webhooks_hint_secret">auto-generated if empty</string>
<string name="webhooks_error_name_required">Name is required</string>
<string name="webhooks_no_matching">No matching subscriptions</string>
<string name="webhooks_no_matching_desc">Try adjusting your search.</string>
<!-- Pairing Screen -->
<string name="pairing_screen_title">Device Pairing</string>