]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
(multi) disk selector: allow requesting partitions too
authorFabian Ebner <f.ebner@proxmox.com>
Tue, 28 Sep 2021 11:39:51 +0000 (13:39 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 30 Sep 2021 16:14:24 +0000 (18:14 +0200)
No functional change for existing users is intended.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
src/form/DiskSelector.js
src/form/MultiDiskSelector.js

index 4552bebc1147b6b76ba51e7c58337dce7fb79985..3292661896d9e6381714c8d453054a2d26477c99 100644 (file)
@@ -8,6 +8,9 @@ Ext.define('Proxmox.form.DiskSelector', {
     // journal_disk: all disks with gpt
     diskType: undefined,
 
+    // use include-partitions=1 as a parameter
+    includePartitions: false,
+
     // the property the backend wnats for the type ('type' by default)
     typeProperty: 'type',
 
@@ -53,6 +56,10 @@ Ext.define('Proxmox.form.DiskSelector', {
            extraParams[me.typeProperty] = me.diskType;
        }
 
+       if (me.includePartitions) {
+           extraParams['include-partitions'] = 1;
+       }
+
        var store = Ext.create('Ext.data.Store', {
            filterOnLoad: true,
            model: 'pmx-disk-list',
index 9e989a43bf4477b38bcd29fc17d6e5d53478bedd..88cdc807c85adc90feab6b1ea44b6ef07dec4b58 100644 (file)
@@ -24,6 +24,9 @@ Ext.define('Proxmox.form.MultiDiskSelector', {
     // the type of disks to show
     diskType: 'unused',
 
+    // add include-partitions=1 as a request parameter
+    includePartitions: false,
+
     disks: [],
 
     allowBlank: false,
@@ -141,22 +144,31 @@ Ext.define('Proxmox.form.MultiDiskSelector', {
     initComponent: function() {
        let me = this;
 
+       let extraParams = {};
+
        if (!me.url) {
            if (!me.nodename) {
                throw "no url or nodename given";
            }
 
-           let node = me.nodename;
-           let param = me.typeParameter;
-           let type = me.diskType;
-           me.url = `/api2/json/nodes/${node}/disks/list?${param}=${type}`;
+           me.url = `/api2/json/nodes/${me.nodename}/disks/list`;
+
+           extraParams[me.typeParameter] = me.diskType;
+
+           if (me.includePartitions) {
+               extraParams['include-partitions'] = 1;
+           }
        }
 
        me.disks = [];
 
        me.callParent();
        let store = me.getStore();
-       store.getProxy().setUrl(me.url);
+       store.setProxy({
+           type: 'proxmox',
+           url: me.url,
+           extraParams,
+       });
        store.load();
        store.sort({ property: me.valueField });
     },