]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/RBDEdit.js
1 Ext
.define('PVE.storage.Ceph.Model', {
2 extend
: 'Ext.app.ViewModel',
3 alias
: 'viewmodel.cephstorage',
11 Ext
.define('PVE.storage.Ceph.Controller', {
12 extend
: 'PVE.controller.StorageEdit',
13 alias
: 'controller.cephstorage',
17 afterrender
: 'queryMonitors'
19 'textfield[name=username]': {
22 'displayfield[name=monhost]': {
23 enable
: 'queryMonitors'
25 'textfield[name=monhost]': {
26 disable
: 'resetField',
30 resetField: function(field
) {
33 queryMonitors: function(field
, newVal
, oldVal
) {
34 // we get called with two signatures, the above one for a field
35 // change event and the afterrender from the view, this check only
36 // can be true for the field change one and omit the API request if
37 // pveceph got unchecked - as it's not needed there.
38 if (field
&& !newVal
&& oldVal
) {
41 var view
= this.getView();
42 var vm
= this.getViewModel();
43 if (!(view
.isCreate
|| vm
.get('pveceph'))) {
44 return; // only query on create or if editing a pveceph store
47 var monhostField
= this.lookupReference('monhost');
49 Proxmox
.Utils
.API2Request({
50 url
: '/api2/json/nodes/localhost/ceph/mon',
53 callback: function(options
, success
, response
) {
54 var data
= response
.result
.data
;
55 if (response
.status
=== 200) {
56 if (data
.length
> 0) {
57 var monhost
= Ext
.Array
.pluck(data
, 'name').sort().join(',');
58 monhostField
.setValue(monhost
);
59 monhostField
.resetOriginalValue();
61 vm
.set('pvecephPossible', true);
64 vm
.set('pveceph', false);
67 vm
.set('pveceph', false);
68 vm
.set('pvecephPossible', false);
75 Ext
.define('PVE.storage.RBDInputPanel', {
76 extend
: 'PVE.panel.StorageBase',
77 controller
: 'cephstorage',
79 onlineHelp
: 'ceph_rados_block_devices',
85 setValues: function(values
) {
87 this.viewModel
.set('pveceph', false);
88 this.lookupReference('pvecephRef').setValue(false);
89 this.lookupReference('pvecephRef').resetOriginalValue();
91 this.callParent([values
]);
94 initComponent : function() {
98 me
.nodename
= 'localhost';
106 xtype
: 'pveCephPoolSelector',
107 nodename
: me
.nodename
,
110 disabled
: '{!pveceph}',
111 submitValue
: '{pveceph}',
114 fieldLabel
: gettext('Pool'),
121 disabled
: '{pveceph}',
122 submitValue
: '{!pveceph}',
125 fieldLabel
: gettext('Pool'),
130 xtype
: 'displayfield',
131 nodename
: me
.nodename
,
133 fieldLabel
: gettext('Pool'),
144 disabled
: '{pveceph}',
145 submitValue
: '{!pveceph}',
149 fieldLabel
: 'Monitor(s)',
153 xtype
: 'displayfield',
154 reference
: 'monhost',
156 disabled
: '{!pveceph}',
160 fieldLabel
: 'Monitor(s)'
163 xtype
: me
.isCreate
? 'textfield' : 'displayfield',
166 disabled
: '{pveceph}',
167 submitValue
: '{!pveceph}'
170 fieldLabel
: gettext('User name'),
177 xtype
: 'pveContentTypeSelector',
178 cts
: ['images', 'rootdir'],
179 fieldLabel
: gettext('Content'),
186 xtype
: 'proxmoxcheckbox',
194 xtype
: 'proxmoxcheckbox',
196 reference
: 'pvecephRef',
198 disabled
: '{!pvecephPossible}',
204 hidden
: !me
.isCreate
,
205 boxLabel
: gettext('Use Proxmox VE managed hyper-converged ceph pool')