diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 6c3efe0d..372e08af 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -72,6 +72,7 @@ JSSRC= \ form/VMSelector.js \ form/USBSelector.js \ form/CalendarEvent.js \ + form/CephPoolSelector.js \ dc/Tasks.js \ dc/Log.js \ panel/StatusPanel.js \ diff --git a/www/manager6/form/CephPoolSelector.js b/www/manager6/form/CephPoolSelector.js new file mode 100644 index 00000000..e66221d5 --- /dev/null +++ b/www/manager6/form/CephPoolSelector.js @@ -0,0 +1,42 @@ +Ext.define('PVE.form.CephPoolSelector', { + extend: 'Ext.form.field.ComboBox', + alias: 'widget.pveCephPoolSelector', + + allowBlank: false, + valueField: 'pool_name', + displayField: 'pool_name', + editable: false, + queryMode: 'local', + + initComponent: function() { + var me = this; + + if (!me.nodename) { + throw "no nodename given"; + } + + var store = Ext.create('Ext.data.Store', { + fields: ['name'], + sorters: 'name', + proxy: { + type: 'pve', + url: '/api2/json/nodes/' + me.nodename + '/ceph/pools' + } + }); + + Ext.apply(me, { + store: store + }); + + me.callParent(); + + store.load({ + callback: function(rec, op, success){ + if (success && rec.length > 0) { + me.select(rec[0]); + } + } + }); + } + +});