Changeset 3751971 for mxchat-basic/trunk/js/admin-testing-tab.js
- Timestamp:
- 10/17/2026 01:47:11 PM (12 days ago)
- File:
-
- 1 edited
-
mxchat-basic/trunk/js/admin-testing-tab.js (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mxchat-basic/trunk/js/admin-testing-tab.js
r3670236 r3751971 7 7 (function($) { 8 8 'use strict'; 9 10 // Knowledge-base titles and URLs (imported pages, sitemaps, files), action 11 // labels and the URL guard's results are stored text: escape everything put 12 // into the panel as HTML. Same quote-safe helper as mxchat_transcripts.js. 13 function escapeHtml(text) { 14 if (!text && text !== 0) return ''; 15 return String(text) 16 .replace(/&/g, '&') 17 .replace(/</g, '<') 18 .replace(/>/g, '>') 19 .replace(/"/g, '"') 20 .replace(/'/g, '''); 21 } 9 22 10 23 var AdminTestingPanel = { … … 270 283 } catch (e) {} 271 284 285 var link = /^https?:\/\//i.test(String(url)) 286 ? '<a href="' + escapeHtml(url) + '" target="_blank" rel="noopener noreferrer" class="url-link" title="' + escapeHtml(url) + '">' + escapeHtml(displayUrl) + '</a>' 287 : '<span class="url-link">' + escapeHtml(displayUrl) + '</span>'; 272 288 html += '<div class="url-card"><div class="url-line">' + 273 '<span class="url-icon">🔗</span>' + 274 '<a href="' + url + '" target="_blank" rel="noopener noreferrer" class="url-link" title="' + url + '">' + displayUrl + '</a>' + 289 '<span class="url-icon">🔗</span>' + link + 275 290 '</div></div>'; 276 291 }); … … 309 324 '<div class="action-line">' + 310 325 '<span class="action-icon">' + statusIcon + '</span>' + 311 '<span class="action-name">' + action.intent_label+ '</span>' +326 '<span class="action-name">' + escapeHtml(action.intent_label) + '</span>' + 312 327 '<span class="action-score">' + action.similarity_percentage + '%</span>' + 313 328 '</div>' + … … 429 444 '<div class="match-source">' + 430 445 (group.isUrl ? 431 '<span class="source-icon link-icon">🔗</span> ' + group.url:432 '<span class="source-icon doc-icon">📄</span> ' + group.url446 '<span class="source-icon link-icon">🔗</span> ' + escapeHtml(group.url) : 447 '<span class="source-icon doc-icon">📄</span> ' + escapeHtml(group.url) 433 448 ) + 434 449 '</div>' + … … 486 501 }).done(function(data) { 487 502 if (data.success) { 488 $('#mxch-testing-threshold').html('<code>' + data.data.threshold_percentage+ '</code>');503 $('#mxch-testing-threshold').html('<code>' + escapeHtml(data.data.threshold_percentage) + '</code>'); 489 504 } else { 490 505 $('#mxch-testing-threshold').html('<span class="error-text">Error loading threshold</span>'); … … 536 551 if (data.success) { 537 552 var kbData = data.data; 538 el.html('<span class="success-text">✓ ' + kbData.status + '</span> (' + kbData.type + ' - ' + kbData.documents+ ')');553 el.html('<span class="success-text">✓ ' + escapeHtml(kbData.status) + '</span> (' + escapeHtml(kbData.type) + ' - ' + escapeHtml(kbData.documents) + ')'); 539 554 } else { 540 555 el.html('<span class="error-text">Error loading KB status</span>'); … … 641 656 var entry = document.createElement('div'); 642 657 entry.className = 'mxch-testing-debug-entry'; 643 entry.innerHTML = '<span class="mxch-testing-debug-timestamp">[' + timestamp + ']</span> ' + message;658 entry.innerHTML = '<span class="mxch-testing-debug-timestamp">[' + escapeHtml(timestamp) + ']</span> ' + escapeHtml(message); 644 659 consoleEl.appendChild(entry); 645 660 consoleEl.scrollTop = consoleEl.scrollHeight;
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)