Skip to content

Commit 05e2505

Browse files
Artmorsebasiltimja
authored
[JENKINS-69658] - failed-test.jelly javascript un-inlined. (#451)
Co-authored-by: Basil Crow <[email protected]> Co-authored-by: Tim Jacomb <[email protected]>
1 parent ab878c3 commit 05e2505

File tree

2 files changed

+40
-14
lines changed

2 files changed

+40
-14
lines changed

src/main/resources/lib/hudson/test/failed-test.jelly

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,13 @@ THE SOFTWARE.
6060
}
6161
</style>
6262
</st:once>
63+
6364
<j:set var="id" value="${h.htmlAttributeEscape(url)}"/>
64-
<j:set var="idjs" value="${h.jsStringEscape(url)}"/>
65-
<j:set var="open" value="showFailureSummary('test-${h.jsStringEscape(id)}','${idjs}/summary')"/>
66-
<j:set var="close" value="hideFailureSummary('test-${h.jsStringEscape(id)}')"/>
67-
<a id="test-${id}-showlink" onclick="${open}" title="${%Show details}">
65+
66+
<a id="test-${id}-showlink" title="${%Show details}">
6867
<l:icon src="symbol-add-outline plugin-ionicons-api" class="icon-sm"/>
6968
</a>
70-
<a id="test-${id}-hidelink" onclick="${close}" title="${%Hide details}" style="display:none">
69+
<a id="test-${id}-hidelink" title="${%Hide details}" style="display:none">
7170
<l:icon src="symbol-remove-outline plugin-ionicons-api" class="icon-sm"/>
7271
</a>
7372
<st:nbsp/>
Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,47 @@
11

2-
function showFailureSummary(id,query) {
3-
var element = document.getElementById(id)
2+
const PREFIX = "test-";
3+
const SHOWLINK_SUFFIX = "-showlink";
4+
const HIDELINK_SUFFIX = "-hidelink";
5+
6+
function showFailureSummary(summaryId, query) {
7+
let element = document.getElementById(summaryId);
8+
49
element.style.display = "";
5-
document.getElementById(id + "-showlink").style.display = "none";
6-
document.getElementById(id + "-hidelink").style.display = "";
10+
document.getElementById(summaryId + SHOWLINK_SUFFIX).style.display = "none";
11+
document.getElementById(summaryId + HIDELINK_SUFFIX).style.display = "";
712

813
if (typeof query !== 'undefined') {
9-
var rqo = new XMLHttpRequest();
14+
let rqo = new XMLHttpRequest();
1015
rqo.open('GET', query, true);
1116
rqo.onreadystatechange = function() { element.innerHTML = rqo.responseText; }
1217
rqo.send(null);
1318
}
1419
}
1520

16-
function hideFailureSummary(id) {
17-
document.getElementById(id).style.display = "none";
18-
document.getElementById(id + "-showlink").style.display = "";
19-
document.getElementById(id + "-hidelink").style.display = "none";
21+
function hideFailureSummary(summaryId) {
22+
document.getElementById(summaryId).style.display = "none";
23+
document.getElementById(summaryId + SHOWLINK_SUFFIX).style.display = "";
24+
document.getElementById(summaryId + HIDELINK_SUFFIX).style.display = "none";
2025
}
26+
27+
28+
document.addEventListener('DOMContentLoaded', () => {
29+
const testShowlinks = document.querySelectorAll("a[id*=test-][id*=-showlink]");
30+
testShowlinks.forEach((element) => {
31+
element.addEventListener('click', (event) => {
32+
const id = element.id.replace(PREFIX, '').replace(SHOWLINK_SUFFIX, '');
33+
const summaryId = PREFIX + id;
34+
showFailureSummary(summaryId, document.URL + id + "summary");
35+
})
36+
});
37+
38+
// add the onclick behavior for all the "hidelinks"
39+
const testHidelinks = document.querySelectorAll("a[id*=test-][id*=-hidelink]");
40+
testHidelinks.forEach((element) => {
41+
element.addEventListener('click', (event) => {
42+
const id = element.id.replace(PREFIX, '').replace(HIDELINK_SUFFIX, '');
43+
const summaryId = PREFIX + id;
44+
hideFailureSummary(summaryId);
45+
})
46+
});
47+
});

0 commit comments

Comments
 (0)