[pve-devel] [PATCH manager 2/2] ui: add network selector widget
Thomas Lamprecht
t.lamprecht at proxmox.com
Fri May 31 15:21:44 CEST 2019
this could be useful for PMG too, so maybe it'd fit better
in widget toolit? IIRC, the same API call could be used so
ideally not a change is needed.. Would that make sense, and
if so could you try to add it there? Looks OK from a quick
glance over it, thanks!
Am 5/31/19 um 1:41 PM schrieb Tim Marx:
> Signed-off-by: Tim Marx <t.marx at proxmox.com>
> ---
> www/manager6/Makefile | 1 +
> www/manager6/form/NetworkSelector.js | 77 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 78 insertions(+)
> create mode 100644 www/manager6/form/NetworkSelector.js
>
> diff --git a/www/manager6/Makefile b/www/manager6/Makefile
> index 2f25a83f..422dd463 100644
> --- a/www/manager6/Makefile
> +++ b/www/manager6/Makefile
> @@ -38,6 +38,7 @@ JSSRC= \
> form/ViewSelector.js \
> form/NodeSelector.js \
> form/FileSelector.js \
> + form/NetworkSelector.js \
> form/StorageSelector.js \
> form/DiskStorageSelector.js \
> form/BridgeSelector.js \
> diff --git a/www/manager6/form/NetworkSelector.js b/www/manager6/form/NetworkSelector.js
> new file mode 100644
> index 00000000..d73f5fe6
> --- /dev/null
> +++ b/www/manager6/form/NetworkSelector.js
> @@ -0,0 +1,77 @@
> +Ext.define('PVE.form.NetworkSelectorController', {
> + extend: 'Ext.app.ViewController',
> + alias: 'controller.networkSelectorController',
> +
> + init: function (view) {
> + var me = this;
> +
> + if (!view.nodename) {
> + throw "missing custom view config: nodename";
> + }
> + view.getStore().getProxy().setUrl('/api2/json/nodes/'+ view.nodename + '/network');
> + },
> + initViewModel: function(vm) {
> + var view = this.getView();
> + vm.set('nodename', view.nodename);
> + }
> +});
> +
> +Ext.define('PVE.form.NetworkSelector', {
> + extend: 'Proxmox.form.ComboGrid',
> + alias: 'widget.pveNetworkSelector',
> +
> + nodename: undefined,
> + controller: 'networkSelectorController',
> + viewmodel: {
> + data: {
> + nodename: undefined
> + }
> + },
> + // set default value to empty array, else it inits it with
> + // null and after the store load it is an empty array,
> + // triggering dirtychange
> + value: [],
> + valueField: 'cidr',
> + displayField: 'cidr',
> + store: {
> + autoLoad: true,
> + fields: [ 'active', 'address', 'cidr', 'comments', 'iface', 'slaves', 'type' ],
> + proxy: {
> + type: 'proxmox'
> + },
> + sorters: [
> + {
> + property : 'iface',
> + direction: 'ASC'
> + }
> + ],
> + filters: [
> + function(item) {
> + return item.data.cidr;
> + }
> + ]
> + },
> + listConfig: {
> + columns: [
> + {
> + header: gettext('Interface'),
> + sortable: true,
> + width: 70,
> + dataIndex: 'iface'
> + },
> + {
> + header: gettext('CIDR'),
> + dataIndex: 'cidr',
> + sortable: true,
> + hideable: false,
> + flex: 1
> + },
> + {
> + header: gettext('Comment'),
> + sortable: true,
> + width: 100,
> + dataIndex: 'comments'
> + }
> + ]
> + }
> +});
>
More information about the pve-devel
mailing list