Преглед на файлове

fix: navbar fixed + spacer dynamique, suggestName() à l'init du formulaire

- Navbar : sticky → fixed (unreliable sur flex child) + ResizeObserver sur spacer
  pour compenser la hauteur réelle du header (activity bar incluse)
- Formulaire job : suggestName() appelé à l'init pour pré-remplir le nom
  dès l'ouverture, sans attendre une interaction utilisateur

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cédric Hansen преди 1 месец
родител
ревизия
e6eb00ae87
променени са 2 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. 12 2
      sources/templates/base.html
  2. 1 0
      sources/templates/job_form.html

+ 12 - 2
sources/templates/base.html

@@ -26,7 +26,7 @@
 </head>
 <body class="min-h-screen flex flex-col">
 
-  <div class="sticky top-0 z-50">
+  <div class="fixed top-0 left-0 right-0 z-50" id="site-header">
   <nav class="bg-gray-900 text-white shadow-lg">
     <div class="max-w-7xl mx-auto px-6 py-3 flex items-center justify-between">
       <div class="flex items-center gap-3">
@@ -61,7 +61,9 @@
     <span class="inline-block w-2 h-2 rounded-full bg-blue-400 animate-pulse shrink-0"></span>
     <span class="text-blue-300 font-medium shrink-0">En cours</span>
     <div id="activity-list" class="flex gap-4 flex-wrap text-gray-200"></div>
-  </div><!-- fin sticky -->
+  </div><!-- fin fixed header -->
+  <!-- Spacer : hauteur calculée dynamiquement par JS pour compenser le header fixed -->
+  <div id="header-spacer"></div>
 
   <main class="flex-1 max-w-7xl mx-auto w-full px-6 py-8">
     {% with messages = get_flashed_messages(with_categories=true) %}
@@ -88,6 +90,14 @@
 
   {% block scripts %}{% endblock %}
   <script>
+  // Spacer dynamique pour le header fixed
+  (function() {
+    const header = document.getElementById('site-header');
+    const spacer = document.getElementById('header-spacer');
+    function sync() { spacer.style.height = header.offsetHeight + 'px'; }
+    sync();
+    new ResizeObserver(sync).observe(header);
+  })();
   (function() {
     const bar = document.getElementById('activity-bar');
     const list = document.getElementById('activity-list');

+ 1 - 0
sources/templates/job_form.html

@@ -410,6 +410,7 @@
 
   document.querySelector('[name=retention_mode]').addEventListener('change', updateRetentionHelp);
   showTypeConfig();
+  suggestName(); // pré-remplit le nom si champ vide à l'ouverture du formulaire
   updateRetentionHelp();
 
   // Toggle planification cron