| 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; | |
| 486 list = this.data.networkList; | 481 list = this.data.networkList; |
| 482 var empty = !list || list.length == 0; |
| 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 if (data.connected) { |
| 492 if (data.networkType == Constants.TYPE_CELLULAR) { | |
| 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) { | 488 if (data.networkType == Constants.TYPE_VPN) { |
| 511 // Add separator | 489 // Add separator |
| 512 addendum.push({}); | 490 addendum.push({}); |
| 513 var i18nKey = 'disconnectNetwork'; | 491 var i18nKey = 'disconnectNetwork'; |
| 514 addendum.push({label: loadTimeData.getString(i18nKey), | 492 addendum.push({label: loadTimeData.getString(i18nKey), |
| 515 command: 'disconnect', | 493 command: 'disconnect', |
| 516 data: data}); | 494 data: data}); |
| 517 } | 495 } |
| 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 } | 496 } |
| 526 } | 497 } |
| 527 } | 498 } |
| 528 if (this.data_.key == 'wifi' || this.data_.key == 'wimax' || | 499 if (this.data_.key == 'wifi' || this.data_.key == 'wimax' || |
| 529 this.data_.key == 'cellular') { | 500 this.data_.key == 'cellular') { |
| 530 addendum.push({}); | 501 addendum.push({}); |
| 531 if (this.data_.key == 'wifi') { | 502 if (this.data_.key == 'wifi') { |
| 532 addendum.push({label: loadTimeData.getString('turnOffWifi'), | 503 addendum.push({label: loadTimeData.getString('turnOffWifi'), |
| 533 command: function() { | 504 command: function() { |
| 534 chrome.send('disableWifi'); | 505 chrome.send('disableWifi'); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 553 menu.appendChild(networkGroup); | 524 menu.appendChild(networkGroup); |
| 554 if (addendum.length > 0) { | 525 if (addendum.length > 0) { |
| 555 var separator = false; | 526 var separator = false; |
| 556 if (!empty) { | 527 if (!empty) { |
| 557 menu.appendChild(MenuItem.createSeparator()); | 528 menu.appendChild(MenuItem.createSeparator()); |
| 558 separator = true; | 529 separator = true; |
| 559 } | 530 } |
| 560 for (var i = 0; i < addendum.length; i++) { | 531 for (var i = 0; i < addendum.length; i++) { |
| 561 var value = addendum[i]; | 532 var value = addendum[i]; |
| 562 if (value.data) { | 533 if (value.data) { |
| 563 var item = this.createCallback_(menu, | 534 var item = this.createCallback_(menu, value.data, value.label, |
| 564 value.data, | |
| 565 value.label, | |
| 566 value.command); | 535 value.command); |
| 567 if (value.tooltip) | 536 if (value.tooltip) |
| 568 item.title = value.tooltip; | 537 item.title = value.tooltip; |
| 569 separator = false; | 538 separator = false; |
| 570 } else if (!separator) { | 539 } else if (!separator) { |
| 571 menu.appendChild(MenuItem.createSeparator()); | 540 menu.appendChild(MenuItem.createSeparator()); |
| 572 separator = true; | 541 separator = true; |
| 573 } | 542 } |
| 574 } | 543 } |
| 575 } | 544 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 else | 656 else |
| 688 buttonLabel.classList.add('network-disabled-control'); | 657 buttonLabel.classList.add('network-disabled-control'); |
| 689 | 658 |
| 690 button.data = {label: label}; | 659 button.data = {label: label}; |
| 691 MenuItem.decorate(button); | 660 MenuItem.decorate(button); |
| 692 menu.appendChild(button); | 661 menu.appendChild(button); |
| 693 return button; | 662 return button; |
| 694 }, | 663 }, |
| 695 | 664 |
| 696 /** | 665 /** |
| 697 * Adds a menu item for connecting to a network. | 666 * Adds a menu item for showing network details. |
| 698 * @param {!Element} menu Parent menu. | 667 * @param {!Element} parent The parent element. |
| 699 * @param {Object} data Description of the network. | 668 * @param {Object} data Description of the network. |
| 700 * @param {string=} opt_connect Optional connection method. | |
| 701 * @private | 669 * @private |
| 702 */ | 670 */ |
| 703 createConnectCallback_: function(menu, data, opt_connect) { | 671 createNetworkOptionsCallback_: function(parent, data) { |
| 704 var cmd = opt_connect ? opt_connect : 'connect'; | 672 var menuItem = this.createCallback_(parent, |
| 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, | 673 data, |
| 712 label, | 674 data.networkName, |
| 713 cmd); | 675 'options'); |
| 714 menuItem.style.backgroundImage = url(data.iconURL); | 676 menuItem.style.backgroundImage = url(data.iconURL); |
| 715 | |
| 716 if (data.policyManaged) | 677 if (data.policyManaged) |
| 717 menuItem.appendChild(new ManagedNetworkIndicator()); | 678 menuItem.appendChild(new ManagedNetworkIndicator()); |
| 718 | 679 if (data.connected || data.connecting) { |
| 719 var optionsButton = this.ownerDocument.createElement('div'); | 680 var label = menuItem.getElementsByClassName( |
| 720 optionsButton.className = 'network-options-button'; | 681 'network-menu-item-label')[0]; |
| 721 var type = String(data.networkType); | 682 label.classList.add('active-network'); |
| 722 var path = data.servicePath; | 683 } |
| 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 } | 684 } |
| 731 }; | 685 }; |
| 732 | 686 |
| 733 /** | 687 /** |
| 734 * Creates a button-like control for configurating internet connectivity. | 688 * Creates a button-like control for configurating internet connectivity. |
| 735 * @param {{key: string, | 689 * @param {{key: string, |
| 736 * subtitle: string, | 690 * subtitle: string, |
| 737 * command: function} data Description of the network control. | 691 * command: function} data Description of the network control. |
| 738 * @constructor | 692 * @constructor |
| 739 */ | 693 */ |
| (...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. | 1086 * Whether the Network list is disabled. Only used for display purpose. |
| 1133 * @type {boolean} | 1087 * @type {boolean} |
| 1134 */ | 1088 */ |
| 1135 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); | 1089 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); |
| 1136 | 1090 |
| 1137 // Export | 1091 // Export |
| 1138 return { | 1092 return { |
| 1139 NetworkList: NetworkList | 1093 NetworkList: NetworkList |
| 1140 }; | 1094 }; |
| 1141 }); | 1095 }); |
| OLD | NEW |