mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-11-01 19:30:33 +03:00
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* add configurable ttl for active alert notifications Notifications sent while an alert was active always used a TTL of 0, so the push service dropped them if the device wasn't reachable at that moment and users only received the notification sent when the alert ended. A new `ttl` notifications option, settable globally or per camera, lets the push service retry these notifications for that many seconds. It defaults to 0, and the settings UI warns that a non-zero value can deliver stale notifications. * make notification ttl a global advanced setting - Read `ttl` from the global notifications config and hide it on the camera form - Show it under Advanced Settings on the Notifications page - Remove extra padding that misaligned the Notifications cards with the rest of the form - Shorten the ttl warning * tweaks * use enum instead of raw seconds value
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import type { SectionConfigOverrides } from "./types";
|
|
|
|
const notifications: SectionConfigOverrides = {
|
|
base: {
|
|
sectionDocs: "/configuration/notifications",
|
|
restartRequired: [],
|
|
fieldOrder: ["enabled", "email"],
|
|
fieldGroups: {},
|
|
hiddenFields: ["enabled_in_config"],
|
|
advancedFields: ["ttl"],
|
|
fieldMessages: [
|
|
{
|
|
key: "profile-base-notifications-disabled",
|
|
field: "enabled",
|
|
messageKey: "configMessages.notifications.profileBaseDisabled",
|
|
severity: "warning",
|
|
position: "after",
|
|
condition: (ctx) =>
|
|
!!ctx.profileName &&
|
|
ctx.formData?.enabled === true &&
|
|
!Object.values(ctx.fullConfig.cameras).some(
|
|
(camera) =>
|
|
camera.enabled_in_config &&
|
|
camera.notifications.enabled_in_config,
|
|
),
|
|
},
|
|
{
|
|
key: "notifications-ttl-delay",
|
|
field: "ttl",
|
|
messageKey: "configMessages.notifications.ttlDelay",
|
|
severity: "warning",
|
|
position: "after",
|
|
condition: (ctx) => ctx.formData?.ttl === "reliable",
|
|
},
|
|
],
|
|
},
|
|
global: {
|
|
uiSchema: {
|
|
"ui:before": { render: "NotificationsSettingsExtras" },
|
|
enabled: { "ui:widget": "hidden" },
|
|
email: { "ui:widget": "hidden" },
|
|
ttl: { "ui:options": { enumI18nPrefix: "notificationTtl" } },
|
|
cooldown: { "ui:widget": "hidden" },
|
|
enabled_in_config: { "ui:widget": "hidden" },
|
|
},
|
|
},
|
|
camera: {
|
|
hiddenFields: ["enabled_in_config", "email", "ttl"],
|
|
},
|
|
};
|
|
|
|
export default notifications;
|