Account page - implement Add User dialog (which is different from Add Account Dialog)

This commit is contained in:
Jessica Wang 2010-12-06 14:00:50 -08:00
parent c2ada1d8d8
commit 88d0ab4d54
3 changed files with 240 additions and 11 deletions

View File

@ -337,7 +337,7 @@
</p>
</div>
<!-- Add User Dialog (begin)-->
<!-- Add Account Dialog (begin)-->
<div id="dialog_add_account" title="Add New Account" style="display: none">
<div class="dialog_formcontent">
<form action="#" method="post" id="form_acquire">
@ -469,6 +469,137 @@
</form>
</div>
</div>
<!-- Add Account Dialog (end)-->
<!-- Add User Dialog (begin)-->
<div id="dialog_add_user" title="Add New User" style="display: none">
<p>
Add a new user under account <b><span id="account_name"></span></b>
</p>
<div class="dialog_formcontent">
<form action="#" method="post" id="form_acquire">
<ol>
<li>
<label for="add_user_username">
User name:</label>
<input class="text" type="text" id="add_user_username" />
<div id="add_user_username_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_password">
Password:</label>
<input class="text" type="password" id="add_user_password"
autocomplete="off" />
<div id="add_user_password_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_email">
Email:</label>
<input class="text" type="text" id="add_user_email" />
<div id="add_user_email_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_firstname">
First name:</label>
<input class="text" type="text" id="add_user_firstname" />
<div id="add_user_firstname_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_lastname">
Last name:</label>
<input class="text" type="text" id="add_user_lastname" />
<div id="add_user_lastname_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_timezone">
Time Zone:</label>
<select class="select" id="add_user_timezone" style="width: 240px">
<option value=""></option>
<option value='Etc/GMT+12'>[UTC-12:00] GMT-12:00</option>
<option value='Etc/GMT+11'>[UTC-11:00] GMT-11:00</option>
<option value='Pacific/Samoa'>[UTC-11:00] Samoa Standard Time</option>
<option value='Pacific/Honolulu'>[UTC-10:00] Hawaii Standard Time</option>
<option value='US/Alaska'>[UTC-09:00] Alaska Standard Time</option>
<option value='America/Los_Angeles'>[UTC-08:00] Pacific Standard Time</option>
<option value='Mexico/BajaNorte'>[UTC-08:00] Baja California</option>
<option value='US/Arizona'>[UTC-07:00] Arizona</option>
<option value='US/Mountain'>[UTC-07:00] Mountain Standard Time</option>
<option value='America/Chihuahua'>[UTC-07:00] Chihuahua, La Paz</option>
<option value='America/Chicago'>[UTC-06:00] Central Standard Time</option>
<option value='America/Costa_Rica'>[UTC-06:00] Central America</option>
<option value='America/Mexico_City'>[UTC-06:00] Mexico City, Monterrey</option>
<option value='Canada/Saskatchewan'>[UTC-06:00] Saskatchewan</option>
<option value='America/Bogota'>[UTC-05:00] Bogota, Lima</option>
<option value='America/New_York'>[UTC-05:00] Eastern Standard Time</option>
<option value='America/Caracas'>[UTC-04:00] Venezuela Time</option>
<option value='America/Asuncion'>[UTC-04:00] Paraguay Time</option>
<option value='America/Cuiaba'>[UTC-04:00] Amazon Time</option>
<option value='America/Halifax'>[UTC-04:00] Atlantic Standard Time</option>
<option value='America/La_Paz'>[UTC-04:00] Bolivia Time</option>
<option value='America/Santiago'>[UTC-04:00] Chile Time</option>
<option value='America/St_Johns'>[UTC-03:30] Newfoundland Standard Time</option>
<option value='America/Araguaina'>[UTC-03:00] Brasilia Time</option>
<option value='America/Argentina/Buenos_Aires'>[UTC-03:00] Argentine Time</option>
<option value='America/Cayenne'>[UTC-03:00] French Guiana Time</option>
<option value='America/Godthab'>[UTC-03:00] Greenland Time</option>
<option value='America/Montevideo'>[UTC-03:00] Uruguay Time]</option>
<option value='Etc/GMT+2'>[UTC-02:00] GMT-02:00</option>
<option value='Atlantic/Azores'>[UTC-01:00] Azores Time</option>
<option value='Atlantic/Cape_Verde'>[UTC-01:00] Cape Verde Time</option>
<option value='Africa/Casablanca'>[UTC] Casablanca</option>
<option value='Etc/UTC'>[UTC] Coordinated Universal Time</option>
<option value='Atlantic/Reykjavik'>[UTC] Reykjavik</option>
<option value='Europe/London'>[UTC] Western European Time</option>
<option value='CET'>[UTC+01:00] Central European Time</option>
<option value='Europe/Bucharest'>[UTC+02:00] Eastern European Time</option>
<option value='Africa/Johannesburg'>[UTC+02:00] South Africa Standard Time</option>
<option value='Asia/Beirut'>[UTC+02:00] Beirut</option>
<option value='Africa/Cairo'>[UTC+02:00] Cairo</option>
<option value='Asia/Jerusalem'>[UTC+02:00] Israel Standard Time</option>
<option value='Europe/Minsk'>[UTC+02:00] Minsk</option>
<option value='Europe/Moscow'>[UTC+03:00] Moscow Standard Time</option>
<option value='Africa/Nairobi'>[UTC+03:00] Eastern African Time</option>
<option value='Asia/Karachi'>[UTC+05:00] Pakistan Time</option>
<option value='Asia/Kolkata'>[UTC+05:30] India Standard Time</option>
<option value='Asia/Bangkok'>[UTC+05:30] Indochina Time</option>
<option value='Asia/Shanghai'>[UTC+08:00] China Standard Time</option>
<option value='Asia/Kuala_Lumpur'>[UTC+08:00] Malaysia Time</option>
<option value='Australia/Perth'>[UTC+08:00] Western Standard Time (Australia)</option>
<option value='Asia/Taipei'>[UTC+08:00] Taiwan</option>
<option value='Asia/Tokyo'>[UTC+09:00] Japan Standard Time</option>
<option value='Asia/Seoul'>[UTC+09:00] Korea Standard Time</option>
<option value='Australia/Adelaide'>[UTC+09:30] Central Standard Time (South Australia)</option>
<option value='Australia/Darwin'>[UTC+09:30] Central Standard Time (Northern Territory)</option>
<option value='Australia/Brisbane'>[UTC+10:00] Eastern Standard Time (Queensland)</option>
<option value='Australia/Canberra'>[UTC+10:00] Eastern Standard Time (New South Wales)</option>
<option value='Pacific/Guam'>[UTC+10:00] Chamorro Standard Time</option>
<option value='Pacific/Auckland'>[UTC+12:00] New Zealand Standard Time</option>
</select>
</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 User Dialog (end)-->
<!-- dialogs (end) -->

