Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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,15 @@ 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 +57,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 +78,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 +88,7 @@ export class SimulationPassesPerLhcPeriodOverviewModel extends OverviewPageModel
* @returns {void}
*/
reset() {
this._namesFilterModel.reset();
this._filteringModel.reset();
super.reset();
}

Expand All @@ -96,33 +107,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