OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 * WebUI to monitor File Metadata per Extension ID. | 6 * WebUI to monitor File Metadata per Extension ID. |
7 */ | 7 */ |
8 var FileMetadata = (function() { | 8 var FileMetadata = (function() { |
9 'use strict'; | 9 'use strict'; |
10 | 10 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 /** | 76 /** |
77 * Renders result of getFileMetadata as a table. | 77 * Renders result of getFileMetadata as a table. |
78 */ | 78 */ |
79 FileMetadata.onGetFileMetadata = function(fileMetadataMap) { | 79 FileMetadata.onGetFileMetadata = function(fileMetadataMap) { |
80 var header = $('file-metadata-header'); | 80 var header = $('file-metadata-header'); |
81 // Only draw the header if it hasn't been drawn yet | 81 // Only draw the header if it hasn't been drawn yet |
82 if (header.children.length === 0) { | 82 if (header.children.length === 0) { |
83 var tr = document.createElement('tr'); | 83 var tr = document.createElement('tr'); |
84 tr.appendChild(createElementFromText('td', 'Type')); | 84 tr.appendChild(createElementFromText('td', 'Type')); |
85 tr.appendChild(createElementFromText('td', 'Status')); | 85 tr.appendChild(createElementFromText('td', 'Status')); |
86 tr.appendChild(createElementFromText('td', 'Title')); | 86 tr.appendChild(createElementFromText('td', 'Path', {width: '250px'})); |
87 tr.appendChild(createElementFromText('td', 'Details')); | 87 tr.appendChild(createElementFromText('td', 'Details')); |
88 header.appendChild(tr); | 88 header.appendChild(tr); |
89 } | 89 } |
90 | 90 |
91 // Add row entries. | 91 // Add row entries. |
92 var itemContainer = $('file-metadata-entries'); | 92 var itemContainer = $('file-metadata-entries'); |
93 itemContainer.textContent = ''; | 93 itemContainer.textContent = ''; |
94 for (var i = 0; i < fileMetadataMap.length; i++) { | 94 for (var i = 0; i < fileMetadataMap.length; i++) { |
95 var metadatEntry = fileMetadataMap[i]; | 95 var metadatEntry = fileMetadataMap[i]; |
96 var tr = document.createElement('tr'); | 96 var tr = document.createElement('tr'); |
97 tr.appendChild(createFileIconCell(metadatEntry.type)); | 97 tr.appendChild(createFileIconCell(metadatEntry.type)); |
98 tr.appendChild(createElementFromText('td', metadatEntry.status)); | 98 tr.appendChild(createElementFromText('td', metadatEntry.status)); |
99 tr.appendChild(createElementFromText('td', metadatEntry.title)); | 99 tr.appendChild(createElementFromText('td', metadatEntry.path)); |
100 tr.appendChild(createElementFromDictionary('td', metadatEntry.details)); | 100 tr.appendChild(createElementFromDictionary('td', metadatEntry.details)); |
101 itemContainer.appendChild(tr); | 101 itemContainer.appendChild(tr); |
102 } | 102 } |
103 } | 103 } |
104 | 104 |
105 /** | 105 /** |
106 * @param {string} file type string. | 106 * @param {string} file type string. |
107 * @return {HTMLElement} TD with file or folder icon depending on type. | 107 * @return {HTMLElement} TD with file or folder icon depending on type. |
108 */ | 108 */ |
109 function createFileIconCell(type) { | 109 function createFileIconCell(type) { |
110 var td = createElementFromText('td', type); | 110 var td = createElementFromText('td', type); |
111 td.setAttribute('class', type.toLowerCase() + '-icon'); | 111 td.setAttribute('class', type.toLowerCase() + '-icon'); |
112 return td; | 112 return td; |
113 } | 113 } |
114 | 114 |
115 // TODO(calvinlo): Move to helper file so it doesn't need to be duplicated. | |
116 /** | |
117 * Creates an element with |tagName| containing the content |text|. | |
118 * @param {string} elementName Name of the new element to be created. | |
119 * @param {string} text Text to be contained in the new element. | |
120 * @return {HTMLElement} The newly created HTML element. | |
121 */ | |
122 function createElementFromText(tagName, text) { | |
123 var element = document.createElement(tagName); | |
124 element.appendChild(document.createTextNode(text)); | |
125 return element; | |
126 } | |
127 | |
128 /** | |
129 * Creates an element with |tagName| containing the content |dict|. | |
130 * @param {string} elementName Name of the new element to be created. | |
131 * @param {Object.<string, string>} dict Dictionary to be contained in the new | |
132 * element. | |
133 * @return {HTMLElement} The newly created HTML element. | |
134 */ | |
135 function createElementFromDictionary(tagName, dict) { | |
136 var element = document.createElement(tagName); | |
137 for (var key in dict) { | |
138 element.appendChild(document.createTextNode(key + ': ' + dict[key])); | |
139 element.appendChild(document.createElement('br')); | |
140 } | |
141 return element; | |
142 } | |
143 | |
144 function main() { | 115 function main() { |
145 getExtensions(); | 116 getExtensions(); |
146 $('refresh-metadata-button').addEventListener('click', getExtensions); | 117 $('refresh-metadata-button').addEventListener('click', getExtensions); |
147 $('extensions-select').addEventListener('change', getFileMetadata); | 118 $('extensions-select').addEventListener('change', getFileMetadata); |
148 } | 119 } |
149 | 120 |
150 document.addEventListener('DOMContentLoaded', main); | 121 document.addEventListener('DOMContentLoaded', main); |
151 return FileMetadata; | 122 return FileMetadata; |
152 })(); | 123 })(); |
OLD | NEW |