+
+
+
Overview
+
+
+ Status
+ {{status}}
+
+
+
+ TraceId
+ {{tradeId}}
+
+
+
+ Time
+ {{time}}
+
+
+
+ Local
+ {{local}}
+
+
+
+ Duration
+ {{durationMs}} ms
+
+
+
+ Request Size
+ {{requestSize}} B
+
+
+
+ Response Size
+ {{responseSize}} B
+
+
+
+
+
Environment
+
+
+ Environment
+ {{env}}
+
+
+
+ Culture
+ {{culture}}
+
+
+
+ Machine
+ {{machineName}}
+
+
+
+ TimeZone
+ {{timeZone}}
+
+
+
+ Decimal
+ {{decimalSeparator}}
+
+
+
+ Date Format
+ {{dateFormat}}
+
+
+
+ Version
+ {{assemblyVersion}}
+
+
+
@@ -31,9 +105,11 @@
Response Body
Compare
-
-
-
+
+
+
+
+
diff --git a/DebugProbe.AspNetCore/Resources/js/debugprobe-compare.js b/DebugProbe.AspNetCore/Resources/js/debugprobe-compare.js
index 825c344..f0d1d0e 100644
--- a/DebugProbe.AspNetCore/Resources/js/debugprobe-compare.js
+++ b/DebugProbe.AspNetCore/Resources/js/debugprobe-compare.js
@@ -1,4 +1,4 @@
-window.runCompare = async function () {
+window.runCompare = async function () {
const id = window.location.pathname.split('/').pop();
const base = document.getElementById('baseUrl').value.trim();
const remoteId = document.getElementById('compareId').value.trim();
@@ -32,24 +32,33 @@ function setCompareResult(html) {
function renderCompare(result) {
return [
- renderSection('Environment', [
- { field: 'Environment', local: result.environment?.local, remote: result.environment?.remote },
- { field: 'Culture', local: result.culture?.local, remote: result.culture?.remote }
- ]),
- renderSection('Overview', [
- { field: 'Method', local: result.method?.local, remote: result.method?.remote },
- { field: 'Path', local: result.path?.local, remote: result.path?.remote },
- { field: 'Status', local: result.status?.local, remote: result.status?.remote },
- { field: 'Request Time', local: result.requestTime?.local, remote: result.requestTime?.remote }
- ]),
- '
Request
',
- renderSideBySideJson(result.requestBody),
- '
Response
',
- renderSideBySideJson(result.responseBody)
+ renderAccordionSection(
+ 'Environment',
+ renderSectionRows([
+ { field: 'Environment', local: result.environment?.local, remote: result.environment?.remote },
+ { field: 'Culture', local: result.culture?.local, remote: result.culture?.remote }
+ ])
+ ),
+
+ renderAccordionSection(
+ 'Overview',
+ renderSectionRows([
+ { field: 'Method', local: result.method?.local, remote: result.method?.remote },
+ { field: 'Path', local: result.path?.local, remote: result.path?.remote },
+ { field: 'Status', local: result.status?.local, remote: result.status?.remote },
+ { field: 'Request Time', local: result.requestTime?.local, remote: result.requestTime?.remote }
+ ]),
+ true // expanded by default
+ ),
+
+ renderAccordionSection('Request', renderSideBySideJson(result.requestBody)),
+
+ renderAccordionSection('Response', renderSideBySideJson(result.responseBody)
+ )
].join('');
}
-function renderSection(title, rows) {
+function renderSectionRows(rows) {
const body = rows.map(row => {
const changed = row.local !== row.remote;
const rowStyle = changed ? ' style="background:rgba(255,200,0,0.12)"' : '';
@@ -62,13 +71,17 @@ function renderSection(title, rows) {
`;
}).join('');
- return `
${escapeHtml(title)}
-
- | Field | Local | Remote |
+ return `
+
+
+ | Field |
+ Local |
+ Remote |
+
${body}
-
`;
+
+ `;
}
-
function renderSideBySideJson(data) {
const localJson = data?.local || '';
const remoteJson = data?.remote || '';
@@ -86,6 +99,34 @@ function renderSideBySideJson(data) {
`;
}
+function renderAccordionSection(title, content, expanded = false) {
+ return `
+