| 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 var ArrayDataModel = cr.ui.ArrayDataModel; | 6 var ArrayDataModel = cr.ui.ArrayDataModel; |
| 7 var List = cr.ui.List; | 7 var List = cr.ui.List; |
| 8 var ListItem = cr.ui.ListItem; | 8 var ListItem = cr.ui.ListItem; |
| 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; | 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; |
| 10 var Menu = cr.ui.Menu; | 10 var Menu = cr.ui.Menu; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 function NetworkListItem(data) { | 110 function NetworkListItem(data) { |
| 111 var el = cr.doc.createElement('li'); | 111 var el = cr.doc.createElement('li'); |
| 112 el.data_ = {}; | 112 el.data_ = {}; |
| 113 for (var key in data) | 113 for (var key in data) |
| 114 el.data_[key] = data[key]; | 114 el.data_[key] = data[key]; |
| 115 NetworkListItem.decorate(el); | 115 NetworkListItem.decorate(el); |
| 116 return el; | 116 return el; |
| 117 } | 117 } |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * @param {string} action An action to send to coreOptionsUserMetricsAction. |
| 121 */ |
| 122 function sendChromeMetricsAction(action) { |
| 123 chrome.send('coreOptionsUserMetricsAction', [action]); |
| 124 } |
| 125 |
| 126 /** |
| 120 * Decorate an element as a NetworkListItem. | 127 * Decorate an element as a NetworkListItem. |
| 121 * @param {!Element} el The element to decorate. | 128 * @param {!Element} el The element to decorate. |
| 122 */ | 129 */ |
| 123 NetworkListItem.decorate = function(el) { | 130 NetworkListItem.decorate = function(el) { |
| 124 el.__proto__ = NetworkListItem.prototype; | 131 el.__proto__ = NetworkListItem.prototype; |
| 125 el.decorate(); | 132 el.decorate(); |
| 126 }; | 133 }; |
| 127 | 134 |
| 128 NetworkListItem.prototype = { | 135 NetworkListItem.prototype = { |
| 129 __proto__: ListItem.prototype, | 136 __proto__: ListItem.prototype, |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 * @return {!Element} The newly created menu. | 442 * @return {!Element} The newly created menu. |
| 436 */ | 443 */ |
| 437 createMenu: function() { | 444 createMenu: function() { |
| 438 var menu = this.ownerDocument.createElement('div'); | 445 var menu = this.ownerDocument.createElement('div'); |
| 439 menu.id = this.getMenuName(); | 446 menu.id = this.getMenuName(); |
| 440 menu.className = 'network-menu'; | 447 menu.className = 'network-menu'; |
| 441 menu.hidden = true; | 448 menu.hidden = true; |
| 442 Menu.decorate(menu); | 449 Menu.decorate(menu); |
| 443 var addendum = []; | 450 var addendum = []; |
| 444 if (this.data_.key == 'WiFi') { | 451 if (this.data_.key == 'WiFi') { |
| 445 addendum.push({label: loadTimeData.getString('joinOtherNetwork'), | 452 addendum.push({ |
| 446 command: 'add', | 453 label: loadTimeData.getString('joinOtherNetwork'), |
| 447 data: {Type: 'WiFi', servicePath: ''}}); | 454 command: createAddConnectionCallback_('WiFi'), |
| 455 data: {} |
| 456 }); |
| 448 } else if (this.data_.key == 'Cellular') { | 457 } else if (this.data_.key == 'Cellular') { |
| 449 if (cellularEnabled_ && cellularSupportsScan_) { | 458 if (cellularEnabled_ && cellularSupportsScan_) { |
| 450 entry = { | 459 addendum.push({ |
| 451 label: loadTimeData.getString('otherCellularNetworks'), | 460 label: loadTimeData.getString('otherCellularNetworks'), |
| 452 command: createAddConnectionCallback_('Cellular'), | 461 command: createAddConnectionCallback_('Cellular'), |
| 453 addClass: ['other-cellulars'], | 462 addClass: ['other-cellulars'], |
| 454 data: {} | 463 data: {} |
| 455 }; | 464 }); |
| 456 addendum.push(entry); | |
| 457 } | 465 } |
| 458 | 466 |
| 459 var label = enableDataRoaming_ ? 'disableDataRoaming' : | 467 var label = enableDataRoaming_ ? 'disableDataRoaming' : |
| 460 'enableDataRoaming'; | 468 'enableDataRoaming'; |
| 461 var disabled = !loadTimeData.getValue('loggedInAsOwner'); | 469 var disabled = !loadTimeData.getValue('loggedInAsOwner'); |
| 462 var entry = {label: loadTimeData.getString(label), | 470 var entry = {label: loadTimeData.getString(label), |
| 463 data: {}}; | 471 data: {}}; |
| 464 if (disabled) { | 472 if (disabled) { |
| 465 entry.command = null; | 473 entry.command = null; |
| 466 entry.tooltip = | 474 entry.tooltip = |
| (...skipping 10 matching lines...) Expand all Loading... |
| 477 } | 485 } |
| 478 addendum.push(entry); | 486 addendum.push(entry); |
| 479 } | 487 } |
| 480 var list = this.data.rememberedNetworks; | 488 var list = this.data.rememberedNetworks; |
| 481 if (list && list.length > 0) { | 489 if (list && list.length > 0) { |
| 482 var callback = function(list) { | 490 var callback = function(list) { |
| 483 $('remembered-network-list').clear(); | 491 $('remembered-network-list').clear(); |
| 484 var dialog = options.PreferredNetworks.getInstance(); | 492 var dialog = options.PreferredNetworks.getInstance(); |
| 485 PageManager.showPageByName('preferredNetworksPage', false); | 493 PageManager.showPageByName('preferredNetworksPage', false); |
| 486 dialog.update(list); | 494 dialog.update(list); |
| 487 chrome.send('coreOptionsUserMetricsAction', | 495 sendChromeMetricsAction('Options_NetworkShowPreferred'); |
| 488 ['Options_NetworkShowPreferred']); | |
| 489 }; | 496 }; |
| 490 addendum.push({label: loadTimeData.getString('preferredNetworks'), | 497 addendum.push({label: loadTimeData.getString('preferredNetworks'), |
| 491 command: callback, | 498 command: callback, |
| 492 data: list}); | 499 data: list}); |
| 493 } | 500 } |
| 494 | 501 |
| 495 var networkGroup = this.ownerDocument.createElement('div'); | 502 var networkGroup = this.ownerDocument.createElement('div'); |
| 496 networkGroup.className = 'network-menu-group'; | 503 networkGroup.className = 'network-menu-group'; |
| 497 list = this.data.networkList; | 504 list = this.data.networkList; |
| 498 var empty = !list || list.length == 0; | 505 var empty = !list || list.length == 0; |
| 499 if (list) { | 506 if (list) { |
| 500 for (var i = 0; i < list.length; i++) { | 507 for (var i = 0; i < list.length; i++) { |
| 501 var data = list[i]; | 508 var data = list[i]; |
| 502 this.createNetworkOptionsCallback_(networkGroup, data); | 509 this.createNetworkOptionsCallback_(networkGroup, data); |
| 503 if (data.ConnectionState == 'Connected') { | 510 if (data.ConnectionState == 'Connected') { |
| 504 if (data.Type == 'VPN') { | 511 if (data.Type == 'VPN') { |
| 512 var disconnectCallback = function() { |
| 513 sendChromeMetricsAction('Options_NetworkDisconnectVPN'); |
| 514 chrome.send('networkCommand', |
| 515 ['VPN', data.servicePath, 'disconnect']); |
| 516 }; |
| 505 // Add separator | 517 // Add separator |
| 506 addendum.push({}); | 518 addendum.push({}); |
| 507 var i18nKey = 'disconnectNetwork'; | 519 addendum.push({label: loadTimeData.getString('disconnectNetwork'), |
| 508 addendum.push({label: loadTimeData.getString(i18nKey), | 520 command: disconnectCallback, |
| 509 command: 'disconnect', | |
| 510 data: data}); | 521 data: data}); |
| 511 } | 522 } |
| 512 } | 523 } |
| 513 } | 524 } |
| 514 } | 525 } |
| 515 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' || | 526 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' || |
| 516 this.data_.key == 'Cellular') { | 527 this.data_.key == 'Cellular') { |
| 517 addendum.push({}); | 528 addendum.push({}); |
| 518 if (this.data_.key == 'WiFi') { | 529 if (this.data_.key == 'WiFi') { |
| 519 addendum.push({label: loadTimeData.getString('turnOffWifi'), | 530 addendum.push({label: loadTimeData.getString('turnOffWifi'), |
| 520 command: function() { | 531 command: function() { |
| 532 sendChromeMetricsAction('Options_NetworkWifiToggle'); |
| 521 chrome.send('disableWifi'); | 533 chrome.send('disableWifi'); |
| 522 }, | 534 }, |
| 523 data: {}}); | 535 data: {}}); |
| 524 } else if (this.data_.key == 'Wimax') { | 536 } else if (this.data_.key == 'Wimax') { |
| 525 addendum.push({label: loadTimeData.getString('turnOffWimax'), | 537 addendum.push({label: loadTimeData.getString('turnOffWimax'), |
| 526 command: function() { | 538 command: function() { |
| 527 chrome.send('disableWimax'); | 539 chrome.send('disableWimax'); |
| 528 }, | 540 }, |
| 529 data: {}}); | 541 data: {}}); |
| 530 } else if (this.data_.key == 'Cellular') { | 542 } else if (this.data_.key == 'Cellular') { |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 | 728 |
| 717 var buttonLabel = menu.ownerDocument.createElement('span'); | 729 var buttonLabel = menu.ownerDocument.createElement('span'); |
| 718 buttonLabel.className = 'network-menu-item-label'; | 730 buttonLabel.className = 'network-menu-item-label'; |
| 719 buttonLabel.textContent = label; | 731 buttonLabel.textContent = label; |
| 720 button.appendChild(buttonLabel); | 732 button.appendChild(buttonLabel); |
| 721 var callback = null; | 733 var callback = null; |
| 722 if (typeof command == 'string') { | 734 if (typeof command == 'string') { |
| 723 var type = data.Type; | 735 var type = data.Type; |
| 724 var path = data.servicePath; | 736 var path = data.servicePath; |
| 725 callback = function() { | 737 callback = function() { |
| 726 chrome.send('networkCommand', | 738 chrome.send('networkCommand', [type, path, command]); |
| 727 [type, path, command]); | |
| 728 closeMenu_(); | 739 closeMenu_(); |
| 729 }; | 740 }; |
| 730 } else if (command != null) { | 741 } else if (command != null) { |
| 731 if (data) { | 742 if (data) { |
| 732 callback = function() { | 743 callback = function() { |
| 733 (/** @type {Function} */(command))(data); | 744 (/** @type {Function} */(command))(data); |
| 734 closeMenu_(); | 745 closeMenu_(); |
| 735 }; | 746 }; |
| 736 } else { | 747 } else { |
| 737 callback = function() { | 748 callback = function() { |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1002 networkList.endBatchUpdates(); | 1013 networkList.endBatchUpdates(); |
| 1003 }; | 1014 }; |
| 1004 | 1015 |
| 1005 /** | 1016 /** |
| 1006 * Replaces a network menu with a button for reenabling the type of network. | 1017 * Replaces a network menu with a button for reenabling the type of network. |
| 1007 * @param {string} name The type of network (WiFi, Cellular or Wimax). | 1018 * @param {string} name The type of network (WiFi, Cellular or Wimax). |
| 1008 * @param {string} command The command for reenabling the network. | 1019 * @param {string} command The command for reenabling the network. |
| 1009 * @param {string} icon Type of icon (WiFi or Cellular). | 1020 * @param {string} icon Type of icon (WiFi or Cellular). |
| 1010 * @private | 1021 * @private |
| 1011 */ | 1022 */ |
| 1012 function addEnableNetworkButton_(name, command, icon) { | 1023 function addEnableNetworkButton_(type, command, icon) { |
| 1013 var subtitle = loadTimeData.getString('networkDisabled'); | 1024 var subtitle = loadTimeData.getString('networkDisabled'); |
| 1014 var enableNetwork = function() { | 1025 var enableNetwork = function() { |
| 1026 if (type == 'WiFi') |
| 1027 sendChromeMetricsAction('Options_NetworkWifiToggle'); |
| 1015 chrome.send(command); | 1028 chrome.send(command); |
| 1016 }; | 1029 }; |
| 1017 var networkList = $('network-list'); | 1030 var networkList = $('network-list'); |
| 1018 networkList.update({key: name, | 1031 networkList.update({key: type, |
| 1019 subtitle: subtitle, | 1032 subtitle: subtitle, |
| 1020 iconType: icon, | 1033 iconType: icon, |
| 1021 command: enableNetwork}); | 1034 command: enableNetwork}); |
| 1022 } | 1035 } |
| 1023 | 1036 |
| 1024 /** | 1037 /** |
| 1025 * Element for indicating a policy managed network. | 1038 * Element for indicating a policy managed network. |
| 1026 * @constructor | 1039 * @constructor |
| 1027 * @extends {options.ControlledSettingIndicator} | 1040 * @extends {options.ControlledSettingIndicator} |
| 1028 */ | 1041 */ |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1136 } | 1149 } |
| 1137 | 1150 |
| 1138 /** | 1151 /** |
| 1139 * Create a callback function that adds a new connection of the given type. | 1152 * Create a callback function that adds a new connection of the given type. |
| 1140 * @param {string} type An ONC network type | 1153 * @param {string} type An ONC network type |
| 1141 * @return {function()} The created callback. | 1154 * @return {function()} The created callback. |
| 1142 * @private | 1155 * @private |
| 1143 */ | 1156 */ |
| 1144 function createAddConnectionCallback_(type) { | 1157 function createAddConnectionCallback_(type) { |
| 1145 return function() { | 1158 return function() { |
| 1159 if (type == 'WiFi') |
| 1160 sendChromeMetricsAction('Options_NetworkJoinOtherWifi'); |
| 1161 else if (type == 'VPN') |
| 1162 sendChromeMetricsAction('Options_NetworkJoinOtherVPN'); |
| 1146 chrome.send('networkCommand', [type, '', 'add']); | 1163 chrome.send('networkCommand', [type, '', 'add']); |
| 1147 }; | 1164 }; |
| 1148 } | 1165 } |
| 1149 | 1166 |
| 1150 /** | 1167 /** |
| 1151 * Whether the Network list is disabled. Only used for display purpose. | 1168 * Whether the Network list is disabled. Only used for display purpose. |
| 1152 * @type {boolean} | 1169 * @type {boolean} |
| 1153 */ | 1170 */ |
| 1154 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); | 1171 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); |
| 1155 | 1172 |
| 1156 // Export | 1173 // Export |
| 1157 return { | 1174 return { |
| 1158 NetworkList: NetworkList | 1175 NetworkList: NetworkList |
| 1159 }; | 1176 }; |
| 1160 }); | 1177 }); |
| OLD | NEW |