Files
api/web/public/test-pages/index.html
T
2025-09-15 11:38:04 -04:00

263 lines
7.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Unraid Component Test Pages</title>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<style>
body {
font-family: system-ui, -apple-system, sans-serif;
margin: 0;
padding: 20px;
background: #f3f4f6;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
.header {
background: linear-gradient(135deg, #1f2937 0%, #374151 100%);
color: white;
padding: 30px;
border-radius: 8px;
margin-bottom: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.header h1 {
margin: 0 0 10px 0;
font-size: 32px;
}
.header p {
margin: 0;
opacity: 0.9;
}
.category-section {
margin-bottom: 30px;
}
.category-header {
background: #1f2937;
color: white;
padding: 12px 20px;
border-radius: 6px 6px 0 0;
font-weight: 600;
font-size: 16px;
display: flex;
align-items: center;
gap: 10px;
}
.page-list {
background: white;
border-radius: 0 0 6px 6px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.page-item {
padding: 15px 20px;
border-bottom: 1px solid #e5e7eb;
display: flex;
justify-content: space-between;
align-items: center;
transition: background 0.2s;
}
.page-item:hover {
background: #f9fafb;
}
.page-item:last-child {
border-bottom: none;
}
.page-item h3 {
margin: 0;
font-size: 18px;
color: #1f2937;
}
.page-item p {
margin: 5px 0 0 0;
color: #6b7280;
font-size: 14px;
}
.page-item .badge {
display: inline-block;
padding: 2px 8px;
background: #dbeafe;
color: #1e40af;
border-radius: 4px;
font-size: 11px;
font-weight: 600;
margin-left: 10px;
}
.page-item .badge.new {
background: #d1fae5;
color: #065f46;
}
.page-item a {
padding: 8px 16px;
background: #3b82f6;
color: white;
text-decoration: none;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
transition: background 0.2s;
}
.page-item a:hover {
background: #2563eb;
}
.info-box {
background: #fef3c7;
border: 1px solid #f59e0b;
border-radius: 6px;
padding: 15px 20px;
margin-bottom: 30px;
color: #92400e;
}
.info-box strong {
color: #78350f;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>🧪 Unraid Component Test Environment</h1>
<p>HTML-based test pages that mimic Unraid OS integration with jQuery and component mounting</p>
</div>
<div class="info-box">
<strong>️ Testing Mode:</strong> These pages replicate how Unraid OS mounts Vue components into existing HTML/PHP pages using jQuery for interaction. Each page demonstrates real-world integration patterns.
</div>
<!-- Core Test Pages -->
<div class="category-section">
<div class="category-header">
🎯 Core Test Pages
</div>
<div class="page-list">
<div class="page-item">
<div>
<h3>All Components <span class="badge new">COMPREHENSIVE</span></h3>
<p>Complete component library showcase with all available components</p>
</div>
<a href="/test-pages/all-components.html">Open →</a>
</div>
<div class="page-item">
<div>
<h3>Dashboard</h3>
<p>Main dashboard with header components, system status, and user profile</p>
</div>
<a href="/test-pages/dashboard.html">Open →</a>
</div>
<div class="page-item">
<div>
<h3>Settings</h3>
<p>System settings with theme switcher, Connect configuration, and API keys</p>
</div>
<a href="/test-pages/settings.html">Open →</a>
</div>
</div>
</div>
<!-- Feature-Specific Pages -->
<div class="category-section">
<div class="category-header">
⚡ Feature-Specific Pages
</div>
<div class="page-list">
<div class="page-item">
<div>
<h3>Authentication Flow <span class="badge new">NEW</span></h3>
<p>Complete auth workflow with login, SSO, user profile, and registration</p>
</div>
<a href="/test-pages/authentication.html">Open →</a>
</div>
<div class="page-item">
<div>
<h3>OS Management <span class="badge new">NEW</span></h3>
<p>System updates, downgrades, and version management with progress simulation</p>
</div>
<a href="/test-pages/os-management.html">Open →</a>
</div>
<div class="page-item">
<div>
<h3>Update Modal Testing <span class="badge new">NEW</span></h3>
<p>Test various update scenarios including expired licenses, renewals, and auth requirements</p>
</div>
<a href="/test-pages/update-modal.html">Open →</a>
</div>
<div class="page-item">
<div>
<h3>Component Mounting Test</h3>
<p>Test single and multiple component mounting with shared Pinia store and dynamic creation</p>
</div>
<a href="/test-pages/component-mounting.html">Open →</a>
</div>
</div>
</div>
<!-- Quick Links -->
<div class="category-section">
<div class="category-header">
🔗 Quick Component Tests
</div>
<div class="page-list">
<div class="page-item">
<div>
<h3>Theme Testing</h3>
<p>Light/dark mode switching and CSS variable management</p>
</div>
<a href="/test-pages/all-components.html#theme-switcher">Open →</a>
</div>
<div class="page-item">
<div>
<h3>Modal System</h3>
<p>Global modal management and event-driven popups</p>
</div>
<a href="/test-pages/all-components.html#modals">Open →</a>
</div>
<div class="page-item">
<div>
<h3>API & Logs</h3>
<p>API key management, log viewer, and debug tools</p>
</div>
<a href="/test-pages/all-components.html#api-developer">Open →</a>
</div>
</div>
</div>
<!-- Testing Info -->
<div style="background: white; padding: 20px; border-radius: 8px; margin-top: 30px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<h3 style="margin-top: 0;">🛠️ Testing Guidelines</h3>
<ul style="color: #6b7280; line-height: 1.8;">
<li>Each page loads components using the same mechanism as Unraid OS (manifest-based loading)</li>
<li>jQuery is available for simulating PHP/backend interactions</li>
<li>Components communicate via DOM attributes and custom events</li>
<li>Hot module replacement (HMR) is enabled in dev mode for instant updates</li>
<li>Use browser DevTools console to monitor component events and interactions</li>
</ul>
</div>
</div>
<!-- Load the manifest and inject resources (mimics PHP extractor) -->
<script src="/test-pages/load-manifest.js"></script>
<script>
$(document).ready(function() {
// Add some interactivity to the index page
$('.page-item').on('mouseenter', function() {
$(this).find('a').css('transform', 'translateX(2px)');
}).on('mouseleave', function() {
$(this).find('a').css('transform', 'translateX(0)');
});
// Set up smooth transitions
$('a').css('transition', 'all 0.2s ease');
});
</script>
</body>
</html>