| 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 |