From 3bcf3dda1d8a3fe2f038e589eae6e76b59fd7b21 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 3 Apr 2015 09:44:35 +0200 Subject: [PATCH] add ha fencing panel (dummy for now) --- www/manager/Makefile | 2 + www/manager/ha/Fencing.js | 47 ++++++++++++++++++++++ www/manager/ha/Groups.js | 85 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 www/manager/ha/Fencing.js create mode 100644 www/manager/ha/Groups.js diff --git a/www/manager/Makefile b/www/manager/Makefile index de6345c6..719dced8 100644 --- a/www/manager/Makefile +++ b/www/manager/Makefile @@ -167,6 +167,8 @@ JSSRC= \ storage/ZFSPoolEdit.js \ ha/StatusView.js \ ha/Resources.js \ + ha/Groups.js \ + ha/Fencing.js \ ha/Config.js \ dc/Summary.js \ dc/OptionView.js \ diff --git a/www/manager/ha/Fencing.js b/www/manager/ha/Fencing.js new file mode 100644 index 00000000..f6bd3651 --- /dev/null +++ b/www/manager/ha/Fencing.js @@ -0,0 +1,47 @@ +Ext.define('PVE.ha.FencingView', { + extend: 'Ext.grid.GridPanel', + alias: ['widget.pveFencingView'], + + initComponent : function() { + var me = this; + + var store = new Ext.data.Store({ + model: 'pve-ha-fencing', + data: [] + }); + + Ext.apply(me, { + store: store, + stateful: false, + viewConfig: { + trackOver: false, + deferEmptyText: false, + emptyText: 'Use watchgog based fencing.' + }, + columns: [ + { + header: 'Node', + width: 100, + sortable: true, + dataIndex: 'node' + }, + { + header: gettext('Command'), + flex: 1, + dataIndex: 'command' + } + ] + }); + + me.callParent(); + } +}, function() { + + Ext.define('pve-ha-fencing', { + extend: 'Ext.data.Model', + fields: [ + 'node', 'command', 'digest' + ] + }); + +}); diff --git a/www/manager/ha/Groups.js b/www/manager/ha/Groups.js new file mode 100644 index 00000000..acfc46bf --- /dev/null +++ b/www/manager/ha/Groups.js @@ -0,0 +1,85 @@ +Ext.define('PVE.ha.GroupsView', { + extend: 'Ext.grid.GridPanel', + alias: ['widget.pveHAGroupsView'], + + initComponent : function() { + var me = this; + + var store = new Ext.data.Store({ + model: 'pve-ha-groups', + proxy: { + type: 'pve', + url: "/api2/json/cluster/ha/groups" + }, + sorters: { + property: 'group', + order: 'DESC' + } + }); + + var reload = function() { + store.load(); + }; + + var sm = Ext.create('Ext.selection.RowModel', {}); + + Ext.apply(me, { + store: store, + selModel: sm, + stateful: false, + viewConfig: { + trackOver: false + }, + columns: [ + { + header: gettext('Group'), + width: 150, + sortable: true, + dataIndex: 'group' + }, + { + header: gettext('restricted'), + width: 100, + sortable: true, + renderer: PVE.Utils.format_boolean, + dataIndex: 'restricted' + }, + { + header: gettext('nofailback'), + width: 100, + sortable: true, + renderer: PVE.Utils.format_boolean, + dataIndex: 'nofailback' + }, + { + header: gettext('Nodes'), + width: 500, + sortable: false, + dataIndex: 'nodes' + }, + { + header: gettext('Description'), + flex: 1, + dataIndex: 'comment' + } + ], + listeners: { + show: reload +// itemdblclick: run_editor + } + }); + + me.callParent(); + } +}, function() { + + Ext.define('pve-ha-groups', { + extend: 'Ext.data.Model', + fields: [ + 'group', 'type', 'restricted', 'digest', 'nofailback', + 'nodes', 'comment' + ], + idProperty: 'group' + }); + +});