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