Skip to content

Commit d84e275

Browse files
committed
[O2B-536] Improve run overview nFLPs, nEPNs and nDetectors filters
1 parent b9c043c commit d84e275

File tree

7 files changed

+35
-192
lines changed

7 files changed

+35
-192
lines changed

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

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

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

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

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

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

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ export class NumericalComparisonFilterModel extends FilterModel {
3333

3434
this._operatorSelectionModel = new ComparisonSelectionModel();
3535
this._operatorSelectionModel.visualChange$.bubbleTo(this._visualChange$);
36-
this._operatorSelectionModel.observe(() => {
37-
if (!this._operandInputModel.isEmpty) {
38-
this.notify();
39-
}
40-
});
4136

4237
this._operandInputModel = new ProcessedTextInputModel({
4338
parse: (raw) => {
@@ -50,6 +45,8 @@ export class NumericalComparisonFilterModel extends FilterModel {
5045
});
5146
this._operandInputModel.visualChange$.bubbleTo(this._visualChange$);
5247
this._operandInputModel.bubbleTo(this);
48+
49+
this._operatorSelectionModel.observe(() => this._operandInputModel.raw ? this.notify() : this._visualChange$.notify());
5350
}
5451

5552
/**

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

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313

1414
import { h } from '/js/src/index.js';
1515
import { runNumbersFilter } from '../../../components/Filters/RunsFilter/runNumbersFilter.js';
16-
import nDetectorsFilter from '../../../components/Filters/RunsFilter/nDetectors.js';
17-
import nFlpsFilter from '../../../components/Filters/RunsFilter/nFlps.js';
1816
import odcTopologyFullName from '../../../components/Filters/RunsFilter/odcTopologyFullName.js';
1917
import { displayRunEorReasonsOverview } from '../format/displayRunEorReasonOverview.js';
2018
import ddflpFilter from '../../../components/Filters/RunsFilter/ddflp.js';
@@ -23,7 +21,6 @@ import epnFilter from '../../../components/Filters/RunsFilter/epn.js';
2321
import { formatTimestamp } from '../../../utilities/formatting/formatTimestamp.js';
2422
import { displayRunDuration } from '../format/displayRunDuration.js';
2523
import { frontLink } from '../../../components/common/navigation/frontLink.js';
26-
import nEpnsFilter from '../../../components/Filters/RunsFilter/nEpns.js';
2724
import { triggerValueFilter } from '../../../components/Filters/RunsFilter/triggerValueFilter.js';
2825
import { formatRunType } from '../../../utilities/formatting/formatRunType.js';
2926
import { runDefinitionFilter } from '../../../components/Filters/RunsFilter/runDefinitionFilter.js';
@@ -450,7 +447,17 @@ export const runsActiveColumns = {
450447
name: 'DETs #',
451448
visible: false,
452449
classes: 'w-2 f6 w-wrapped',
453-
filter: nDetectorsFilter,
450+
451+
/**
452+
* Filter on amount of detectors in runs
453+
*
454+
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
455+
* @return {Component} the number of detectors filter component
456+
*/
457+
filter: (runsOverviewModel) => numericalComparisonFilter(
458+
runsOverviewModel.filteringModel.get('nDetectors'),
459+
{ selectorPrefix: 'nDetectors' },
460+
),
454461
},
455462
nEpns: {
456463
name: 'EPNs #',
@@ -459,14 +466,28 @@ export const runsActiveColumns = {
459466
classes: 'w-2 f6 w-wrapped',
460467
// eslint-disable-next-line no-extra-parens
461468
format: (nEpns, run) => run.epn ? (typeof nEpns === 'number' ? nEpns : 'ON') : 'OFF',
462-
filter: nEpnsFilter,
469+
470+
/**
471+
* Filter on amount of EPNs in runs
472+
*
473+
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
474+
* @return {Component} the number of EPNs filter component
475+
*/
476+
filter: (runsOverviewModel) => numericalComparisonFilter(runsOverviewModel.filteringModel.get('nEpns'), { selectorPrefix: 'nEpns' }),
463477
},
464478
nFlps: {
465479
name: 'FLPs #',
466480
visible: true,
467481
profiles: [profiles.none, 'lhcFill', 'environment'],
468482
classes: 'w-2 f6 w-wrapped',
469-
filter: nFlpsFilter,
483+
484+
/**
485+
* Filter on amount of FLPs in runs
486+
*
487+
* @param {RunsOverviewModel} runsOverviewModel the runs overview model
488+
* @return {Component} the number of FLPs filter component
489+
*/
490+
filter: (runsOverviewModel) => numericalComparisonFilter(runsOverviewModel.filteringModel.get('nFlps'), { selectorPrefix: 'nFlps' }),
470491
},
471492
nSubtimeframes: {
472493
name: '# of STFs',

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

Lines changed: 3 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ export class RunsOverviewModel extends OverviewPageModel {
7575
value: quality,
7676
})),
7777
}),
78+
nDetectors: new NumericalComparisonFilterModel({ integer: true }),
79+
nEpns: new NumericalComparisonFilterModel({ integer: true }),
80+
nFlps: new NumericalComparisonFilterModel({ integer: true }),
7881
eorReason: new EorReasonFilterModel(eorReasonTypeProvider.items$),
7982
magnets: new MagnetsFilteringModel(magnetsCurrentLevelsProvider.items$),
8083
muInelasticInteractionRate: new NumericalComparisonFilterModel({ useOperatorAsNormalizationKey: true }),
@@ -183,12 +186,6 @@ export class RunsOverviewModel extends OverviewPageModel {
183186

184187
this._triggerValuesFilters = new Set();
185188

186-
this.nDetectorsFilter = null;
187-
188-
this._nEpnsFilter = null;
189-
190-
this.nFlpsFilter = null;
191-
192189
this.ddflpFilter = '';
193190

194191
this.dcsFilter = '';
@@ -209,9 +206,6 @@ export class RunsOverviewModel extends OverviewPageModel {
209206
isAnyFilterActive() {
210207
return this._filteringModel.isAnyFilterActive()
211208
|| this._triggerValuesFilters.size !== 0
212-
|| this.nDetectorsFilter !== null
213-
|| this._nEpnsFilter !== null
214-
|| this.nFlpsFilter !== null
215209
|| this.ddflpFilter !== ''
216210
|| this.dcsFilter !== ''
217211
|| this.epnFilter !== ''
@@ -268,67 +262,6 @@ export class RunsOverviewModel extends OverviewPageModel {
268262
this._applyFilters();
269263
}
270264

271-
/**
272-
* Returns the amount of detectors filters
273-
* @return {{operator: string, limit: (number|null)}|null} The current amount of detectors filters
274-
*/
275-
getNDetectorsFilter() {
276-
return this.nDetectorsFilter;
277-
}
278-
279-
/**
280-
* Sets the limit of detectors and the comparison operator to filter if no new inputs were detected for 200
281-
* milliseconds
282-
*
283-
* @param {{operator: string, limit: (number|null)}|null} newNDetectors The new filter value
284-
*
285-
* @return {void}
286-
*/
287-
setNDetectorsFilter(newNDetectors) {
288-
this.nDetectorsFilter = newNDetectors;
289-
this._applyFilters();
290-
}
291-
292-
/**
293-
* Returns the current amount of epns filter
294-
* @return {{operator: string, limit: (number|null)}|null} The current amount of epns filters
295-
*/
296-
get nEpnsFilter() {
297-
return this._nEpnsFilter;
298-
}
299-
300-
/**
301-
* Returns the current amount of flps filter
302-
* @return {{operator: string, limit: (number|null)}|null} The current amount of flps filters
303-
*/
304-
getNFlpsFilter() {
305-
return this.nFlpsFilter;
306-
}
307-
308-
/**
309-
* Sets the limit of epns and the comparison operator to filter if no new inputs were detected for 200 milliseconds
310-
*
311-
* @param {{operator: string, limit: (number|null)}|null} newNEpns The new filter value
312-
*
313-
* @return {void}
314-
*/
315-
set nEpnsFilter(newNEpns) {
316-
this._nEpnsFilter = newNEpns;
317-
this._applyFilters();
318-
}
319-
320-
/**
321-
* Sets the limit of flps and the comparison operator to filter if no new inputs were detected for 200 milliseconds
322-
*
323-
* @param {{operator: string, limit: (number|null)}|null} newNFlps The new filter value
324-
*
325-
* @return {void}
326-
*/
327-
setNFlpsFilter(newNFlps) {
328-
this.nFlpsFilter = newNFlps;
329-
this._applyFilters();
330-
}
331-
332265
/**
333266
* Returns the boolean of ddflp
334267
* @return {Boolean} if ddflp is on
@@ -467,18 +400,6 @@ export class RunsOverviewModel extends OverviewPageModel {
467400
...this._triggerValuesFilters.size !== 0 && {
468401
'filter[triggerValues]': Array.from(this._triggerValuesFilters).join(),
469402
},
470-
...this.nDetectorsFilter && this.nDetectorsFilter.limit !== null && {
471-
'filter[nDetectors][operator]': this.nDetectorsFilter.operator,
472-
'filter[nDetectors][limit]': this.nDetectorsFilter.limit,
473-
},
474-
...this.nFlpsFilter && this.nFlpsFilter.limit !== null && {
475-
'filter[nFlps][operator]': this.nFlpsFilter.operator,
476-
'filter[nFlps][limit]': this.nFlpsFilter.limit,
477-
},
478-
...this.nEpnsFilter && this.nEpnsFilter.limit !== null && {
479-
'filter[nEpns][operator]': this.nEpnsFilter.operator,
480-
'filter[nEpns][limit]': this.nEpnsFilter.limit,
481-
},
482403
...(this.ddflpFilter === true || this.ddflpFilter === false) && {
483404
'filter[ddflp]': this.ddflpFilter,
484405
},

test/public/runs/overview.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ module.exports = () => {
723723
await expectInputValue(page, '#nDetectors-operator', '=');
724724

725725
await page.select('#nDetectors-operator', '<=');
726-
await fillInput(page, '#nDetectors-limit', '1');
726+
await fillInput(page, '#nDetectors-operand', '1', ['change']);
727727
await waitForTableLength(page, 6);
728728

729729
const nDetectorsList = await page.evaluate(() => Array.from(document.querySelectorAll('tbody tr')).map((row) => {
@@ -743,7 +743,7 @@ module.exports = () => {
743743
await expectInputValue(page, '#nFlps-operator', '=');
744744

745745
await page.select('#nFlps-operator', '<=');
746-
await fillInput(page, '#nFlps-limit', '10');
746+
await fillInput(page, '#nFlps-operand', '10', ['change']);
747747
await waitForTableLength(page, 5);
748748

749749
const nFlpsList = await page.evaluate(() => Array.from(document.querySelectorAll('tbody tr')).map((row) => {
@@ -761,7 +761,7 @@ module.exports = () => {
761761
await expectInputValue(page, '#nEpns-operator', '=');
762762

763763
await page.select('#nEpns-operator', '<=');
764-
await fillInput(page, '#nEpns-limit', '10');
764+
await fillInput(page, '#nEpns-operand', '10', ['change']);
765765
await waitForTableLength(page, 5);
766766

767767
await expectColumnValues(page, 'nEpns', ['10', '10', 'OFF', 'OFF', '10']);

0 commit comments

Comments
 (0)