]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/form/FileSelector.js
fix #4239: ui: show selected but non-existing vmids in backup edit
[pve-manager.git] / www / manager6 / form / FileSelector.js
index a0fc4bb24dc63dcf403f2e63126c4c9bbe3debf7..ef2bedf9921f670c5a398defaea2038a9a179422 100644 (file)
@@ -1,17 +1,30 @@
 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;
        }
@@ -26,51 +39,47 @@ Ext.define('PVE.form.FileSelector', {
        }
 
        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,
+           },
+       ],
+    },
 });