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 |