@@ -34,6 +34,8 @@ import { TimeRangeFilterModel } from '../../../components/Filters/RunsFilter/Tim
3434import { magnetsCurrentLevelsProvider } from '../../../services/magnets/magnetsCurrentLevelsProvider.js' ;
3535import { RawTextFilterModel } from '../../../components/Filters/common/filters/RawTextFilterModel.js' ;
3636import { RunDefinitionFilterModel } from '../../../components/Filters/RunsFilter/RunDefinitionFilterModel.js' ;
37+ import { RUN_QUALITIES } from '../../../domain/enums/RunQualities.js' ;
38+ import { SelectionFilterModel } from '../../../components/Filters/common/filters/SelectionFilterModel.js' ;
3739
3840/**
3941 * Model representing handlers for runs page
@@ -67,6 +69,12 @@ export class RunsOverviewModel extends OverviewPageModel {
6769 runDuration : new NumericalComparisonFilterModel ( { scale : 60 * 1000 } ) ,
6870 environmentIds : new RawTextFilterModel ( ) ,
6971 runTypes : new RunTypesFilterModel ( runTypesProvider . items$ ) ,
72+ runQualities : new SelectionFilterModel ( {
73+ availableOptions : RUN_QUALITIES . map ( ( quality ) => ( {
74+ label : quality . toUpperCase ( ) ,
75+ value : quality ,
76+ } ) ) ,
77+ } ) ,
7078 eorReason : new EorReasonFilterModel ( eorReasonTypeProvider . items$ ) ,
7179 magnets : new MagnetsFilteringModel ( magnetsCurrentLevelsProvider . items$ ) ,
7280 muInelasticInteractionRate : new NumericalComparisonFilterModel ( { useOperatorAsNormalizationKey : true } ) ,
@@ -173,8 +181,6 @@ export class RunsOverviewModel extends OverviewPageModel {
173181 resetFiltering ( fetch = true ) {
174182 this . _filteringModel . reset ( ) ;
175183
176- this . runQualitiesFilters = [ ] ;
177-
178184 this . _triggerValuesFilters = new Set ( ) ;
179185
180186 this . nDetectorsFilter = null ;
@@ -202,7 +208,6 @@ export class RunsOverviewModel extends OverviewPageModel {
202208 */
203209 isAnyFilterActive ( ) {
204210 return this . _filteringModel . isAnyFilterActive ( )
205- || this . runQualitiesFilters . length !== 0
206211 || this . _triggerValuesFilters . size !== 0
207212 || this . nDetectorsFilter !== null
208213 || this . _nEpnsFilter !== null
@@ -245,41 +250,6 @@ export class RunsOverviewModel extends OverviewPageModel {
245250 this . notify ( ) ;
246251 }
247252
248- /**
249- * States if the given run quality is currently in the run quality filter
250- *
251- * @param {string } runQuality the run quality to look for
252- * @return {boolean } true if the run quality is included in the filter
253- */
254- isRunQualityInFilter ( runQuality ) {
255- return this . runQualitiesFilters . includes ( runQuality ) ;
256- }
257-
258- /**
259- * Add a given run quality in the current run quality filter if it is not already present, then refresh runs list
260- *
261- * @param {string } runQuality the run quality to add
262- * @return {void }
263- */
264- addRunQualityFilter ( runQuality ) {
265- if ( ! this . isRunQualityInFilter ( runQuality ) ) {
266- this . runQualitiesFilters . push ( runQuality ) ;
267- this . _applyFilters ( ) ;
268- }
269- }
270-
271- /**
272- * Remove a given run quality from the current run quality filter if it is in it (else do nothing) then refresh
273- * runs list
274- *
275- * @param {string } runQuality the run quality to add
276- * @return {void }
277- */
278- removeRunQualityFilter ( runQuality ) {
279- this . runQualitiesFilters = this . runQualitiesFilters . filter ( ( existingRunQuality ) => runQuality !== existingRunQuality ) ;
280- this . _applyFilters ( ) ;
281- }
282-
283253 /**
284254 * Getter for the trigger values filter Set
285255 * @return {Set } set of trigger filter values
@@ -494,9 +464,6 @@ export class RunsOverviewModel extends OverviewPageModel {
494464 */
495465 _getFilterQueryParams ( ) {
496466 return {
497- ...this . runQualitiesFilters . length !== 0 && {
498- 'filter[runQualities]' : this . runQualitiesFilters . join ( ) ,
499- } ,
500467 ...this . _triggerValuesFilters . size !== 0 && {
501468 'filter[triggerValues]' : Array . from ( this . _triggerValuesFilters ) . join ( ) ,
502469 } ,
0 commit comments