new UI - implement Edit Zone action.

This commit is contained in:
Jessica Wang 2010-11-02 17:14:24 -07:00
parent 3c6b3b3e3d
commit 2aefa86d18
2 changed files with 142 additions and 2 deletions

View File

@ -76,6 +76,8 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="name">
</div>
<input class="text" id="name_edit" style="width: 200px; display: none;" type="text" />
<div id="name_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows odd">
@ -86,6 +88,8 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="dns1">
</div>
<input class="text" id="dns1_edit" style="width: 200px; display: none;" type="text" />
<div id="dns1_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows even">
@ -96,6 +100,8 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="dns2">
</div>
<input class="text" id="dns2_edit" style="width: 200px; display: none;" type="text" />
<div id="dns2_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows odd">
@ -106,6 +112,8 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="internaldns1">
</div>
<input class="text" id="internaldns1_edit" style="width: 200px; display: none;" type="text" />
<div id="internaldns1_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows even">
@ -116,6 +124,8 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="internaldns2">
</div>
<input class="text" id="internaldns2_edit" style="width: 200px; display: none;" type="text" />
<div id="internaldns2_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows odd">
@ -126,6 +136,10 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="vlan">
</div>
<input class="text" id="startvlan_edit" style="width: 100px; display: none;" type="text" />
<div id="startvlan_edit_errormsg" style="display:none"></div>
<input class="text" id="endvlan_edit" style="width: 100px; display: none;" type="text" />
<div id="endvlan_edit_errormsg" style="display:none"></div>
</div>
</div>
<div class="grid_rows even">
@ -136,9 +150,19 @@
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="guestcidraddress">
</div>
<input class="text" id="guestcidraddress_edit" style="width: 200px; display: none;" type="text" />
<div id="guestcidraddress_edit_errormsg" style="display:none"></div>
</div>
</div>
</div>
<div class="grid_botactionpanel">
<div class="gridbot_buttons" id="save_button" style="display:none;">Save</div>
<div class="gridbot_buttons" id="cancel_button" style="display:none;">Cancel</div>
</div>
</div>
</div>
<!-- Details tab (end)-->

View File

