| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 cr.define('options.internet', function() { | |
| 6 var OptionsPage = options.OptionsPage; | |
| 7 | |
| 8 /* | |
| 9 * Helper function to set hidden attribute on given element list. | |
| 10 * @param {Array} elements List of elements to be updated. | |
| 11 * @param {bool} hidden New hidden value. | |
| 12 */ | |
| 13 function updateHidden(elements, hidden) { | |
| 14 for (var i = 0, el; el = elements[i]; i++) { | |
| 15 el.hidden = hidden; | |
| 16 } | |
| 17 } | |
| 18 | |
| 19 ///////////////////////////////////////////////////////////////////////////// | |
| 20 // DetailsInternetPage class: | |
| 21 | |
| 22 /** | |
| 23 * Encapsulated handling of ChromeOS internet details overlay page. | |
| 24 * @constructor | |
| 25 */ | |
| 26 function DetailsInternetPage() { | |
| 27 OptionsPage.call(this, 'detailsInternetPage', null, 'detailsInternetPage'); | |
| 28 } | |
| 29 | |
| 30 cr.addSingletonGetter(DetailsInternetPage); | |
| 31 | |
| 32 DetailsInternetPage.prototype = { | |
| 33 __proto__: OptionsPage.prototype, | |
| 34 | |
| 35 /** | |
| 36 * Initializes DetailsInternetPage page. | |
| 37 * Calls base class implementation to starts preference initialization. | |
| 38 */ | |
| 39 initializePage: function() { | |
| 40 OptionsPage.prototype.initializePage.call(this); | |
| 41 }, | |
| 42 | |
| 43 /** | |
| 44 * Update details page controls. | |
| 45 * @private | |
| 46 */ | |
| 47 updateControls_: function() { | |
| 48 // Only show ipconfig section if network is connected OR if nothing on | |
| 49 // this device is connected. This is so that you can fix the ip configs | |
| 50 // if you can't connect to any network. | |
| 51 // TODO(chocobo): Once ipconfig is moved to flimflam service objects, | |
| 52 // we need to redo this logic to allow configuration of all networks. | |
| 53 $('ipconfigSection').hidden = !this.connected && this.deviceConnected; | |
| 54 | |
| 55 // Network type related. | |
| 56 updateHidden( | |
| 57 cr.doc.querySelectorAll('#detailsInternetPage .cellular-details'), | |
| 58 !this.cellular); | |
| 59 updateHidden( | |
| 60 cr.doc.querySelectorAll('#detailsInternetPage .wifi-details'), | |
| 61 !this.wireless); | |
| 62 updateHidden( | |
| 63 cr.doc.querySelectorAll('#detailsInternetPage .vpn-details'), | |
| 64 !this.vpn); | |
| 65 | |
| 66 // Cell plan related. | |
| 67 $('planList').hidden = this.cellplanloading; | |
| 68 updateHidden( | |
| 69 cr.doc.querySelectorAll('#detailsInternetPage .no-plan-info'), | |
| 70 !this.cellular || this.cellplanloading || this.hascellplan); | |
| 71 updateHidden( | |
| 72 cr.doc.querySelectorAll('#detailsInternetPage .plan-loading-info'), | |
| 73 !this.cellular || this.nocellplan || this.hascellplan); | |
| 74 updateHidden( | |
| 75 cr.doc.querySelectorAll('#detailsInternetPage .plan-details-info'), | |
| 76 !this.cellular || this.nocellplan || this.cellplanloading); | |
| 77 updateHidden( | |
| 78 cr.doc.querySelectorAll('#detailsInternetPage .gsm-only'), | |
| 79 !this.cellular || !this.gsm); | |
| 80 updateHidden( | |
| 81 cr.doc.querySelectorAll('#detailsInternetPage .cdma-only'), | |
| 82 !this.cellular || this.gsm); | |
| 83 updateHidden( | |
| 84 cr.doc.querySelectorAll('#detailsInternetPage .apn-list-view'), | |
| 85 !this.cellular || !this.gsm); | |
| 86 updateHidden( | |
| 87 cr.doc.querySelectorAll('#detailsInternetPage .apn-details-view'), | |
| 88 true); | |
| 89 | |
| 90 // Password and shared. | |
| 91 updateHidden( | |
| 92 cr.doc.querySelectorAll('#detailsInternetPage .password-details'), | |
| 93 !this.wireless || !this.password); | |
| 94 updateHidden( | |
| 95 cr.doc.querySelectorAll('#detailsInternetPage .shared-network'), | |
| 96 !this.shared); | |
| 97 updateHidden( | |
| 98 cr.doc.querySelectorAll('#detailsInternetPage .prefer-network'), | |
| 99 !this.showPreferred); | |
| 100 } | |
| 101 }; | |
| 102 | |
| 103 /** | |
| 104 * Whether the underlying network is connected. Only used for display purpose. | |
| 105 * @type {boolean} | |
| 106 */ | |
| 107 cr.defineProperty(DetailsInternetPage, 'connected', | |
| 108 cr.PropertyKind.JS, | |
| 109 DetailsInternetPage.prototype.updateControls_); | |
| 110 | |
| 111 /** | |
| 112 * Whether the underlying network is wifi. Only used for display purpose. | |
| 113 * @type {boolean} | |
| 114 */ | |
| 115 cr.defineProperty(DetailsInternetPage, 'wireless', | |
| 116 cr.PropertyKind.JS, | |
| 117 DetailsInternetPage.prototype.updateControls_); | |
| 118 | |
| 119 /** | |
| 120 * Whether the underlying network shared wifi. Only used for display purpose. | |
| 121 * @type {boolean} | |
| 122 */ | |
| 123 cr.defineProperty(DetailsInternetPage, 'shared', | |
| 124 cr.PropertyKind.JS, | |
| 125 DetailsInternetPage.prototype.updateControls_); | |
| 126 | |
| 127 /** | |
| 128 * Whether the underlying network is a vpn. Only used for display purpose. | |
| 129 * @type {boolean} | |
| 130 */ | |
| 131 cr.defineProperty(DetailsInternetPage, 'vpn', | |
| 132 cr.PropertyKind.JS, | |
| 133 DetailsInternetPage.prototype.updateControls_); | |
| 134 | |
| 135 /** | |
| 136 * Whether the underlying network is ethernet. Only used for display purpose. | |
| 137 * @type {boolean} | |
| 138 */ | |
| 139 cr.defineProperty(DetailsInternetPage, 'ethernet', | |
| 140 cr.PropertyKind.JS, | |
| 141 DetailsInternetPage.prototype.updateControls_); | |
| 142 | |
| 143 /** | |
| 144 * Whether the underlying network is cellular. Only used for display purpose. | |
| 145 * @type {boolean} | |
| 146 */ | |
| 147 cr.defineProperty(DetailsInternetPage, 'cellular', | |
| 148 cr.PropertyKind.JS, | |
| 149 DetailsInternetPage.prototype.updateControls_); | |
| 150 | |
| 151 /** | |
| 152 * Whether the network is loading cell plan. Only used for display purpose. | |
| 153 * @type {boolean} | |
| 154 */ | |
| 155 cr.defineProperty(DetailsInternetPage, 'cellplanloading', | |
| 156 cr.PropertyKind.JS, | |
| 157 DetailsInternetPage.prototype.updateControls_); | |
| 158 | |
| 159 /** | |
| 160 * Whether the network has cell plan(s). Only used for display purpose. | |
| 161 * @type {boolean} | |
| 162 */ | |
| 163 cr.defineProperty(DetailsInternetPage, 'hascellplan', | |
| 164 cr.PropertyKind.JS, | |
| 165 DetailsInternetPage.prototype.updateControls_); | |
| 166 | |
| 167 /** | |
| 168 * Whether the network has no cell plan. Only used for display purpose. | |
| 169 * @type {boolean} | |
| 170 */ | |
| 171 cr.defineProperty(DetailsInternetPage, 'nocellplan', | |
| 172 cr.PropertyKind.JS, | |
| 173 DetailsInternetPage.prototype.updateControls_); | |
| 174 | |
| 175 /** | |
| 176 * Whether the network is gsm. Only used for display purpose. | |
| 177 * @type {boolean} | |
| 178 */ | |
| 179 cr.defineProperty(DetailsInternetPage, 'gsm', | |
| 180 cr.PropertyKind.JS, | |
| 181 DetailsInternetPage.prototype.updateControls_); | |
| 182 | |
| 183 /** | |
| 184 * Whether show password details for network. Only used for display purpose. | |
| 185 * @type {boolean} | |
| 186 */ | |
| 187 cr.defineProperty(DetailsInternetPage, 'password', | |
| 188 cr.PropertyKind.JS, | |
| 189 DetailsInternetPage.prototype.updateControls_); | |
| 190 | |
| 191 // TODO(xiyuan): Check to see if it is safe to remove these attributes. | |
| 192 cr.defineProperty(DetailsInternetPage, 'hasactiveplan', | |
| 193 cr.PropertyKind.JS); | |
| 194 cr.defineProperty(DetailsInternetPage, 'activated', | |
| 195 cr.PropertyKind.JS); | |
| 196 cr.defineProperty(DetailsInternetPage, 'connecting', | |
| 197 cr.PropertyKind.JS); | |
| 198 cr.defineProperty(DetailsInternetPage, 'connected', | |
| 199 cr.PropertyKind.JS); | |
| 200 | |
| 201 return { | |
| 202 DetailsInternetPage: DetailsInternetPage | |
| 203 }; | |
| 204 }); | |
| OLD | NEW |