Ext.define('PVE.form.FileSelector', {
- extend: 'PVE.form.ComboGrid',
+ extend: 'Proxmox.form.ComboGrid',
alias: 'widget.pveFileSelector',
+ editable: true,
+ anyMatch: true,
+ forceSelection: true,
+
+ listeners: {
+ afterrender: function() {
+ var me = this;
+ if (!me.disabled) {
+ me.setStorage(me.storage, me.nodename);
+ }
+ },
+ },
+
setStorage: function(storage, nodename) {
var me = this;
var change = false;
- if (storage && (me.storage !== storage)) {
+ if (storage && me.storage !== storage) {
me.storage = storage;
change = true;
}
- if (nodename && (me.nodename !== nodename)) {
+ if (nodename && me.nodename !== nodename) {
me.nodename = nodename;
change = true;
}
}
me.store.setProxy({
- type: 'pve',
- url: url
+ type: 'proxmox',
+ url: url,
});
+ me.store.removeAll();
me.store.load();
},
- initComponent: function() {
- var me = this;
-
- var store = Ext.create('Ext.data.Store', {
- model: 'pve-storage-content'
- });
+ setNodename: function(nodename) {
+ this.setStorage(undefined, nodename);
+ },
- Ext.apply(me, {
- store: store,
- allowBlank: false,
- autoSelect: false,
- valueField: 'volid',
- displayField: 'text',
- listConfig: {
- columns: [
- {
- header: gettext('Name'),
- dataIndex: 'text',
- hideable: false,
- flex: 1
- },
- {
- header: gettext('Format'),
- width: 60,
- dataIndex: 'format'
- },
- {
- header: gettext('Size'),
- width: 60,
- dataIndex: 'size',
- renderer: PVE.Utils.format_size
- }
- ]
- }
- });
+ store: {
+ model: 'pve-storage-content',
+ },
- me.callParent();
+ allowBlank: false,
+ autoSelect: false,
+ valueField: 'volid',
+ displayField: 'text',
- me.setStorage(me.storage, me.nodename);
- }
+ listConfig: {
+ width: 600,
+ columns: [
+ {
+ header: gettext('Name'),
+ dataIndex: 'text',
+ hideable: false,
+ flex: 1,
+ },
+ {
+ header: gettext('Format'),
+ width: 60,
+ dataIndex: 'format',
+ },
+ {
+ header: gettext('Size'),
+ width: 100,
+ dataIndex: 'size',
+ renderer: Proxmox.Utils.format_size,
+ },
+ ],
+ },
});