OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Class representing the host-list portion of the home screen UI. | 7 * Class representing the host-list portion of the home screen UI. |
8 */ | 8 */ |
9 | 9 |
10 'use strict'; | 10 'use strict'; |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 var canChangeLocalHostState = | 282 var canChangeLocalHostState = |
283 (state != remoting.HostController.State.NOT_IMPLEMENTED) && | 283 (state != remoting.HostController.State.NOT_IMPLEMENTED) && |
284 (state != remoting.HostController.State.UNKNOWN) && | 284 (state != remoting.HostController.State.UNKNOWN) && |
285 (state != remoting.HostController.State.NOT_INSTALLED || | 285 (state != remoting.HostController.State.NOT_INSTALLED || |
286 remoting.isMe2MeInstallable()) && | 286 remoting.isMe2MeInstallable()) && |
287 (enabled || this.lastError_ == ''); | 287 (enabled || this.lastError_ == ''); |
288 | 288 |
289 remoting.updateModalUi(enabled ? 'enabled' : 'disabled', 'data-daemon-state'); | 289 remoting.updateModalUi(enabled ? 'enabled' : 'disabled', 'data-daemon-state'); |
290 var element = document.getElementById('daemon-control'); | 290 var element = document.getElementById('daemon-control'); |
291 element.hidden = !canChangeLocalHostState; | 291 element.hidden = !canChangeLocalHostState; |
292 element = document.getElementById('host-list-empty-hosting-supported'); | 292 |
293 element.hidden = !canChangeLocalHostState; | 293 if (noHostsRegistered) { |
294 element = document.getElementById('host-list-empty-hosting-unsupported'); | 294 this.showHostListEmptyMessage_(canChangeLocalHostState); |
295 element.hidden = canChangeLocalHostState; | 295 } |
296 }; | 296 }; |
297 | 297 |
298 /** | 298 /** |
| 299 * Displays a message to the user when the host list is empty. |
| 300 * |
| 301 * @param {boolean} hostingSupported |
| 302 * @return {void} |
| 303 * @private |
| 304 */ |
| 305 remoting.HostList.prototype.showHostListEmptyMessage_ = function( |
| 306 hostingSupported) { |
| 307 var that = this; |
| 308 remoting.AppsV2Migration.hasHostsInV1App().then( |
| 309 /** |
| 310 * @param {remoting.MigrationSettings} previousIdentity |
| 311 * @this {remoting.HostList} |
| 312 */ |
| 313 function(previousIdentity) { |
| 314 that.noHosts_.innerHTML = remoting.AppsV2Migration.buildMigrationTips( |
| 315 previousIdentity.email, previousIdentity.fullName); |
| 316 }, |
| 317 function() { |
| 318 var buttonLabel = l10n.getTranslationOrError( |
| 319 /*i18n-content*/'HOME_DAEMON_START_BUTTON'); |
| 320 if (hostingSupported) { |
| 321 that.noHosts_.innerText = l10n.getTranslationOrError( |
| 322 /*i18n-content*/'HOST_LIST_EMPTY_HOSTING_SUPPORTED', |
| 323 [buttonLabel]); |
| 324 } else { |
| 325 that.noHosts_.innerText = l10n.getTranslationOrError( |
| 326 /*i18n-content*/'HOST_LIST_EMPTY_HOSTING_UNSUPPORTED', |
| 327 [buttonLabel]); |
| 328 } |
| 329 } |
| 330 ); |
| 331 }; |
| 332 |
| 333 /** |
299 * Remove a host from the list, and deregister it. | 334 * Remove a host from the list, and deregister it. |
300 * @param {remoting.HostTableEntry} hostTableEntry The host to be removed. | 335 * @param {remoting.HostTableEntry} hostTableEntry The host to be removed. |
301 * @return {void} Nothing. | 336 * @return {void} Nothing. |
302 * @private | 337 * @private |
303 */ | 338 */ |
304 remoting.HostList.prototype.deleteHost_ = function(hostTableEntry) { | 339 remoting.HostList.prototype.deleteHost_ = function(hostTableEntry) { |
305 this.table_.removeChild(hostTableEntry.tableRow); | 340 this.table_.removeChild(hostTableEntry.tableRow); |
306 var index = this.hostTableEntries_.indexOf(hostTableEntry); | 341 var index = this.hostTableEntries_.indexOf(hostTableEntry); |
307 if (index != -1) { | 342 if (index != -1) { |
308 this.hostTableEntries_.splice(index, 1); | 343 this.hostTableEntries_.splice(index, 1); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 } | 490 } |
456 }; | 491 }; |
457 | 492 |
458 /** | 493 /** |
459 * Save the host list to local storage. | 494 * Save the host list to local storage. |
460 */ | 495 */ |
461 remoting.HostList.prototype.save_ = function() { | 496 remoting.HostList.prototype.save_ = function() { |
462 var items = {}; | 497 var items = {}; |
463 items[remoting.HostList.HOSTS_KEY] = JSON.stringify(this.hosts_); | 498 items[remoting.HostList.HOSTS_KEY] = JSON.stringify(this.hosts_); |
464 chrome.storage.local.set(items); | 499 chrome.storage.local.set(items); |
| 500 if (this.hosts_.length !== 0) { |
| 501 remoting.AppsV2Migration.saveUserInfo(); |
| 502 } |
465 }; | 503 }; |
466 | 504 |
467 /** | 505 /** |
468 * Key name under which Me2Me hosts are cached. | 506 * Key name under which Me2Me hosts are cached. |
469 */ | 507 */ |
470 remoting.HostList.HOSTS_KEY = 'me2me-cached-hosts'; | 508 remoting.HostList.HOSTS_KEY = 'me2me-cached-hosts'; |
471 | 509 |
472 /** @type {remoting.HostList} */ | 510 /** @type {remoting.HostList} */ |
473 remoting.hostList = null; | 511 remoting.hostList = null; |
OLD | NEW |