• v1.1.0 dab9e758fe

    yann64 released this 2026-06-06 08:29:50 +02:00 | 3 commits to main since this release

    Première version utilisable sans bugs majeurs

    Downloads
  • 1.0.5 7c6e72760b

    1.0.5 Stable

    yann64 released this 2026-06-05 20:19:29 +02:00 | 4 commits to main since this release

    Ajouté

    • Type de champ « place » (Lieu) dans les relevés — permet de sélectionner un lieu existant dans la hiérarchie lors de la saisie d'un relevé ; la valeur est stockée en JSONB {id, nom_long} et correctement exportée en CSV
    • Export CSV des relevés d'une source — disponible depuis la fiche source ; colonnes générées dynamiquement à partir des champs du type de source ; valeurs de dates et lieux converties en texte lisible
    • Import CSV des relevés d'une source — depuis la fiche source ; détection automatique du séparateur (; / ,) ; correspondance des colonnes par libellé (tolérant casse et accents) ; parsing des dates en grégorien ou calendrier nommé, des lieux par nom long
    • Import/export CSV des lieux — depuis la liste des lieux ; export UTF-8 BOM (compatible Excel) avec colonnes nom, code, type, lieu_parent, latitude, longitude, note ; import avec résolution du parent par nom_long et du type par nom
    • Connexion avec email ou nom d'utilisateur — le champ de connexion accepte indifféremment l'adresse e-mail ou le nom d'utilisateur

    Modifié

    • Carte Leaflet — passage au bundle Vite/npm — la bibliothèque Leaflet est désormais packagée localement (suppression de la dépendance au CDN externe) pour un fonctionnement sur serveurs sans accès internet
    • Suppression de l'export GEDCOM — la fonctionnalité d'export au format GEDCOM 5.5.1 a été retirée
    • Traductions françaises des vues d'authentification — formulaires de connexion, inscription et mot de passe oublié entièrement traduits (lang/fr.json)

    Corrigé

    • Tableau de bord admin — erreur MySQL ONLY_FULL_GROUP_BY : la requête d'activité mensuelle sélectionnait DATE_FORMAT(created_at, ...) sans l'inclure dans le GROUP BY ; corrigé en agrégeant avec MIN(created_at) et en groupant par YEAR() / MONTH()
    • Compatibilité MySQL — NULLS LAST et withCount/select : NULLS LAST n'est pas supporté en MySQL ; ajout de DbCompat::nullsLast() générant la syntaxe portable ; correction de l'ordre des clauses withCount / select pour MySQL strict
    • Bouton « Modifier » d'un champ de type de source : le formulaire inline Alpine.js ne s'ouvrait pas car x-data était positionné sur le et non sur le
    • parent partagé avec le formulaire
    • Saisie de date dans un relevé — double soumission : x-show masque visuellement les éléments mais ne les retire pas du DOM ; les deux inputs (grégorien et républicain) étaient soumis simultanément ; l'attribut :disabled lié à l'état Alpine résout le problème
    • Affichage / modification / suppression d'un relevé — erreur 500 : les routes ->shallow() suppriment {source} de l'URL pour les actions individuelles sur les relevés ; Laravel ne peut pas binder automatiquement Source $source — corrigé en chargeant la source depuis $releve->source
    • Menus de navigation masqués derrière la carte Leaflet : Leaflet utilise des z-index internes jusqu'à 800 ; la balise sans position: relative n'avait pas de contexte d'empilement ; ajout de relative z-40
    • RelevePolicy — signatures incompatibles : create et viewAny recevaient (User, Source) via le Gate (class string) mais étaient définies sans le paramètre Source, ou avec un paramètre Releve inopportun ; signatures harmonisées avec les conventions d'appel du Gate
    Downloads
  • 1.0.4 d685c2211e

    1.0.4 Stable

    yann64 released this 2026-06-05 07:25:03 +02:00 | 22 commits to main since this release

    Corrigé

    • Assistant d'installation — APP_KEY vide après installation : key:generate remplace APP_KEY=<clé_en_mémoire> par regex dans le .env. Mais writeEnv() écrit APP_KEY= (vide) alors que la clé en mémoire est celle de l'auto-création (clé temporaire) — le pattern ne matche pas, la clé reste vide. Correction : la clé est générée directement en PHP (random_bytes), écrite dans le .env sans regex, puis propagée en mémoire (config(['app.key'])) et dans l'env OS (putenv).
    • Assistant d'installation — MissingAppKeyException lors de l'optimisation : optimize appelle en interne config:cache, qui re-boostrappe une seconde instance de l'application depuis bootstrap/app.php. Ce second boot passe par tous les ServiceProviders et peut résoudre l'Encrypter avant que la clé soit accessible, levant MissingAppKeyException et renvoyant une erreur 500. Correction : optimize est supprimé de la procédure d'installation ; seul optimize:clear est conservé pour purger tout cache résiduel. Laravel reconstruit ses caches paresseusement à la première requête.
    • Assistant d'installation — connexion PostgreSQL forcée après login (MySQL) : putenv() n'était appelé que pour les variables DB_* mais pas pour APP_KEY. Correction : tous les putenv() (dont APP_KEY) sont regroupés en un bloc cohérent, garantissant que tout sous-processus futur hérite des valeurs correctes
    Downloads
  • 1.0.3 4110caa25a

    1.0.3 Stable

    yann64 released this 2026-06-04 23:11:21 +02:00 | 25 commits to main since this release

    Ajouté

    • Numéro de version dans l'assistant d'installation — affiché sous le titre « Assistant d'installation » dans le layout du wizard (lu depuis le fichier VERSION)

    Corrigé

    • Assistant d'installation — conflit pgsql/mysql (cause racine) : lors d'un démarrage sur serveur vierge, public/index.php auto-crée un .env depuis .env.example (driver pgsql) et Laravel charge cet env via putenv() au niveau OS. Les sous-processus exec() héritent cet env ; phpdotenv en mode immutable refuse d'écraser une variable déjà présente dans l'env OS → le .env réécrit avec DB_CONNECTION=mysql par le wizard était ignoré par le subprocess de migration, qui tentait une connexion PostgreSQL. Correction : les migrations sont maintenant exécutées via Artisan::call() dans le processus courant, après reconfiguration explicite en mémoire (config(['database.default' => ...]) + DB::purge() — aucun héritage d'env parasite.
    • .htaccess — suppression des directives php_flag display_errors on ajoutées temporairement pour déboguer l'erreur 500 sur hébergement mutualisé.
    Downloads
  • 1.0.2 79b831367c

    1.0.2 Stable

    yann64 released this 2026-06-04 23:04:52 +02:00 | 28 commits to main since this release

    Corrigé

    • Assistant d'installation — conflit de connexion pgsql/mysql : un fichier bootstrap/cache/config.php résiduel (produit par php artisan optimize sur le poste de développement) était lu en priorité sur le .env réécrit par le wizard, forçant une connexion PostgreSQL même quand MySQL était sélectionné. Un appel à config:clear est maintenant effectué entre l'écriture du .env et l'exécution des migrations.
    • Archives de déploiement : bootstrap/cache/*.php exclu du build rsync pour éviter qu'un cache de configuration de développement ne soit embarqué dans les distributables.
    Downloads
  • 1.0.1 c3e1d4378c

    1.0.1 Stable

    yann64 released this 2026-06-04 21:49:50 +02:00 | 30 commits to main since this release

    Ajouté

    • Page Carte — carte interactive (Leaflet + OpenStreetMap) affichant les lieux géolocalisés ayant des relevés ; marqueurs proportionnels au nombre de sources, popups avec détail des sources et lien vers la recherche ; compatible mode sombre
    • Mode sombre — détection automatique de la préférence système ; sélecteur clair / sombre / automatique dans la barre de navigation (mémorisé dans localStorage, sans flash au chargement) ; couverture complète des vues et composants
    • 2FA par e-mail — code PIN à 6 chiffres envoyé à la connexion dès qu'un serveur SMTP est configuré ; code valable 10 minutes, renvoi possible
    • Configuration SMTP depuis l'interface — formulaire dans Administration → Paramètres du site avec test de connexion en temps réel ; activation du 2FA automatique à l'enregistrement
    • Import / export CSV utilisateurs — import en masse avec détection automatique du séparateur (;/,), validation par ligne, génération de mot de passe aléatoire ; export filtré au format CSV UTF-8 BOM (compatible Excel)
    • Filtre actif / inactif sur la liste des utilisateurs
    • Titre du site configurable depuis les paramètres (sans éditer .env)
    • Version affichée dans Administration → Paramètres du site avec indicateur de mise à jour disponible
    • Option de désactivation des mises à jour automatiques dans les paramètres
    • Sélecteur d'utilisateur avec recherche — fenêtre modale remplaçant les pour l'ajout de membres aux sections et sources (adapté à plusieurs centaines d'utilisateurs) public/servercheck.php — outil de diagnostic serveur autonome (PHP, extensions, répertoires, test BDD) pour les environnements de test Modifié Assistant d'installation — auto-création du .env minimal (clé temporaire, drivers fichier) à la première requête si aucun .env n'existe, évitant l'erreur 500 sur un serveur vierge .htaccess — ajout de FallbackResource /index.php en fallback pour les hébergements sans mod_rewrite Logo dans la navigation — contraint par max-height inline pour s'adapter à la hauteur de la barre sans débordement Panneau "Paramètres généraux" remonté en première position dans la page de paramètres README — procédure d'installation mutualisée (PHP + MySQL) mise en avant ; procédure Docker corrigée (stack réelle : PHP-FPM + Nginx + PostgreSQL, sans Redis) Corrigé Champs de formulaire illisibles en mode sombre (texte clair sur fond clair) — règle CSS globale @layer base couvrant tous les , , </li> <li>Composant lieu-picker entièrement sans style en mode sombre</li> <li>Erreur 500 à l'ouverture de /setup sur un serveur sans .env (MissingAppKeyException)</li> <li>Menu Administration débordant hors de la zone visible en haut de l'écran</li> </ul> </body></html>
    Downloads
  • 1.0.0 07ab2a7063

    1.0.0 Stable

    yann64 released this 2026-06-04 19:28:39 +02:00 | 38 commits to main since this release

    First release.

    Downloads