From a393e98d8b42ccf913ef3263c099eae6c2cac985 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 6 Feb 2023 23:59:18 +0100 Subject: [PATCH 1/6] cmd/hiveview: fix typo in loader --- cmd/hiveview/assets/lib/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/hiveview/assets/lib/utils.js b/cmd/hiveview/assets/lib/utils.js index 8ca34273fd..8c5a3c87ee 100644 --- a/cmd/hiveview/assets/lib/utils.js +++ b/cmd/hiveview/assets/lib/utils.js @@ -181,7 +181,7 @@ export let loader = { } var animated = false; - if (typeof loading == "boolean") { + if (typeof loadState == "boolean") { loadState = 1.0; animated = true; } From e3288dbdc12a414039f81284f96afcba5ff9ec18 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 6 Feb 2023 23:59:40 +0100 Subject: [PATCH 2/6] cmd/hiveview: add spinner on index page --- cmd/hiveview/assets/index.html | 7 ++++--- cmd/hiveview/assets/lib/app-index.js | 11 +++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cmd/hiveview/assets/index.html b/cmd/hiveview/assets/index.html index 5c3ffe879c..4896de372c 100644 --- a/cmd/hiveview/assets/index.html +++ b/cmd/hiveview/assets/index.html @@ -19,9 +19,10 @@ -

Recent results

-

These test suites are available, and can be loaded. Click on 'Load' to load a certain suite.

- +

Recent results + +

+
diff --git a/cmd/hiveview/assets/lib/app-index.js b/cmd/hiveview/assets/lib/app-index.js index 781944b69d..51d248a4b4 100644 --- a/cmd/hiveview/assets/lib/app-index.js +++ b/cmd/hiveview/assets/lib/app-index.js @@ -7,12 +7,19 @@ import * as app from './app.js' $(document).ready(function() { app.init(); + $('#loading').show(); console.log("Loading file list..."); $.ajax("listing.jsonl", { - success: showFileListing, + success: function(data) { + $('#page-text').show(); + showFileListing(data); + }, failure: function(status, err) { alert(err); }, + complete: function () { + $('#loading').hide(); + }, }); }); @@ -32,7 +39,7 @@ function linkToSuite(suiteID, suiteName, linkText) { return html.get_link(url, linkText); } -function showFileListing(data, error) { +function showFileListing(data) { console.log("Got file list") // the data is jsonlines /* From ff8045264fdc1e8610356d211f40e8b561be8f0f Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 7 Feb 2023 00:11:14 +0100 Subject: [PATCH 3/6] cmd/hiveview: include test id in client log link This makes it possible to go back to the test that created the client log. --- cmd/hiveview/assets/lib/app-suite.js | 16 ++++++------ cmd/hiveview/assets/lib/app.js | 38 ++++++++++++++++++---------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/cmd/hiveview/assets/lib/app-suite.js b/cmd/hiveview/assets/lib/app-suite.js index 62452688e4..9320a1ed57 100644 --- a/cmd/hiveview/assets/lib/app-suite.js +++ b/cmd/hiveview/assets/lib/app-suite.js @@ -119,7 +119,7 @@ function showSuiteData(data, suiteID) { $("#testsuite_start").html("🕒 " + suiteTimes.start.toLocaleString()); $("#testsuite_duration").html("⌛️ " + format.duration(suiteTimes.duration)); let logfile = app.resultsRoot + data.simLog; - let url = app.route.logFileInViewer(suiteID, suiteName, logfile); + let url = app.route.simulatorLog(suiteID, suiteName, logfile); $("#sim-log-link").attr("href", url); $("#sim-log-link").text("simulator log"); $("#testsuite_info").show(); @@ -180,8 +180,8 @@ function showSuiteData(data, suiteID) { data: "clientInfo", width: "20%", responsivePriority: 1, - render: function (clientInfo) { - return formatClientLogsList(data, clientInfo); + render: function (clientInfo, type, row) { + return formatClientLogsList(data, row.testIndex, clientInfo); } }, ], @@ -302,13 +302,13 @@ function testHasClients(testData) { } // formatClientLogsList turns the clientInfo part of a test into a list of links. -function formatClientLogsList(suiteData, clientInfo) { +function formatClientLogsList(suiteData, testIndex, clientInfo) { let links = []; for (let instanceID in clientInfo) { let instanceInfo = clientInfo[instanceID] let logfile = app.resultsRoot + instanceInfo.logFile; - let url = app.route.logFileInViewer(suiteData.suiteID, suiteData.name, logfile); - let link = html.get_link(url, instanceInfo.name) + let url = app.route.clientLog(suiteData.suiteID, suiteData.name, testIndex, logfile); + let link = html.get_link(url, instanceInfo.name); link.classList.add('log-link'); links.push(link.outerHTML); } @@ -342,7 +342,7 @@ function formatTestDetails(suiteData, row) { } if (!row.column('logs:name').responsiveHidden() && testHasClients(d)) { let p = document.createElement("p"); - p.innerHTML = 'Clients: ' + formatClientLogsList(suiteData, d.clientInfo); + p.innerHTML = 'Clients: ' + formatClientLogsList(suiteData, d.testIndex, d.clientInfo); container.appendChild(p); } if (!row.column('duration:name').responsiveHidden()) { @@ -443,7 +443,7 @@ function formatTestLog(suiteData, test) { if (hiddenLines > 0) { // Create the truncation marker. let linkText = "..." + hiddenLines + " lines hidden: click for full output..."; - let linkURL = app.route.testLogInViewer(suiteData.suiteID, suiteData.name, test.testIndex); + let linkURL = app.route.testLog(suiteData.suiteID, suiteData.name, test.testIndex); let trunc = html.get_link(linkURL, linkText); trunc.classList.add("output-trunc"); output.appendChild(trunc); diff --git a/cmd/hiveview/assets/lib/app.js b/cmd/hiveview/assets/lib/app.js index 1ab645c08e..60aad01fe5 100644 --- a/cmd/hiveview/assets/lib/app.js +++ b/cmd/hiveview/assets/lib/app.js @@ -4,27 +4,37 @@ export const resultsRoot = "/results/" // This object has constructor function for various app-internal URLs. export let route = { - logFileInViewer: function(suiteID, suiteName, file) { - let params = new URLSearchParams(); - params.set("suiteid", suiteID); - params.set("suitename", suiteName); - params.set("file", file); + simulatorLog: function(suiteID, suiteName, file) { + let params = new URLSearchParams({ + "suiteid": suiteID, + "suitename": suiteName, + "file": file, + }); return "/viewer.html?" + params.toString(); }, - testLogInViewer: function(suiteID, suiteName, testIndex) { - let params = new URLSearchParams(); - params.set("suiteid", suiteID); - params.set("suitename", suiteName); - params.set("testid", testIndex); - params.set("showtestlog", "1"); + testLog: function(suiteID, suiteName, testIndex) { + let params = new URLSearchParams({ + "suiteid": suiteID, + "suitename": suiteName, + "testid": testIndex, + "showtestlog": "1", + }); + return "/viewer.html?" + params.toString(); + }, + + clientLog: function(suiteID, suiteName, testIndex, file) { + let params = new URLSearchParams({ + "suiteid": suiteID, + "suitename": suiteName, + "testid": testIndex, + "file": file, + }); return "/viewer.html?" + params.toString(); }, suite: function(suiteID, suiteName) { - let params = new URLSearchParams(); - params.set("suiteid", suiteID); - params.set("suitename", suiteName); + let params = new URLSearchParams({"suiteid": suiteID, "suitename": suiteName}); return "/suite.html?" + params.toString(); }, From a2b088fcf038b4ec0486558ed303cc75ee98f773 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 7 Feb 2023 00:12:16 +0100 Subject: [PATCH 4/6] cmd/hiveview: show test number in link back --- cmd/hiveview/assets/lib/app-viewer.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/hiveview/assets/lib/app-viewer.js b/cmd/hiveview/assets/lib/app-viewer.js index 596bce8c13..2bb2f65362 100644 --- a/cmd/hiveview/assets/lib/app-viewer.js +++ b/cmd/hiveview/assets/lib/app-viewer.js @@ -71,14 +71,15 @@ function setHL(num, scroll) { // showLinkBack displays the link to the test viewer. function showLinkBack(suiteID, suiteName, testID) { - let linkText = "Back to test suite: " + suiteName; - var linkURL; + var text, url; if (testID) { - linkURL = app.route.testInSuite(suiteID, suiteName, testID); + text = "Back to test " + testID + " in suite ‘" + suiteName + "’"; + url = app.route.testInSuite(suiteID, suiteName, testID); } else { - linkURL = app.route.suite(suiteID, suiteName); + text = "Back to test suite ‘" + suiteName + "’"; + url = app.route.suite(suiteID, suiteName); } - $('#link-back').html(html.get_link(linkURL, linkText)); + $('#link-back').html(html.get_link(url, text)); } function showTitle(type, title) { From 7985e4d17359b710e56397ce179f550774e1fad7 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 7 Feb 2023 00:44:40 +0100 Subject: [PATCH 5/6] cmd/hiveview: improve line highlight --- cmd/hiveview/assets/lib/viewer.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/hiveview/assets/lib/viewer.css b/cmd/hiveview/assets/lib/viewer.css index dd5e3ac19e..a3907331ec 100644 --- a/cmd/hiveview/assets/lib/viewer.css +++ b/cmd/hiveview/assets/lib/viewer.css @@ -81,7 +81,11 @@ h3 { right: 2px; padding: 0; border-radius: 2px 1px 1px 2px; - background: #fffaea; + background: #f9f2dc; +} + +pre.highlighted { + background-color: #f9f2dc; } .num.highlighted::before { @@ -106,5 +110,5 @@ h3 { border-width: 0 1px 1px 0; transform: rotate(-45deg); clip-path: inset(4px 0 0 4px); - background: linear-gradient(to bottom right, #fffaea00 15px, #fffaea 16px, #fffaea); + background: linear-gradient(to bottom right, #f9f2dc00 15px, #f9f2dc 16px, #f9f2dc); } From c2177fdb274d847750ec5e2a76d8e28bd5d60a5c Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 7 Feb 2023 00:44:58 +0100 Subject: [PATCH 6/6] cmd/hiveview: fix scroll-margin in tests table --- cmd/hiveview/assets/lib/app.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/hiveview/assets/lib/app.css b/cmd/hiveview/assets/lib/app.css index d678447718..4bd140e3c8 100644 --- a/cmd/hiveview/assets/lib/app.css +++ b/cmd/hiveview/assets/lib/app.css @@ -131,9 +131,12 @@ td.ellipsis { font-weight: bold; } -.highlighted, .dataTable tr.highlighted { +.dataTable tr { + scroll-margin: 8em 0 0 0; +} + +.dataTable tr.highlighted { background-color: #fffaea; - scroll-margin: 5em 0 0 0; } /* workaround for weird DataTables controls styling at small screen size */