@ -65,13 +65,38 @@ function zoneJsonToDetailsTab($leftmenuItem1) {
$detailsTab.data("jsonObj", jsonObj);
$detailsTab.find("#id").text(jsonObj.id);
$detailsTab.find("#title").text(fromdb(jsonObj.name));
$detailsTab.find("#name").text(fromdb(jsonObj.name));
$detailsTab.find("#name_edit").val(fromdb(jsonObj.name));
$detailsTab.find("#dns1").text(fromdb(jsonObj.dns1));
$detailsTab.find("#dns1_edit").val(fromdb(jsonObj.dns1));
$detailsTab.find("#dns2").text(fromdb(jsonObj.dns2));
$detailsTab.find("#dns2_edit").val(fromdb(jsonObj.dns2));
$detailsTab.find("#internaldns1").text(fromdb(jsonObj.internaldns1));
$detailsTab.find("#internaldns2").text(fromdb(jsonObj.internaldns2));
$detailsTab.find("#internaldns1_edit").val(fromdb(jsonObj.internaldns1));
$detailsTab.find("#internaldns2").text(fromdb(jsonObj.internaldns2));
$detailsTab.find("#internaldns2_edit").val(fromdb(jsonObj.internaldns2));
$detailsTab.find("#vlan").text(fromdb(jsonObj.vlan));
var vlan = fromdb(jsonObj.vlan);
if(vlan != null) {
if(vlan.indexOf("-")!==-1) {
var startVlan = vlan.substring(0, vlan.indexOf("-"));
var endVlan = vlan.substring((vlan.indexOf("-")+1));
$detailsTab.find("#startvlan_edit").val(startVlan);
$detailsTab.find("#endvlan_edit").val(endVlan);
}
else {
$detailsTab.find("#startvlan_edit").val(vlan);
}
}
$detailsTab.find("#guestcidraddress").text(fromdb(jsonObj.guestcidraddress));
$detailsTab.find("#guestcidraddress_edit").val(fromdb(jsonObj.guestcidraddress));
//actions ***
var $actionLink = $detailsTab.find("#action_link");
@ -84,7 +109,8 @@ function zoneJsonToDetailsTab($leftmenuItem1) {
return false;
});
var $actionMenu = $detailsTab.find("#action_link #action_menu");
$actionMenu.find("#action_list").empty();
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Edit Zone", zoneActionMap, $actionMenu, $leftmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Delete Zone", zoneActionMap, $actionMenu, $leftmenuItem1, $detailsTab);
}
@ -624,6 +650,9 @@ function doDeleteSecondaryStorage($actionLink, $subgridItem) {
}
var zoneActionMap = {
"Edit Zone": {
dialogBeforeActionFn: doEditZone
},
"Delete Zone": {
api: "deleteZone",
isAsyncJob: false,
@ -638,3 +667,90 @@ var zoneActionMap = {
}
}
function doEditZone($actionLink, $detailsTab, $midmenuItem1) {
var $readonlyFields = $detailsTab.find("#name, #dns1, #dns2, #internaldns1, #internaldns2, #vlan, #guestcidraddress");
var $editFields = $detailsTab.find("#name_edit, #dns1_edit, #dns2_edit, #internaldns1_edit, #internaldns2_edit, #startvlan_edit, #endvlan_edit, #guestcidraddress_edit");
$readonlyFields.hide();
$editFields.show();
$detailsTab.find("#cancel_button, #save_button").show();
$detailsTab.find("#cancel_button").unbind("click").bind("click", function(event){
$editFields.hide();
$readonlyFields.show();
$("#save_button, #cancel_button").hide();
return false;
});
$detailsTab.find("#save_button").unbind("click").bind("click", function(event){
doEditZone2($actionLink, $detailsTab, $midmenuItem1);
$editFields.hide();
$readonlyFields.show();
$("#save_button, #cancel_button").hide();
return false;
});
}
function doEditZone2($actionLink, $detailsTab, $midmenuItem1) {
// validate values
var isValid = true;
isValid &= validateString("Name", $detailsTab.find("#name_edit"), $detailsTab.find("#name_edit_errormsg"));
isValid &= validateIp("DNS 1", $detailsTab.find("#dns1_edit"), $detailsTab.find("#dns1_edit_errormsg"), false); //required
isValid &= validateIp("DNS 2", $detailsTab.find("#dns2_edit"), $detailsTab.find("#dns2_edit_errormsg"), true); //optional
isValid &= validateIp("Internal DNS 1", $detailsTab.find("#internaldns1_edit"), $detailsTab.find("#internaldns1_edit_errormsg"), false); //required
isValid &= validateIp("Internal DNS 2", $detailsTab.find("#internaldns2_edit"), $detailsTab.find("#internaldns2_edit_errormsg"), true); //optional
if (getNetworkType() != "vnet") {
isValid &= validateString("Zone - Start VLAN Range", $detailsTab.find("#startvlan_edit"), $detailsTab.find("#startvlan_edit_errormsg"), false); //required
isValid &= validateString("Zone - End VLAN Range", $detailsTab.find("#endvlan_edit"), $detailsTab.find("#endvlan_edit_errormsg"), true); //optional
}
isValid &= validateCIDR("Guest CIDR", $detailsTab.find("#guestcidraddress_edit"), $detailsTab.find("#guestcidraddress_edit_errormsg"), false); //required
if (!isValid)
return;
var moreCriteria = [];
var jsonObj = $detailsTab.data("jsonObj");
var id = jsonObj.id;
moreCriteria.push("&id="+id);
var name = trim($detailsTab.find("#name_edit").val());
moreCriteria.push("&name="+todb(name));
var dns1 = trim($detailsTab.find("#dns1_edit").val());
moreCriteria.push("&dns1="+encodeURIComponent(dns1));
var dns2 = trim($detailsTab.find("#dns2_edit").val());
if (dns2 != null & dns2.length > 0)
moreCriteria.push("&dns2="+encodeURIComponent(dns2));
var internaldns1 = trim($detailsTab.find("#internaldns1_edit").val());
moreCriteria.push("&internaldns1="+encodeURIComponent(internaldns1));
var internaldns2 = trim($detailsTab.find("#internaldns2_edit").val());
if (internaldns2 != null & internaldns2.length > 0)
moreCriteria.push("&internaldns2="+encodeURIComponent(internaldns2));
var vlan;
if (getNetworkType() != "vnet") {
var vlanStart = trim($detailsTab.find("#startvlan_edit").val());
var vlanEnd = trim($detailsTab.find("#endvlan_edit").val());
if (vlanEnd != null && vlanEnd.length > 0)
vlan = vlanStart + "-" + vlanEnd;
else
vlan = vlanStart;
moreCriteria.push("&vlan=" + encodeURIComponent(vlan));
}
var guestcidraddress = trim($detailsTab.find("#guestcidraddress_edit").val());
moreCriteria.push("&guestcidraddress="+encodeURIComponent(guestcidraddress));
$.ajax({
data: createURL("command=updateZone"+moreCriteria.join("")),
dataType: "json",
success: function(json) {
var item = json.updatezoneresponse;
$midmenuItem1.data("jsonObj", item);
zoneJsonToRightPanel($midmenuItem1);
}
});
}