Add favorites feature with toggle filters, group management, color/icon pickers, dashboard widget, and star buttons across containers/docker sections with persistent storage and real-time UI updates
Tests / Backend Tests (Python) (3.10) (push) Has been cancelled
Tests / Backend Tests (Python) (3.11) (push) Has been cancelled
Tests / Backend Tests (Python) (3.12) (push) Has been cancelled
Tests / Frontend Tests (JS) (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / All Tests Passed (push) Has been cancelled

This commit is contained in:
2025-12-23 14:56:31 -05:00
parent 46823eb42d
commit 661d005fc7
24 changed files with 2455 additions and 38 deletions
+47 -4
View File
@@ -4099,9 +4099,45 @@
</div>
</div>
</div>
<div class="lg:col-span-2 order-2 lg:order-1">
<div class="glass-card p-4 sm:p-6 fade-in">
<div class="flex items-center justify-between mb-4">
<h3 class="text-base sm:text-lg font-semibold flex items-center">
<i class="fas fa-star text-purple-400 mr-2"></i>
Containers favoris
</h3>
<div class="flex items-center gap-2">
<span id="dashboard-favorites-count" class="text-xs text-gray-500 hidden sm:inline"></span>
<button type="button" onclick="dashboard.expandAllFavorites()" class="px-2 py-1.5 bg-gray-700 hover:bg-gray-600 rounded-lg transition-colors text-xs" title="Tout développer">
<i class="fas fa-chevron-down"></i>
</button>
<button type="button" onclick="dashboard.collapseAllFavorites()" class="px-2 py-1.5 bg-gray-700 hover:bg-gray-600 rounded-lg transition-colors text-xs" title="Tout réduire">
<i class="fas fa-chevron-up"></i>
</button>
<button type="button" onclick="dashboard.showFavoriteGroupsModal()" class="px-3 py-1.5 bg-gray-700 hover:bg-gray-600 rounded-lg transition-colors text-xs">
<i class="fas fa-layer-group mr-1"></i>Groupes
</button>
</div>
</div>
<div class="mb-3">
<div class="relative">
<input type="text" id="dashboard-favorites-search" placeholder="Rechercher un container..." class="w-full px-3 py-2 pl-9 bg-gray-800 border border-gray-700 rounded-lg text-sm focus:outline-none focus:border-purple-500 transition-colors">
<i class="fas fa-search absolute left-3 top-1/2 -translate-y-1/2 text-gray-500 text-xs"></i>
<button id="dashboard-favorites-search-clear" class="absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-gray-700 rounded transition-colors hidden" onclick="dashboard.clearFavoritesSearch()">
<i class="fas fa-times text-gray-500 text-xs"></i>
</button>
</div>
</div>
<div id="dashboard-favorites" class="space-y-3">
<p class="text-xs text-gray-500 text-center py-3">
<i class="fas fa-spinner fa-spin mr-1"></i>Chargement...
</p>
</div>
</div>
</div>
<!-- Schedules Widget -->
<div class="lg:col-span-2 order-2 lg:order-1">
<div class="lg:col-span-2 order-3 lg:order-2">
<div class="glass-card p-4 sm:p-6 h-full flex flex-col fade-in">
<div class="flex items-center justify-between mb-4">
<h3 class="text-base sm:text-lg font-semibold">
@@ -4137,8 +4173,7 @@
</div>
</div>
<!-- Hosts Management (Moved down) -->
<div class="lg:col-span-2 order-3">
<div class="lg:col-span-2 order-4">
<div class="glass-card p-4 sm:p-6 fade-in">
<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-3 mb-4 sm:mb-6">
<h3 class="text-lg sm:text-xl font-semibold">Gestion des Hosts</h3>
@@ -4894,6 +4929,9 @@
<!-- View Toggle -->
<div class="flex items-center gap-2">
<button id="containers-filter-favorites" class="p-2 bg-gray-700 hover:bg-gray-600 rounded-lg transition-colors" title="Favoris uniquement" aria-pressed="false">
<i class="far fa-star"></i>
</button>
<button id="containers-view-comfortable" class="p-2 bg-purple-600 rounded-lg transition-colors" title="Vue confortable" aria-pressed="true">
<i class="fas fa-th-large"></i>
</button>
@@ -5961,6 +5999,11 @@
}
</script>
<script src="https://code.iconify.design/3/3.1.1/iconify.min.js"></script>
<script src="/static/icon_picker.js"></script>
<script src="/static/favorites_manager.js"></script>
<!-- Docker Section JavaScript -->
<script src="/static/docker_section.js"></script>