MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / displayGroupedVulnerabilities

Function displayGroupedVulnerabilities

web/scripts/ragnar_modern.js:14524–14683  ·  view source on GitHub ↗
(data)

Source from the content-addressed store, hash-verified

14522 updatePwnToggleAvailability(isHeadless);
14523
14524 } catch (error) {
14525 // If endpoint doesn't exist or fails, assume not headless (default behavior)
14526 console.log('[Headless] Detection failed, assuming display mode:', error.message);
14527 headlessMode = false;
14528 applyHeadlessVisibility(false);
14529 }
14530}
14531
14532/**
14533 * Apply headless mode visibility settings to UI elements
14534 * @param {boolean} isHeadless - Whether the system is in headless mode
14535 */
14536function applyHeadlessVisibility(isHeadless) {
14537 // Find all elements that require a display
14538 const displayElements = document.querySelectorAll('.requires-display');
14539
14540 if (isHeadless) {
14541 // Hide all display-related elements
14542 displayElements.forEach(el => {
14543 el.style.display = 'none';
14544 el.setAttribute('data-hidden-by-headless', 'true');
14545 });
14546
14547 console.log(`[Headless] Hidden ${displayElements.length} Display UI elements`);
14548
14549 // If user is currently on Display tab, redirect to dashboard
14550 if (currentTab === 'epaper') {
14551 console.log('[Headless] Redirecting from Display tab to dashboard');
14552 showTab('dashboard');
14553 }
14554 } else {
14555 // Show all display-related elements
14556 displayElements.forEach(el => {
14557 if (el.getAttribute('data-hidden-by-headless') === 'true') {
14558 el.style.display = '';
14559 el.removeAttribute('data-hidden-by-headless');
14560 }
14561 });
14562
14563 console.log(`[Headless] Restored ${displayElements.length} Display UI elements`);
14564 }
14565 if (window._updateNavMode) window._updateNavMode();
14566}
14567
14568// ============================================================================
14569// HARDWARE PROFILE MANAGEMENT FUNCTIONS
14570// ============================================================================
14571
14572async function loadHardwareProfiles() {
14573 try {
14574 const profiles = await fetchAPI('/api/config/hardware-profiles');
14575 const select = document.getElementById('hardware-profile-select');
14576 const applyBtn = document.getElementById('apply-profile-btn');
14577
14578 if (!select) return;
14579
14580 // Clear existing options
14581 select.innerHTML = '<option value="">Select a hardware profile...</option>';

Callers 2

loadThreatIntelDataFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected