Skip to content

Commit 639180b

Browse files
author
GuustMetz
committed
feat: replace triggerValue's filter component with the standard selectionModel + checkboxes component
1 parent 17a4ce8 commit 639180b

File tree

3 files changed

+14
-42
lines changed

3 files changed

+14
-42
lines changed

lib/public/components/common/selection/SelectionModel.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,6 @@ export class SelectionModel extends Observable {
339339
* @abstract
340340
*/
341341
get normalized() {
342-
return (this._allowEmpty || this._multiple)
343-
? this._selectedOptions.join()
344-
: this.current;
342+
return (this._allowEmpty || this._multiple) ? this.selected.join() : this.current;
345343
}
346344
}

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import { timeRangeFilter } from '../../../components/Filters/common/filters/time
4444
import { rawTextFilter } from '../../../components/Filters/common/filters/rawTextFilter.js';
4545
import { numericalComparisonFilter } from '../../../components/Filters/common/filters/numericalComparisonFilter.js';
4646
import { checkboxes } from '../../../components/Filters/common/filters/checkboxFilter.js';
47-
import { triggerValueFilter } from '../../../components/Filters/RunsFilter/triggerValueFilter.js';
4847
import radioButtonFilter from '../../../components/Filters/common/filters/radioButtonFilter.js';
4948

5049
/**
@@ -539,7 +538,14 @@ export const runsActiveColumns = {
539538
visible: true,
540539
profiles: [profiles.none, 'lhcFill', 'environment'],
541540
classes: 'w-5 f6 w-wrapped',
542-
filter: triggerValueFilter,
541+
542+
/**
543+
* TriggerValue filter component
544+
*
545+
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
546+
* @return {Component} the trigger value filter component
547+
*/
548+
filter: ({ filteringModel }) => checkboxes(filteringModel.get('triggerValues')),
543549
format: (trgValue) => trgValue ? trgValue : '-',
544550
},
545551
epn: {

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

Lines changed: 5 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import { runsActiveColumns as dataExportConfiguration } from '../ActiveColumns/r
3737
import { BeamModeFilterModel } from '../../../components/Filters/RunsFilter/BeamModeFilterModel.js';
3838
import { beamModesProvider } from '../../../services/beamModes/beamModesProvider.js';
3939
import { RadioButtonFilterModel } from '../../../components/Filters/common/RadioButtonFilterModel.js';
40+
import { SelectionModel } from '../../../components/common/selection/SelectionModel.js';
41+
import { TRIGGER_VALUES } from '../../../domain/enums/TriggerValue.js';
4042

4143
/**
4244
* Model representing handlers for runs page
@@ -94,6 +96,7 @@ export class RunsOverviewModel extends OverviewPageModel {
9496
ddflp: new RadioButtonFilterModel([{ label: 'ANY' }, { label: 'ON', value: true }, { label: 'OFF', value: false }]),
9597
dcs: new RadioButtonFilterModel([{ label: 'ANY' }, { label: 'ON', value: true }, { label: 'OFF', value: false }]),
9698
epn: new RadioButtonFilterModel([{ label: 'ANY' }, { label: 'ON', value: true }, { label: 'OFF', value: false }]),
99+
triggerValues: new SelectionModel({ availableOptions: TRIGGER_VALUES.map((value) => ({ label: value, value })) }),
97100
});
98101

99102
this._filteringModel.observe(() => this._applyFilters(true));
@@ -127,7 +130,7 @@ export class RunsOverviewModel extends OverviewPageModel {
127130
* @inheritdoc
128131
*/
129132
getRootEndpoint() {
130-
return buildUrl('/api/runs', { ...this._getFilterQueryParams(), ...{ filter: this.filteringModel.normalized } });
133+
return buildUrl('/api/runs', { filter: this.filteringModel.normalized });
131134
}
132135

133136
/**
@@ -149,8 +152,6 @@ export class RunsOverviewModel extends OverviewPageModel {
149152
resetFiltering(fetch = true) {
150153
this._filteringModel.reset();
151154

152-
this._triggerValuesFilters = new Set();
153-
154155
if (fetch) {
155156
this._applyFilters(true);
156157
}
@@ -161,7 +162,7 @@ export class RunsOverviewModel extends OverviewPageModel {
161162
* @return {Boolean} If any filter is active
162163
*/
163164
isAnyFilterActive() {
164-
return this._filteringModel.isAnyFilterActive() || this._triggerValuesFilters.size !== 0;
165+
return this._filteringModel.isAnyFilterActive();
165166
}
166167

167168
/**
@@ -173,39 +174,6 @@ export class RunsOverviewModel extends OverviewPageModel {
173174
return this._filteringModel;
174175
}
175176

176-
/**
177-
* Getter for the trigger values filter Set
178-
* @return {Set} set of trigger filter values
179-
*/
180-
get triggerValuesFilters() {
181-
return this._triggerValuesFilters;
182-
}
183-
184-
/**
185-
* Setter for trigger values filter, this replaces the current set
186-
* @param {Array} newTriggerValues new Set of values
187-
* @return {undefined}
188-
*/
189-
set triggerValuesFilters(newTriggerValues) {
190-
this._triggerValuesFilters = new Set(newTriggerValues);
191-
this._applyFilters();
192-
}
193-
194-
/**
195-
* Returns the list of URL params corresponding to the currently applied filter
196-
*
197-
* @return {Object} the URL params
198-
*
199-
* @private
200-
*/
201-
_getFilterQueryParams() {
202-
return {
203-
...this._triggerValuesFilters.size !== 0 && {
204-
'filter[triggerValues]': Array.from(this._triggerValuesFilters).join(),
205-
},
206-
};
207-
}
208-
209177
/**
210178
* Apply the current filtering and update the remote data list
211179
*

0 commit comments

Comments
 (0)