Skip to content

Commit beca3c1

Browse files
author
NarrowsProjects
committed
feat: change all filters that have only ObservableBasedSelectionDropdownModel as submodels to extend it instead
1 parent 2c10744 commit beca3c1

4 files changed

Lines changed: 8 additions & 78 deletions

File tree

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

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,50 +12,17 @@
1212
*/
1313

1414
import { ObservableBasedSelectionDropdownModel } from '../../detector/ObservableBasedSelectionDropdownModel.js';
15-
import { FilterModel } from '../common/FilterModel.js';
1615

1716
/**
1817
* Beam mode filter model
1918
*/
20-
export class BeamModeFilterModel extends FilterModel {
19+
export class BeamModeFilterModel extends ObservableBasedSelectionDropdownModel {
2120
/**
2221
* Constructor
2322
*
2423
* @param {ObservableData<RemoteData<{name: string}, ApiError>>} beamModes$ observable remote data of objects representing beam modes
2524
*/
2625
constructor(beamModes$) {
27-
super();
28-
this._selectionDropdownModel = new ObservableBasedSelectionDropdownModel(beamModes$, ({ name }) => ({ value: name }));
29-
this._addSubmodel(this._selectionDropdownModel);
30-
}
31-
32-
/**
33-
* @inheritDoc
34-
*/
35-
reset() {
36-
this._selectionDropdownModel.reset();
37-
}
38-
39-
/**
40-
* @inheritDoc
41-
*/
42-
get isEmpty() {
43-
return this._selectionDropdownModel.isEmpty;
44-
}
45-
46-
/**
47-
* Return the underlying dropdown model
48-
*
49-
* @return {ObservableDropDownModel} the underlying dropdown model
50-
*/
51-
get selectionDropdownModel() {
52-
return this._selectionDropdownModel;
53-
}
54-
55-
/**
56-
* @inheritDoc
57-
*/
58-
get normalized() {
59-
return this._selectionDropdownModel.selected;
26+
super(beamModes$, ({ name }) => ({ value: name }));
6027
}
6128
}

lib/public/components/runTypes/RunTypesFilterModel.js

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,51 +12,18 @@
1212
*/
1313

1414
import { runTypeToOption } from './runTypeToOption.js';
15-
import { FilterModel } from '../Filters/common/FilterModel.js';
1615
import { ObservableBasedSelectionDropdownModel } from '../detector/ObservableBasedSelectionDropdownModel.js';
1716

1817
/**
1918
* Model storing state of a selection of run types picked from the list of all the existing run types
2019
*/
21-
export class RunTypesFilterModel extends FilterModel {
20+
export class RunTypesFilterModel extends ObservableBasedSelectionDropdownModel {
2221
/**
2322
* Constructor
2423
*
2524
* @param {ObservableData<RemoteData<RunType[], ApiError>>} runTypes$ observable remote data of run types list
2625
*/
2726
constructor(runTypes$) {
28-
super();
29-
this._selectionDropdownModel = new ObservableBasedSelectionDropdownModel(runTypes$, runTypeToOption);
30-
this._addSubmodel(this._selectionDropdownModel);
31-
}
32-
33-
/**
34-
* @inheritDoc
35-
*/
36-
reset() {
37-
this._selectionDropdownModel.reset();
38-
}
39-
40-
/**
41-
* @inheritDoc
42-
*/
43-
get isEmpty() {
44-
return this._selectionDropdownModel.isEmpty;
45-
}
46-
47-
/**
48-
* @inheritDoc
49-
*/
50-
get normalized() {
51-
return this._selectionDropdownModel.selected;
52-
}
53-
54-
/**
55-
* Return the underlying selection dropdown model
56-
*
57-
* @return {SelectionDropdownModel} the selection dropdown model
58-
*/
59-
get selectionDropdownModel() {
60-
return this._selectionDropdownModel;
27+
super(runTypes$, runTypeToOption);
6128
}
6229
}

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,7 @@ export const runsActiveColumns = {
158158
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
159159
* @return {Component} the beam modes filter component
160160
*/
161-
filter: (runsOverviewModel) =>
162-
selectionDropdown(runsOverviewModel.filteringModel.get('beamModes').selectionDropdownModel, { selectorPrefix: 'beam-mode' }),
161+
filter: (runsOverviewModel) => selectionDropdown(runsOverviewModel.filteringModel.get('beamModes'), { selectorPrefix: 'beam-mode' }),
163162
},
164163
fillNumber: {
165164
name: 'Fill No.',
@@ -407,10 +406,7 @@ export const runsActiveColumns = {
407406
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
408407
* @return {Component} the run types filter component
409408
*/
410-
filter: (runsOverviewModel) => selectionDropdown(
411-
runsOverviewModel.filteringModel.get('runTypes').selectionDropdownModel,
412-
{ selectorPrefix: 'run-types' },
413-
),
409+
filter: (runsOverviewModel) => selectionDropdown(runsOverviewModel.filteringModel.get('runTypes'), { selectorPrefix: 'run-types' }),
414410
},
415411
runQuality: {
416412
name: 'Quality',

test/public/Filters/filtersToUrl.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@ module.exports = () => {
228228
"filter[runDuration][operator]": "=",
229229
"filter[runDuration][limit]": "90000000",
230230
"filter[environmentIds]": "Dxi029djX, TDI59So3d",
231-
"filter[runTypes][]": "2",
232-
"filter[beamModes][]": "NO BEAM",
231+
"filter[runTypes]": "2",
232+
"filter[beamModes]": "NO BEAM",
233233
"filter[runQualities]": "bad",
234234
"filter[nDetectors][operator]": "=",
235235
"filter[nDetectors][limit]": "1",

0 commit comments

Comments
 (0)