You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/02/14 00:18:02 UTC

[5/6] git commit: refs/heads/ui-multiple-vlan-ranges - Multiple vlan ranges: fix state handling, layout

Multiple vlan ranges: fix state handling, layout

-Reconstruct list of vlan ranges, which are always erased,
  when going back/forward a step.

-Cleanup DOM structure for vlan range items.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/588b4522
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/588b4522
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/588b4522

Branch: refs/heads/ui-multiple-vlan-ranges
Commit: 588b452201e38b4474bd197e1531ce04f92fe33c
Parents: 4e5bf9b
Author: Brian Federle <br...@citrix.com>
Authored: Tue Feb 12 14:30:13 2013 -0800
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Feb 13 15:16:09 2013 -0800

----------------------------------------------------------------------
 ui/scripts/ui-custom/zoneWizard.js |   59 +++++++++++++++++++++++++-----
 1 files changed, 49 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/588b4522/ui/scripts/ui-custom/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/zoneWizard.js b/ui/scripts/ui-custom/zoneWizard.js
index 6eb04da..43fa625 100644
--- a/ui/scripts/ui-custom/zoneWizard.js
+++ b/ui/scripts/ui-custom/zoneWizard.js
@@ -742,35 +742,74 @@
       var $physicalNetworks = physicalNetwork.getNetworks($wizard);
       var $tabs = guestTraffic.makeTabs($physicalNetworks, args);
       var $container = guestTraffic.getMainContainer($wizard);
-      var $expand = $('<div title="Add multiple VLAN Ranges">').addClass('expand');
-      var $expandlabel = $('<div>').addClass('expand-label').html('Add VLAN Range');
+      var $expand = $('<div title="Add multiple VLAN Ranges">').addClass('expand').append(
+        $('<span>').addClass('icon').html('&nbsp;'),
+        $('<span>Add VLAN range</span>')
+      );
       var $hide = $('<div title="Hide VLAN Range">').addClass('hide');
       var $hidelabel = $('<div>').addClass('hide-label').html('Hide VLAN Range');
+      var data = getData($wizard, { all: true });
+      var $vlanRanges, $vlanRangeFirst, $subnav;
 
       // Cleanup
       guestTraffic.remove($wizard);
 
       $container.find('.content form').hide();
       $tabs.appendTo($container.find('.content .select-container'));
-      var $subnav = $container.find('ul.subnav').remove(); // Fix to avoid subnav becoming tab ul
+      $subnav = $container.find('ul.subnav').remove(); // Fix to avoid subnav becoming tab ul
       $container.tabs();
       $container.prepend($subnav);
       $container.find('.field').hide();
       $container.find('[rel=vlanRange]').show();
-      $expand.appendTo($container.find('.content .select-container .physical-network-item form [rel=vlanRange]'));
-      $expandlabel.appendTo($container.find('.content .select-container .physical-network-item form .expand'));
+      $vlanRanges = $container.find('.field[rel=vlanRange]:visible');
+      $vlanRangeFirst = $vlanRanges.filter(':first');
+
+      //
+      // Multiple Vlan Ranges functionality
+      //
+      var addVlan = function(options) {
+        var $vlanClone = $vlanRangeFirst.clone()
+          .insertAfter($container.find('.field[rel=vlanRange]:visible').filter(':last'));
 
-      //Multiple Vlan Ranges functionality
-      $expand.click(function() {
+        var $remove = $hide.clone()
+          .appendTo($vlanClone);
 
-        var $vlanClone = $container.find('[rel=vlanRange]:first').clone().removeClass('field').insertBefore($container.find('.expand'));
-        //$vlan.appendTo($container.find('.content .select-container .physical-network-item form'));
-        var $remove = $hide.clone().appendTo($vlanClone);
+        if (options) {
+          if (options.start)
+            $vlanClone.find('input:first').val(options.start);
+
+          if (options.end)
+            $vlanClone.find('input:last').val(options.end);
+        }
 
         $remove.click(function() {
           $vlanClone.remove();
         });
+      };
+
+      $expand.insertAfter($container.find('form [rel=vlanRange]')).click(function() {
+        addVlan();
       });
+
+      if (data.vlanRangeStart || data.vlanRangeEnd) {
+        if (($.isArray(data.vlanRangeStart) || $.isArray(data.vlanRangeEnd)) &&
+            (data.vlanRangeStart.length > 1 || data.vlanRangeEnd.length > 1)) {
+          $(data.vlanRangeStart).map(function(index) {
+            if (index) {
+              addVlan({
+                start: data.vlanRangeStart[index],
+                end: data.vlanRangeEnd[index]
+              });
+            }
+          });
+
+          $vlanRangeFirst.find('input:first').val(data.vlanRangeStart[0]);
+          $vlanRangeFirst.find('input:last').val(data.vlanRangeEnd[0]);
+        } else { // Only 1 vlan range
+          $vlanRangeFirst.find('input:first').val(data.vlanRangeStart);
+          $vlanRangeFirst.find('input:last').val(data.vlanRangeEnd);
+        }
+      }
     },
 
     /**