1010 * granted to it by virtue of its status as an Intergovernmental Organization
1111 * or submit itself to any jurisdiction.
1212 */
13- import { SortModel } from '../../../components/common/table/SortModel.js' ;
14- import { TextTokensFilterModel } from '../../../components/Filters/common/filters/TextTokensFilterModel.js' ;
15- import { OverviewPageModel } from '../../../models/OverviewModel.js' ;
1613import { buildUrl , RemoteData } from '/js/src/index.js' ;
1714import { getRemoteData } from '../../../utilities/fetch/getRemoteData.js' ;
1815import { ObservableData } from '../../../utilities/ObservableData.js' ;
16+ import { DataPassesOverviewModel } from '../DataPassesOverviewModel.js' ;
1917
2018/**
2119 * Data Passes Per Simulation Pass overview model
2220 */
23- export class DataPassesPerSimulationPassOverviewModel extends OverviewPageModel {
21+ export class DataPassesPerSimulationPassOverviewModel extends DataPassesOverviewModel {
2422 /**
2523 * Constructor
2624 */
2725 constructor ( ) {
2826 super ( ) ;
29- this . _sortModel = new SortModel ( ) ;
30- this . _sortModel . observe ( ( ) => {
31- this . _pagination . silentlySetCurrentPage ( 1 ) ;
32- this . load ( ) ;
33- } ) ;
34- this . _sortModel . visualChange$ . bubbleTo ( this ) ;
35-
36- this . _nameFilterModel = new TextTokensFilterModel ( ) ;
37- this . _registerFilter ( this . _nameFilterModel ) ;
3827 this . _simulationPass = new ObservableData ( RemoteData . notAsked ( ) ) ;
3928 this . _simulationPass . bubbleTo ( this ) ;
4029 }
@@ -65,18 +54,15 @@ export class DataPassesPerSimulationPassOverviewModel extends OverviewPageModel
6554 * @inheritdoc
6655 */
6756 getRootEndpoint ( ) {
57+ const { filter, sort } = this . getBaseParams ( ) ;
6858 const params = {
6959 filter : {
70- names : this . _nameFilterModel . normalized ,
7160 simulationPassIds : [ this . _simulationPassId ] ,
61+ ...filter ,
7262 } ,
63+ ...sort ,
7364 } ;
7465
75- const { appliedOn : sortOn , appliedDirection : sortDirection } = this . _sortModel ;
76- if ( sortOn && sortDirection ) {
77- params [ `sort[${ sortOn } ]` ] = sortDirection ;
78- }
79-
8066 return buildUrl ( '/api/dataPasses' , params ) ;
8167 }
8268
@@ -88,59 +74,10 @@ export class DataPassesPerSimulationPassOverviewModel extends OverviewPageModel
8874 this . _simulationPassId = simulationPassId ;
8975 }
9076
91- /**
92- * Reset this model to its default
93- *
94- * @returns {void }
95- */
96- reset ( ) {
97- this . _nameFilterModel . reset ( ) ;
98- super . reset ( ) ;
99- }
100-
10177 /**
10278 * Get current simulation pass which data passes are fetched
10379 */
10480 get simulationPass ( ) {
10581 return this . _simulationPass . getCurrent ( ) ;
10682 }
107-
108- /**
109- * Returns the model handling the overview page table sort
110- *
111- * @return {SortModel } the sort model
112- */
113- get sortModel ( ) {
114- return this . _sortModel ;
115- }
116-
117- /**
118- * Returns data pass name filter model
119- * @return {TextTokensFilterModel } data pass name filter model
120- */
121- get nameFilterModel ( ) {
122- return this . _nameFilterModel ;
123- }
124-
125- /**
126- * Register a new filter model
127- * @param {FilterModel } filterModel the filter model to register
128- * @return {void }
129- * @private
130- */
131- _registerFilter ( filterModel ) {
132- filterModel . visualChange$ . bubbleTo ( this ) ;
133- filterModel . observe ( ( ) => {
134- this . _pagination . silentlySetCurrentPage ( 1 ) ;
135- this . load ( ) ;
136- } ) ;
137- }
138-
139- /**
140- * States whether any filter is active
141- * @return {boolean } true if any filter is active
142- */
143- isAnyFilterActive ( ) {
144- return ! this . _nameFilterModel . isEmpty ( ) ;
145- }
14683}
0 commit comments