Skip to content

Commit b9c043c

Browse files
committed
[O2B-536] Improve runs overview run quality filter
1 parent 38e9791 commit b9c043c

5 files changed

Lines changed: 20 additions & 74 deletions

File tree

lib/public/components/Filters/RunsFilter/runQuality.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

lib/public/components/Filters/common/filters/SelectionFilterModel.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
* granted to it by virtue of its status as an Intergovernmental Organization
1111
* or submit itself to any jurisdiction.
1212
*/
13+
1314
import { FilterModel } from '../FilterModel.js';
1415
import { SelectionModel } from '../../../common/selection/SelectionModel.js';
1516

lib/public/views/Runs/ActiveColumns/runsActiveColumns.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { displayRunEorReasonsOverview } from '../format/displayRunEorReasonOverv
2020
import ddflpFilter from '../../../components/Filters/RunsFilter/ddflp.js';
2121
import dcsFilter from '../../../components/Filters/RunsFilter/dcs.js';
2222
import epnFilter from '../../../components/Filters/RunsFilter/epn.js';
23-
import runQualityFilter from '../../../components/Filters/RunsFilter/runQuality.js';
2423
import { formatTimestamp } from '../../../utilities/formatting/formatTimestamp.js';
2524
import { displayRunDuration } from '../format/displayRunDuration.js';
2625
import { frontLink } from '../../../components/common/navigation/frontLink.js';
@@ -53,6 +52,7 @@ import { detectorsFilterComponent } from '../../../components/Filters/RunsFilter
5352
import { timeRangeFilter } from '../../../components/Filters/common/filters/timeRangeFilter.js';
5453
import { rawTextFilter } from '../../../components/Filters/common/filters/rawTextFilter.js';
5554
import { numericalComparisonFilter } from '../../../components/Filters/common/filters/numericalComparisonFilter.js';
55+
import { checkboxes } from '../../../components/Filters/common/filters/checkboxFilter.js';
5656

5757
/**
5858
* List of active columns for a generic runs table
@@ -437,7 +437,14 @@ export const runsActiveColumns = {
437437
}, runQuality),
438438
},
439439
},
440-
filter: runQualityFilter,
440+
441+
/**
442+
* Run quality filter component
443+
*
444+
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
445+
* @return {Component} the run quality filter component
446+
*/
447+
filter: (runsOverviewModel) => checkboxes(runsOverviewModel.filteringModel.get('runQualities').selectionModel),
441448
},
442449
nDetectors: {
443450
name: 'DETs #',

lib/public/views/Runs/Overview/RunsOverviewModel.js

Lines changed: 8 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import { TimeRangeFilterModel } from '../../../components/Filters/RunsFilter/Tim
3434
import { magnetsCurrentLevelsProvider } from '../../../services/magnets/magnetsCurrentLevelsProvider.js';
3535
import { RawTextFilterModel } from '../../../components/Filters/common/filters/RawTextFilterModel.js';
3636
import { 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
},

test/public/runs/overview.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ module.exports = () => {
511511

512512
it('Should successfully filter runs by their run quality', async () => {
513513
await goToPage(page, 'run-overview');
514-
const filterInputSelectorPrefix = '#runQualityCheckbox';
514+
const filterInputSelectorPrefix = '#checkboxes-checkbox-';
515515
const badFilterSelector = `${filterInputSelectorPrefix}bad`;
516516
const testFilterSelector = `${filterInputSelectorPrefix}test`;
517517

@@ -937,7 +937,7 @@ module.exports = () => {
937937
// Second export
938938

939939
// Apply filtering
940-
const filterInputSelectorPrefix = '#runQualityCheckbox';
940+
const filterInputSelectorPrefix = '#checkboxes-checkbox-';
941941
const badFilterSelector = `${filterInputSelectorPrefix}bad`;
942942

943943
await pressElement(page, '#openFilterToggle');

0 commit comments

Comments
 (0)