Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
722caf7
chore: remove redundant model assignment.
Feb 20, 2026
f161cae
chore: move all filters denoted as so to a filteringModel
Feb 20, 2026
9faffaf
Make filterInputModel extend filterModel
Feb 20, 2026
247943b
rename inputfilter to ParsedInputFilter
Feb 20, 2026
114285d
implement authorfilter with ParsedInputFilterModel changes
Feb 20, 2026
f39f7ae
re-implement filter
Feb 20, 2026
df1fea3
add tag-filters to the filtering object
Feb 20, 2026
96ca85f
replace titleFilter and contentFilter with RawTextFilterModels
Feb 20, 2026
93b3291
make Authorfilter an implementation of RawTextFilterModel
Feb 20, 2026
5a5e830
add runs filter to the filteringmodel
Feb 20, 2026
b5e7148
add environments filter to the filteringmodel
Feb 20, 2026
3507ba0
add lhcFills filter to the filteringmodel
Feb 20, 2026
9c63409
add created filter to the filteringmodel
Feb 20, 2026
5500b3e
move the sort 'filter' to fetchlogs, since it doesn't actually filter…
Feb 20, 2026
a09ae8b
change filter to rawTextFilter for title
Feb 21, 2026
512999b
fix test by changing event type to 'change'
Feb 21, 2026
0f15812
fix content and author tests
Feb 21, 2026
7b641ca
import openFilteringPanel and resetFilters
Feb 21, 2026
5ab8218
fix createdAt filter test
Feb 21, 2026
4c96d73
change event types to change
Feb 21, 2026
18ce4dc
fix isAnyFilterActive
Feb 21, 2026
685dd38
remove _raw as from authorfilterModel, as it serves no purpose
Feb 21, 2026
4e132fd
chore: removed ParsedInputFilterModel
Mar 2, 2026
caf9812
chore: add toLowerCase to filterQueryParam computation
Mar 2, 2026
41c5a72
[O2B-1530] Lhc fills add sb duration filter (#2080)
NarrowsProjects Feb 24, 2026
f38f597
[O2B-1544] Fix pagination for filtered envs and add a test (#2096)
isaachilly Mar 5, 2026
3efdf1d
remove the combination operator from runs
Mar 5, 2026
fc61bea
remove the combination operator from envirionments
Mar 5, 2026
9c4df68
remove the combination operator from lhcFills
Mar 5, 2026
b860320
make filter computation much more compact using filteringmodel.normalize
Mar 5, 2026
7a00043
add happy-flow tests for logs api
Mar 5, 2026
ada3eb3
fix usecase unit tests
Mar 5, 2026
d290be7
Merge branch 'main' into improv/O2B-1534/Migrate-Log-Overview-to-use-…
NarrowsProjects Mar 5, 2026
0d8d3d4
Merge branch 'main' into improv/O2B-1534/Migrate-Log-Overview-to-use-…
NarrowsProjects Mar 5, 2026
237683a
Merge branch 'main' into improv/O2B-1534/Migrate-Log-Overview-to-use-…
NarrowsProjects Mar 9, 2026
25244f4
chore: add filteringmodel to QcFlagTypesOverviewModel
Mar 9, 2026
6970a74
feat: move namesFilterModelFilter to fileringmodel
Mar 9, 2026
cdaaf0e
feat: move methodsFilterModelFilter to filteringModel
Mar 9, 2026
27a8bbc
feat: move methodsFilterModelFilter to filteringModel
Mar 9, 2026
c24d302
chore: add filteringModel to AnchoredSimulationPassesOverviewModel
Mar 10, 2026
2f6fcf1
chore: add namesFilterModel to the filteringModel instance
Mar 10, 2026
790d76b
chore: add filteringModel to SimulationPassesPerLhcPeriodOverviewModel
Mar 10, 2026
6fe055b
chore: add namesFilterModel to the filteringModel instance of Simulat…
Mar 10, 2026
a9a1cd9
fix: fix Selectionmodel.normalized to use selected rather than select…
Mar 12, 2026
f9c1adb
Merge branch 'improv/O2B-1548/Migrate-qcFlagTypesOverviewModel-to-use…
Mar 12, 2026
eeefa7f
Merge branch 'main' into improv/O2B-1549/Migrate-AnchoredSimulationPa…
Apr 17, 2026
0bfa51d
chore: make filteringModel instantiation a one-liner
Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ export const simulationPassesActiveColumns = {
name: 'Name',
visible: true,
sortable: true,
filter: ({ namesFilterModel }) => textFilter(
namesFilterModel,
filter: ({ filteringModel }) => textFilter(
filteringModel.get('names'),
{ class: 'w-75 mt1', placeholder: 'e.g. LHC23k5, ...' },
),
classes: 'w-10 f6',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { TextTokensFilterModel } from '../../../components/Filters/common/filter
import { OverviewPageModel } from '../../../models/OverviewModel.js';
import { getRemoteData } from '../../../utilities/fetch/getRemoteData.js';
import { ObservableData } from '../../../utilities/ObservableData.js';
import { FilteringModel } from '../../../components/Filters/common/FilteringModel.js';

/**
* Simulation Passes Per Data Pass overview model
Expand All @@ -25,8 +26,15 @@ export class AnchoredSimulationPassesOverviewModel extends OverviewPageModel {
*/
constructor() {
super();
this._namesFilterModel = new TextTokensFilterModel();
this._registerFilter(this._namesFilterModel);

this._filteringModel = new FilteringModel({ names: new TextTokensFilterModel() });

this._filteringModel.observe(() => {
this._pagination.silentlySetCurrentPage(1);
this.load();
});

this._filteringModel.visualChange$.bubbleTo(this);

this._dataPass = new ObservableData(RemoteData.notAsked());
}
Expand Down Expand Up @@ -57,14 +65,8 @@ export class AnchoredSimulationPassesOverviewModel extends OverviewPageModel {
* @inheritdoc
*/
getRootEndpoint() {
const params = {
filter: {
names: this._namesFilterModel.normalized,
dataPassIds: [this._dataPassId],
},
};

return buildUrl('/api/simulationPasses', params);
const filter = { ...this._filteringModel.normalized, dataPassIds: [this._dataPassId] };
return buildUrl('/api/simulationPasses', { filter });
}

/**
Expand All @@ -73,10 +75,19 @@ export class AnchoredSimulationPassesOverviewModel extends OverviewPageModel {
* @returns {void}
*/
reset() {
this._namesFilterModel.reset();
this._filteringModel.reset();
super.reset();
}

/**
* Return the model managing all filters
*
* @return {FilteringModel} the filtering model
*/
get filteringModel() {
return this._filteringModel;
}

/**
* Set id of current data pass which simulation passes are fetched
* @param {number} dataPassId data pass id
Expand All @@ -92,33 +103,11 @@ export class AnchoredSimulationPassesOverviewModel extends OverviewPageModel {
return this._dataPass.getCurrent();
}

/**
* Returns data passes names filter model
* @return {TextTokensFilterModel} data passes names filter model
*/
get namesFilterModel() {
return this._namesFilterModel;
}

/**
* Register a new filter model
* @param {FilterModel} filterModel the filter model to register
* @return {void}
* @private
*/
_registerFilter(filterModel) {
filterModel.visualChange$.bubbleTo(this);
filterModel.observe(() => {
this._pagination.silentlySetCurrentPage(1);
this.load();
});
}

/**
* States whether any filter is active
* @return {boolean} true if any filter is active
*/
isAnyFilterActive() {
return !this._namesFilterModel.isEmpty;
return this._filteringModel.isAnyFilterActive();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { OverviewPageModel } from '../../../models/OverviewModel.js';
import { buildUrl, RemoteData } from '/js/src/index.js';
import { ObservableData } from '../../../utilities/ObservableData.js';
import { getRemoteData } from '../../../utilities/fetch/getRemoteData.js';
import { FilteringModel } from '../../../components/Filters/common/FilteringModel.js';

/**
* Simulation Passes Per LHC Period overview model
Expand All @@ -26,8 +27,12 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
constructor() {
super();

this._namesFilterModel = new TextTokensFilterModel();
this._registerFilter(this._namesFilterModel);
this._filteringModel = new FilteringModel({ names: new TextTokensFilterModel() });
this._filteringModel.visualChange$.bubbleTo(this);
this._filteringModel.observe(() => {
this._pagination.silentlySetCurrentPage(1);
this.load();
});

this._lhcPeriod = new ObservableData(RemoteData.notAsked());
this._lhcPeriod.bubbleTo(this);
Expand All @@ -49,6 +54,15 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
}
}

/**
* Return the model managing all filters
*
* @return {FilteringModel} the filtering model
*/
get filteringModel() {
return this._filteringModel;
}

/**
* @inheritdoc
*/
Expand All @@ -61,14 +75,8 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
* @inheritdoc
*/
getRootEndpoint() {
const params = {
filter: {
names: this._namesFilterModel.normalized,
lhcPeriodIds: [this._lhcPeriodId],
},
};

return buildUrl('/api/simulationPasses', params);
const filter = { ...this._filteringModel.normalized, lhcPeriodIds: [this._lhcPeriodId] };
return buildUrl('/api/simulationPasses', { filter });
}

/**
Expand All @@ -77,7 +85,7 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
* @returns {void}
*/
reset() {
this._namesFilterModel.reset();
this._filteringModel.reset();
super.reset();
}

Expand All @@ -96,33 +104,11 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
return this._lhcPeriod.getCurrent();
}

/**
* Returns simulation passes names filter model
* @return {TextTokensFilterModel} simulation passes names filter model
*/
get namesFilterModel() {
return this._namesFilterModel;
}

/**
* Register a new filter model
* @param {FilterModel} filterModel the filter model to register
* @return {void}
* @private
*/
_registerFilter(filterModel) {
filterModel.visualChange$.bubbleTo(this);
filterModel.observe(() => {
this._pagination.silentlySetCurrentPage(1);
this.load();
});
}

/**
* States whether any filter is active
* @return {boolean} true if any filter is active
*/
isAnyFilterActive() {
return !this._namesFilterModel.isEmpty;
return this._filteringModel.isAnyFilterActive();
}
}
Loading