bug 7466: account page - implement new API UpdateAccount.

This commit is contained in:
Jessica Wang 2010-12-15 17:27:23 -08:00
parent 4ca2b8808b
commit 97714a57b3
2 changed files with 74 additions and 11 deletions

View File

@ -76,11 +76,13 @@
<div class="grid_rows odd">
<div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles">
<%=t.t("Account")%>:</div>
Account Name:</div>
</div>
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="account">
</div>
<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 even">
@ -143,7 +145,11 @@
</div>
</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>
<!--Details tab (end)-->
<!--user tab (start)-->
@ -241,7 +247,7 @@
<div class="grid_rows odd">
<div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles">
Account:</div>
Account Name:</div>
</div>
<div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="account">

View File

@ -380,7 +380,8 @@ function accountJsonToDetailsTab() {
$detailsTab.find("#grid_header_title").text(fromdb(jsonObj.name));
$detailsTab.find("#id").text(fromdb(jsonObj.id));
$detailsTab.find("#role").text(toRole(jsonObj.accounttype));
$detailsTab.find("#account").text(fromdb(jsonObj.name));
$detailsTab.find("#name").text(fromdb(jsonObj.name));
$detailsTab.find("#name_edit").val(fromdb(jsonObj.name));
$detailsTab.find("#domain").text(fromdb(jsonObj.domain));
$detailsTab.find("#vm_total").text(fromdb(jsonObj.vmtotal));
$detailsTab.find("#ip_total").text(fromdb(jsonObj.iptotal));
@ -394,7 +395,9 @@ function accountJsonToDetailsTab() {
var noAvailableActions = true;
if(isAdmin()) {
if(jsonObj.id != systemAccountId && jsonObj.id != adminAccountId) {
if(jsonObj.id != systemAccountId && jsonObj.id != adminAccountId) {
buildActionLinkForTab("Edit account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
if (jsonObj.accounttype == roleTypeUser || jsonObj.accounttype == roleTypeDomainAdmin) {
buildActionLinkForTab("Resource limits", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
}
@ -423,7 +426,7 @@ function accountJsonClearDetailsTab() {
$detailsTab.find("#grid_header_title").text("");
$detailsTab.find("#id").text("");
$detailsTab.find("#role").text("");
$detailsTab.find("#account").text("");
$detailsTab.find("#name").text("");
$detailsTab.find("#domain").text("");
$detailsTab.find("#vm_total").text("");
$detailsTab.find("#ip_total").text("");
@ -531,6 +534,9 @@ function accountUserJSONToTemplate(jsonObj, $template) {
}
var accountActionMap = {
"Edit account": {
dialogBeforeActionFn: doEditAccount
},
"Resource limits": {
dialogBeforeActionFn : doResourceLimitsForAccount
}
@ -543,7 +549,7 @@ var accountActionMap = {
afterActionSeccessFn: function(json, $midmenuItem1, id) {
var item = json.queryasyncjobresultresponse.jobresult.account;
accountToMidmenu(item, $midmenuItem1);
accountJsonToDetailsTab($midmenuItem1);
accountJsonToDetailsTab();
}
}
,
@ -555,7 +561,7 @@ var accountActionMap = {
afterActionSeccessFn: function(json, $midmenuItem1, id) {
var item = json.queryasyncjobresultresponse.jobresult.account;
accountToMidmenu(item, $midmenuItem1);
accountJsonToDetailsTab($midmenuItem1);
accountJsonToDetailsTab();
}
}
,
@ -566,7 +572,7 @@ var accountActionMap = {
afterActionSeccessFn: function(json, $midmenuItem1, id) {
var item = json.enableaccountresponse.account;
accountToMidmenu(item, $midmenuItem1);
accountJsonToDetailsTab($midmenuItem1);
accountJsonToDetailsTab();
}
}
,
@ -583,6 +589,57 @@ var accountActionMap = {
}
}
};
function doEditAccount($actionLink, $detailsTab, $midmenuItem1) {
var $readonlyFields = $detailsTab.find("#name");
var $editFields = $detailsTab.find("#name_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){
doEditAccount2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields);
return false;
});
}
function doEditAccount2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) {
// validate values
var isValid = true;
isValid &= validateString("Name", $detailsTab.find("#name_edit"), $detailsTab.find("#name_edit_errormsg"));
if (!isValid)
return;
var jsonObj = $midmenuItem1.data("jsonObj");
var id = jsonObj.id;
var array1 = [];
array1.push("&id="+id);
var name = $detailsTab.find("#name_edit").val();
array1.push("&newname="+todb(name));
$.ajax({
data: createURL("command=updateAccount&domainid="+jsonObj.domainid+"&account="+jsonObj.name+array1.join("")),
dataType: "json",
success: function(json) {
var item = json.updateaccountresponse.account;
accountToMidmenu(item, $midmenuItem1);
accountJsonToDetailsTab();
$editFields.hide();
$readonlyFields.show();
$("#save_button, #cancel_button").hide();
}
});
}
function updateResourceLimitForAccount(domainId, account, type, max) {
$.ajax({