You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
4.1 KiB
169 lines
4.1 KiB
11 years ago
|
<html>
|
||
|
<head>
|
||
|
<style type="text/css">
|
||
|
body
|
||
|
{
|
||
|
background-image: url('bg.jpg');
|
||
|
}
|
||
|
|
||
|
td
|
||
|
{
|
||
|
font-size: 20px;
|
||
|
color: white;
|
||
|
verical-align: middle;
|
||
|
}
|
||
|
|
||
|
</style>
|
||
|
<script type="text/javascript">
|
||
|
|
||
|
password_prompt = false;
|
||
|
selected_user = null;
|
||
|
time_remaining = 0
|
||
|
|
||
|
function show_prompt(text)
|
||
|
{
|
||
|
password_prompt = true;
|
||
|
|
||
|
label = document.getElementById('password_prompt');
|
||
|
label.innerHTML = text;
|
||
|
|
||
|
user_table = document.getElementById('user_table');
|
||
|
for (i in user_table.rows)
|
||
|
{
|
||
|
row = user_table.rows[i];
|
||
|
if (row.id != ('user_' + selected_user) && row.style != null) // FIXME: Don't know why there are rows with styles
|
||
|
row.style.opacity = 0.25;
|
||
|
}
|
||
|
|
||
|
entry = document.getElementById('password_entry');
|
||
|
entry.value = '';
|
||
|
|
||
|
table = document.getElementById('password_table');
|
||
|
table.style.visibility = "visible";
|
||
|
|
||
|
entry.focus();
|
||
|
}
|
||
|
|
||
|
function show_message(text)
|
||
|
{
|
||
|
table = document.getElementById('message_table');
|
||
|
label = document.getElementById('message_label');
|
||
|
label.innerHTML = text;
|
||
|
if (text.length > 0)
|
||
|
table.style.visibility = "visible";
|
||
|
else
|
||
|
table.style.visibility = "hidden";
|
||
|
}
|
||
|
|
||
|
function show_error(text)
|
||
|
{
|
||
|
show_message (text);
|
||
|
}
|
||
|
|
||
|
function reset()
|
||
|
{
|
||
|
user_table = document.getElementById('user_table');
|
||
|
for (i in user_table.rows)
|
||
|
{
|
||
|
row = user_table.rows[i];
|
||
|
if (row.style != null) // FIXME: Don't know why there are rows with styles
|
||
|
row.style.opacity = 1;
|
||
|
}
|
||
|
table = document.getElementById('password_table');
|
||
|
table.style.visibility = "hidden";
|
||
|
password_prompt = false;
|
||
|
}
|
||
|
|
||
|
loading_text = ''
|
||
|
|
||
|
function throbber()
|
||
|
{
|
||
|
loading_text += '.';
|
||
|
if (loading_text == '....')
|
||
|
loading_text = '.'
|
||
|
label = document.getElementById('countdown_label');
|
||
|
label.innerHTML = loading_text;
|
||
|
setTimeout('throbber()', 1000);
|
||
|
}
|
||
|
|
||
|
function authentication_complete()
|
||
|
{
|
||
|
if (lightdm.is_authenticated)
|
||
|
lightdm.login (lightdm.authentication_user, lightdm.default_session);
|
||
|
else
|
||
|
show_message ("Authentication Failed");
|
||
|
|
||
|
reset ();
|
||
|
setTimeout('throbber()', 1000);
|
||
|
}
|
||
|
|
||
|
function timed_login(user)
|
||
|
{
|
||
|
lightdm.login (lightdm.timed_login_user);
|
||
|
setTimeout('throbber()', 1000);
|
||
|
}
|
||
|
|
||
|
function start_authentication(username)
|
||
|
{
|
||
|
lightdm.cancel_timed_login ();
|
||
|
label = document.getElementById('countdown_label');
|
||
|
if (label != null)
|
||
|
label.style.visibility = "hidden";
|
||
|
|
||
|
show_message("");
|
||
|
if (!password_prompt) {
|
||
|
selected_user = username;
|
||
|
lightdm.start_authentication(username);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function provide_secret()
|
||
|
{
|
||
|
entry = document.getElementById('password_entry');
|
||
|
lightdm.provide_secret(entry.value);
|
||
|
}
|
||
|
|
||
|
function countdown()
|
||
|
{
|
||
|
label = document.getElementById('countdown_label');
|
||
|
label.innerHTML = ' in ' + time_remaining + ' seconds'
|
||
|
time_remaining--;
|
||
|
if (time_remaining >= 0)
|
||
|
setTimeout('countdown()', 1000);
|
||
|
}
|
||
|
|
||
|
document.write('<table id="user_table" style="margin: auto;">');
|
||
|
for (i in lightdm.users)
|
||
|
{
|
||
|
user = lightdm.users[i];
|
||
|
|
||
|
if (user.image.length > 0)
|
||
|
image = user.image
|
||
|
else
|
||
|
image = 'file:///usr/share/icons/gnome/32x32/stock/generic/stock_person.png'
|
||
|
|
||
|
document.write('<tr id="user_' + user.name +'"onclick="start_authentication(\'' + user.name + '\')" style="cursor: pointer;">');
|
||
|
document.write('<td><img width="48px" height="48px" src="' + image + '" /></td>');
|
||
|
document.write('<td>' + user.display_name + '</td>');
|
||
|
if (user.name == lightdm.timed_login_user && lightdm.timed_login_delay > 0)
|
||
|
document.write('<td id="countdown_label"></td>');
|
||
|
document.write('</tr>');
|
||
|
}
|
||
|
document.write('</table>');
|
||
|
document.write('<table id="message_table" style="margin: auto; visibility: hidden;"><td id="message_label"></td></table>');
|
||
|
document.write('<table id="password_table" style="margin: auto; visibility: hidden; color: red;"><tr>');
|
||
|
document.write('<td id="password_prompt"></td>');
|
||
|
document.write('<td><form action="javascript: provide_secret()"><input id="password_entry" type="password" /></form></td>');
|
||
|
document.write('</tr></table>');
|
||
|
|
||
|
time_remaining = lightdm.timed_login_delay;
|
||
|
if (time_remaining > 0)
|
||
|
countdown();
|
||
|
</script>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
</body>
|
||
|
|
||
|
</html>
|