refactor: Webhooks (#12487)
Closes #12303 ### What’s Changed - Replace auto‐save with explicit Save / Cancel Webhook forms now use manual “Save” and “Cancel” buttons instead of the old debounced auto‐save/update. - Separate “New” and “Detail” routes Two dedicated paths `/settings/webhooks/new` for creation and /`settings/webhooks/:webhookId` for editing, making the UX clearer. - URL hint & normalization If a user omits the http(s):// scheme, we display a “Will be saved as https://…” hint and automatically default to HTTPS. - Centralized validation with Zod Introduced a `webhookFormSchema` for client‐side URL, operations, and secret validation. - Storybook coverage Added stories for both “New Webhook” and “Webhook Detail” - Unit tests Added tests for the new `useWebhookForm` hook
This commit is contained in:
@ -454,8 +454,8 @@ msgstr "Minden ({relationRecordsCount})"
|
||||
|
||||
#. js-lingui-id: 9ljU00
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "All Actions"
|
||||
msgstr "Minden művelet"
|
||||
#~ msgid "All Actions"
|
||||
#~ msgstr "Minden művelet"
|
||||
|
||||
#. js-lingui-id: 7EZqN0
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsRowDropdownMenu.tsx
|
||||
@ -469,8 +469,8 @@ msgstr "Minden sor"
|
||||
|
||||
#. js-lingui-id: aFE/OW
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "All Objects"
|
||||
msgstr "Összes Objektum"
|
||||
#~ msgid "All Objects"
|
||||
#~ msgstr "Összes Objektum"
|
||||
|
||||
#. js-lingui-id: Hm90t3
|
||||
#: src/modules/settings/roles/components/SettingsRolesList.tsx
|
||||
@ -513,7 +513,7 @@ msgid "An error occurred while updating password"
|
||||
msgstr "Hiba történt a jelszó frissítése közben"
|
||||
|
||||
#. js-lingui-id: mJ6m4C
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "An optional description"
|
||||
msgstr "Egy opcionális leírás"
|
||||
|
||||
@ -922,8 +922,8 @@ msgstr "Kínai — Hagyományos"
|
||||
|
||||
#. js-lingui-id: JEFFOR
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Choose an object"
|
||||
msgstr "Válasszon egy objektumot"
|
||||
#~ msgid "Choose an object"
|
||||
#~ msgstr "Válasszon egy objektumot"
|
||||
|
||||
#. js-lingui-id: Qz73jD
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
@ -1315,8 +1315,8 @@ msgstr "Hozza létre munkaterületét"
|
||||
|
||||
#. js-lingui-id: d+F6q9
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Created"
|
||||
msgstr "Létrehozva"
|
||||
#~ msgid "Created"
|
||||
#~ msgstr "Létrehozva"
|
||||
|
||||
#. js-lingui-id: R3PLzn
|
||||
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownCurrencySelect.tsx
|
||||
@ -1385,11 +1385,11 @@ msgid "Czech"
|
||||
msgstr "Cseh"
|
||||
|
||||
#. js-lingui-id: Zz6Cxn
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/modules/settings/profile/components/DeleteWorkspace.tsx
|
||||
#: src/modules/settings/profile/components/DeleteAccount.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/tabs/ObjectSettings.tsx
|
||||
msgid "Danger zone"
|
||||
msgstr "Veszélyzóna"
|
||||
@ -1526,12 +1526,13 @@ msgid "Define what will be visible to other users in your workspace"
|
||||
msgstr "Határozza meg, mi lesz látható más felhasználók számára a munkaterületén"
|
||||
|
||||
#. js-lingui-id: cnGeoo
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||||
#: src/modules/views/view-picker/components/ViewPickerOptionDropdown.tsx
|
||||
#: src/modules/views/view-picker/components/ViewPickerCreateButton.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSecuritySSORowDropdownMenu.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/action-menu/mock/action-menu-actions.mock.tsx
|
||||
#: src/modules/action-menu/mock/action-menu-actions.mock.tsx
|
||||
@ -1585,19 +1586,22 @@ msgid "Delete Records on All Objects"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: T6S2Ns
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||||
msgid "Delete this integration"
|
||||
msgstr "Az integr\\u00e1ci\\u00f3 t\\u00f6rl\\u00e9se"
|
||||
|
||||
#. js-lingui-id: KSOhjo
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Delete this webhook"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: aRG49z
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx
|
||||
msgid "Delete view"
|
||||
msgstr "Nézet törlése"
|
||||
|
||||
#. js-lingui-id: snMaH4
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Delete webhook"
|
||||
msgstr "Webhook t\\u00f6rl\\u00e9se"
|
||||
|
||||
@ -1624,8 +1628,8 @@ msgstr "Az eg\\u00e9sz munkater\\u00fclet t\\u00f6rl\\u00e9se"
|
||||
|
||||
#. js-lingui-id: vGjmyl
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Deleted"
|
||||
msgstr "Törölve"
|
||||
#~ msgid "Deleted"
|
||||
#~ msgstr "Törölve"
|
||||
|
||||
#. js-lingui-id: kcGoDz
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx
|
||||
@ -1659,10 +1663,10 @@ msgid "Descending"
|
||||
msgstr "Cs\\u00f6kken\\u0151 sorrend"
|
||||
|
||||
#. js-lingui-id: Nu4oKW
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldConfigure.tsx
|
||||
#: src/modules/settings/roles/role-permissions/settings-permissions/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Description"
|
||||
msgstr "Le\\u00edr\\u00e1s"
|
||||
|
||||
@ -1950,7 +1954,7 @@ msgid "Empty Object"
|
||||
msgstr "Üres objektum"
|
||||
|
||||
#. js-lingui-id: T3juzf
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Endpoint URL"
|
||||
msgstr "V\\u00e9gpont URL"
|
||||
|
||||
@ -2329,7 +2333,7 @@ msgid "Filter"
|
||||
msgstr "Szűrő"
|
||||
|
||||
#. js-lingui-id: cSev+j
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Filters"
|
||||
msgstr "Szűrők"
|
||||
|
||||
@ -2613,6 +2617,11 @@ msgstr "Hogyan lesz azonosítva az alkalmazásban."
|
||||
msgid "How your system is doing"
|
||||
msgstr "Hogyan teljesít a rendszer"
|
||||
|
||||
#. js-lingui-id: 0yRnXS
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "https://example.com/webhook"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mkWad2
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Hungarian"
|
||||
@ -3361,6 +3370,7 @@ msgstr "Navigálás az előző munkafolyamatra"
|
||||
|
||||
#. js-lingui-id: isRobC
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "New"
|
||||
msgstr "Új"
|
||||
|
||||
@ -3745,10 +3755,15 @@ msgstr "Megnyitva"
|
||||
msgid "Opportunities"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hY8F2i
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Optional secret used to compute the HMAC signature for webhook payloads"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: qNELak
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Optional: Define a secret string that we will include in every webhook. Use this to authenticate and verify the webhook upon receipt."
|
||||
msgstr "Opcionális: Határozzon meg egy titkos karakterláncot, amelyet minden webhooks-ba belefoglalunk. Használja ezt a webhooks hitelesítésére és ellenőrzésére átvételkor."
|
||||
#~ msgid "Optional: Define a secret string that we will include in every webhook. Use this to authenticate and verify the webhook upon receipt."
|
||||
#~ msgstr "Opcionális: Határozzon meg egy titkos karakterláncot, amelyet minden webhooks-ba belefoglalunk. Használja ezt a webhooks hitelesítésére és ellenőrzésére átvételkor."
|
||||
|
||||
#. js-lingui-id: 0zpgxV
|
||||
#: src/modules/settings/roles/components/SettingsRolesDefaultRole.tsx
|
||||
@ -3912,8 +3927,8 @@ msgstr "Játszótér"
|
||||
|
||||
#. js-lingui-id: jEw0Mr
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Please enter a valid URL"
|
||||
msgstr "Kérjük, adjon meg egy érvényes URL-t"
|
||||
#~ msgid "Please enter a valid URL"
|
||||
#~ msgstr "Kérjük, adjon meg egy érvényes URL-t"
|
||||
|
||||
#. js-lingui-id: X5x85V
|
||||
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
|
||||
@ -3925,10 +3940,15 @@ msgstr "Kérlek, keress először egy felhasználót"
|
||||
msgid "Please type \"{confirmationValue}\" to confirm you want to delete this API Key. Be aware that any script using this key will stop working."
|
||||
msgstr "Kérjük, gépelje be a(z) \"{confirmationValue}\" szöveget, hogy megerősítse, szeretné törölni ezt az API kulcsot. Tudomásul vegye, hogy minden olyan szkript, amely ezt a kulcsot használja, megáll a működésben."
|
||||
|
||||
#. js-lingui-id: GbtYRD
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Please type \"yes\" to confirm you want to delete this webhook."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mFZTXr
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Please type {confirmationText} to confirm you want to delete this webhook."
|
||||
msgstr "Kérjük, gépelje be a {confirmationText} szöveget, hogy megerősítse, szeretné törölni ezt a webhookot."
|
||||
#~ msgid "Please type {confirmationText} to confirm you want to delete this webhook."
|
||||
#~ msgstr "Kérjük, gépelje be a {confirmationText} szöveget, hogy megerősítse, szeretné törölni ezt a webhookot."
|
||||
|
||||
#. js-lingui-id: aRWD63
|
||||
#: src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldConfigure.tsx
|
||||
@ -4364,10 +4384,15 @@ msgid "Seats"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 8VEDbV
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Secret"
|
||||
msgstr "Titok"
|
||||
|
||||
#. js-lingui-id: e1v+J3
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Secret (optional)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: a3LDKx
|
||||
#: src/pages/settings/security/SettingsSecuritySSOIdentifyProvider.tsx
|
||||
#: src/pages/settings/security/SettingsSecurityApprovedAccessDomain.tsx
|
||||
@ -4502,7 +4527,7 @@ msgid "Select the default value for this boolean field"
|
||||
msgstr "Válassza ki az alapértelmezett értéket ehhez a logikai mezőhöz"
|
||||
|
||||
#. js-lingui-id: xraglu
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Select the events you wish to send to this endpoint"
|
||||
msgstr "Válassza ki, mely események szeretné elküldeni ebbe az végpontba"
|
||||
|
||||
@ -5266,8 +5291,8 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: +b7T3G
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Updated"
|
||||
msgstr "Frissítve"
|
||||
#~ msgid "Updated"
|
||||
#~ msgstr "Frissítve"
|
||||
|
||||
#. js-lingui-id: ONWvwQ
|
||||
#: src/modules/ui/input/components/ImageInput.tsx
|
||||
@ -5296,8 +5321,8 @@ msgstr "Töltse fel az XML fájlt a kapcsolati információival"
|
||||
|
||||
#. js-lingui-id: IagCbF
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "URL"
|
||||
msgstr "URL cím"
|
||||
#~ msgid "URL"
|
||||
#~ msgstr "URL cím"
|
||||
|
||||
#. js-lingui-id: 6dMpmz
|
||||
#: src/modules/action-menu/actions/record-actions/constants/WorkflowVersionsActionsConfig.tsx
|
||||
@ -5508,7 +5533,7 @@ msgid "We support your square PNGs, JPEGs and GIFs under 10MB"
|
||||
msgstr "Támogatjuk a négyzetes PNG-ket, JPEG-eket és GIF-eket 10MB alatt"
|
||||
|
||||
#. js-lingui-id: ZS7vYp
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "We will send POST requests to this endpoint for every new event"
|
||||
msgstr "Minden új eseményhez POST kéréseket küldünk erre az végpontra"
|
||||
|
||||
@ -5526,8 +5551,8 @@ msgstr "Küldünk Önnek egy linket a tartomány tulajdonjogának ellenőrzésé
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsWebhooks.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsWebhooks.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsWebhooks.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "Webhooks"
|
||||
msgstr "Webhorgok"
|
||||
|
||||
@ -5551,6 +5576,11 @@ msgstr "Mikor fog lejárni az API kulcs."
|
||||
msgid "When the key will be disabled"
|
||||
msgstr "Mikor kerül kikapcsolásra a kulcs"
|
||||
|
||||
#. js-lingui-id: RfrIUU
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#~ msgid "Will be saved as:"
|
||||
#~ msgstr ""
|
||||
|
||||
#. js-lingui-id: wvyffT
|
||||
#: src/modules/workflow/components/RecordShowPageWorkflowHeader.tsx
|
||||
#~ msgid "Workflow cannot be tested"
|
||||
@ -5576,7 +5606,6 @@ msgstr "Mikor kerül kikapcsolásra a kulcs"
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx
|
||||
#: src/pages/settings/integrations/SettingsIntegrations.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsWebhooks.tsx
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/playground/SettingsRestPlayground.tsx
|
||||
#: src/pages/settings/developers/playground/SettingsGraphQLPlayground.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
|
||||
@ -5592,6 +5621,7 @@ msgstr "Mikor kerül kikapcsolásra a kulcs"
|
||||
#: src/modules/settings/roles/role-permissions/settings-permissions/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/components/SettingsRolesContainer.tsx
|
||||
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/favorites/components/WorkspaceFavorites.tsx
|
||||
msgid "Workspace"
|
||||
msgstr "Munkaterület"
|
||||
@ -5632,8 +5662,8 @@ msgid "Wrap on record pages"
|
||||
msgstr "Becsomagolás a rekordoldalakon"
|
||||
|
||||
#. js-lingui-id: Q9pNST
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/modules/settings/roles/role-settings/components/SettingsRoleSettings.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldDescriptionForm.tsx
|
||||
msgid "Write a description"
|
||||
@ -5641,8 +5671,8 @@ msgstr "Írjon leírást"
|
||||
|
||||
#. js-lingui-id: L80fMJ
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
msgid "Write a secret"
|
||||
msgstr "Írjon titkot"
|
||||
#~ msgid "Write a secret"
|
||||
#~ msgstr "Írjon titkot"
|
||||
|
||||
#. js-lingui-id: zkWmBh
|
||||
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
|
||||
@ -5650,8 +5680,9 @@ msgid "Yearly"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 3d1wCB
|
||||
#: src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx
|
||||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
#: src/modules/settings/developers/components/SettingsDevelopersWebhookForm.tsx
|
||||
msgid "yes"
|
||||
msgstr "igen"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user