X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=www%2Fmanager6%2Fha%2FStatusView.js;h=c9c52bc45c70e28b763ebc49b830dc159f470715;hb=8058410f40568d46d323cd6ad3b17c3327789594;hp=980eee1e504755eb81767cb857b5106d83ae6c3a;hpb=065bb064b5ba7dde6457e71da260d906f10d2b9c;p=pve-manager.git diff --git a/www/manager6/ha/StatusView.js b/www/manager6/ha/StatusView.js index 980eee1e..c9c52bc4 100644 --- a/www/manager6/ha/StatusView.js +++ b/www/manager6/ha/StatusView.js @@ -2,30 +2,25 @@ Ext.define('PVE.ha.StatusView', { extend: 'Ext.grid.GridPanel', alias: ['widget.pveHAStatusView'], + onlineHelp: 'chapter_ha_manager', + sortPriority: { quorum: 1, master: 2, lrm: 3, - service: 4 + service: 4, }, - - initComponent : function() { + + initComponent: function() { var me = this; - me.rstore = Ext.create('PVE.data.ObjectStore', { - interval: me.interval, - model: 'pve-ha-status', - storeid: 'pve-store-' + (++Ext.idSeed), - groupField: 'type', - proxy: { - type: 'pve', - url: '/api2/json/cluster/ha/status/current' - } - }); + if (!me.rstore) { + throw "no rstore given"; + } - PVE.Utils.monStoreErrors(me, me.rstore); + Proxmox.Utils.monStoreErrors(me, me.rstore); - var store = Ext.create('PVE.data.DiffStore', { + var store = Ext.create('Proxmox.data.DiffStore', { rstore: me.rstore, sortAfterUpdate: true, sorters: [{ @@ -33,8 +28,13 @@ Ext.define('PVE.ha.StatusView', { var p1 = me.sortPriority[rec1.data.type]; var p2 = me.sortPriority[rec2.data.type]; return (p1 !== p2) ? ((p1 > p2) ? 1 : -1) : 0; - } - }] + }, + }], + filters: { + property: 'type', + value: 'service', + operator: '!=', + }, }); Ext.apply(me, { @@ -47,32 +47,45 @@ Ext.define('PVE.ha.StatusView', { { header: gettext('Type'), width: 80, - dataIndex: 'type' + dataIndex: 'type', }, { header: gettext('Status'), width: 80, flex: 1, - dataIndex: 'status' - } - ] + dataIndex: 'status', + }, + ], }); me.callParent(); me.on('activate', me.rstore.startUpdate); - me.on('hide', me.rstore.stopUpdate); - me.on('destroy', me.rstore.stopUpdate); - - } + me.on('destroy', me.rstore.stopUpdate); + }, }, function() { - Ext.define('pve-ha-status', { extend: 'Ext.data.Model', - fields: [ - 'id', 'type', 'node', 'status', 'sid' + fields: [ + 'id', 'type', 'node', 'status', 'sid', + 'state', 'group', 'comment', + 'max_restart', 'max_relocate', 'type', + 'crm_state', 'request_state', + { + name: 'vname', + convert: function(value, record) { + let sid = record.data.sid; + if (!sid) return ''; + + let res = sid.match(/^(\S+):(\S+)$/); + if (res[1] !== 'vm' && res[1] !== 'ct') { + return '-'; + } + let vmid = res[2]; + return PVE.data.ResourceStore.guestName(vmid); + }, + }, ], - idProperty: 'id' + idProperty: 'id', }); - });