]> git.datanom.net - omvzfs.git/blobdiff - gui/js/omv/module/admin/storage/zfs/Overview.js
Made it possible to force create Vdevs.
[omvzfs.git] / gui / js / omv / module / admin / storage / zfs / Overview.js
index 0bad63995853a5ddcb0ed1090d861163a5a3abc0..4731124a7016385e636441a1f111fefa79fae95f 100644 (file)
@@ -95,6 +95,7 @@ Ext.define("OMV.module.admin.storage.zfs.AddPool", {
                                                break;
                                                case "raidz2":
                                                        devicesField.minSelections = 4;
+                                                       break;
                                                case "raidz3":
                                                        devicesField.minSelections = 5;
                                                break;
@@ -256,7 +257,8 @@ Ext.define("OMV.module.admin.storage.zfs.AddObject", {
                        name: "path",
                        fieldLabel: _("Prefix"),
                        allowBlank: false,
-                       readOnly: true
+                       readOnly: true,
+                       value: me.path
                },{
                        xtype: "textfield",
                        name: "name",
@@ -305,29 +307,59 @@ Ext.define("OMV.module.admin.storage.zfs.ExpandPool", {
                        readOnly: true,
                        value: me.name
                },{
-                       xtype: "textfield",
-                       name: "pool_type",
-                       fieldLabel: _("Pool type"),
+                       xtype: "combo",
+                       name: "vdevtype",
+                       fieldLabel: _("Vdev type"),
+                       queryMode: "local",
+                       store: Ext.create("Ext.data.ArrayStore", {
+                               fields: [ "value", "text" ],
+                               data: [
+                                       [ "basic", _("Basic") ],
+                                       [ "mirror", _("Mirror") ],
+                                       [ "raidz1", _("RAID-Z1") ],
+                                       [ "raidz2", _("RAID-Z2") ],
+                                       [ "raidz3", _("RAID-Z3") ]
+                               ]
+                       }),
+                       displayField: "text",
+                       valueField: "value",
                        allowBlank: false,
-                       readOnly: true,
-                       value: me.pool_type
+                       editable: false,
+                       triggerAction: "all",
+                       value: "raidz1",
+                       listeners: {
+                               scope: me,
+                               change: function(combo, value) {
+                                       var devicesField = this.findField("devices");
+                                       switch(value) {
+                                               case "basic":
+                                                       devicesField.minSelections = 1;
+                                               break;
+                                               case "mirror":
+                                                       devicesField.minSelections = 2;
+                                               break;
+                                               case "raidz1":
+                                                       devicesField.minSelections = 3;
+                                               break;
+                                               case "raidz2":
+                                                       devicesField.minSelections = 4;
+                                                       break;
+                                               case "raidz3":
+                                                       devicesField.minSelections = 5;
+                                               break;
+                                               default:
+                                                       devicesField.minSelections = 2;
+                                               break;
+                                       }
+                                       devicesField.validate();
+                               }
+                       }
                },{
                        xtype: "checkboxgridfield",
                        name: "devices",
                        fieldLabel: _("Devices"),
                        valueField: "devicefile",
-                       listeners: {
-                               scope: me,
-                               change: function(e, eOpts) {
-                                       var deviceField = this.findField("devices");
-                                       if (me.pool_type == "Basic") {
-                                               deviceField.minSelections = 1;
-                                       } else {
-                                               deviceField.minSelections = me.nr_disks;
-                                               deviceField.maxSelections = me.nr_disks;
-                                       }
-                               }
-                       },
+                       minSelections: 3, // Min. number of devices for RAIDZ-1
                        useStringValue: true,
                        height: 130,
                        store: Ext.create("OMV.data.Store", {
@@ -356,7 +388,7 @@ Ext.define("OMV.module.admin.storage.zfs.ExpandPool", {
                        }),
                        gridConfig: {
                                stateful: true,
-                               stateId: "04942d40-4ee3-11e4-916c-0800200c9a66",
+                               stateId: "05c60750-5074-11e4-916c-0800200c9a66",
                                columns: [{
                                        text: _("Device"),
                                        sortable: true,
@@ -385,6 +417,15 @@ Ext.define("OMV.module.admin.storage.zfs.ExpandPool", {
                                        flex: 1
                                }]
                        }
+               },{
+                       xtype: "checkbox",
+                       name: "force",
+                       fieldLabel: _("Force creation"),
+                       checked: false,
+                       plugins: [{
+                               ptype: "fieldinfo",
+                               text: _("Forces the creation of the Vdev even if errors are reported. Use with extreme caution!")
+                       }]
                }];
        }
 });
@@ -814,11 +855,7 @@ Ext.define("OMV.module.admin.storage.zfs.Overview", {
                var record = records[0];
                Ext.create("OMV.module.admin.storage.zfs.AddObject", {
                        title: _("Add Object"),
-                       rpcGetMethod: "passParam",
-                       rpcGetParams: {
-                               key: "path",
-                               value: record.get('path')
-                       },
+                       path: record.get("path"),
                        listeners: {
                                scope: me,
                                submit: function() {
@@ -847,9 +884,6 @@ Ext.define("OMV.module.admin.storage.zfs.Overview", {
                Ext.create("OMV.module.admin.storage.zfs.ExpandPool", {
                        title: _("Expand Pool"),
                        name: record.get("path"),
-                       type: record.get("type"),
-                       pool_type: record.get("pool_type"),
-                       nr_disks: record.get("nr_disks"),
                        listeners: {
                                scope: me,
                                submit: function() {
This page took 0.03626 seconds and 5 git commands to generate.