Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: remoting/client/extension/client.js

Issue 6518013: Update Chromoting login UI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove old gaia css Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/client/extension/chromoting_tab.html ('k') | remoting/client/extension/hostlist.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/extension/client.js
diff --git a/remoting/client/extension/client.js b/remoting/client/extension/client.js
index 22b9c654ddec3370909aa01aa2b0d3612cf571c1..3ff12ac10ca600c80f62028ab87cafc86404f016 100644
--- a/remoting/client/extension/client.js
+++ b/remoting/client/extension/client.js
@@ -49,9 +49,7 @@ function updateLoginStatus() {
if (!username) {
var signinLink = document.createElement('a');
- signinLink.setAttribute('href',
- "javascript:window.open('login.html', 'Sign In', " +
- "'width=400,height=200,scrollbars=no'); return false;");
+ signinLink.setAttribute('href', 'javascript:showDirectoryLogin();');
signinLink.appendChild(document.createTextNode('Sign In'));
loginDiv.appendChild(signinLink);
} else {
@@ -63,26 +61,37 @@ function updateLoginStatus() {
loginDiv.appendChild(document.createTextNode(' | '));
var signoutLink = document.createElement('a');
- signoutLink.setAttribute('href', 'javascript:logout(this.form);');
+ signoutLink.setAttribute('href', 'javascript:logoutAndReload(this.form);');
signoutLink.appendChild(document.createTextNode('Sign Out'));
loginDiv.appendChild(signoutLink);
}
}
+// Sign out the current user and reload the host list.
+function logoutAndReload(form) {
+ logout();
+ populateHostList();
+}
+
// Sign out the current user by erasing the auth cookies.
-function logout(form) {
+function logout() {
setCookie('username', '', AUTH_EXPIRES);
setCookie('chromoting_auth', '', AUTH_EXPIRES);
setCookie('xmpp_auth', '', AUTH_EXPIRES);
updateLoginStatus();
- populateHostList();
}
-function login(form) {
- var status = document.getElementById('login_status');
- clear(status);
- doLogin(form.username.value, form.password.value, checkLogin);
+// Sign in to Chromoting Directory services.
+function showDirectoryLogin() {
+ document.getElementById("login_panel").style.display = "block";
+}
+
+function login() {
+ var username = document.getElementById("username").value;
+ var password = document.getElementById("password").value;
+
+ doLogin(username, password, checkLogin);
}
// Check to see if the login was successful.
@@ -92,14 +101,19 @@ function checkLogin() {
var xauth = getCookie('xmpp_auth');
// Verify login and show login status.
- var status = document.getElementById('login_status');
if (cauth == BAD_AUTH_TOKEN || xauth == BAD_AUTH_TOKEN) {
- appendMessage(status, '', 'Sign in failed!');
- if (username) {
- setCookie('username', '', AUTH_EXPIRES);
- }
+ // Erase the username cookie.
+ setCookie('username', '', AUTH_EXPIRES);
+ showLoginError("Sign in failed!");
} else {
- appendMessage(status, '', 'Successfully signed in as ' + username);
+ // Successful login - update status and update host list.
+ updateLoginStatus();
+ populateHostList();
+
+ // Hide login dialog and clear out values.
+ document.getElementById('login_panel').style.display = "none";
+ document.getElementById('username').value = "";
+ document.getElementById('password').value = "";
}
}
@@ -146,6 +160,23 @@ function doGaiaLogin(username, password, service, done) {
encodeURIComponent(service) + '&source=chromoclient');
}
+function showLoginError() {
+ var errorDiv = document.getElementById('errormsg_div');
+ clear(errorDiv);
+
+ errorDiv.appendChild(document.createTextNode(
+ "The username or password you entered is incorrect ["));
+
+ var helpLink = document.createElement('a');
+ helpLink.setAttribute('href',
+ 'http://www.google.com/support/accounts/bin/answer.py?answer=27444');
+ helpLink.setAttribute('target', '_blank');
+ helpLink.appendChild(document.createTextNode('?'));
+ errorDiv.appendChild(helpLink);
+
+ errorDiv.appendChild(document.createTextNode("]"));
+}
+
function extractAuthToken(message) {
var lines = message.split('\n');
for (var i = 0; i < lines.length; i++) {
@@ -223,13 +254,25 @@ function populateHostList() {
console.log('Error message ' + errorResponse.error.message);
clear(hostlistDiv);
- appendMessage(hostlistDiv, 'message',
- 'Unable to load host list for ' + username + '. ' +
- 'Please try again later.');
- appendMessage(hostlistDiv, 'message',
- 'Error code: ' + errorResponse.error.code);
- appendMessage(hostlistDiv, 'message',
- 'Message: ' + errorResponse.error.message);
+ if (errorResponse.error.message == "Token expired") {
+ appendMessage(hostlistDiv, 'message',
+ 'The authentication token for ' + username +
+ ' has expired. Please sign in again.');
+ logout();
+ } else if (errorResponse.error.message == "Token invalid") {
+ appendMessage(hostlistDiv, 'message',
+ 'Invalid authentication token for ' + username + '. ' +
+ 'Please sign in again.');
+ logout();
+ } else {
+ appendMessage(hostlistDiv, 'message',
+ 'Unable to load host list for ' + username + '. ' +
+ 'Please try again later.');
+ appendMessage(hostlistDiv, 'message',
+ 'Error code: ' + errorResponse.error.code);
+ appendMessage(hostlistDiv, 'message',
+ 'Message: ' + errorResponse.error.message);
+ }
}
};
« no previous file with comments | « remoting/client/extension/chromoting_tab.html ('k') | remoting/client/extension/hostlist.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698