You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RnQ/Distro/Template/users.htm

113 lines
3.6 KiB
HTML

<html window-icon="themepicsingle:users">
<head>
<include src="common.htm" />
<style src="users.css" />
<script>
var users = $("#users"),
start = $("#start"),
createacc = $("#createacc"),
deleteacc = $("#deleteacc"),
getnew = $("#getnew"),
rnqver = $("#rnqver"),
link = $("#link"),
data;
view.uniqueid = "users";
view.isDialog = true;
view.minSize = [300, 160];
if (view.icon == null) CommonNative.SetLargeWindowIcon(document, "");
CommonNative.ShowTaskbarButton(document);
setupWindow(true, false, false);
translateWindow("span");
animateWindow();
function updateStartButton() {
start.state.disabled = users.value == undefined || users.value == null;
}
function startSelectedUser() {
var uin = users.value;
if (uin == "" || uin == data[1]) {
view.close();
return;
}
for (let user of data[2])
if (user.uin == uin) {
if (user.encr) {
if (!CommonNative.CheckAccountPass(uin)) uin = false;
} else {
CommonNative.SaveNewAccountPassword("");
}
if (uin !== false) view.close(uin);
break;
}
}
function reloadUsers() {
data = CommonNative.GetUsersData();
if (!data[2]) data[2] = [];
users.clear();
data[2] = data[2].sort((user1, user2) => {
var uin1 = parseFloat(user1.uin);
if (isNaN(uin1)) uin1 = false;
var uin2 = parseFloat(user2.uin);
if (isNaN(uin2)) uin2 = false;
if (uin1 !== false || uin2 !== false)
return (uin1 !== false ? uin1 : Number.MAX_VALUE) > (uin2 !== false ? uin2 : Number.MAX_VALUE) ? 1 : -1;
else
return user1.uin.toLowerCase().localeCompare(user2.uin.toLowerCase());
});
for (let user of data[2]) {
var children = [];
if (user.encr)
children.push(MainNative ? <div auto pic="key" class="nick"></div> : <div class="nick">[{_("encrypted")}]</div>);
else if (user.uin != user.name)
children.push(<div class="nick">{user.name}</div>);
users.append(<option value={user.uin}><div class="uin">{user.uin}</div>{children}</option>);
}
if (data[0]) {
users.flushPaint();
var selected = users.$("option[value=\"" + data[0] + "\"]");
if (selected) selected.execCommand("set-current");
}
rnqver.html = data[3];
updateStartButton();
start.state.focus = true;
}
users.on("dblclick", (e) => { if (e.mainButton) startSelectedUser() });
users.on("change", (e) => updateStartButton());
start.on("click", (e) => startSelectedUser());
createacc.on("click", (e) => createNewAccount());
deleteacc.on("click", (e) => CommonNative.DeleteAccount(users.value));
getnew.on("click", (e) => CommonNative.OpenICQReg());
link.on("click", (e) => CommonNative.OpenPortal());
reloadUsers();
document.on("keydown", (e) => {
if (e.keyCode == Event.VK_ESCAPE || (e.ctrlKey && e.keyCode == Event.VK_W)) view.close();
else if (e.keyCode == Event.VK_RETURN && e.target == users) startSelectedUser();
});
</script>
</head>
<body>
<select type="list" as="string" id="users" />
<div class="buttonpane">
<button uwp wide withpic id="start"><div auto pic="ok"></div><span>Start</span></button>
<button uwp wide withpic id="createacc" title="Input your UIN and create a new user"><div auto pic="add"></div><span>Create account</span></button>
<button uwp wide withpic id="deleteacc"><div auto pic="delete"></div><span>Delete account</span></button>
<button uwp wide withpic id="getnew" title="Create new UIN on the server"><span>Get new ICQ account</span></button>
<div id="link">
<div id="rnqver"></div>
<img src="resource:rnqnew48" class="logo" />
</div>
</div>
</body>
</html>