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

Unified Diff: remoting/webapp/me2mom/remoting.js

Issue 7078022: Fix up remoting UI to make it closer to spec (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: turned on strict Created 9 years, 7 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
Index: remoting/webapp/me2mom/remoting.js
diff --git a/remoting/webapp/me2mom/remoting.js b/remoting/webapp/me2mom/remoting.js
index 7b1adde5664331059037091d671a2cf2db79c05c..53dbc3849af782e6e9eb4ac943ce1c20d527a00d 100644
--- a/remoting/webapp/me2mom/remoting.js
+++ b/remoting/webapp/me2mom/remoting.js
@@ -4,23 +4,28 @@
// TODO(ajwong): This seems like a bad idea to share the exact same object
// with the background page. Why are we doing it like this?
+
+"use strict";
+
var remoting = chrome.extension.getBackgroundPage().remoting;
+remoting.CLIENT_MODE='client';
+remoting.HOST_MODE='host';
-XMPP_LOGIN_NAME = 'xmpp_login';
-XMPP_TOKEN_NAME = 'xmpp_token';
-HOST_PLUGIN_ID = 'host_plugin_id';
+var XMPP_LOGIN_NAME = 'xmpp_login';
+var XMPP_TOKEN_NAME = 'xmpp_token';
+var HOST_PLUGIN_ID = 'host_plugin_id';
function updateAuthStatus_() {
- var oauth2_status = document.getElementById('oauth2_status');
if (remoting.oauth2.isAuthenticated()) {
- oauth2_status.innerText = 'OK';
- oauth2_status.style.color = 'green';
+ document.getElementById('oauth2_code').style.display = 'none';
+ document.getElementById('oauth2_submit_button').style.display = 'none';
document.getElementById('oauth2_code_button').style.display = 'none';
document.getElementById('oauth2_clear_button').style.display = 'inline';
- document.getElementById('oauth2_form').style.display = 'none';
+ document.getElementById('oauth2_form').style.display = 'inline';
} else {
- oauth2_status.innerText = 'Unauthorized';
- oauth2_status.style.color = 'red';
+ document.getElementById('oauth2_code').value = "";
+ document.getElementById('oauth2_code').style.display = 'inline';
+ document.getElementById('oauth2_submit_button').style.display = 'none';
document.getElementById('oauth2_code_button').style.display = 'inline';
document.getElementById('oauth2_clear_button').style.display = 'none';
document.getElementById('oauth2_form').style.display = 'inline';
@@ -39,11 +44,16 @@ function updateAuthStatus_() {
}
var current_email = document.getElementById('current_email');
if (remoting.getItem(XMPP_LOGIN_NAME)) {
- oauth2_status.style.color = 'green';
current_email.innerText = remoting.getItem(XMPP_LOGIN_NAME);
+ current_email.style.display = 'inline';
+ document.getElementById('new_email').style.display = 'none';
+ document.getElementById('email_submit_button').style.display = 'none';
+ document.getElementById('change_email_button').style.display = 'inline';
} else {
- oauth2_status.style.color = 'red';
- current_email.innerText = 'missing e-mail';
+ current_email.style.display = 'none';
+ document.getElementById('new_email').style.display = 'inline';
+ document.getElementById('email_submit_button').style.display = 'inline';
+ document.getElementById('change_email_button').style.display = 'none';
}
}
@@ -146,13 +156,20 @@ function authorizeXmpp(form) {
xhr.send(post_data);
}
-function setEmail(form) {
- remoting.setItem(XMPP_LOGIN_NAME, form['new_email'].value);
+function setEmail(value) {
+ remoting.setItem(XMPP_LOGIN_NAME, value);
+ updateAuthStatus_();
+}
+
+function exchangedCodeForToken_() {
+ if (!remoting.oauth2.isAuthenticated()) {
+ alert("Your OAuth2 token was invalid. Please try again.");
+ }
updateAuthStatus_();
}
function authorizeOAuth2(code) {
- remoting.oauth2.exchangeCodeForToken(code, updateAuthStatus_);
+ remoting.oauth2.exchangeCodeForToken(code, exchangedCodeForToken_);
}
function clearOAuth2() {
@@ -160,6 +177,16 @@ function clearOAuth2() {
updateAuthStatus_();
}
+function handleOAuth2CodeChange() {
+ if (document.getElementById('oauth2_code').value.length > 0) {
+ document.getElementById('oauth2_submit_button').style.display = 'inline';
+ document.getElementById('oauth2_code_button').style.display = 'none';
+ } else {
+ document.getElementById('oauth2_submit_button').style.display = 'none';
+ document.getElementById('oauth2_code_button').style.display = 'inline';
+ }
+}
+
function clearXmpp() {
remoting.removeItem(XMPP_TOKEN_NAME);
updateAuthStatus_();
@@ -182,11 +209,37 @@ function init() {
initAuthPanel_();
setHostMode('unshared');
setClientMode('unconnected');
- setGlobalMode(remoting.getItem('startup-mode', 'host'));
+ setGlobalMode(remoting.getItem('startup-mode', remoting.HOST_MODE));
}
function setGlobalMode(mode) {
- setMode_(mode, ['host', 'client']);
+ var elementsToShow = [];
+ var elementsToHide = [];
+ var hostElements = [
+ { id:'host_section', display:'block' },
+ { id:'host_header', display:'inline' },
+ { id:'host_footer', display:'block'}
+ ];
+ var clientElements = [
+ { id:'client_section', display:'block' },
+ { id:'client_header', display:'inline' },
+ { id:'client_footer', display:'block'}
+ ];
+ if (mode == remoting.HOST_MODE) {
+ elementsToShow = hostElements;
+ elementsToHide = clientElements;
+ } else {
+ elementsToShow = clientElements;
+ elementsToHide = hostElements;
+ }
+ for (var i = 0; i < elementsToShow.length; ++i) {
+ var div = document.getElementById(elementsToShow[i].id);
+ div.style.display = elementsToShow[i].display;
+ }
+ for (var i = 0; i < elementsToHide.length; ++i) {
+ var div = document.getElementById(elementsToHide[i].id);
+ div.style.display = 'none';
+ }
}
function setGlobalModePersistent(mode) {
@@ -310,14 +363,15 @@ function resolveSupportId(support_id) {
xhr.send(null);
}
-function tryConnect(accessCode) {
+function tryConnect() {
Jamie 2011/05/31 18:11:49 Why not pass the access code in as before? That wa
dmac 2011/06/01 23:01:58 Because currently it doesn't work with the "form"
+ var accessCode = document.getElementById('access_code_entry').value;
if (remoting.oauth2.needsNewAccessToken()) {
remoting.oauth2.refreshAccessToken(function() {
if (remoting.oauth2.needsNewAccessToken()) {
// If we still need it, we're going to infinite loop.
throw "Unable to get access token";
}
- tryConnect(accessCode);
+ tryConnect();
});
return;
}

Powered by Google App Engine
This is Rietveld 408576698