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

Unified Diff: chrome/browser/resources/local_discovery/local_discovery.js

Issue 20504002: Fix bug where updates to registration status don't show up (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/local_discovery/local_discovery.js
diff --git a/chrome/browser/resources/local_discovery/local_discovery.js b/chrome/browser/resources/local_discovery/local_discovery.js
index c116e44d0f3ed5574f1f44ddc7b231089b58d9ed..a926a5ab099db12ad55bbb91842944e205bb7ddc 100644
--- a/chrome/browser/resources/local_discovery/local_discovery.js
+++ b/chrome/browser/resources/local_discovery/local_discovery.js
@@ -14,23 +14,65 @@ cr.define('local_discovery', function() {
'use strict';
/**
+ * Add a text TD to a TR.
+ * @param {HTMLTableRowElement} row Row in table to be filled.
+ * @param {string} text Text of TD.
+ */
+ function textTD(row, text) {
+ var td = document.createElement('td');
+ td.textContent = text;
+ row.appendChild(td);
+ }
+
+ /**
+ * Add a button TD to a TR.
+ * @param {HTMLTableRowElement} row Row in table to be filled.
+ * @param {string} text Text of button.
+ * @param {function()} action Action to be taken when button is pressed.
+ */
+ function buttonTD(row, text, action) {
+ var td = document.createElement('td');
+ var button = document.createElement('button');
+ button.textContent = text;
+ button.addEventListener('click', action);
+ td.appendChild(button);
+ row.appendChild(td);
+ }
+
+ /**
+ * Fill a table row from the provided information.
+ * @param {HTMLTableRowElement} row Row in table to be filled.
+ * @param {string} name Name of the device.
+ * @param {Object} info Information about the device.
+ */
+ function fillRow(row, name, info) {
+ textTD(row, name);
+ textTD(row, info.domain);
+ textTD(row, info.port);
+ textTD(row, info.ip);
+ textTD(row, info.lastSeen);
+
+ if (!info.registered) {
+ buttonTD(row, loadTimeData.getString('serviceRegister'),
+ sendRegisterDevice.bind(null, name));
+ } else {
+ textTD(row, loadTimeData.getString('registered'));
+ }
+
+ buttonTD(row, loadTimeData.getString('serviceInfo'),
+ sendInfoRequest.bind(null, name));
+ }
+
+ /**
* Appends a row to the output table listing the new device.
* @param {string} name Name of the device.
* @param {string} info Additional info of the device, if empty device need to
- * be deleted.
+ * be deleted.
*/
function onServiceUpdate(name, info) {
name = name.replace(/[\r\n]/g, '');
var table = $('devices-table');
- var params = [];
- if (info) {
- params[0] = info.domain;
- params[1] = info.port;
- params[2] = info.ip;
- params[3] = info.lastSeen;
- }
-
for (var i = 0, row; row = table.rows[i]; i++) {
if (row.cells[0].textContent == name) {
if (!info) {
@@ -38,11 +80,13 @@ cr.define('local_discovery', function() {
table.removeChild(row);
} else {
// Replace existing service.
- for (var j = 0; j < params.length; j++) {
- row.cells[j + 1].textContent = params[j];
+ while (row.firstChild) {
+ row.removeChild(row.firstChild);
}
+
+ fillRow(row, name, info);
+ return;
}
- return;
}
}
@@ -51,39 +95,13 @@ cr.define('local_discovery', function() {
return;
}
+ // Row does not exist. Create it.
var tr = document.createElement('tr');
- var td = document.createElement('td');
- td.textContent = name;
- tr.appendChild(td);
- for (var j = 0; j < params.length; j++) {
- td = document.createElement('td');
- td.textContent = params[j];
- tr.appendChild(td);
- }
-
- td = document.createElement('td');
- if (!info.registered) {
- var button = document.createElement('button');
- button.textContent = loadTimeData.getString('serviceRegister');
- button.addEventListener('click', sendRegisterDevice.bind(null, name));
- td.appendChild(button);
- } else {
- td.textContent = loadTimeData.getString('registered');
- }
- tr.appendChild(td);
-
- td = document.createElement('td');
- button = document.createElement('button');
- button.textContent = loadTimeData.getString('serviceInfo');
- button.addEventListener('click', sendInfoRequest.bind(null, name));
- td.appendChild(button);
-
- tr.appendChild(td);
+ fillRow(tr, name, info);
table.appendChild(tr);
}
-
/**
* Adds a row to the logging console.
* @param {string} msg The message to log.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698