--- /dev/null
+Ext.define('PVE.ha.GroupSelector', {
+ extend: 'PVE.form.ComboGrid',
+ alias: ['widget.pveHAGroupSelector'],
+
+ initComponent: function() {
+ var me = this;
+
+ var store = new Ext.data.Store({
+ model: 'pve-ha-groups',
+ sorters: {
+ property: 'group',
+ order: 'DESC'
+ }
+ });
+
+ Ext.apply(me, {
+ store: store,
+ autoSelect: false,
+ valueField: 'group',
+ displayField: 'group',
+ listConfig: {
+ columns: [
+ {
+ header: gettext('Group'),
+ width: 100,
+ sortable: true,
+ dataIndex: 'group'
+ },
+ {
+ header: gettext('Nodes'),
+ width: 100,
+ sortable: false,
+ dataIndex: 'nodes'
+ },
+ {
+ header: gettext('Comment'),
+ flex: 1,
+ dataIndex: 'comment'
+ }
+ ]
+ }
+ });
+
+ me.callParent();
+
+ store.load();
+ }
+
+}, function() {
+
+ Ext.define('pve-ha-groups', {
+ extend: 'Ext.data.Model',
+ fields: [
+ 'group', 'type', 'restricted', 'digest', 'nofailback',
+ 'nodes', 'comment'
+ ],
+ proxy: {
+ type: 'pve',
+ url: "/api2/json/cluster/ha/groups"
+ },
+ idProperty: 'group'
+ });
+});
var store = new Ext.data.Store({
model: 'pve-ha-groups',
- proxy: {
- type: 'pve',
- url: "/api2/json/cluster/ha/groups"
- },
sorters: {
property: 'group',
order: 'DESC'
me.callParent();
}
-}, function() {
-
- Ext.define('pve-ha-groups', {
- extend: 'Ext.data.Model',
- fields: [
- 'group', 'type', 'restricted', 'digest', 'nofailback',
- 'nodes', 'comment'
- ],
- idProperty: 'group'
- });
-
});
if (me.create) {
values.type = 'vm';
values.sid = values.vmid;
- delete values['delete']; // ignore
+ }
+
+ if (values.group === '') {
+ if (!me.create) {
+ values['delete'] = values['delete'] ? ',group' : 'group';
+ }
+ delete values.group;
}
delete values.vmid;
me.column2 = [
{
- xtype: 'pvetextfield', // fixme: group selector
+ xtype: 'pveHAGroupSelector',
name: 'group',
value: '',
- deleteEmpty: true,
fieldLabel: gettext('Group')
},
{