From 7d4d8f47c95810e51fad46ee9818d0e758113f32 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 29 Nov 2021 15:39:40 +0100 Subject: [PATCH] ui: add GroupSelector to select either a group from a datastore for now it is expected to set the data in the store manually Signed-off-by: Dominik Csapak --- www/Makefile | 1 + www/form/GroupSelector.js | 54 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 www/form/GroupSelector.js diff --git a/www/Makefile b/www/Makefile index 616c3e12..c975387c 100644 --- a/www/Makefile +++ b/www/Makefile @@ -42,6 +42,7 @@ JSSRC= \ form/DataStoreSelector.js \ form/CalendarEvent.js \ form/PermissionPathSelector.js \ + form/GroupSelector.js \ data/RunningTasksStore.js \ button/TaskButton.js \ config/UserView.js \ diff --git a/www/form/GroupSelector.js b/www/form/GroupSelector.js new file mode 100644 index 00000000..4bf51104 --- /dev/null +++ b/www/form/GroupSelector.js @@ -0,0 +1,54 @@ +Ext.define('pbs-groups', { + extend: 'Ext.data.Model', + fields: [ + 'backup-type', + 'backup-id', + { + name: 'group', + type: 'string', + convert: function(value, record) { + if (record.data['backup-type'] && record.data['backup-id']) { + return `${record.data['backup-type']}/${record.data['backup-id']}`; + } + return value; + }, + }, + ], + proxy: { + type: 'proxmox', + }, +}); + +Ext.define('PBS.form.GroupSelector', { + extend: 'Proxmox.form.ComboGrid', + alias: 'widget.pbsGroupSelector', + + allowBlank: false, + autoSelect: false, + notFoundIsValid: true, + editable: true, + valueField: 'group', + displayField: 'group', + + store: { + sorters: 'group', + model: 'pbs-groups', + }, + + listConfig: { + minHeight: 80, + emptyText: gettext('No Groups'), + viewConfig: { + deferEmptyText: false, + }, + columns: [ + { + header: gettext('Group'), + sortable: true, + dataIndex: 'group', + renderer: Ext.String.htmlEncode, + flex: 1, + }, + ], + }, +});