]>
git.proxmox.com Git - pmg-gui.git/blob - js/StatTimeSelector.js
1 Ext
.define('PMG.StatTimeSelector', {
2 extend
: 'Ext.container.Container',
3 xtype
: 'pmgStatTimeSelector',
6 selected_year
: undefined,
7 selected_month
: undefined,
8 selected_day
: undefined,
10 initSelected: function() {
11 let today
= new Date();
12 this.selected_year
= today
.getFullYear();
13 this.selected_month
= today
.getMonth() + 1;
14 this.selected_day
= today
.getDate();
17 getTimeSpan: function() {
18 if (this.selected_year
=== undefined) {
21 const year
= this.selected_year
;
22 const month
= this.selected_month
;
23 const day
= this.selected_day
;
25 let starttime
, endtime
;
27 starttime
= new Date(year
, 0);
28 endtime
= new Date(year
+ 1, 0);
30 starttime
= new Date(year
, month
- 1);
31 endtime
= new Date(year
, month
);
33 starttime
= new Date(year
, month
- 1, day
);
34 endtime
= new Date(year
, month
- 1, day
+ 1);
38 starttime
: (starttime
.getTime() / 1000).toFixed(0),
39 endtime
: (endtime
.getTime() / 1000).toFixed(0),
49 xclass
: 'Ext.app.ViewController',
51 updateVisibility: function() {
52 let view
= this.getView();
54 let yearsel
= this.lookupReference('yearsel');
55 let monthsel
= this.lookupReference('monthsel');
56 let daysel
= this.lookupReference('daysel');
58 let year
= yearsel
.getValue();
59 let month
= monthsel
.getValue();
60 daysel
.setVisible(month
!== 0);
64 let day
= daysel
.getValue();
66 let statics
= Ext
.getClass(view
);
68 statics
.selected_year
= year
;
69 statics
.selected_month
= month
;
70 statics
.selected_day
= day
;
72 let data
= statics
.getTimeSpan();
73 Ext
.GlobalEvents
.fireEvent('pmgStatTimeSelectorUpdate', data
);
76 updateMaxDays: function() {
77 let year
= this.lookup('yearsel').getValue();
78 let month
= this.lookup('monthsel').getValue();
79 // get last day of current month by wrapping back day 0 from next (zero indexed) month
80 let maxDays
= new Date(year
, month
, 0).getDate();
81 this.lookup('daysel').getStore().setFilters([{
88 onSelect: function() {
90 this.updateVisibility();
93 init: function(view
) {
94 let statics
= Ext
.getClass(view
);
96 let yearsel
= this.lookupReference('yearsel');
97 let monthsel
= this.lookupReference('monthsel');
98 let daysel
= this.lookupReference('daysel');
100 yearsel
.setValue(statics
.selected_year
);
101 monthsel
.setValue(statics
.selected_month
);
102 daysel
.setValue(statics
.selected_month
? statics
.selected_day
: 0);
104 this.updateVisibility();
111 reference
: 'yearsel',
115 let today
= new Date();
116 let year
= today
.getFullYear();
117 return [{ year
: year
}, { year
: year
-1 }, { year
: year
-2 }];
120 listeners
: { select
: 'onSelect' },
121 value
: new Date().getFullYear(),
123 displayField
: 'year',
129 reference
: 'monthsel',
131 fields
: ['month', 'name'],
134 let data
= [{ month
: 0, name
: gettext('Whole year') }];
135 for (i
= 1; i
<= 12; i
++) {
136 data
.push({ month
: i
, name
: Ext
.Date
.monthNames
[i
-1] });
141 listeners
: { select
: 'onSelect' },
143 displayField
: 'name',
151 fields
: ['day', 'name'],
154 let data
= [{ day
: 0, name
: gettext('Whole month') }];
155 for (i
= 1; i
<= 31; i
++) {
156 data
.push({ day
: i
, name
: i
});
161 listeners
: { select
: 'onSelect' },
163 displayField
: 'name',