feat: Add cameras[].media.severities to filter review media by severity
Review queries were issued without a severity filter, so the thumbnail
bar, gallery and timeline showed every Frigate review item -- alerts and
detections alike -- regardless of what a camera is configured to alert
on. Severity could only be narrowed interactively, in the media filter
drawer, and that choice did not persist.
`media.severities` resolves into the default query the same way
`media.reviewed` does, and is overridden by an explicit severity filter
so the media filter drawer keeps working. Unset means all severities, so
existing behaviour is unchanged.
cameras:
- camera_entity: camera.office
media:
severities:
- high
This commit is contained in:
@@ -6,6 +6,7 @@ import type { UnifiedQuery } from '../../../src/view/unified-query';
|
||||
import {
|
||||
getReviewedQueryFilterFromConfig,
|
||||
getReviewedQueryFilterFromQuery,
|
||||
getSeverityQueryFilterFromConfig,
|
||||
} from '../../../src/view/utils/query-filter';
|
||||
import { createFolder } from '../../test-utils';
|
||||
import { createEventQuery, TestViewMedia } from '../test-utils';
|
||||
@@ -81,4 +82,21 @@ describe('query-filter', () => {
|
||||
expect(getReviewedQueryFilterFromConfig('unreviewed')).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getSeverityQueryFilterFromConfig', () => {
|
||||
it('should return undefined when unset', () => {
|
||||
expect(getSeverityQueryFilterFromConfig(undefined)).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should return undefined when empty', () => {
|
||||
expect(getSeverityQueryFilterFromConfig([])).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should return a set of the configured severities', () => {
|
||||
expect(getSeverityQueryFilterFromConfig(['high'])).toEqual(new Set(['high']));
|
||||
expect(getSeverityQueryFilterFromConfig(['high', 'medium'])).toEqual(
|
||||
new Set(['high', 'medium']),
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user