]> git.proxmox.com Git - pve-manager.git/commitdiff
copy form/FileSelector.js from manager to manager5
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 3 Jul 2015 09:29:11 +0000 (11:29 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 3 Jul 2015 09:29:11 +0000 (11:29 +0200)
www/manager5/form/FileSelector.js [new file with mode: 0644]

diff --git a/www/manager5/form/FileSelector.js b/www/manager5/form/FileSelector.js
new file mode 100644 (file)
index 0000000..50f9442
--- /dev/null
@@ -0,0 +1,76 @@
+Ext.define('PVE.form.FileSelector', {
+    extend: 'PVE.form.ComboGrid',
+    alias: ['widget.pveFileSelector'],
+
+    setStorage: function(storage, nodename) {
+       var me = this;
+
+       var change = false;
+       if (storage && (me.storage !== storage)) {
+           me.storage = storage;
+           change = true;
+       }
+
+       if (nodename && (me.nodename !== nodename)) {
+           me.nodename = nodename;
+           change = true;
+       }
+
+       if (!(me.storage && me.nodename && change)) {
+           return;
+       }
+
+       var url = '/api2/json/nodes/' + me.nodename + '/storage/' + me.storage + '/content';
+       if (me.storageContent) {
+           url += '?content=' + me.storageContent;
+       }
+
+       me.store.setProxy({
+           type: 'pve',
+           url: url
+       });
+
+       me.store.load();
+    },
+
+    initComponent: function() {
+       var me = this;
+
+       var store = Ext.create('Ext.data.Store', {
+           model: 'pve-storage-content'
+       });
+
+       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 
+                   }
+               ]
+           }
+       });
+
+        me.callParent();
+
+       me.setStorage(me.storage, me.nodename);
+    }
+});