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 /** | |
7 * Creates a new network list div. | |
8 * @param {Object=} opt_propertyBag Optional properties. | |
9 * @constructor | |
10 * @extends {HTMLDivElement} | |
11 */ | |
12 var CellularPlanElement = cr.ui.define('div'); | |
13 | |
14 CellularPlanElement.prototype = { | |
15 __proto__: HTMLDivElement.prototype, | |
16 | |
17 /** @inheritDoc */ | |
18 decorate: function() { | |
19 }, | |
20 | |
21 /** | |
22 * Loads given network list. | |
23 * @param {Array} networks An array of network object. | |
24 */ | |
25 load: function(plans) { | |
26 this.textContent = ''; | |
27 if (!plans || !plans.length) { | |
28 var noplansDiv = this.ownerDocument.createElement('div'); | |
29 noplansDiv.textContent = localStrings.getString('noPlansFound'); | |
30 this.appendChild(detailsTable); | |
31 } else { | |
32 for (var i = 0; i < plans.length; ++i) { | |
33 this.appendChild(new CellularPlanItem(i, plans[i])); | |
34 } | |
35 } | |
36 } | |
37 }; | |
38 | |
39 /** | |
40 * Creates a new network item. | |
41 * @param {Object} network The network this represents. | |
42 * @constructor | |
43 * @extends {HTMLDivElement} | |
44 */ | |
45 function CellularPlanItem(idx, plan) { | |
46 var el = cr.doc.createElement('div'); | |
47 el.data = { | |
48 idx: idx, | |
49 planType: plan.planType, | |
50 name: plan.name, | |
51 planSummary: plan.planSummary, | |
52 dataRemaining: plan.dataRemaining, | |
53 planExpires: plan.planExpires, | |
54 warning: plan.warning | |
55 }; | |
56 CellularPlanItem.decorate(el); | |
57 return el; | |
58 } | |
59 | |
60 | |
61 /** | |
62 * Decorates an element as a network item. | |
63 * @param {!HTMLElement} el The element to decorate. | |
64 */ | |
65 CellularPlanItem.decorate = function(el) { | |
66 el.__proto__ = CellularPlanItem.prototype; | |
67 el.decorate(); | |
68 }; | |
69 | |
70 CellularPlanItem.prototype = { | |
71 __proto__: HTMLDivElement.prototype, | |
72 | |
73 /** @inheritDoc */ | |
74 decorate: function() { | |
75 this.className = 'cellular-plan'; | |
76 var detailsTable = this.createTable_('details-plan-table', | |
77 'option-control-table'); | |
78 this.addRow_(detailsTable, 'plan-details-info', | |
79 'option-name', 'planSummary', this.data.planSummary); | |
80 this.addRow_(detailsTable, 'plan-details-info', | |
81 'option-name', null, localStrings.getString('planName'), | |
82 'option-value', 'planName', this.data.name); | |
83 this.addRow_(detailsTable, 'plan-details-info', | |
84 'option-name', null, localStrings.getString('dataRemaining'), | |
85 'option-value', 'dataRemaining', this.data.dataRemaining); | |
86 this.addRow_(detailsTable, 'plan-details-info', | |
87 'option-name', null, localStrings.getString('planExpires'), | |
88 'option-value', 'dataRemaining', this.data.planExpires); | |
89 if (this.data.warning && this.data.warning != "") { | |
90 this.addRow_(detailsTable, 'plan-details-info', | |
91 'option-name', 'planWarning', this.data.warning); | |
92 } | |
93 this.appendChild(detailsTable); | |
94 this.appendChild(this.ownerDocument.createElement('hr')); | |
95 }, | |
96 | |
97 createTable_: function(tableId, tableClass) { | |
98 var table = this.ownerDocument.createElement('table'); | |
99 table.id = tableId; | |
100 table.className = tableClass; | |
101 return table; | |
102 }, | |
103 | |
104 addRow_: function(table, rowClass, col1Class, col1Id, col1Value, | |
105 col2Class, col2Id, col2Value) { | |
106 var row = this.ownerDocument.createElement('tr'); | |
107 if (rowClass) | |
108 row.className = rowClass; | |
109 var col1 = this.ownerDocument.createElement('td'); | |
110 col1.className = col1Class; | |
111 if (col1Id) | |
112 col1.id = col1Id; | |
113 col1.textContent = col1Value; | |
114 if (!col2Class) | |
115 col1.setAttribute('colspan','2'); | |
116 row.appendChild(col1); | |
117 if (col2Class) { | |
118 var col2 = this.ownerDocument.createElement('td'); | |
119 col2.className = col2Class; | |
120 if (col2Id) | |
121 col2.id = col2Id; | |
122 col2.textContent = col2Value; | |
123 row.appendChild(col2); | |
124 } | |
125 table.appendChild(row); | |
126 } | |
127 }; | |
128 | |
129 return { | |
130 CellularPlanElement: CellularPlanElement | |
131 }; | |
132 }); | |
OLD | NEW |