Account page - implement "Add User" function.

This commit is contained in:
Jessica Wang 2010-12-03 15:12:50 -08:00
parent cb605e626a
commit bb9877b2a2
2 changed files with 245 additions and 1 deletions

View File

@ -202,6 +202,140 @@
</p>
</div>
<!-- Add User Dialog (begin)-->
<div id="dialog_add_user" title="Add New user" style="display: none">
<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_account">
Account:</label>
<input class="text" type="text" id="add_user_account" />
<div id="add_user_account_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="add_user_account_type">
Role:</label>
<select class="select" id="add_user_account_type">
<option value="0">User</option>
<option value="1">Admin</option>
</select>
</li>
<li>
<label for="add_user_domain">
Domain:</label>
<select class="select" id="domain_dropdown">
</select>
</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>
</div>
<!-- Add User Dialog (end)-->
<!-- advanced search template (begin) -->
<div id="advanced_search_template" class="adv_searchpopup" style="display: none;">
<div class="adv_searchformbox">

View File

@ -16,6 +16,7 @@
*
*/
var rootDomainId = 1;
var systemAccountId = 1;
var adminAccountId = 2;
@ -46,7 +47,116 @@ function afterLoadAccountJSP() {
initDialog("dialog_resource_limits");
initDialog("dialog_disable_account");
initDialog("dialog_lock_account");
initDialog("dialog_enable_account");
initDialog("dialog_enable_account");
if(isAdmin()) {
initAddUserDialog();
}
}
function initAddUserDialog() {
//dialogs
initDialog("dialog_add_user", 450);
var $dialogAddUser = $("#dialog_add_user");
$.ajax({
data: createURL("command=listDomains"),
dataType: "json",
success: function(json) {
var domains = json.listdomainsresponse.domain;
var $dropDownBox = $dialogAddUser.find("#domain_dropdown").empty();
if (domains != null && domains.length > 0) {
for (var i = 0; i < domains.length; i++)
$dropDownBox.append("<option value='" + fromdb(domains[i].id) + "'>" + fromdb(domains[i].name) + "</option>");
}
}
});
//add button ***
$("#midmenu_add_link").find("#label").text("Add User");
$("#midmenu_add_link").show();
$("#midmenu_add_link").unbind("click").bind("click", function(event) {
$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
isValid &= validateString("Account", $thisDialog.find("#add_user_account"), $thisDialog.find("#add_user_account_errormsg"), true); //optional
if (!isValid)
return;
var $midmenuItem1 = beforeAddingMidMenuItem() ;
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));
var account = $thisDialog.find("#add_user_account").val();
if(account == "")
account = username;
array1.push("&account="+account);
var accountType = $thisDialog.find("#add_user_account_type").val();
var domainId = $thisDialog.find("#domain_dropdown").val();
if (parseInt(domainId) != rootDomainId && accountType == "1") {
accountType = "2"; // Change to domain admin
}
array1.push("&accounttype="+accountType);
array1.push("&domainid="+domainId);
var timezone = $thisDialog.find("#add_user_timezone").val();
if(timezone != null && timezone.length > 0)
array1.push("&timezone="+todb(timezone));
$thisDialog.dialog("close");
$.ajax({
type: "POST",
data: createURL("command=createUser"+array1.join("")),
dataType: "json",
async: false,
success: function(json) {
accountToMidmenu(json.createuserresponse.user, $midmenuItem1);
bindClickToMidMenu($midmenuItem1, accountToRightPanel, getMidmenuId);
afterAddingMidMenuItem($midmenuItem1, true);
},
error: function(XMLHttpResponse) {
afterAddingMidMenuItem($midmenuItem1, false, parseXMLHttpResponse(XMLHttpResponse));
}
});
},
"Cancel": function() {
$(this).dialog("close");
}
}).dialog("open");
return false;
});
}
function accountToMidmenu(jsonObj, $midmenuItem1) {