]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/CephPoolSelector.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / form / CephPoolSelector.js
1 Ext.define('PVE.form.CephPoolSelector', {
2 extend: 'Ext.form.field.ComboBox',
3 alias: 'widget.pveCephPoolSelector',
4
5 allowBlank: false,
6 valueField: 'pool_name',
7 displayField: 'pool_name',
8 editable: false,
9 queryMode: 'local',
10
11 initComponent: function() {
12 var me = this;
13
14 if (!me.nodename) {
15 throw "no nodename given";
16 }
17
18 let onlyRBDPools = ({ data }) =>
19 !data?.application_metadata || !!data?.application_metadata?.rbd;
20
21 var store = Ext.create('Ext.data.Store', {
22 fields: ['name'],
23 sorters: 'name',
24 filters: [
25 onlyRBDPools,
26 ],
27 proxy: {
28 type: 'proxmox',
29 url: '/api2/json/nodes/' + me.nodename + '/ceph/pools',
30 },
31 });
32
33 Ext.apply(me, {
34 store: store,
35 });
36
37 me.callParent();
38
39 store.load({
40 callback: function(rec, op, success) {
41 let filteredRec = rec.filter(onlyRBDPools);
42
43 if (success && filteredRec.length > 0) {
44 me.select(filteredRec[0]);
45 }
46 },
47 });
48 },
49
50 });