Chromium Code Reviews| 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 cr.define('options.network', function() { | 5 cr.define('options.network', function() { |
| 6 | 6 |
| 7 var ArrayDataModel = cr.ui.ArrayDataModel; | 7 var ArrayDataModel = cr.ui.ArrayDataModel; |
| 8 var List = cr.ui.List; | 8 var List = cr.ui.List; |
| 9 var ListItem = cr.ui.ListItem; | 9 var ListItem = cr.ui.ListItem; |
| 10 var Menu = cr.ui.Menu; | 10 var Menu = cr.ui.Menu; |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 408 if (candidateURL) | 408 if (candidateURL) |
| 409 this.iconURL = candidateURL; | 409 this.iconURL = candidateURL; |
| 410 else | 410 else |
| 411 this.iconType = this.data.key; | 411 this.iconType = this.data.key; |
| 412 | 412 |
| 413 this.showSelector(); | 413 this.showSelector(); |
| 414 | 414 |
| 415 if (policyManaged) | 415 if (policyManaged) |
| 416 this.showManagedNetworkIndicator(); | 416 this.showManagedNetworkIndicator(); |
| 417 | 417 |
| 418 // TODO(kevers): Add default icon for VPN when disconnected or in the | |
| 419 // process of connecting. | |
| 420 | |
| 421 if (activeMenu_ == this.getMenuName_()) { | 418 if (activeMenu_ == this.getMenuName_()) { |
| 422 // Menu is already showing and needs to be updated. Explicitly calling | 419 // Menu is already showing and needs to be updated. Explicitly calling |
| 423 // show menu will force the existing menu to be replaced. The call | 420 // show menu will force the existing menu to be replaced. The call |
| 424 // is deferred in order to ensure that position of this element has | 421 // is deferred in order to ensure that position of this element has |
| 425 // beem properly updated. | 422 // beem properly updated. |
| 426 var self = this; | 423 var self = this; |
| 427 setTimeout(function() {self.showMenu();}, 0); | 424 setTimeout(function() {self.showMenu();}, 0); |
| 428 } | 425 } |
| 429 }, | 426 }, |
| 430 | 427 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 453 data: {}}; | 450 data: {}}; |
| 454 if (disabled) { | 451 if (disabled) { |
| 455 entry.command = null; | 452 entry.command = null; |
| 456 entry.tooltip = | 453 entry.tooltip = |
| 457 loadTimeData.getString('dataRoamingDisableToggleTooltip'); | 454 loadTimeData.getString('dataRoamingDisableToggleTooltip'); |
| 458 } else { | 455 } else { |
| 459 entry.command = function() { | 456 entry.command = function() { |
| 460 options.Preferences.setBooleanPref( | 457 options.Preferences.setBooleanPref( |
| 461 'cros.signed.data_roaming_enabled', | 458 'cros.signed.data_roaming_enabled', |
| 462 !enableDataRoaming_); | 459 !enableDataRoaming_); |
| 463 // Force revalidation of the menu the next time it is | 460 // Force revalidation of the menu the next time it is displayed. |
| 464 // displayed. | |
| 465 this.menu_ = null; | 461 this.menu_ = null; |
| 466 }; | 462 }; |
| 467 } | 463 } |
| 468 addendum.push(entry); | 464 addendum.push(entry); |
| 469 } | 465 } |
| 470 var list = this.data.rememberedNetworks; | 466 var list = this.data.rememberedNetworks; |
| 471 if (list && list.length > 0) { | 467 if (list && list.length > 0) { |
| 472 var callback = function(list) { | 468 var callback = function(list) { |
| 473 $('remembered-network-list').clear(); | 469 $('remembered-network-list').clear(); |
| 474 var dialog = options.PreferredNetworks.getInstance(); | 470 var dialog = options.PreferredNetworks.getInstance(); |
| 475 OptionsPage.showPageByName('preferredNetworksPage', false); | 471 OptionsPage.showPageByName('preferredNetworksPage', false); |
| 476 dialog.update(list); | 472 dialog.update(list); |
| 477 }; | 473 }; |
| 478 addendum.push({label: loadTimeData.getString('preferredNetworks'), | 474 addendum.push({label: loadTimeData.getString('preferredNetworks'), |
| 479 command: callback, | 475 command: callback, |
| 480 data: list}); | 476 data: list}); |
| 481 } | 477 } |
| 482 | 478 |
| 483 var networkGroup = this.ownerDocument.createElement('div'); | 479 var networkGroup = this.ownerDocument.createElement('div'); |
| 484 networkGroup.className = 'network-menu-group'; | 480 networkGroup.className = 'network-menu-group'; |
| 485 var empty = true; | 481 var empty = true; |
| 486 list = this.data.networkList; | 482 list = this.data.networkList; |
| 487 if (list) { | 483 if (list) { |
| 488 for (var i = 0; i < list.length; i++) { | 484 for (var i = 0; i < list.length; i++) { |
| 489 var data = list[i]; | 485 var data = list[i]; |
| 490 if (!data.connected && !data.connecting) { | 486 this.createNetworkOptionsCallback_(networkGroup, data); |
| 491 if (data.networkType != Constants.TYPE_ETHERNET) { | 487 empty = false; |
|
James Hawkins
2012/08/02 21:36:45
Huh, this seems unnecessary. Can't you initialize
kevers
2012/08/03 13:10:13
Yes, logic can be simplified now that there is no
| |
| 492 if (data.networkType == Constants.TYPE_CELLULAR) { | 488 if (data.connected) { |
| 493 // Test if cellular network has an activated data plan. | |
| 494 var activate = data.needs_new_plan || | |
| 495 (data.activation_state != | |
| 496 Constants.ACTIVATION_STATE_ACTIVATED && | |
| 497 data.activation_state != | |
| 498 Constants.ACTIVATION_STATE_ACTIVATING); | |
| 499 var cmd = activate ? 'activate' : 'connect'; | |
| 500 this.createConnectCallback_(networkGroup, data, cmd); | |
| 501 } else { | |
| 502 this.createConnectCallback_(networkGroup, data); | |
| 503 } | |
| 504 empty = false; | |
| 505 } | |
| 506 } else if (data.connected) { | |
| 507 addendum.push({label: loadTimeData.getString('networkOptions'), | |
| 508 command: 'options', | |
| 509 data: data}); | |
| 510 if (data.networkType == Constants.TYPE_VPN) { | 489 if (data.networkType == Constants.TYPE_VPN) { |
| 511 // Add separator | 490 // Add separator |
| 512 addendum.push({}); | 491 addendum.push({}); |
| 513 var i18nKey = 'disconnectNetwork'; | 492 var i18nKey = 'disconnectNetwork'; |
| 514 addendum.push({label: loadTimeData.getString(i18nKey), | 493 addendum.push({label: loadTimeData.getString(i18nKey), |
| 515 command: 'disconnect', | 494 command: 'disconnect', |
| 516 data: data}); | 495 data: data}); |
| 517 } | 496 } |
| 518 if (data.networkType != Constants.TYPE_ETHERNET) { | |
| 519 var onlineMessage = this.ownerDocument.createElement('div'); | |
| 520 onlineMessage.textContent = | |
| 521 loadTimeData.getString('networkOnline'); | |
| 522 onlineMessage.className = 'network-menu-header'; | |
| 523 menu.insertBefore(onlineMessage, menu.firstChild); | |
| 524 } | |
| 525 } | 497 } |
| 526 } | 498 } |
| 527 } | 499 } |
| 528 if (this.data_.key == 'wifi' || this.data_.key == 'wimax' || | 500 if (this.data_.key == 'wifi' || this.data_.key == 'wimax' || |
| 529 this.data_.key == 'cellular') { | 501 this.data_.key == 'cellular') { |
| 530 addendum.push({}); | 502 addendum.push({}); |
| 531 if (this.data_.key == 'wifi') { | 503 if (this.data_.key == 'wifi') { |
| 532 addendum.push({label: loadTimeData.getString('turnOffWifi'), | 504 addendum.push({label: loadTimeData.getString('turnOffWifi'), |
| 533 command: function() { | 505 command: function() { |
| 534 chrome.send('disableWifi'); | 506 chrome.send('disableWifi'); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 687 else | 659 else |
| 688 buttonLabel.classList.add('network-disabled-control'); | 660 buttonLabel.classList.add('network-disabled-control'); |
| 689 | 661 |
| 690 button.data = {label: label}; | 662 button.data = {label: label}; |
| 691 MenuItem.decorate(button); | 663 MenuItem.decorate(button); |
| 692 menu.appendChild(button); | 664 menu.appendChild(button); |
| 693 return button; | 665 return button; |
| 694 }, | 666 }, |
| 695 | 667 |
| 696 /** | 668 /** |
| 697 * Adds a menu item for connecting to a network. | 669 * Adds a menu item for showing network details. |
| 698 * @param {!Element} menu Parent menu. | 670 * @param {!Element} parent The parent element. |
| 699 * @param {Object} data Description of the network. | 671 * @param {Object} data Description of the network. |
| 700 * @param {string=} opt_connect Optional connection method. | |
| 701 * @private | 672 * @private |
| 702 */ | 673 */ |
| 703 createConnectCallback_: function(menu, data, opt_connect) { | 674 createNetworkOptionsCallback_: function(parent, data) { |
| 704 var cmd = opt_connect ? opt_connect : 'connect'; | 675 var menuItem = this.createCallback_(parent, |
|
James Hawkins
2012/08/02 21:36:45
Optional nit: Condense parameters to save lines.
kevers
2012/08/03 13:10:13
Done.
| |
| 705 var label = data.networkName; | |
| 706 if (cmd == 'activate') { | |
| 707 label = loadTimeData.getString('activateNetwork'); | |
| 708 label = label.replace('$1', data.networkName); | |
| 709 } | |
| 710 var menuItem = this.createCallback_(menu, | |
| 711 data, | 676 data, |
| 712 label, | 677 data.networkName, |
| 713 cmd); | 678 'options'); |
| 714 menuItem.style.backgroundImage = url(data.iconURL); | 679 menuItem.style.backgroundImage = url(data.iconURL); |
| 715 | |
| 716 if (data.policyManaged) | 680 if (data.policyManaged) |
| 717 menuItem.appendChild(new ManagedNetworkIndicator()); | 681 menuItem.appendChild(new ManagedNetworkIndicator()); |
| 718 | 682 if (data.connected || data.connecting) { |
| 719 var optionsButton = this.ownerDocument.createElement('div'); | 683 var label = menuItem.getElementsByClassName( |
| 720 optionsButton.className = 'network-options-button'; | 684 'network-menu-item-label')[0]; |
| 721 var type = String(data.networkType); | 685 label.classList.add('active-network'); |
| 722 var path = data.servicePath; | 686 } |
| 723 optionsButton.addEventListener('click', function(event) { | |
| 724 event.stopPropagation(); | |
| 725 chrome.send('networkCommand', | |
| 726 [type, path, 'options']); | |
| 727 closeMenu_(); | |
| 728 }); | |
| 729 menuItem.appendChild(optionsButton); | |
| 730 } | 687 } |
| 731 }; | 688 }; |
| 732 | 689 |
| 733 /** | 690 /** |
| 734 * Creates a button-like control for configurating internet connectivity. | 691 * Creates a button-like control for configurating internet connectivity. |
| 735 * @param {{key: string, | 692 * @param {{key: string, |
| 736 * subtitle: string, | 693 * subtitle: string, |
| 737 * command: function} data Description of the network control. | 694 * command: function} data Description of the network control. |
| 738 * @constructor | 695 * @constructor |
| 739 */ | 696 */ |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1132 * Whether the Network list is disabled. Only used for display purpose. | 1089 * Whether the Network list is disabled. Only used for display purpose. |
| 1133 * @type {boolean} | 1090 * @type {boolean} |
| 1134 */ | 1091 */ |
| 1135 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); | 1092 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); |
| 1136 | 1093 |
| 1137 // Export | 1094 // Export |
| 1138 return { | 1095 return { |
| 1139 NetworkList: NetworkList | 1096 NetworkList: NetworkList |
| 1140 }; | 1097 }; |
| 1141 }); | 1098 }); |
| OLD | NEW |