secubox-openwrt/secubox-tools/webui/templates/partials/install_result.html
CyberMind-FR 0d6aaa1111 feat(webui): add Project Hub workspace and remove Command Center glow effects
- Add complete Project Hub & Workspace Interface implementation
  - New data models: Project, ModuleKit, Workspace
  - 3 fixture projects (cybermind.fr, cybermood.eu, secubox-c3)
  - 4 module kits (Security, Network, Automation, Media)
  - Workspace routes with project switching and kit installation
  - 4 workspace tabs: Overview, Module Kits, Devices, Composer
  - New navigation item: Workspace (7th section)

- Remove all glowing effects from UI
  - Remove Command Center widget glow and backdrop blur
  - Remove device status indicator glow
  - Remove toggle button glow effects

- Extend DataStore with 13 new methods for workspace management
- Add 270+ lines of workspace-specific CSS with responsive layouts
- Create workspace templates and result partials

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 08:10:22 +01:00

59 lines
1.8 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

<div class="alert {% if status == 'success' %}alert-success{% elif status == 'info' %}alert-info{% else %}alert-error{% endif %}"
style="padding: 1rem; border-radius: 0.5rem; margin-top: 1rem;">
<div style="display: flex; align-items: center; gap: 0.75rem;">
{% if status == 'success' %}
<span style="font-size: 1.5rem;"></span>
{% elif status == 'info' %}
<span style="font-size: 1.5rem;"></span>
{% else %}
<span style="font-size: 1.5rem;"></span>
{% endif %}
<div>
<strong>{{ message }}</strong>
{% if item and status == 'success' %}
<p style="margin: 0.5rem 0 0 0; font-size: 0.875rem; opacity: 0.8;">
Size: {{ "%.1f"|format(item.size_mb) }} MB
{% if item.dependencies %}
• Dependencies: {{ item.dependencies|length }}
{% endif %}
</p>
{% endif %}
</div>
</div>
</div>
<script>
// Show toast and reload page after 1.5 seconds for state updates
{% if status == 'success' %}
setTimeout(() => {
if (typeof Alpine !== 'undefined' && Alpine.store('app')) {
Alpine.store('app').showToast('{{ message }}', 'success');
}
}, 100);
setTimeout(() => {
window.location.reload();
}, 1500);
{% endif %}
</script>
<style>
.alert {
margin-bottom: 1rem;
}
.alert-success {
background: rgba(34, 197, 94, 0.1);
border: 1px solid rgba(34, 197, 94, 0.3);
color: #22c55e;
}
.alert-info {
background: rgba(59, 130, 246, 0.1);
border: 1px solid rgba(59, 130, 246, 0.3);
color: #3b82f6;
}
.alert-error {
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.3);
color: #ef4444;
}
</style>