1111 * or submit itself to any jurisdiction.
1212 */
1313
14+ import { FilteringModel } from '../../../components/Filters/common/FilteringModel.js' ;
1415import { TextTokensFilterModel } from '../../../components/Filters/common/filters/TextTokensFilterModel.js' ;
1516import { OverviewPageModel } from '../../../models/OverviewModel.js' ;
1617import { buildUrl } from '/js/src/index.js' ;
@@ -27,27 +28,33 @@ export class LhcPeriodsOverviewModel extends OverviewPageModel {
2728 constructor ( ) {
2829 super ( ) ;
2930
30- this . _namesFilterModel = new TextTokensFilterModel ( ) ;
31- this . _registerFilter ( this . _namesFilterModel ) ;
32- this . _yearsFilterModel = new TextTokensFilterModel ( ) ;
33- this . _registerFilter ( this . _yearsFilterModel ) ;
34- this . _pdpBeamTypesFilterModel = new TextTokensFilterModel ( ) ;
35- this . _registerFilter ( this . _pdpBeamTypesFilterModel ) ;
31+ this . _filteringModel = new FilteringModel ( {
32+ names : new TextTokensFilterModel ( ) ,
33+ years : new TextTokensFilterModel ( ) ,
34+ pdpBeamTypes : new TextTokensFilterModel ( ) ,
35+ } ) ;
36+
37+ this . _filteringModel . visualChange$ . bubbleTo ( this ) ;
38+ this . _filteringModel . observe ( ( ) => {
39+ this . _pagination . silentlySetCurrentPage ( 1 ) ;
40+ this . load ( ) ;
41+ } ) ;
3642 }
3743
3844 /**
3945 * @inheritdoc
4046 */
4147 getRootEndpoint ( ) {
42- const params = {
43- filter : {
44- names : this . _namesFilterModel . normalized ,
45- years : this . _yearsFilterModel . normalized ,
46- pdpBeamTypes : this . _pdpBeamTypesFilterModel . normalized ,
47- } ,
48- } ;
48+ return buildUrl ( '/api/lhcPeriodsStatistics' , { filter : this . _filteringModel . normalized } ) ;
49+ }
4950
50- return buildUrl ( '/api/lhcPeriodsStatistics' , params ) ;
51+ /**
52+ * Return the model managing all filters
53+ *
54+ * @return {FilteringModel } the filtering model
55+ */
56+ get filteringModel ( ) {
57+ return this . _filteringModel ;
5158 }
5259
5360 /**
@@ -66,61 +73,21 @@ export class LhcPeriodsOverviewModel extends OverviewPageModel {
6673 } ) ;
6774 }
6875
69- /**
70- * Returns lhc periods names filter model
71- * @return {TextTokensFilterModel } lhc periods names filter model
72- */
73- get namesFilterModel ( ) {
74- return this . _namesFilterModel ;
75- }
76-
77- /**
78- * Returns lhc periods years filter model
79- * @return {TextTokensFilterModel } lhc periods years filter model
80- */
81- get yearsFilterModel ( ) {
82- return this . _yearsFilterModel ;
83- }
84-
85- /**
86- * Returns lhc periods beam type filter model
87- * @return {TextTokensFilterModel } lhc periods beam type filter model
88- */
89- get pdpBeamTypesFilterModel ( ) {
90- return this . _pdpBeamTypesFilterModel ;
91- }
92-
9376 /**
9477 * Reset this model to its default
9578 *
9679 * @returns {void }
9780 */
9881 reset ( ) {
9982 super . reset ( ) ;
100- this . _namesFilterModel . reset ( ) ;
101- this . _yearsFilterModel . reset ( ) ;
102- this . _pdpBeamTypesFilterModel . reset ( ) ;
103- }
104-
105- /**
106- * Register a new filter model
107- * @param {FilterModel } filterModel the filter model to register
108- * @return {void }
109- * @private
110- */
111- _registerFilter ( filterModel ) {
112- filterModel . visualChange$ . bubbleTo ( this ) ;
113- filterModel . observe ( ( ) => {
114- this . _pagination . silentlySetCurrentPage ( 1 ) ;
115- this . load ( ) ;
116- } ) ;
83+ this . _filteringModel . reset ( ) ;
11784 }
11885
11986 /**
12087 * States whether any filter is active
12188 * @return {boolean } true if any filter is active
12289 */
12390 isAnyFilterActive ( ) {
124- return ! this . _namesFilterModel . isEmpty || ! this . _yearsFilterModel . isEmpty || ! this . _pdpBeamTypesFilterModel . isEmpty ;
91+ return this . _filteringModel . isAnyFilterActive ( ) ;
12592 }
12693}
0 commit comments