bug 7458: zone - network - implement Add Load Balancer.

This commit is contained in:
Jessica Wang 2010-12-09 18:31:15 -08:00
parent b853cad913
commit d5568a35f7
4 changed files with 194 additions and 3 deletions

View File

@ -274,13 +274,23 @@
<div class="actionpanel_button_wrapper" id="midmenu_add_external_firewall_button" style="display: none;">
<div class="actionpanel_button">
<div class="actionpanel_button_icons">
<img src="images/addvm_actionicon.png" alt="Add Direct IP Range" /></div>
<img src="images/addvm_actionicon.png" alt="Add Firewall" /></div>
<div class="actionpanel_button_links" id="Div10">
Add Firewall
</div>
</div>
</div>
<div class="actionpanel_button_wrapper" id="midmenu_add_load_balancer_button" style="display: none;">
<div class="actionpanel_button">
<div class="actionpanel_button_icons">
<img src="images/addvm_actionicon.png" alt="Add Load Balancer" /></div>
<div class="actionpanel_button_links" id="Div10">
Add Load Balancer
</div>
</div>
</div>
<div class="actionpanel_button_wrapper" id="midmenu_Update_SSL_Certificate_button" style="display: none;">
<div class="actionpanel_button">
<div class="actionpanel_button_icons">

View File

@ -624,7 +624,7 @@
<!-- Add IP Range for public netework dialog (end) -->
<!-- Add External Firewall (begin) -->
<!-- Add External Firewall dialog (begin) -->
<div id="dialog_add_external_firewall" title="Add Firewall" style="display: none">
<p>
Add firewall for zone: <b><span id="zone_name"></span></b>
@ -701,7 +701,74 @@
(info)</div>
</div>
</div>
<!-- Add External Firewall (end) -->
<!-- Add External Firewall dialog (end) -->
<!-- Add Load Balancer dialog (begin) -->
<div id="dialog_add_load_balancer" title="Add Load Balancer" style="display: none">
<p>
Add load balancer for zone: <b><span id="zone_name"></span></b>
</p>
<div class="dialog_formcontent">
<form action="#" method="post" id="form_acquire">
<ol>
<li>
<label>
IP:</label>
<input class="text" type="text" id="ip" />
<div id="ip_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label>
User name:</label>
<input class="text" type="text" id="username" />
<div id="username_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label>
Password:</label>
<input class="text" type="password" id="password" autocomplete="off" />
<div id="password_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label>
Public Interface:</label>
<input class="text" type="text" id="public_interface" />
<div id="public_interface_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label>
Private Interface:</label>
<input class="text" type="text" id="private_interface" />
<div id="private_interface_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
</ol>
</form>
</div>
<!--Loading box-->
<div id="spinning_wheel" class="ui_dialog_loaderbox" style="display: none;">
<div class="ui_dialog_loader">
</div>
<p>
Adding....</p>
</div>
<!--Confirmation msg box-->
<!--Note: for error msg, just have to add error besides everything for eg. add error(class) next to ui_dialog_messagebox error, ui_dialog_msgicon error, ui_dialog_messagebox_text error. -->
<div id="info_container" class="ui_dialog_messagebox error" style="display: none;">
<div id="icon" class="ui_dialog_msgicon error">
</div>
<div id="info" class="ui_dialog_messagebox_text error">
(info)</div>
</div>
</div>
<!-- Add Load Balancer dialog (end) -->
<!-- Add IP Range for direct netework dialog (begin) -->

View File

