OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 (function() { | 5 (function() { |
6 function makeLogEntryNode(entry) { | 6 'use strict'; |
7 var toggleDisplayDetails = function() { | |
8 var detailsNode = this.parentNode.getElementsByClassName('details')[0]; | |
9 if (detailsNode.classList.contains('hidden')) { | |
10 detailsNode.classList.remove('hidden'); | |
11 } else { | |
12 detailsNode.classList.add('hidden'); | |
13 } | |
14 } | |
kjiwa
2013/11/05 00:21:56
As a minor note this function can be generalized i
| |
15 | |
16 var makeLogEntryNode = function(entry) { | |
7 var timeNode = document.createElement('td'); | 17 var timeNode = document.createElement('td'); |
8 timeNode.textContent = entry.date; | 18 timeNode.textContent = entry.date; |
9 | 19 |
10 var submoduleNode = document.createElement('td'); | 20 var submoduleNode = document.createElement('td'); |
11 submoduleNode.textContent = entry.submodule; | 21 submoduleNode.textContent = entry.submodule; |
12 | 22 |
13 var eventNode = document.createElement('td'); | 23 var eventNode = document.createElement('td'); |
14 eventNode.textContent = entry.event; | 24 eventNode.textContent = entry.event; |
15 | 25 |
16 var details = document.createElement('pre'); | 26 var details = document.createElement('pre'); |
17 details.textContent = JSON.stringify(entry.details, null, 2); | 27 details.textContent = JSON.stringify(entry.details, null, 2); |
28 details.className = 'details'; | |
29 details.classList.add('hidden'); | |
kjiwa
2013/11/05 00:21:56
For consistency you may want to use:
details.cl
| |
30 var detailsToggleButton = document.createElement('button'); | |
31 detailsToggleButton.addEventListener('click', toggleDisplayDetails, false); | |
32 detailsToggleButton.textContent = 'Show/Hide Details'; | |
18 var detailsNode = document.createElement('td'); | 33 var detailsNode = document.createElement('td'); |
34 detailsNode.appendChild(detailsToggleButton); | |
19 detailsNode.appendChild(details); | 35 detailsNode.appendChild(details); |
20 | 36 |
21 var node = document.createElement('tr'); | 37 var node = document.createElement('tr'); |
22 node.appendChild(timeNode); | 38 node.appendChild(timeNode); |
23 node.appendChild(submoduleNode); | 39 node.appendChild(submoduleNode); |
24 node.appendChild(eventNode); | 40 node.appendChild(eventNode); |
25 node.appendChild(detailsNode); | 41 node.appendChild(detailsNode); |
26 | 42 |
27 return node; | 43 return node; |
28 } | 44 } |
29 | 45 |
30 var syncEvents = document.getElementById('sync-events'); | 46 var syncEvents = document.getElementById('sync-events'); |
31 | 47 |
32 var entries = chrome.sync.log.entries; | 48 var entries = chrome.sync.log.entries; |
33 for (var i = 0; i < entries.length; ++i) { | 49 for (var i = 0; i < entries.length; ++i) { |
34 syncEvents.appendChild(makeLogEntryNode(entries[i])); | 50 syncEvents.appendChild(makeLogEntryNode(entries[i])); |
35 } | 51 } |
36 | 52 |
37 chrome.sync.log.addEventListener('append', function(event) { | 53 chrome.sync.log.addEventListener('append', function(event) { |
38 syncEvents.appendChild(makeLogEntryNode(event.detail)); | 54 syncEvents.appendChild(makeLogEntryNode(event.detail)); |
39 }); | 55 }); |
40 })(); | 56 })(); |
OLD | NEW |