View File

@ -55,11 +55,7 @@ function afterLoadAccountJSP() {
var afterSwitchFnArray = [accountJsonToDetailsTab, accountJsonToUserTab];
switchBetweenDifferentTabs(tabArray, tabContentArray, afterSwitchFnArray);
initTimezonesObj();
if(isAdmin()) {
initAddUserDialog();
}
initTimezonesObj();
}
function initTimezonesObj() {
@ -125,8 +121,7 @@ function initTimezonesObj() {
timezones['Pacific/Auckland']='[UTC+12:00] New Zealand Standard Time';
}
function initAddUserDialog() {
//dialogs
function initAddAccountDialog() {
initDialog("dialog_add_account", 450);
var $dialogAddAccount = $("#dialog_add_account");
@ -242,6 +237,104 @@ function initAddUserDialog() {
});
}
function initAddUserDialog() {
initDialog("dialog_add_user", 450);
var $dialogAddUser = $("#dialog_add_user");
//add button ***
$("#midmenu_add_link").find("#label").text("Add User");
$("#midmenu_add_link").show();
$("#midmenu_add_link").unbind("click").bind("click", function(event) {
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
if($midmenuItem1 == null)
return;
var accountObj = $midmenuItem1.data("jsonObj");
if(accountObj == null)
return;
$dialogAddUser.find("#account_name").text(accountObj.name);
$dialogAddUser
.dialog('option', 'buttons', {
"Create": function() {
var $thisDialog = $(this);
// validate values
var isValid = true;
isValid &= validateString("User name", $thisDialog.find("#add_user_username"), $thisDialog.find("#add_user_username_errormsg"), false); //required
isValid &= validateString("Password", $thisDialog.find("#add_user_password"), $thisDialog.find("#add_user_password_errormsg"), false); //required
isValid &= validateString("Email", $thisDialog.find("#add_user_email"), $thisDialog.find("#add_user_email_errormsg"), true); //optional
isValid &= validateString("First name", $thisDialog.find("#add_user_firstname"), $thisDialog.find("#add_user_firstname_errormsg"), true); //optional
isValid &= validateString("Last name", $thisDialog.find("#add_user_lastname"), $thisDialog.find("#add_user_lastname_errormsg"), true); //optional
if (!isValid)
return;
$thisDialog.find("#spinning_wheel").show();
var array1 = [];
var username = $thisDialog.find("#add_user_username").val();
array1.push("&username="+todb(username));
var password = $.md5(encodeURIComponent($thisDialog.find("#add_user_password").val()));
array1.push("&password="+password);
var email = $thisDialog.find("#add_user_email").val();
if(email == "")
email = username;
array1.push("&email="+todb(email));
var firstname = $thisDialog.find("#add_user_firstname").val();
if(firstname == "")
firstname = username;
array1.push("&firstname="+todb(firstname));
var lastname = $thisDialog.find("#add_user_lastname").val();
if(lastname == "")
lastname = username;
array1.push("&lastname="+todb(lastname));
array1.push("&domainid="+accountObj.domainid);
array1.push("&account="+accountObj.name);
array1.push("&accounttype="+accountObj.accounttype);
var timezone = $thisDialog.find("#add_user_timezone").val();
if(timezone != null && timezone.length > 0)
array1.push("&timezone="+todb(timezone));
$.ajax({
type: "POST",
data: createURL("command=createUser"+array1.join("")),
dataType: "json",
async: false,
success: function(json) {
$thisDialog.find("#spinning_wheel").hide();
$thisDialog.dialog("close");
var item = json.createuserresponse.user;
var $subgridItem = $("#user_tab_template").clone(true);
accountUserJSONToTemplate(item, $subgridItem);
$subgridItem.find("#after_action_info").text("User was added successfully.");
$subgridItem.find("#after_action_info_container").removeClass("error").addClass("success").show();
$("#tab_content_user").find("#tab_container").append($subgridItem.show());
},
error: function(XMLHttpResponse) {
handleError(XMLHttpResponse, function() {
handleErrorInDialog(XMLHttpResponse, $thisDialog);
});
}
});
},
"Cancel": function() {
$(this).dialog("close");
}
}).dialog("open");
return false;
});
}
function accountToMidmenu(jsonObj, $midmenuItem1) {
$midmenuItem1.attr("id", getMidmenuId(jsonObj));
$midmenuItem1.data("jsonObj", jsonObj);
@ -272,9 +365,11 @@ function accountJsonToDetailsTab() {
var jsonObj = $midmenuItem1.data("jsonObj");
if(jsonObj == null)
return;
if(isAdmin())
initAddAccountDialog();
var $detailsTab = $("#right_panel_content").find("#tab_content_details");
var $detailsTab = $("#right_panel_content").find("#tab_content_details");
$detailsTab.find("#grid_header_title").text(fromdb(jsonObj.name));
$detailsTab.find("#id").text(fromdb(jsonObj.id));
$detailsTab.find("#role").text(toRole(jsonObj.accounttype));
@ -322,6 +417,9 @@ function accountJsonToUserTab() {
var jsonObj = $midmenuItem1.data("jsonObj");
if(jsonObj == null)
return;
if(isAdmin())
initAddUserDialog();
var $thisTab = $("#right_panel_content").find("#tab_content_user");
$thisTab.find("#tab_container").hide();

View File

@ -535,7 +535,7 @@ function initAddSecondaryStorageButton($button, $leftmenuItem1) {
if (!isValid)
return;
$thisDialog.find("#spinning_wheel").show()
$thisDialog.find("#spinning_wheel").show();
var zoneId = zoneObj.id;
var nfs_server = trim($thisDialog.find("#nfs_server").val());