Changeset 83902 in webkit
- Timestamp:
- Apr 14, 2011 3:22:11 PM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r83881 r83902 1 2011-04-14 Ojan Vafai <ojan@chromium.org> 2 3 Reviewed by Tony Chang. 4 5 sort columns in the new json_results.html file 6 https://bugs.webkit.org/show_bug.cgi?id=58581 7 8 Also fix padding on TDs and the path to layout tests. 9 10 * Scripts/webkitpy/layout_tests/layout_package/json_results.html: 11 1 12 2011-04-14 Eric Seidel <eric@webkit.org> 2 13 -
trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/json_results.html
r83799 r83902 14 14 15 15 td { 16 padding: 0 4 0px;16 padding: 0 4px; 17 17 } 18 18 19 19 th:empty, td:empty { 20 20 padding: 0; 21 } 22 23 th { 24 -webkit-user-select: none; 25 -moz-user-select: none; 21 26 } 22 27 </style> … … 51 56 52 57 // FIXME: Should this point to the local file instead? Should it dynamically figure out where to point? 53 // FIXME: remove the version number from the URL if possible. 54 var test_base_path = 'http://trac.webkit.org/export/76053/trunk/LayoutTests/'; 58 var test_base_path = 'http://trac.webkit.org/browser/trunk/LayoutTests/'; 55 59 56 60 function resultLink(test_prefix, suffix, contents) … … 59 63 } 60 64 61 // FIXME: allow sorting the table by columns62 65 // FIXME: show expected/actual/diff contents inline in iframes 63 66 // FIXME: allow zooming in on pixel diffs … … 68 71 var hasImageFailures = false; 69 72 73 html += '<tbody>'; 70 74 for (var test in results.tests) { 71 75 var row = '<td><a href="' + test_base_path + test + '">' + test + '</a></td>'; … … 103 107 } 104 108 109 html += '</tbody></table>' 105 110 document.write(html); 111 112 function toArray(nodeList) 113 { 114 return Array.prototype.slice.call(nodeList); 115 } 116 117 function trim(string) 118 { 119 return string.replace(/^[\s\xa0]+|[\s\xa0]+$/g, ''); 120 } 121 122 // Just a namespace for code management. 123 var TableSorter = {}; 124 125 TableSorter._forwardArrow = '<svg style="width:10px;height:10px"><polygon points="0,0 10,0 5,10" style="fill:#aaa"></svg>'; 126 127 TableSorter._backwardArrow = '<svg style="width:10px;height:10px"><polygon points="0,10 10,10 5,0" style="fill:#aaa"></svg>'; 128 129 TableSorter._sortedContents = function(header, arrow) 130 { 131 return arrow + ' ' + trim(header.textContent) + ' ' + arrow; 132 } 133 134 TableSorter._updateHeaderClassNames = function(newHeader) 135 { 136 var sortHeader = document.querySelector('.sortHeader'); 137 if (sortHeader) { 138 if (sortHeader == newHeader) { 139 var isAlreadyReversed = sortHeader.classList.contains('reversed'); 140 if (isAlreadyReversed) 141 sortHeader.classList.remove('reversed'); 142 else 143 sortHeader.classList.add('reversed'); 144 } else { 145 sortHeader.textContent = sortHeader.textContent; 146 sortHeader.classList.remove('sortHeader'); 147 sortHeader.classList.remove('reversed'); 148 } 149 } 150 151 newHeader.classList.add('sortHeader'); 152 } 153 154 TableSorter._sortRows = function(newHeader, reversed) 155 { 156 var testsTable = document.querySelector('table'); 157 var headers = toArray(testsTable.querySelectorAll('th')); 158 var sortColumn = headers.indexOf(newHeader); 159 160 var tbody = testsTable.querySelector('tbody'); 161 var rows = toArray(tbody.querySelectorAll('tr')); 162 163 rows.sort(function(a, b) { 164 // Only need to support lexicographic sort for now. 165 var aText = a.childNodes[sortColumn].textContent; 166 var bText = b.childNodes[sortColumn].textContent; 167 if (reversed) 168 return aText < bText; 169 else 170 return bText < aText; 171 }); 172 173 for (var i = 0; i < rows.length; i++) 174 tbody.appendChild(rows[i]); 175 } 176 177 TableSorter.handleClick = function(e) 178 { 179 var newHeader = e.target; 180 if (newHeader.localName != 'th') 181 return; 182 183 TableSorter._updateHeaderClassNames(newHeader); 184 185 var reversed = newHeader.classList.contains('reversed'); 186 var sortArrow = reversed ? TableSorter._backwardArrow : TableSorter._forwardArrow; 187 newHeader.innerHTML = TableSorter._sortedContents(newHeader, sortArrow); 188 189 TableSorter._sortRows(newHeader, reversed); 190 } 191 192 document.querySelector('table').addEventListener('click', TableSorter.handleClick, false); 106 193 107 194 if (!hasTextFailures)
Note: See TracChangeset
for help on using the changeset viewer.