[Kimchi-devel] [PATCH v3 1/2] Github bug #307: add storage pool type list - JS changes

Daniel Barboza danielhb at linux.vnet.ibm.com
Tue Mar 4 11:16:57 UTC 2014


From: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>

The changes in ui/js/src/kimchi.storagepool_add_main.js were made
to relieve the storage pool type dropbox from the return of the
ajax call to retrieve the available partitions of the host.

The dropbox will always have all the options displayed. In case
of the LOGICAL pool type the user won't be able to proceed with
the creation of the pool if no partitions are found. A message
is being displayed to warn the user.

Signed-off-by: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>
---
 ui/js/src/kimchi.storagepool_add_main.js | 174 ++++++++++++++++---------------
 1 file changed, 89 insertions(+), 85 deletions(-)

diff --git a/ui/js/src/kimchi.storagepool_add_main.js b/ui/js/src/kimchi.storagepool_add_main.js
index 0cc5349..10833be 100644
--- a/ui/js/src/kimchi.storagepool_add_main.js
+++ b/ui/js/src/kimchi.storagepool_add_main.js
@@ -23,6 +23,21 @@ kimchi.storagepool_add_main = function() {
 };
 
 kimchi.initStorageAddPage = function() {
+    kimchi.listHostPartitions(function(data) {
+        if (data.length > 0) {
+            var deviceHtml = $('#partitionTmpl').html();
+            var listHtml = '';
+            $.each(data, function(index, value) {
+                if (value.type === 'part' || value.type === 'disk') {
+                    listHtml += kimchi.template(deviceHtml, value);
+                }
+            });
+            $('.host-partition').html(listHtml);
+        } else {
+            $('.host-partition').html(i18n['KCHPOOL6011M']);
+        }
+    });
+
     $('#poolTypeId').selectMenu();
     $('#serverComboboxId').combobox();
     $('#targetFilterSelectId').filterselect();
@@ -32,105 +47,94 @@ kimchi.initStorageAddPage = function() {
     }, {
         label : "NFS",
         value : "netfs"
-    } ,{
+    }, {
         label : "iSCSI",
         value : "iscsi"
+    }, {
+        label : "LOGICAL",
+        value : "logical"
     } ];
