mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	Add ability to view tracked objects in Explore from review item details pane (#14744)
This commit is contained in:
		
							parent
							
								
									591b50dfa7
								
							
						
					
					
						commit
						7d3313e732
					
				@ -28,6 +28,7 @@ class EventsQueryParams(BaseModel):
 | 
				
			|||||||
    is_submitted: Optional[int] = None
 | 
					    is_submitted: Optional[int] = None
 | 
				
			||||||
    min_length: Optional[float] = None
 | 
					    min_length: Optional[float] = None
 | 
				
			||||||
    max_length: Optional[float] = None
 | 
					    max_length: Optional[float] = None
 | 
				
			||||||
 | 
					    event_id: Optional[str] = None
 | 
				
			||||||
    sort: Optional[str] = None
 | 
					    sort: Optional[str] = None
 | 
				
			||||||
    timezone: Optional[str] = "utc"
 | 
					    timezone: Optional[str] = "utc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -88,6 +88,7 @@ def events(params: EventsQueryParams = Depends()):
 | 
				
			|||||||
    is_submitted = params.is_submitted
 | 
					    is_submitted = params.is_submitted
 | 
				
			||||||
    min_length = params.min_length
 | 
					    min_length = params.min_length
 | 
				
			||||||
    max_length = params.max_length
 | 
					    max_length = params.max_length
 | 
				
			||||||
 | 
					    event_id = params.event_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sort = params.sort
 | 
					    sort = params.sort
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -230,6 +231,9 @@ def events(params: EventsQueryParams = Depends()):
 | 
				
			|||||||
        elif is_submitted > 0:
 | 
					        elif is_submitted > 0:
 | 
				
			||||||
            clauses.append((Event.plus_id != ""))
 | 
					            clauses.append((Event.plus_id != ""))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if event_id is not None:
 | 
				
			||||||
 | 
					        clauses.append((Event.id == event_id))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if len(clauses) == 0:
 | 
					    if len(clauses) == 0:
 | 
				
			||||||
        clauses.append((True))
 | 
					        clauses.append((True))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -40,6 +40,7 @@ import {
 | 
				
			|||||||
import { useOverlayState } from "@/hooks/use-overlay-state";
 | 
					import { useOverlayState } from "@/hooks/use-overlay-state";
 | 
				
			||||||
import { DownloadVideoButton } from "@/components/button/DownloadVideoButton";
 | 
					import { DownloadVideoButton } from "@/components/button/DownloadVideoButton";
 | 
				
			||||||
import { TooltipPortal } from "@radix-ui/react-tooltip";
 | 
					import { TooltipPortal } from "@radix-ui/react-tooltip";
 | 
				
			||||||
 | 
					import { LuSearch } from "react-icons/lu";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type ReviewDetailDialogProps = {
 | 
					type ReviewDetailDialogProps = {
 | 
				
			||||||
  review?: ReviewSegment;
 | 
					  review?: ReviewSegment;
 | 
				
			||||||
@ -53,6 +54,8 @@ export default function ReviewDetailDialog({
 | 
				
			|||||||
    revalidateOnFocus: false,
 | 
					    revalidateOnFocus: false,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const navigate = useNavigate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // upload
 | 
					  // upload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const [upload, setUpload] = useState<Event>();
 | 
					  const [upload, setUpload] = useState<Event>();
 | 
				
			||||||
@ -219,6 +222,21 @@ export default function ReviewDetailDialog({
 | 
				
			|||||||
                            )}
 | 
					                            )}
 | 
				
			||||||
                            {event.sub_label ?? event.label} (
 | 
					                            {event.sub_label ?? event.label} (
 | 
				
			||||||
                            {Math.round(event.data.top_score * 100)}%)
 | 
					                            {Math.round(event.data.top_score * 100)}%)
 | 
				
			||||||
 | 
					                            <Tooltip>
 | 
				
			||||||
 | 
					                              <TooltipTrigger>
 | 
				
			||||||
 | 
					                                <div
 | 
				
			||||||
 | 
					                                  className="cursor-pointer"
 | 
				
			||||||
 | 
					                                  onClick={() => {
 | 
				
			||||||
 | 
					                                    navigate(`/explore?event_id=${event.id}`);
 | 
				
			||||||
 | 
					                                  }}
 | 
				
			||||||
 | 
					                                >
 | 
				
			||||||
 | 
					                                  <LuSearch className="size-4 text-muted-foreground" />
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                              </TooltipTrigger>
 | 
				
			||||||
 | 
					                              <TooltipPortal>
 | 
				
			||||||
 | 
					                                <TooltipContent>View in Explore</TooltipContent>
 | 
				
			||||||
 | 
					                              </TooltipPortal>
 | 
				
			||||||
 | 
					                            </Tooltip>
 | 
				
			||||||
                          </div>
 | 
					                          </div>
 | 
				
			||||||
                        );
 | 
					                        );
 | 
				
			||||||
                      })}
 | 
					                      })}
 | 
				
			||||||
 | 
				
			|||||||
@ -114,6 +114,7 @@ export default function Explore() {
 | 
				
			|||||||
          max_score: searchSearchParams["max_score"],
 | 
					          max_score: searchSearchParams["max_score"],
 | 
				
			||||||
          has_snapshot: searchSearchParams["has_snapshot"],
 | 
					          has_snapshot: searchSearchParams["has_snapshot"],
 | 
				
			||||||
          has_clip: searchSearchParams["has_clip"],
 | 
					          has_clip: searchSearchParams["has_clip"],
 | 
				
			||||||
 | 
					          event_id: searchSearchParams["event_id"],
 | 
				
			||||||
          limit:
 | 
					          limit:
 | 
				
			||||||
            Object.keys(searchSearchParams).length == 0 ? API_LIMIT : undefined,
 | 
					            Object.keys(searchSearchParams).length == 0 ? API_LIMIT : undefined,
 | 
				
			||||||
          timezone,
 | 
					          timezone,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user