@@ -384,8 +384,8 @@ export default function Explore() {
<>
Frigate is downloading the necessary embeddings models to
- support semantic searching. This may take several minutes
- depending on the speed of your network connection.
+ support the Semantic Search feature. This may take several
+ minutes depending on the speed of your network connection.
diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx
index b4931b57f..92d992f8a 100644
--- a/web/src/pages/Settings.tsx
+++ b/web/src/pages/Settings.tsx
@@ -40,7 +40,7 @@ import UiSettingsView from "@/views/settings/UiSettingsView";
const allSettingsViews = [
"UI settings",
- "search settings",
+ "explore settings",
"camera settings",
"masks / zones",
"motion tuner",
@@ -175,7 +175,7 @@ export default function Settings() {
{page == "UI settings" &&
}
- {page == "search settings" && (
+ {page == "explore settings" && (
)}
{page == "debug" && (
diff --git a/web/src/types/frigateConfig.ts b/web/src/types/frigateConfig.ts
index 5c5971fc0..8ed3119dc 100644
--- a/web/src/types/frigateConfig.ts
+++ b/web/src/types/frigateConfig.ts
@@ -142,6 +142,7 @@ export interface CameraConfig {
password: string | null;
port: number;
user: string | null;
+ tls_insecure: boolean;
};
record: {
enabled: boolean;
diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx
index a3bbeea06..af3ed0cee 100644
--- a/web/src/views/live/LiveCameraView.tsx
+++ b/web/src/views/live/LiveCameraView.tsx
@@ -17,7 +17,12 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
-import { TooltipProvider } from "@/components/ui/tooltip";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
import { useResizeObserver } from "@/hooks/resize-observer";
import useKeyboardListener from "@/hooks/use-keyboard-listener";
import { CameraConfig, FrigateConfig } from "@/types/frigateConfig";
@@ -29,6 +34,7 @@ import {
import { CameraPtzInfo } from "@/types/ptz";
import { RecordingStartingPoint } from "@/types/record";
import React, {
+ ReactNode,
useCallback,
useEffect,
useMemo,
@@ -518,6 +524,53 @@ export default function LiveCameraView({
);
}
+type TooltipButtonProps = {
+ label: string;
+ onClick?: () => void;
+ onMouseDown?: (e: React.MouseEvent) => void;
+ onMouseUp?: (e: React.MouseEvent) => void;
+ onTouchStart?: (e: React.TouchEvent) => void;
+ onTouchEnd?: (e: React.TouchEvent) => void;
+ children: ReactNode;
+ className?: string;
+};
+
+function TooltipButton({
+ label,
+ onClick,
+ onMouseDown,
+ onMouseUp,
+ onTouchStart,
+ onTouchEnd,
+ children,
+ className,
+ ...props
+}: TooltipButtonProps) {
+ return (
+
+
+
+
+
+
+ {label}
+
+
+
+ );
+}
+
function PtzControlPanel({
camera,
clickOverlay,
@@ -611,8 +664,8 @@ function PtzControlPanel({
>
{ptz?.features?.includes("pt") && (
<>
-
-
-
-
+
>
)}
{ptz?.features?.includes("zoom") && (
<>
-
-
+
>
)}
+
{ptz?.features?.includes("pt-r-fov") && (
- <>
-
- >
+
+
+
+
+
+
+ {clickOverlay ? "Disable" : "Enable"} click to move
+
+
+
)}
{(ptz?.presets?.length ?? 0) > 0 && (
-
-
-
-
- e.preventDefault()}
- >
- {ptz?.presets.map((preset) => {
- return (
- sendPtz(`preset_${preset}`)}
+
+
+
+
+
+
+
+ e.preventDefault()}
>
- {preset}
-
- );
- })}
-
-
+ {ptz?.presets.map((preset) => (
+
sendPtz(`preset_${preset}`)}
+ >
+ {preset}
+
+ ))}
+
+
+
+
+ PTZ camera presets
+
+
+
)}
);
diff --git a/web/src/views/settings/SearchSettingsView.tsx b/web/src/views/settings/SearchSettingsView.tsx
index af0bfcff5..027f55070 100644
--- a/web/src/views/settings/SearchSettingsView.tsx
+++ b/web/src/views/settings/SearchSettingsView.tsx
@@ -91,7 +91,7 @@ export default function SearchSettingsView({
)
.then((res) => {
if (res.status === 200) {
- toast.success("Search settings have been saved.", {
+ toast.success("Explore settings have been saved.", {
position: "top-center",
});
setChangedValue(false);
@@ -128,7 +128,7 @@ export default function SearchSettingsView({
if (changedValue) {
addMessage(
"search_settings",
- `Unsaved search settings changes`,
+ `Unsaved Explore settings changes`,
undefined,
"search_settings",
);
@@ -140,7 +140,7 @@ export default function SearchSettingsView({
}, [changedValue]);
useEffect(() => {
- document.title = "Search Settings - Frigate";
+ document.title = "Explore Settings - Frigate";
}, []);
if (!config) {
@@ -152,7 +152,7 @@ export default function SearchSettingsView({
- Search Settings
+ Explore Settings
@@ -221,7 +221,7 @@ export default function SearchSettingsView({
Model Size
- The size of the model used for semantic search embeddings.
+ The size of the model used for Semantic Search embeddings.