]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/window/DiskSmart.js
9096fec3e664dc2ff284a2361ddf271e3af06303
1 Ext
.define('Proxmox.window.DiskSmart', {
2 extend
: 'Ext.window.Window',
3 alias
: 'widget.pmxSmartWindow',
22 emptyText
: gettext('No S.M.A.R.T. Values'),
26 reserveScrollbar
: true,
34 text
: gettext('Attribute'),
37 renderer
: Ext
.String
.htmlEncode
,
40 text
: gettext('Value'),
41 dataIndex
: 'real-value',
42 renderer
: Ext
.String
.htmlEncode
,
45 text
: gettext('Normalized'),
46 dataIndex
: 'real-normalized',
50 text
: gettext('Threshold'),
51 dataIndex
: 'threshold',
55 text
: gettext('Worst'),
60 text
: gettext('Flags'),
64 text
: gettext('Failing'),
66 renderer
: Ext
.String
.htmlEncode
,
72 itemId
: 'smartPlainText',
78 'font-family': 'monospace',
85 text
: gettext('Reload'),
89 me
.up('window').store
.reload();
93 text
: gettext('Close'),
97 me
.up('window').close();
102 initComponent: function() {
106 throw "no baseurl specified";
109 throw "no device specified";
112 me
.title
= `${gettext('S.M.A.R.T. Values')} (${me.dev})`;
114 me
.store
= Ext
.create('Ext.data.Store', {
115 model
: 'pmx-disk-smart',
118 url
: `${me.baseurl}/smart?disk=${me.dev}`,
124 let grid
= me
.down('#smartGrid'), plainText
= me
.down('#smartPlainText');
126 Proxmox
.Utils
.monStoreErrors(grid
, me
.store
);
127 me
.mon(me
.store
, 'load', function(_store
, records
, success
) {
128 if (!success
|| records
.length
<= 0) {
129 return; // FIXME: clear displayed info?
131 let isPlainText
= records
[0].data
.type
=== 'text';
133 plainText
.setHtml(Ext
.String
.htmlEncode(records
[0].data
.text
));
135 grid
.setStore(records
[0].attributes());
137 grid
.setVisible(!isPlainText
);
138 plainText
.setVisible(isPlainText
);
144 Ext
.define('pmx-disk-smart', {
145 extend
: 'Ext.data.Model',
151 hasMany
: { model
: 'pmx-smart-attribute', name
: 'attributes' },
153 Ext
.define('pmx-smart-attribute', {
154 extend
: 'Ext.data.Model',
156 { name
: 'id', type
: 'number' }, 'name', 'value', 'worst', 'threshold', 'flags', 'fail',
160 // FIXME remove with next major release (PBS 3.0)
161 calculate
: data
=> data
.raw
?? data
.value
,
164 name
: 'real-normalized',
165 // FIXME remove with next major release (PBS 3.0)
166 calculate
: data
=> data
.normalized
?? data
.value
,