| Index: remoting/webapp/me2mom/home_screen.js
|
| diff --git a/remoting/webapp/me2mom/home_screen.js b/remoting/webapp/me2mom/home_screen.js
|
| index 8a107eab5b4c579973209ee790b6163326b8b641..8660fcee96fb089be791ac6082e2779caf34ddea 100644
|
| --- a/remoting/webapp/me2mom/home_screen.js
|
| +++ b/remoting/webapp/me2mom/home_screen.js
|
| @@ -12,15 +12,6 @@
|
| /** @suppress {duplicate} */
|
| var remoting = remoting || {};
|
|
|
| -/**
|
| - * Cache of the latest host list and status information.
|
| - *
|
| - * @type {Array.<{hostName: string, hostId: string, status: string,
|
| - * jabberId: string, publicKey: string}>}
|
| - *
|
| - */
|
| -remoting.hostList = new Array();
|
| -
|
| (function() {
|
|
|
| /**
|
| @@ -35,7 +26,7 @@ remoting.refreshHostList = function() {
|
| if (remoting.oauth2.needsNewAccessToken()) {
|
| // Failed to get access token
|
| console.error('refreshHostList: OAuth2 token fetch failed');
|
| - showHostListError_(remoting.Error.AUTHENTICATION_FAILED);
|
| + remoting.hostList.showError(remoting.Error.AUTHENTICATION_FAILED);
|
| return;
|
| }
|
| remoting.refreshHostList();
|
| @@ -78,7 +69,7 @@ function parseHostListResponse_(xhr) {
|
| var parsed_response =
|
| /** @type {{data: {items: Array}}} */ JSON.parse(xhr.responseText);
|
| if (parsed_response.data && parsed_response.data.items) {
|
| - replaceHostList_(parsed_response.data.items);
|
| + remoting.hostList.update(parsed_response.data.items);
|
| }
|
| } else {
|
| // Some other error. Log for now, pretty-print in future.
|
| @@ -99,7 +90,7 @@ function parseHostListResponse_(xhr) {
|
| if (xhr.status == 403) {
|
| // The user's account is not enabled for Me2Me, so fail silently.
|
| } else if (xhr.status >= 400 && xhr.status <= 499) {
|
| - showHostListError_(remoting.Error.GENERIC);
|
| + remoting.hostList.showError(remoting.Error.GENERIC);
|
| }
|
| }
|
| } catch (er) {
|
| @@ -107,100 +98,4 @@ function parseHostListResponse_(xhr) {
|
| }
|
| }
|
|
|
| -/**
|
| - * Refresh the host list display with up to date host details.
|
| - *
|
| - * @param {Array.<{hostName: string, hostId: string, status: string,
|
| - * jabberId: string, publicKey: string}>} hostList
|
| - * The new list of registered hosts.
|
| - * @return {void} Nothing.
|
| - */
|
| -function replaceHostList_(hostList) {
|
| - var hostListDiv = document.getElementById('host-list-div');
|
| - var hostListTable = document.getElementById('host-list');
|
| -
|
| - remoting.hostList = hostList;
|
| -
|
| - // Clear the table before adding the host info.
|
| - hostListTable.innerHTML = '';
|
| - showHostListError_(null);
|
| -
|
| - for (var i = 0; i < hostList.length; ++i) {
|
| - var host = hostList[i];
|
| - if (!host.hostName || !host.hostId || !host.status || !host.jabberId ||
|
| - !host.publicKey)
|
| - continue;
|
| - var hostEntry = document.createElement('tr');
|
| - addClass(hostEntry, 'host-list-row');
|
| -
|
| - var hostIcon = document.createElement('td');
|
| - var hostIconImage = document.createElement('img');
|
| - hostIconImage.src = 'icon_host.png';
|
| - hostIcon.className = 'host-list-row-start';
|
| - hostIcon.appendChild(hostIconImage);
|
| - hostEntry.appendChild(hostIcon);
|
| -
|
| - var hostName = document.createElement('td');
|
| - hostName.setAttribute('class', 'mode-select-label');
|
| - hostName.appendChild(document.createTextNode(host.hostName));
|
| - hostEntry.appendChild(hostName);
|
| -
|
| - var hostStatus = document.createElement('td');
|
| - if (host.status == 'ONLINE') {
|
| - var connectButton = document.createElement('button');
|
| - connectButton.setAttribute('class', 'mode-select-button');
|
| - connectButton.setAttribute('type', 'button');
|
| - connectButton.setAttribute('onclick',
|
| - 'remoting.connectHost("'+host.hostId+'")');
|
| - connectButton.innerHTML =
|
| - chrome.i18n.getMessage(/*i18n-content*/'CONNECT_BUTTON');
|
| - hostStatus.appendChild(connectButton);
|
| - } else {
|
| - addClass(hostEntry, 'host-offline');
|
| - hostStatus.innerHTML = chrome.i18n.getMessage(/*i18n-content*/'OFFLINE');
|
| - }
|
| - hostStatus.className = 'host-list-row-end';
|
| - hostEntry.appendChild(hostStatus);
|
| -
|
| - hostListTable.appendChild(hostEntry);
|
| - }
|
| -
|
| - showHostList_(hostList.length != 0);
|
| -}
|
| -
|
| -/**
|
| - * Show or hide the host list.
|
| - * @param {boolean} show True to show the list or false to hide it.
|
| - * @return {void}
|
| - */
|
| -function showHostList_(show) {
|
| - var hostListDiv = document.getElementById('host-list-div');
|
| - hostListDiv.hidden = (!show);
|
| - if (show) {
|
| - hostListDiv.style.height = hostListDiv.scrollHeight + 'px';
|
| - removeClass(hostListDiv, 'collapsed');
|
| - } else {
|
| - addClass(hostListDiv, 'collapsed');
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * Show an error message in the host list portion of the UI.
|
| - *
|
| - * @param {remoting.Error?} errorTag The error to display, or NULL to clear any
|
| - * previous error.
|
| - * @return {void} Nothing.
|
| - */
|
| -function showHostListError_(errorTag) {
|
| - var hostListTable = document.getElementById('host-list');
|
| - hostListTable.innerHTML = '';
|
| - var errorDiv = document.getElementById('host-list-error');
|
| - if (errorTag) {
|
| - l10n.localizeElementFromTag(errorDiv, /** @type {string} */ (errorTag));
|
| - showHostList_(true);
|
| - } else {
|
| - errorDiv.innerText = '';
|
| - }
|
| -}
|
| -
|
| }());
|
|
|