@ -573,6 +573,7 @@ function clearAddButtonsOnTop() {
$("#midmenu_add_network_button").unbind("click").hide();
$("#midmenu_add_iprange_button").unbind("click").hide();
$("#midmenu_add_external_firewall_button").unbind("click").hide();
$("#midmenu_add_load_balancer_button").unbind("click").hide();
$("#midmenu_Update_SSL_Certificate_button").unbind("click").hide();
$("#midmenu_startvm_link").unbind("click").hide();

View File

@ -109,6 +109,7 @@ function publicNetworkToRightPanel($midmenuItem1) {
$("#public_network_page").show();
initAddIpRangeToPublicNetworkButton($("#midmenu_add_iprange_button"), $midmenuItem1);
initAddExternalFirewallButton($("#midmenu_add_external_firewall_button"), $midmenuItem1);
initAddLoadBalancerButton($("#midmenu_add_load_balancer_button"), $midmenuItem1);
$("#direct_network_page").hide();
@ -637,6 +638,117 @@ var publicNetworkIpRangeActionMap = {
}
}
}
function initAddLoadBalancerButton($button, $midmenuItem1) {
var jsonObj = $midmenuItem1.data("jsonObj");
initDialog("dialog_add_load_balancer");
var $dialogAddLoadBalancer = $("#dialog_add_load_balancer");
$button.show();
$button.unbind("click").bind("click", function(event) {
if($("#public_network_page").find("#tab_content_loadbalancer").css("display") == "none")
$("#public_network_page").find("#tab_loadbalancer").click();
$dialogAddLoadBalancer.find("#info_container").hide();
$dialogAddLoadBalancer.find("#zone_name").text(fromdb(zoneObj.name));
$dialogAddLoadBalancer
.dialog('option', 'buttons', {
"Add": function() {
var $thisDialog = $(this);
// validate values
var isValid = true;
isValid &= validateString("IP", $thisDialog.find("#ip"), $thisDialog.find("#ip_errormsg"), false); //required
isValid &= validateString("User Name", $thisDialog.find("#username"), $thisDialog.find("#username_errormsg"), false); //required
isValid &= validateString("Password", $thisDialog.find("#password"), $thisDialog.find("#password_errormsg"), false); //required
isValid &= validateString("Public Interface", $thisDialog.find("#public_interface"), $thisDialog.find("#public_interface_errormsg"), true); //optinal
isValid &= validateString("Private Interface", $thisDialog.find("#private_interface"), $thisDialog.find("#private_interface_errormsg"), true); //optinal
if (!isValid)
return;
$thisDialog.find("#spinning_wheel").show()
var array1 = [];
array1.push("&zoneid=" + zoneObj.id);
var username = $thisDialog.find("#username").val();
array1.push("&username="+username);
var password = $thisDialog.find("#password").val();
array1.push("&password="+password);
//*** construct URL (begin) ***
var url = [];
var ip = $thisDialog.find("#ip").val();
if(ip.indexOf("http://")==-1)
url.push(todb("http://"+ip));
else
url.push(todb(ip));
var isQuestionMarkAdded = false;
var publicInterface = $thisDialog.find("#public_interface").val();
if(publicInterface != null && publicInterface.length > 0) {
if(isQuestionMarkAdded == false) {
url.push("?");
isQuestionMarkAdded = true;
}
else {
url.push("&");
}
url.push("publicInterface="+todb(publicInterface));
}
var privateInterface = $thisDialog.find("#private_interface").val();
if(privateInterface != null && privateInterface.length > 0) {
if(isQuestionMarkAdded == false) {
url.push("?");
isQuestionMarkAdded = true;
}
else {
url.push("&");
}
url.push("privateInterface="+todb(privateInterface));
}
array1.push("&url="+url.join(""));
//*** construct URL (end) ***
$.ajax({
data: createURL("command=addExternalLoadBalancer"+array1.join("")),
dataType: "json",
success: function(json) {
$thisDialog.find("#spinning_wheel").hide();
$thisDialog.dialog("close");
/*
var item = json.createvlaniprangeresponse.vlan;
var $newTemplate = $("#iprange_template").clone();
publicNetworkIprangeJsonToTemplate(item, $newTemplate);
$("#public_network_page").find("#tab_content_ipallocation").find("#tab_container").prepend($newTemplate.show());
*/
},
error: function(XMLHttpResponse) {
handleError(XMLHttpResponse, function() {
handleErrorInDialog(XMLHttpResponse, $thisDialog);
});
}
});
},
"Cancel": function() {
$(this).dialog("close");
}
}).dialog("open");
return false;
});
}
//***** Public Network (end) ******************************************************************************************************
@ -665,6 +777,7 @@ function directNetworkToRightPanel($midmenuItem1) {
$("#direct_network_page").show();
initAddIpRangeToDirectNetworkButton($("#midmenu_add_iprange_button"), $midmenuItem1);
$("#midmenu_add_external_firewall_button").unbind("click").hide();
$("#midmenu_add_load_balancer_button").unbind("click").hide();
$("#public_network_page").hide();