mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-18 06:08:22 +03:00
frontend for enabled_in_config
This commit is contained in:
parent
366365e59f
commit
e8d227eb0a
@ -289,6 +289,10 @@ export default function PolygonItem({
|
|||||||
const handleToggleEnabled = useCallback(
|
const handleToggleEnabled = useCallback(
|
||||||
(e: React.MouseEvent) => {
|
(e: React.MouseEvent) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
// Prevent toggling if disabled in config
|
||||||
|
if (polygon.enabled_in_config === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!polygon) {
|
if (!polygon) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -354,7 +358,7 @@ export default function PolygonItem({
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleToggleEnabled}
|
onClick={handleToggleEnabled}
|
||||||
disabled={isLoading}
|
disabled={isLoading || polygon.enabled_in_config === false}
|
||||||
className="mr-2 cursor-pointer border-none bg-transparent p-0 transition-opacity hover:opacity-70 disabled:cursor-not-allowed disabled:opacity-50"
|
className="mr-2 cursor-pointer border-none bg-transparent p-0 transition-opacity hover:opacity-70 disabled:cursor-not-allowed disabled:opacity-50"
|
||||||
>
|
>
|
||||||
<PolygonItemIcon
|
<PolygonItemIcon
|
||||||
@ -370,14 +374,22 @@ export default function PolygonItem({
|
|||||||
</button>
|
</button>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>
|
<TooltipContent>
|
||||||
{isPolygonEnabled
|
{polygon.enabled_in_config === false
|
||||||
? t("button.disable", { ns: "common" })
|
? t("masksAndZones.disabledInConfig", {
|
||||||
: t("button.enable", { ns: "common" })}
|
ns: "views/settings",
|
||||||
|
})
|
||||||
|
: isPolygonEnabled
|
||||||
|
? t("button.disable", { ns: "common" })
|
||||||
|
: t("button.enable", { ns: "common" })}
|
||||||
</TooltipContent>
|
</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
))}
|
))}
|
||||||
<p
|
<p
|
||||||
className={`cursor-default ${!isPolygonEnabled ? "line-through" : ""}`}
|
className={cn(
|
||||||
|
"cursor-default",
|
||||||
|
!isPolygonEnabled && "opacity-60",
|
||||||
|
polygon.enabled_in_config === false && "line-through",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
{polygon.friendly_name ?? polygon.name}
|
{polygon.friendly_name ?? polygon.name}
|
||||||
{!isPolygonEnabled && " (disabled)"}
|
{!isPolygonEnabled && " (disabled)"}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ export type Polygon = {
|
|||||||
color: number[];
|
color: number[];
|
||||||
friendly_name?: string;
|
friendly_name?: string;
|
||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
|
enabled_in_config?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ZoneFormValuesType = {
|
export type ZoneFormValuesType = {
|
||||||
|
|||||||
@ -110,6 +110,7 @@ export interface CameraConfig {
|
|||||||
[maskId: string]: {
|
[maskId: string]: {
|
||||||
friendly_name?: string;
|
friendly_name?: string;
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
|
enabled_in_config?: boolean;
|
||||||
coordinates: string;
|
coordinates: string;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -138,6 +139,7 @@ export interface CameraConfig {
|
|||||||
[maskId: string]: {
|
[maskId: string]: {
|
||||||
friendly_name?: string;
|
friendly_name?: string;
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
|
enabled_in_config?: boolean;
|
||||||
coordinates: string;
|
coordinates: string;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -153,6 +155,7 @@ export interface CameraConfig {
|
|||||||
[maskId: string]: {
|
[maskId: string]: {
|
||||||
friendly_name?: string;
|
friendly_name?: string;
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
|
enabled_in_config?: boolean;
|
||||||
coordinates: string;
|
coordinates: string;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -291,6 +294,7 @@ export interface CameraConfig {
|
|||||||
coordinates: string;
|
coordinates: string;
|
||||||
distances: string[];
|
distances: string[];
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
|
enabled_in_config?: boolean;
|
||||||
filters: Record<string, unknown>;
|
filters: Record<string, unknown>;
|
||||||
inertia: number;
|
inertia: number;
|
||||||
loitering_time: number;
|
loitering_time: number;
|
||||||
|
|||||||
@ -235,6 +235,7 @@ export default function MasksAndZonesView({
|
|||||||
name,
|
name,
|
||||||
friendly_name: zoneData.friendly_name,
|
friendly_name: zoneData.friendly_name,
|
||||||
enabled: zoneData.enabled,
|
enabled: zoneData.enabled,
|
||||||
|
enabled_in_config: zoneData.enabled_in_config,
|
||||||
objects: zoneData.objects,
|
objects: zoneData.objects,
|
||||||
points: interpolatePoints(
|
points: interpolatePoints(
|
||||||
parseCoordinates(zoneData.coordinates),
|
parseCoordinates(zoneData.coordinates),
|
||||||
@ -263,6 +264,7 @@ export default function MasksAndZonesView({
|
|||||||
name: maskId,
|
name: maskId,
|
||||||
friendly_name: maskData.friendly_name,
|
friendly_name: maskData.friendly_name,
|
||||||
enabled: maskData.enabled,
|
enabled: maskData.enabled,
|
||||||
|
enabled_in_config: maskData.enabled_in_config,
|
||||||
objects: [],
|
objects: [],
|
||||||
points: interpolatePoints(
|
points: interpolatePoints(
|
||||||
parseCoordinates(maskData.coordinates),
|
parseCoordinates(maskData.coordinates),
|
||||||
@ -286,6 +288,7 @@ export default function MasksAndZonesView({
|
|||||||
name: maskId,
|
name: maskId,
|
||||||
friendly_name: maskData.friendly_name,
|
friendly_name: maskData.friendly_name,
|
||||||
enabled: maskData.enabled,
|
enabled: maskData.enabled,
|
||||||
|
enabled_in_config: maskData.enabled_in_config,
|
||||||
objects: [],
|
objects: [],
|
||||||
points: interpolatePoints(
|
points: interpolatePoints(
|
||||||
parseCoordinates(maskData.coordinates),
|
parseCoordinates(maskData.coordinates),
|
||||||
@ -322,6 +325,7 @@ export default function MasksAndZonesView({
|
|||||||
name: maskId,
|
name: maskId,
|
||||||
friendly_name: maskData.friendly_name,
|
friendly_name: maskData.friendly_name,
|
||||||
enabled: maskData.enabled,
|
enabled: maskData.enabled,
|
||||||
|
enabled_in_config: maskData.enabled_in_config,
|
||||||
objects: [objectName],
|
objects: [objectName],
|
||||||
points: interpolatePoints(
|
points: interpolatePoints(
|
||||||
parseCoordinates(maskData.coordinates),
|
parseCoordinates(maskData.coordinates),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user