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

Side by Side Diff: chrome/browser/resources/chromeos/device_log_ui/device_log_ui.js

Issue 793933003: Add chrome:://device-log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
OLDNEW
(Empty)
1 // Copyright 2014 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 var DeviceLogUI = (function() {
6 'use strict';
7
8 /**
9 * Create a tag for the log level.
michaelpg 2014/12/11 01:41:45 nit: Creates, same as below
stevenjb 2014/12/11 19:57:52 Done.
10 *
11 * @param {string} level A string that represents log level.
12 * @return {DOMElement} The created span element.
xiyuan 2014/12/11 04:36:09 nit: DOMElement -> HTMLSpanElement (or HTMLElement
stevenjb 2014/12/11 19:57:51 Done.
13 */
14 var createLevelTag = function(level) {
15 var tag = document.createElement('span');
16 tag.className = 'level-tag';
17 tag.textContent = level;
18 var levelClass = 'log-level-' + level.toLowerCase();
19 tag.classList.add(levelClass);
xiyuan 2014/12/11 04:36:09 nit: This can be combined with tag.className assig
stevenjb 2014/12/11 19:57:51 Done.
20 return tag;
21 };
22
23 /**
24 * Create a tag for the log type.
25 *
26 * @param {string} level A string that represents log type.
27 * @return {DOMElement} The created span element.
xiyuan 2014/12/11 04:36:09 nit: DOMElement -> HTMLSpanElement
stevenjb 2014/12/11 19:57:51 Done.
28 */
29 var createTypeTag = function(type) {
30 var tag = document.createElement('span');
31 tag.className = 'type-tag';
32 tag.textContent = type;
33 var typeClass = 'log-type-' + type.toLowerCase();
34 tag.classList.add(typeClass);
xiyuan 2014/12/11 04:36:09 nit: same here.
stevenjb 2014/12/11 19:57:51 Done.
35 return tag;
36 };
37
38 /**
39 * Creates an element that contains the time, the event, the level and
40 * the description of the given log entry.
41 *
42 * @param {Object} logEntry An object that represents a single line of log.
43 * @return {DOMElement} The created p element that represents the log entry.
xiyuan 2014/12/11 04:36:09 nit: @return {DOMElement} -> @return {?HTMLParagra
stevenjb 2014/12/11 19:57:51 Done.
44 */
45 var createLogEntryText = function(logEntry) {
46 var level = logEntry['level'];
47 var levelCheckbox = 'log-level-' + level.toLowerCase();
48 if ($(levelCheckbox) && !$(levelCheckbox).checked)
49 return null;
50
51 var type = logEntry['type'];
52 var typeCheckbox = 'log-type-' + type.toLowerCase();
53 if ($(typeCheckbox) && !$(typeCheckbox).checked)
54 return null;
55
56 var res = document.createElement('p');
57 var textWrapper = document.createElement('span');
58 var fileinfo = '';
59 if ($('log-fileinfo').checked)
60 fileinfo = logEntry['file'];
61 var timestamp = '';
62 if ($('log-timedetail').checked)
63 timestamp = logEntry['timestamp'];
64 else
65 timestamp = logEntry['timestampshort'];
66 textWrapper.textContent = loadTimeData.getStringF(
67 'logEntryFormat',
68 timestamp,
69 fileinfo,
70 logEntry['event']);
71 res.appendChild(createTypeTag(type));
72 res.appendChild(createLevelTag(level));
73 res.appendChild(textWrapper);
74 return res;
75 };
76
77 /**
78 * Create event log entries.
michaelpg 2014/12/11 01:41:45 nit: Creates
stevenjb 2014/12/11 19:57:52 Done.
79 *
80 * @param {Array.<string>} logEntries A array of strings that each string
81 * represents a log event in JSON format.
michaelpg 2014/12/11 01:41:45 nit: english "A[n] array of strings that each [-st
stevenjb 2014/12/11 19:57:52 Sigh, interns. (This was all copy/pasted). Done.
82 */
83 var createEventLog = function(logEntries) {
84 var container = $('log-container');
85 container.textContent = '';
86 for (var i = 0; i < logEntries.length; ++i) {
87 var entry = createLogEntryText(JSON.parse(logEntries[i]));
88 if (entry)
89 container.appendChild(entry);
90 }
91 };
92
93 /**
94 * This callback function is triggered when the log is received.
95 *
96 * @param {Object} data A JSON structure of event log entries.
97 */
98 var getLogCallback = function(data) {
99 createEventLog(JSON.parse(data));
100 };
101
102 /**
103 * Requests a log update.
104 */
105 var requestLog = function() {
106 chrome.send('DeviceLog.getLog');
107 };
108
109 /**
110 * Sets refresh rate if the interval is found in the url.
111 */
112 var setRefresh = function() {
113 var interval = parseQueryParams(window.location)['refresh'];
114 if (interval && interval != '')
115 setInterval(requestLog, parseInt(interval) * 1000);
116 };
117
118 /**
119 * Get log information from WebUI.
michaelpg 2014/12/11 01:41:45 nit: Gets
stevenjb 2014/12/11 19:57:51 Done.
120 */
121 document.addEventListener('DOMContentLoaded', function() {
122 $('log-refresh').onclick = requestLog;
123 $('log-level-error').checked = true;
124 $('log-level-error').onclick = requestLog;
michaelpg 2014/12/11 01:41:45 Why not set the checked attributes in the HTML? A
stevenjb 2014/12/11 19:57:52 I don't like putting logic in html (i.e. which def
125 $('log-level-user').checked = true;
126 $('log-level-user').onclick = requestLog;
127 $('log-level-event').checked = true;
128 $('log-level-event').onclick = requestLog;
129 $('log-level-debug').checked = false;
130 $('log-level-debug').onclick = requestLog;
131 $('log-type-login').checked = true;
132 $('log-type-login').onclick = requestLog;
133 $('log-type-network').checked = true;
134 $('log-type-network').onclick = requestLog;
135 $('log-type-power').checked = true;
136 $('log-type-power').onclick = requestLog;
137 $('log-fileinfo').checked = false;
138 $('log-fileinfo').onclick = requestLog;
139 $('log-timedetail').checked = false;
140 $('log-timedetail').onclick = requestLog;
141 setRefresh();
142 requestLog();
143 });
144
145 return {
146 getLogCallback: getLogCallback
147 };
148 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698