Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(849)

Side by Side Diff: chrome/browser/resources/bluetooth_internals/device_table.js

Issue 2558493004: bluetooth: Replace buttons in device table with action links. (Closed)
Patch Set: Change handleInspectBtn_ to handleInspectClick_ Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/resources/bluetooth_internals/bluetooth_internals.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 /** 5 /**
6 * Javascript for DeviceTable UI, served from chrome://bluetooth-internals/. 6 * Javascript for DeviceTable UI, served from chrome://bluetooth-internals/.
7 */ 7 */
8 8
9 cr.define('device_table', function() { 9 cr.define('device_table', function() {
10 var COLUMNS = { 10 var COLUMNS = {
11 NAME: 0, 11 NAME: 0,
12 ADDRESS: 1, 12 ADDRESS: 1,
13 RSSI: 2, 13 RSSI: 2,
14 SERVICES: 3, 14 SERVICES: 3,
15 CONNECTION_STATE: 4, 15 CONNECTION_STATE: 4,
16 INSPECT_BUTTON: 5, 16 INSPECT_LINK: 5,
17 CONNECTION_ERROR: 6, 17 CONNECTION_ERROR: 6,
18 }; 18 };
19 19
20 /** 20 /**
21 * A table that lists the devices and responds to changes in the given 21 * A table that lists the devices and responds to changes in the given
22 * DeviceCollection. Fires events for inspection requests from listed 22 * DeviceCollection. Fires events for inspection requests from listed
23 * devices. 23 * devices.
24 * @constructor 24 * @constructor
25 * @extends {HTMLTableElement} 25 * @extends {HTMLTableElement}
26 */ 26 */
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 */ 68 */
69 handleChange_: function(event) { 69 handleChange_: function(event) {
70 this.updateRow_(this.devices_.item(event.index), event.index); 70 this.updateRow_(this.devices_.item(event.index), event.index);
71 }, 71 },
72 72
73 /** 73 /**
74 * Fires a inspect pressed event for the row |index|. 74 * Fires a inspect pressed event for the row |index|.
75 * @private 75 * @private
76 * @param {number} index 76 * @param {number} index
77 */ 77 */
78 handleInspectBtn_: function(index) { 78 handleInspectClick_: function(index) {
79 var event = new CustomEvent('inspectpressed', { 79 var event = new CustomEvent('inspectpressed', {
80 bubbles: true, 80 bubbles: true,
81 detail: { 81 detail: {
82 address: this.devices_.item(index).address, 82 address: this.devices_.item(index).address,
83 } 83 }
84 }); 84 });
85 this.dispatchEvent(event); 85 this.dispatchEvent(event);
86 }, 86 },
87 87
88 /** 88 /**
(...skipping 18 matching lines...) Expand all
107 * @param {?number} index 107 * @param {?number} index
108 */ 108 */
109 insertRow_: function(device, index) { 109 insertRow_: function(device, index) {
110 var row = this.body_.insertRow(index); 110 var row = this.body_.insertRow(index);
111 row.id = device.address; 111 row.id = device.address;
112 112
113 for (var i = 0; i < this.headers_.length; i++) { 113 for (var i = 0; i < this.headers_.length; i++) {
114 row.insertCell(); 114 row.insertCell();
115 } 115 }
116 116
117 // Make two extra cells for the inspect button and connect errors. 117 // Make two extra cells for the inspect link and connect errors.
118 var inspectCell = row.insertCell(); 118 var inspectCell = row.insertCell();
119 119
120 // TODO(crbug.com/663830): Replace connection error column with better 120 // TODO(crbug.com/663830): Replace connection error column with better
121 // notification system. 121 // notification system.
122 var connectErrorCell = row.insertCell(); 122 var connectErrorCell = row.insertCell();
123 123
124 var inspectButton = document.createElement('button'); 124 var inspectLink = document.createElement('a', 'action-link');
125 inspectCell.appendChild(inspectButton); 125 inspectCell.appendChild(inspectLink);
126 inspectButton.addEventListener('click', function() { 126 inspectLink.addEventListener('click', function() {
127 this.handleInspectBtn_(row.sectionRowIndex); 127 this.handleInspectClick_(row.sectionRowIndex);
128 }.bind(this)); 128 }.bind(this));
129 129
130 this.updateRow_(device, row.sectionRowIndex); 130 this.updateRow_(device, row.sectionRowIndex);
131 }, 131 },
132 132
133 /** 133 /**
134 * Deletes and recreates the table using the cached |devices_|. 134 * Deletes and recreates the table using the cached |devices_|.
135 * @private 135 * @private
136 */ 136 */
137 redraw_: function() { 137 redraw_: function() {
(...skipping 12 matching lines...) Expand all
150 * @private 150 * @private
151 * @param {!interfaces.BluetoothDevice.DeviceInfo} device 151 * @param {!interfaces.BluetoothDevice.DeviceInfo} device
152 * @param {number} index 152 * @param {number} index
153 */ 153 */
154 updateRow_: function(device, index) { 154 updateRow_: function(device, index) {
155 var row = this.body_.rows[index]; 155 var row = this.body_.rows[index];
156 assert(row, 'Row ' + index + ' is not in the table.'); 156 assert(row, 'Row ' + index + ' is not in the table.');
157 157
158 row.classList.toggle('removed', device.removed); 158 row.classList.toggle('removed', device.removed);
159 159
160 var inspectButton = row.cells[COLUMNS.INSPECT_BUTTON].children[0]; 160 var inspectLink = row.cells[COLUMNS.INSPECT_LINK].children[0];
161 inspectButton.disabled = false; 161 inspectLink.disabled = false;
162 switch (device.connectionStatus) { 162 switch (device.connectionStatus) {
163 case device_collection.ConnectionStatus.DISCONNECTED: 163 case device_collection.ConnectionStatus.DISCONNECTED:
164 inspectButton.textContent = 'Inspect'; 164 inspectLink.textContent = 'Inspect';
165 break; 165 break;
166 case device_collection.ConnectionStatus.CONNECTED: 166 case device_collection.ConnectionStatus.CONNECTED:
167 inspectButton.textContent = 'Forget'; 167 inspectLink.textContent = 'Forget';
168 break; 168 break;
169 case device_collection.ConnectionStatus.CONNECTING: 169 case device_collection.ConnectionStatus.CONNECTING:
170 inspectButton.disabled = true; 170 inspectLink.disabled = true;
171 break; 171 break;
172 default: assert('case not handled'); 172 default: assert('case not handled');
173 } 173 }
174 174
175 // TODO(crbug.com/663830): Replace connection error column with better 175 // TODO(crbug.com/663830): Replace connection error column with better
176 // notification system. 176 // notification system.
177 var connectErrorCell = row.cells[COLUMNS.CONNECTION_ERROR]; 177 var connectErrorCell = row.cells[COLUMNS.CONNECTION_ERROR];
178 connectErrorCell.textContent = device.connectionMessage; 178 connectErrorCell.textContent = device.connectionMessage;
179 connectErrorCell.hidden = !device.connectionMessage; 179 connectErrorCell.hidden = !device.connectionMessage;
180 180
(...skipping 17 matching lines...) Expand all
198 cell.textContent = obj == null ? 'Unknown' : obj; 198 cell.textContent = obj == null ? 'Unknown' : obj;
199 cell.dataset.label = header.textContent; 199 cell.dataset.label = header.textContent;
200 } 200 }
201 }, 201 },
202 }; 202 };
203 203
204 return { 204 return {
205 DeviceTable: DeviceTable, 205 DeviceTable: DeviceTable,
206 }; 206 };
207 }); 207 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/bluetooth_internals/bluetooth_internals.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698