mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-05 22:57:40 +03:00
Mark items as reviewed as a group with keyboard
This commit is contained in:
parent
334245bd3c
commit
32451b8c45
@ -409,8 +409,11 @@ export default function Events() {
|
|||||||
|
|
||||||
// review status
|
// review status
|
||||||
|
|
||||||
const markAllItemsAsReviewed = useCallback(
|
const markItemsAsReviewed = useCallback(
|
||||||
async (currentItems: ReviewSegment[]) => {
|
async (
|
||||||
|
currentItems: ReviewSegment[],
|
||||||
|
itemsToMarkReviewed: ReviewSegment[] | undefined = undefined,
|
||||||
|
) => {
|
||||||
if (currentItems.length == 0) {
|
if (currentItems.length == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -435,13 +438,14 @@ export default function Events() {
|
|||||||
{ revalidate: false, populateCache: true },
|
{ revalidate: false, populateCache: true },
|
||||||
);
|
);
|
||||||
|
|
||||||
const itemsToMarkReviewed = currentItems
|
const reviewList =
|
||||||
?.filter((seg) => seg.end_time)
|
itemsToMarkReviewed?.map((seg) => seg.id) ||
|
||||||
?.map((seg) => seg.id);
|
currentItems?.filter((seg) => seg.end_time)?.map((seg) => seg.id) ||
|
||||||
|
[];
|
||||||
|
|
||||||
if (itemsToMarkReviewed.length > 0) {
|
if (reviewList.length > 0) {
|
||||||
await axios.post(`reviews/viewed`, {
|
await axios.post(`reviews/viewed`, {
|
||||||
ids: itemsToMarkReviewed,
|
ids: reviewList,
|
||||||
reviewed: true,
|
reviewed: true,
|
||||||
});
|
});
|
||||||
reloadData();
|
reloadData();
|
||||||
@ -611,7 +615,7 @@ export default function Events() {
|
|||||||
setShowReviewed={setShowReviewed}
|
setShowReviewed={setShowReviewed}
|
||||||
setSeverity={setSeverity}
|
setSeverity={setSeverity}
|
||||||
markItemAsReviewed={markItemAsReviewed}
|
markItemAsReviewed={markItemAsReviewed}
|
||||||
markAllItemsAsReviewed={markAllItemsAsReviewed}
|
markItemsAsReviewed={markItemsAsReviewed}
|
||||||
onOpenRecording={setRecording}
|
onOpenRecording={setRecording}
|
||||||
motionPreviewsCamera={motionPreviewsCamera ?? null}
|
motionPreviewsCamera={motionPreviewsCamera ?? null}
|
||||||
setMotionPreviewsCamera={(camera) =>
|
setMotionPreviewsCamera={(camera) =>
|
||||||
|
|||||||
@ -110,7 +110,10 @@ type EventViewProps = {
|
|||||||
setShowReviewed: (show: boolean) => void;
|
setShowReviewed: (show: boolean) => void;
|
||||||
setSeverity: (severity: ReviewSeverity) => void;
|
setSeverity: (severity: ReviewSeverity) => void;
|
||||||
markItemAsReviewed: (review: ReviewSegment) => void;
|
markItemAsReviewed: (review: ReviewSegment) => void;
|
||||||
markAllItemsAsReviewed: (currentItems: ReviewSegment[]) => void;
|
markItemsAsReviewed: (
|
||||||
|
currentItems: ReviewSegment[],
|
||||||
|
itemsToMarkReviewed?: ReviewSegment[] | undefined,
|
||||||
|
) => void;
|
||||||
onOpenRecording: (recordingInfo: RecordingStartingPoint) => void;
|
onOpenRecording: (recordingInfo: RecordingStartingPoint) => void;
|
||||||
motionPreviewsCamera: string | null;
|
motionPreviewsCamera: string | null;
|
||||||
setMotionPreviewsCamera: (camera: string | null) => void;
|
setMotionPreviewsCamera: (camera: string | null) => void;
|
||||||
@ -132,7 +135,7 @@ export default function EventView({
|
|||||||
setShowReviewed,
|
setShowReviewed,
|
||||||
setSeverity,
|
setSeverity,
|
||||||
markItemAsReviewed,
|
markItemAsReviewed,
|
||||||
markAllItemsAsReviewed,
|
markItemsAsReviewed,
|
||||||
onOpenRecording,
|
onOpenRecording,
|
||||||
motionPreviewsCamera,
|
motionPreviewsCamera,
|
||||||
setMotionPreviewsCamera,
|
setMotionPreviewsCamera,
|
||||||
@ -498,7 +501,7 @@ export default function EventView({
|
|||||||
loading={severity != severityToggle}
|
loading={severity != severityToggle}
|
||||||
emptyCardData={emptyCardData}
|
emptyCardData={emptyCardData}
|
||||||
markItemAsReviewed={markItemAsReviewed}
|
markItemAsReviewed={markItemAsReviewed}
|
||||||
markAllItemsAsReviewed={markAllItemsAsReviewed}
|
markItemsAsReviewed={markItemsAsReviewed}
|
||||||
onSelectReview={onSelectReview}
|
onSelectReview={onSelectReview}
|
||||||
onSelectAllReviews={onSelectAllReviews}
|
onSelectAllReviews={onSelectAllReviews}
|
||||||
setSelectedReviews={setSelectedReviews}
|
setSelectedReviews={setSelectedReviews}
|
||||||
@ -549,7 +552,10 @@ type DetectionReviewProps = {
|
|||||||
loading: boolean;
|
loading: boolean;
|
||||||
emptyCardData: EmptyCardData;
|
emptyCardData: EmptyCardData;
|
||||||
markItemAsReviewed: (review: ReviewSegment) => void;
|
markItemAsReviewed: (review: ReviewSegment) => void;
|
||||||
markAllItemsAsReviewed: (currentItems: ReviewSegment[]) => void;
|
markItemsAsReviewed: (
|
||||||
|
currentItems: ReviewSegment[],
|
||||||
|
itemsToMarkReviewed?: ReviewSegment[] | undefined,
|
||||||
|
) => void;
|
||||||
onSelectReview: (
|
onSelectReview: (
|
||||||
review: ReviewSegment,
|
review: ReviewSegment,
|
||||||
ctrl: boolean,
|
ctrl: boolean,
|
||||||
@ -573,7 +579,7 @@ function DetectionReview({
|
|||||||
loading,
|
loading,
|
||||||
emptyCardData,
|
emptyCardData,
|
||||||
markItemAsReviewed,
|
markItemAsReviewed,
|
||||||
markAllItemsAsReviewed,
|
markItemsAsReviewed,
|
||||||
onSelectReview,
|
onSelectReview,
|
||||||
onSelectAllReviews,
|
onSelectAllReviews,
|
||||||
setSelectedReviews,
|
setSelectedReviews,
|
||||||
@ -788,12 +794,7 @@ function DetectionReview({
|
|||||||
break;
|
break;
|
||||||
case "r":
|
case "r":
|
||||||
if (selectedReviews.length > 0 && !modifiers.repeat) {
|
if (selectedReviews.length > 0 && !modifiers.repeat) {
|
||||||
currentItems?.forEach((item) => {
|
markItemsAsReviewed(currentItems || [], selectedReviews);
|
||||||
if (selectedReviews.some((r) => r.id === item.id)) {
|
|
||||||
item.has_been_reviewed = true;
|
|
||||||
markItemAsReviewed(item);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
setSelectedReviews([]);
|
setSelectedReviews([]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -903,7 +904,7 @@ function DetectionReview({
|
|||||||
variant="select"
|
variant="select"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSelectedReviews([]);
|
setSelectedReviews([]);
|
||||||
markAllItemsAsReviewed(currentItems ?? []);
|
markItemsAsReviewed(currentItems ?? []);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t("markTheseItemsAsReviewed")}
|
{t("markTheseItemsAsReviewed")}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user