-    kimchi.listHostPartitions(function(data) {
+    $('#poolTypeId').selectMenu("setData", options);
+ 
+    kimchi.getStorageServers('netfs', function(data) {
+        var serverContent = [];
         if (data.length > 0) {
-            options.push({
-                label : "LOGICAL",
-                value : "logical"
-            });
-            var deviceHtml = $('#partitionTmpl').html();
-            var listHtml = '';
             $.each(data, function(index, value) {
-                if (value.type === 'part' || value.type === 'disk') {
-                    listHtml += kimchi.template(deviceHtml, value);
-                }
-            });
-            $('.host-partition').html(listHtml);
-        }
-        $('#poolTypeId').selectMenu("setData", options);
-        kimchi.getStorageServers('netfs', function(data) {
-            var serverContent = [];
-            if (data.length > 0) {
-                $.each(data, function(index, value) {
-                    serverContent.push({
-                        label : value.host,
-                        value : value.host
-                    });
-                });
-            }
-            $('#serverComboboxId').combobox("setData", serverContent);
-            $('input[name=nfsServerType]').change(function() {
-                if ($(this).val() === 'input') {
-                    $('#nfsServerInputDiv').removeClass('tmpl-html');
-                    $('#nfsServerChooseDiv').addClass('tmpl-html');
-                } else {
-                    $('#nfsServerInputDiv').addClass('tmpl-html');
-                    $('#nfsServerChooseDiv').removeClass('tmpl-html');
-                }
-            });
-            $('#nfsserverId').on("change keyup",function() {
-                if ($(this).val() !== '' && kimchi.isServer($(this).val())) {
-                    $('#nfspathId').prop('disabled',false);
-                    $(this).removeClass("invalid-field");
-                } else {
-                    $(this).addClass("invalid-field");
-                    $('#nfspathId').prop( "disabled",true);
-                }
-                $('#targetFilterSelectId').filterselect('clear');
-            });
-            $('#nfspathId').focus(function() {
-                var targetContent = [];
-                kimchi.getStorageTargets($('#nfsserverId').val(), 'netfs', function(data) {
-                    if (data.length > 0) {
-                        $.each(data, function(index, value) {
-                            targetContent.push({
-                                label : value.target,
-                                value : value.target
-                            });
-                        });
-                    }
-                    $('#targetFilterSelectId').filterselect("setData", targetContent);
+                serverContent.push({
+                    label : value.host,
+                    value : value.host
                 });
             });
-        });
-        $('#poolTypeInputId').change(function() {
-            if ($(this).val() === 'dir') {
-                $('.path-section').removeClass('tmpl-html');
-                $('.logical-section').addClass('tmpl-html');
-                $('.nfs-section').addClass('tmpl-html');
-                $('.iscsi-section').addClass('tmpl-html');
-            } else if ($(this).val() === 'netfs') {
-                $('.path-section').addClass('tmpl-html');
-                $('.logical-section').addClass('tmpl-html');
-                $('.nfs-section').removeClass('tmpl-html');
-                $('.iscsi-section').addClass('tmpl-html');
-            } else if ($(this).val() === 'iscsi') {
-                $('.path-section').addClass('tmpl-html');
-                $('.logical-section').addClass('tmpl-html');
-                $('.nfs-section').addClass('tmpl-html');
-                $('.iscsi-section').removeClass('tmpl-html');
-            } else if ($(this).val() === 'logical') {
-                $('.path-section').addClass('tmpl-html');
-                $('.logical-section').removeClass('tmpl-html');
-                $('.nfs-section').addClass('tmpl-html');
-                $('.iscsi-section').addClass('tmpl-html');
+        }
+        $('#serverComboboxId').combobox("setData", serverContent);
+        $('input[name=nfsServerType]').change(function() {
+            if ($(this).val() === 'input') {
+                $('#nfsServerInputDiv').removeClass('tmpl-html');
+                $('#nfsServerChooseDiv').addClass('tmpl-html');
+            } else {
+                $('#nfsServerInputDiv').addClass('tmpl-html');
+                $('#nfsServerChooseDiv').removeClass('tmpl-html');
             }
         });
-        $('#authId').click(function() {
-            if ($(this).prop("checked")) {
-                $('.authenticationfield').removeClass('tmpl-html');
+        $('#nfsserverId').on("change keyup",function() {
+            if ($(this).val() !== '' && kimchi.isServer($(this).val())) {
+                $('#nfspathId').prop('disabled',false);
+                $(this).removeClass("invalid-field");
             } else {
-                $('.authenticationfield').addClass('tmpl-html');
+                $(this).addClass("invalid-field");
+                $('#nfspathId').prop( "disabled",true);
             }
+            $('#targetFilterSelectId').filterselect('clear');
         });
-        $('#iscsiportId').keyup(function(event) {
-            $(this).toggleClass("invalid-field",!/^[0-9]+$/.test($(this).val()));
+        $('#nfspathId').focus(function() {
+            var targetContent = [];
+            kimchi.getStorageTargets($('#nfsserverId').val(), 'netfs', function(data) {
+                if (data.length > 0) {
+                    $.each(data, function(index, value) {
+                        targetContent.push({
+                            label : value.target,
+                            value : value.target
+                        });
+                    });
+                }
+                $('#targetFilterSelectId').filterselect("setData", targetContent);
+            });
         });
     });
+
+    $('#poolTypeInputId').change(function() {
+        if ($(this).val() === 'dir') {
+            $('.path-section').removeClass('tmpl-html');
+            $('.logical-section').addClass('tmpl-html');
+            $('.nfs-section').addClass('tmpl-html');
+            $('.iscsi-section').addClass('tmpl-html');
+        } else if ($(this).val() === 'netfs') {
+            $('.path-section').addClass('tmpl-html');
+            $('.logical-section').addClass('tmpl-html');
+            $('.nfs-section').removeClass('tmpl-html');
+            $('.iscsi-section').addClass('tmpl-html');
+        } else if ($(this).val() === 'iscsi') {
+            $('.path-section').addClass('tmpl-html');
+            $('.logical-section').addClass('tmpl-html');
+            $('.nfs-section').addClass('tmpl-html');
+            $('.iscsi-section').removeClass('tmpl-html');
+        } else if ($(this).val() === 'logical') {
+            $('.path-section').addClass('tmpl-html');
+            $('.logical-section').removeClass('tmpl-html');
+            $('.nfs-section').addClass('tmpl-html');
+            $('.iscsi-section').addClass('tmpl-html');
+        }
+    });
+    $('#authId').click(function() {
+        if ($(this).prop("checked")) {
+            $('.authenticationfield').removeClass('tmpl-html');
+        } else {
+            $('.authenticationfield').addClass('tmpl-html');
+        }
+    });
+    $('#iscsiportId').keyup(function(event) {
+        $(this).toggleClass("invalid-field",!/^[0-9]+$/.test($(this).val()));
+    });
 };
 
 kimchi.validateForm = function() {
-- 
1.8.3.1




More information about the Kimchi-devel mailing list