-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathEnvironmentOverviewModel.js
More file actions
65 lines (61 loc) · 2.31 KB
/
Copy pathEnvironmentOverviewModel.js
File metadata and controls
65 lines (61 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/**
* @license
* Copyright CERN and copyright holders of ALICE O2. This software is
* distributed under the terms of the GNU General Public License v3 (GPL
* Version 3), copied verbatim in the file "COPYING".
*
* See http://alice-o2.web.cern.ch/license for full licensing information.
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/
import { TimeRangeInputModel } from '../../../components/Filters/common/filters/TimeRangeInputModel.js';
import { RawTextFilterModel } from '../../../components/Filters/common/filters/RawTextFilterModel.js';
import { coloredEnvironmentStatusComponent } from '../ColoredEnvironmentStatusComponent.js';
import { StatusAcronym } from '../../../domain/enums/statusAcronym.mjs';
import { SelectionModel } from '../../../components/common/selection/SelectionModel.js';
import { FilterableOverviewPageModel } from '../../../models/FilterableOverviewPageModel.js';
/**
* Environment overview page model
*/
export class EnvironmentOverviewModel extends FilterableOverviewPageModel {
/**
* Constructor
* @param {Model} model global model
* @param {string} pageIdentifier string that indicates what page this model represents
*/
constructor(model, pageIdentifier) {
super(
model.router,
pageIdentifier,
{
created: new TimeRangeInputModel(),
runNumbers: new RawTextFilterModel(),
statusHistory: new RawTextFilterModel(),
currentStatus: new SelectionModel({
availableOptions: Object.keys(StatusAcronym).map((status) => ({
value: status,
label: coloredEnvironmentStatusComponent(status),
rawLabel: status,
})),
}),
ids: new RawTextFilterModel(),
},
);
}
/**
* @inheritDoc
*/
getRootEndpoint() {
return this.buildRootEndpoint('/api/environments');
}
/**
* Returns the current environments list as remote data
*
* @return {RemoteData} the environments list
*/
get environments() {
return this.items;
}
}