Updated Branches: refs/heads/multiple-Vlans 2bb1ba95e -> b7ca6502c
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/b7ca6502 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/b7ca6502 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/b7ca6502 Branch: refs/heads/multiple-Vlans Commit: b7ca6502c964c3fc4c30fee3b72e8a33e9fb7e1d Parents: f530729 Author: Brian Federle <[email protected]> Authored: Tue Feb 12 14:30:13 2013 -0800 Committer: Brian Federle <[email protected]> Committed: Tue Feb 12 14:30:13 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/b7ca6502/ui/scripts/ui-custom/zoneWizard.js ---------------------------------------------------------------------- diff --git a/ui/scripts/ui-custom/zoneWizard.js b/ui/scripts/ui-custom/zoneWizard.js index 1250545..aeda072 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(' '), + $('<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); + } + } }, /**
