mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
bug 6940: IP Address page - implement Enable Static NAT action.
This commit is contained in:
parent
4c7bb302bc
commit
e6f0ab4dba
@ -643,4 +643,23 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- Create User for VPN (end) -->
|
||||
|
||||
<!-- Enable Static NAT Dialog (begin) -->
|
||||
<div id="dialog_enable_static_NAT" title="Enable Static NAT" style="display: none">
|
||||
<div class="dialog_formcontent">
|
||||
<form action="#" method="post" id="form3">
|
||||
<ol>
|
||||
<li>
|
||||
<label for="vm_dropdown">
|
||||
Instance:</label>
|
||||
<select class="select" name="vm_dropdown" id="vm_dropdown">
|
||||
</select>
|
||||
<div id="vm_dropdown_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
|
||||
</li>
|
||||
</ol>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Enable Static NAT Dialog (end) -->
|
||||
|
||||
<!-- dialogs (end) -->
|
||||
|
||||
@ -31,6 +31,7 @@ function afterLoadIpJSP() {
|
||||
initDialog("dialog_disable_vpn");
|
||||
initDialog("dialog_add_vpnuser");
|
||||
initDialog("dialog_confirmation_remove_vpnuser");
|
||||
initDialog("dialog_enable_static_NAT");
|
||||
|
||||
//*** Acquire New IP (begin) ***
|
||||
$.ajax({
|
||||
@ -93,7 +94,8 @@ function afterLoadIpJSP() {
|
||||
isValid &= validateDropDownBox("Instance", $createPortForwardingRow.find("#vm"), $createPortForwardingRow.find("#vm_errormsg"));
|
||||
isValid &= validateNumber("Public Port", $createPortForwardingRow.find("#public_port"), $createPortForwardingRow.find("#public_port_errormsg"), 1, 65535);
|
||||
isValid &= validateNumber("Private Port", $createPortForwardingRow.find("#private_port"), $createPortForwardingRow.find("#private_port_errormsg"), 1, 65535);
|
||||
if (!isValid) return;
|
||||
if (!isValid)
|
||||
return;
|
||||
|
||||
var $template = $("#port_forwarding_template").clone();
|
||||
$("#tab_content_port_forwarding #grid_content").append($template.show());
|
||||
@ -732,16 +734,29 @@ function ipJsonToDetailsTab() {
|
||||
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
|
||||
$actionMenu.find("#action_list").empty();
|
||||
var noAvailableActions = true;
|
||||
|
||||
if(isIpManageable(ipObj.domainid, ipObj.account) == true && ipObj.issourcenat != true) {
|
||||
buildActionLinkForTab("Release IP", ipActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
|
||||
if(ipObj.isstaticnat == true) {
|
||||
|
||||
}
|
||||
else { //ipObj.isstaticnat == false
|
||||
buildActionLinkForTab("Enable Static NAT", ipActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
noAvailableActions = false;
|
||||
|
||||
if(isIpManageable(ipObj.domainid, ipObj.account) == true && ipObj.issourcenat != true) {
|
||||
buildActionLinkForTab("Release IP", ipActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
}
|
||||
}
|
||||
|
||||
// no available actions
|
||||
if(noAvailableActions == true) {
|
||||
$actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
|
||||
}
|
||||
|
||||
//populate dropdown
|
||||
var IpDomainid = ipObj.domainid;
|
||||
var IpAccount = ipObj.account;
|
||||
var $vmSelect = $("#dialog_enable_static_NAT").find("#vm_dropdown").empty();
|
||||
ipPopulateVMDropdown($vmSelect, IpDomainid, IpAccount);
|
||||
|
||||
$thisTab.find("#tab_spinning_wheel").hide();
|
||||
$thisTab.find("#tab_container").show();
|
||||
@ -765,17 +780,6 @@ function ipClearDetailsTab() {
|
||||
$actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
|
||||
}
|
||||
|
||||
/*
|
||||
function setSourceNatField(value, $field) {
|
||||
if(value == true)
|
||||
$field.text("Yes");
|
||||
else if(value == false)
|
||||
$field.text("No");
|
||||
else
|
||||
$field.text("");
|
||||
}
|
||||
*/
|
||||
|
||||
function setNetworkTypeField(value, $field) {
|
||||
if(value == true)
|
||||
$field.text("Public");
|
||||
@ -797,6 +801,19 @@ var ipActionMap = {
|
||||
clearRightPanel();
|
||||
ipClearRightPanel();
|
||||
}
|
||||
},
|
||||
"Enable Static NAT": {
|
||||
isAsyncJob: true,
|
||||
asyncJobResponse: "createipforwardingruleresponse",
|
||||
dialogBeforeActionFn: doEnableStaticNAT,
|
||||
inProcessText: "Enabling Static NAT....",
|
||||
afterActionSeccessFn: function(json, $midmenuItem1, id){
|
||||
//var item = json.queryasyncjobresultresponse.jobresult.portforwardingrule;
|
||||
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
|
||||
var ipObj = $midmenuItem1.data("jsonObj");
|
||||
ipObj.isstaticnat = true;
|
||||
setBooleanReadField(ipObj.isstaticnat, $("#right_panel_content #tab_content_details").find("#static_nat"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -817,6 +834,32 @@ function doReleaseIp($actionLink, $detailsTab, $midmenuItem1) {
|
||||
}
|
||||
}).dialog("open");
|
||||
}
|
||||
|
||||
function doEnableStaticNAT($actionLink, $detailsTab, $midmenuItem1) {
|
||||
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||
var jsonObj = $detailsTab.data("jsonObj");
|
||||
var ipaddress = jsonObj.ipaddress;
|
||||
|
||||
$("#dialog_enable_static_NAT")
|
||||
.dialog('option', 'buttons', {
|
||||
"Confirm": function() {
|
||||
var $thisDialog = $(this);
|
||||
|
||||
//validate
|
||||
var vmId = $thisDialog.find("#vm_dropdown").val();
|
||||
if(vmId == null || vmId.length == 0)
|
||||
return;
|
||||
|
||||
$thisDialog.dialog("close");
|
||||
|
||||
var apiCommand = "command=createIpForwardingRule&ipaddress="+ipaddress+"&virtualmachineid="+vmId;
|
||||
doActionToTab(ipaddress, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
|
||||
},
|
||||
"Cancel": function() {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}).dialog("open");
|
||||
}
|
||||
//***** Details tab (end) ******************************************************************************************************************
|
||||
|
||||
//***** Port Forwarding tab (begin) ********************************************************************************************************
|
||||
@ -848,7 +891,7 @@ function portForwardingJsonToTemplate(jsonObj, $template) {
|
||||
var IpAccount = fromdb(ipObj.account);
|
||||
|
||||
var $vmSelect = $template.find("#row_container_edit #vm").empty();
|
||||
ipPortFowardingPopulateVMDropdown($vmSelect, IpDomainid, IpAccount);
|
||||
ipPopulateVMDropdown($vmSelect, IpDomainid, IpAccount);
|
||||
$vmSelect.val(virtualMachineId);
|
||||
|
||||
var $rowContainer = $template.find("#row_container");
|
||||
@ -958,15 +1001,15 @@ function refreshCreatePortForwardingRow() {
|
||||
$createPortForwardingRow.find("#protocol").val("TCP");
|
||||
|
||||
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||
var jsonObj = $detailsTab.data("jsonObj");
|
||||
var IpDomainid = jsonObj.domainid;
|
||||
var IpAccount = jsonObj.account;
|
||||
var ipObj = $detailsTab.data("jsonObj");
|
||||
var IpDomainid = ipObj.domainid;
|
||||
var IpAccount = ipObj.account;
|
||||
|
||||
var $vmSelect = $createPortForwardingRow.find("#vm").empty();
|
||||
ipPortFowardingPopulateVMDropdown($vmSelect, IpDomainid, IpAccount);
|
||||
ipPopulateVMDropdown($vmSelect, IpDomainid, IpAccount);
|
||||
}
|
||||
|
||||
function ipPortFowardingPopulateVMDropdown($vmSelect, IpDomainid, IpAccount) {
|
||||
function ipPopulateVMDropdown($vmSelect, IpDomainid, IpAccount) {
|
||||
$.ajax({
|
||||
data: createURL("command=listVirtualMachines&domainid="+IpDomainid+"&account="+IpAccount+"&state=Running"),
|
||||
dataType: "json",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user