#!/bin/bash
# fix_tabulator_header_scroll.sh
# Corrige le scroll horizontal du header Tabulator dans tous les thèmes CSS.
# Problème : .tabulator .tabulator-header { overflow:hidden } bloque le scroll.
# Fix      : remplace overflow:hidden par overflow:visible sur .tabulator-header
#            (le scroll horizontal est géré par .tabulator-tableholder, pas le header).

THEMES_DIR="${1:-/var/www/html/tld2.pcstreet.org/THEMES}"
FIXED=0
SKIPPED=0

if [ ! -d "$THEMES_DIR" ]; then
    echo "ERREUR : répertoire '$THEMES_DIR' introuvable."
    echo "Usage : $0 [chemin/vers/THEMES]"
    exit 1
fi

echo "=== Correction scroll horizontal Tabulator ==="
echo "Répertoire : $THEMES_DIR"
echo ""

for css in "$THEMES_DIR"/*.css "$THEMES_DIR"/*.min.css; do
    [ -f "$css" ] || continue

    # Cherche le pattern exact : overflow:hidden dans le contexte .tabulator-header
    # On cible spécifiquement : .tabulator .tabulator-header{...overflow:hidden...}
    # sans toucher .tabulator-tableholder (qui doit garder overflow:auto)

    if grep -q '\.tabulator-header{[^}]*overflow:hidden' "$css" 2>/dev/null || \
       grep -q '\.tabulator-header {[^}]*overflow: hidden' "$css" 2>/dev/null; then

        # Sauvegarde
        cp "$css" "${css}.bak"

        # Remplacement ciblé : overflow:hidden → overflow:visible
        # UNIQUEMENT dans les blocs .tabulator-header (pas tableholder)
        # On utilise perl pour un remplacement conditionnel plus précis
        perl -i -0pe '
            # Dans chaque bloc .tabulator-header{...}, remplace overflow:hidden par overflow:visible
            # mais pas dans .tabulator-tableholder
            s/
                (\.tabulator(?:\s+|\[)(?!-tableholder)
                [^{]*tabulator-header
                [^{]*\{[^}]*)
                overflow\s*:\s*hidden
                ([^}]*\})
            /$1overflow:visible$2/gx
        ' "$css" 2>/dev/null

        # Fallback sed si perl n'est pas disponible ou n'a rien changé
        if grep -q '\.tabulator-header{[^}]*overflow:hidden' "$css" 2>/dev/null; then
            sed -i 's/\(\.tabulator .tabulator-header{[^}]*\)overflow:hidden/\1overflow:visible/g' "$css"
            sed -i 's/\(\.tabulator .tabulator-header {[^}]*\)overflow: hidden/\1overflow: visible/g' "$css"
        fi

        echo "  [FIXED]   $(basename "$css")"
        FIXED=$((FIXED + 1))
    else
        echo "  [OK]      $(basename "$css")  (pas de overflow:hidden sur header)"
        SKIPPED=$((SKIPPED + 1))
    fi
done

echo ""
echo "=== Résultat : $FIXED fichier(s) corrigé(s), $SKIPPED déjà OK ==="
echo "Sauvegardes : *.bak dans $THEMES_DIR"
