secubox-openwrt/DOCS-fr/HELP_INTEGRATION_PLAN.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

14 KiB

Plan d'intégration des boutons Aide/Info du site SecuBox

Languages: English | Francais | 中文

Version : 1.0 Date : 2025-12-28 Statut : Phase de planification

Apercu

Ce document decrit la strategie d'integration du site marketing/documentation SecuBox avec les modules LuCI OpenWrt, offrant un acces transparent a la documentation d'aide via des boutons aide/info dans chaque module.

Architecture actuelle

Emplacement du site web

  • URL distante : https://secubox.cybermood.eu/
  • Chemin local du routeur : /www/luci-static/secubox/
  • URL d'acces : http://[adresse-ip-routeur]/luci-static/secubox/

Structure des modules

Tous les modules SecuBox suivent un modele coherent :

luci-app-{nom-module}/
├── htdocs/luci-static/resources/
│   ├── view/{nom-module}/
│   │   ├── overview.js (tableau de bord principal)
│   │   └── *.js (autres vues)
│   └── {nom-module}/
│       ├── api.js
│       ├── theme.js (optionnel)
│       └── *.css

Modules principaux

  1. luci-app-secubox - Hub de controle central
  2. luci-app-system-hub - Surveillance systeme
  3. luci-app-network-modes - Configuration reseau
  4. luci-app-client-guardian - Gestion des clients
  5. luci-app-bandwidth-manager - Mise en forme du trafic
  6. luci-app-cdn-cache - Mise en cache CDN
  7. luci-app-traffic-shaper - Gestion QoS
  8. luci-app-wireguard-dashboard - Gestion VPN
  9. luci-app-crowdsec-dashboard - Surveillance de securite
  10. luci-app-netdata-dashboard - Metriques de performance

Strategie d'integration

Phase 1 : Utilitaires d'aide partages (RECOMMANDE)

Creer une bibliotheque de boutons d'aide centralisee que tous les modules peuvent utiliser.

Etapes d'implementation

  1. Creer le module d'aide partage

    // Emplacement : luci-app-secubox/htdocs/luci-static/resources/secubox/help.js
    
    'use strict';
    'require baseclass';
    
    return baseclass.extend({
        /**
         * Creer un element bouton d'aide
         * @param {string} moduleName - Identifiant du module (ex: 'network-modes')
         * @param {string} position - Position du bouton : 'header', 'footer', 'floating'
         * @param {object} options - Options personnalisees
         */
        createHelpButton: function(moduleName, position, options) {
            var opts = options || {};
            var helpUrl = this.getHelpUrl(moduleName);
            var buttonClass = 'sb-help-btn sb-help-' + position;
    
            return E('a', {
                'class': buttonClass,
                'href': helpUrl,
                'target': opts.target || '_blank',
                'title': opts.title || _('Voir l\'aide et la documentation')
            }, [
                E('span', { 'class': 'sb-help-icon' }, opts.icon || '❓'),
                opts.showLabel !== false ? E('span', { 'class': 'sb-help-label' }, opts.label || _('Aide')) : null
            ]);
        },
    
        /**
         * Obtenir l'URL d'aide pour un module
         * @param {string} moduleName - Identifiant du module
         */
        getHelpUrl: function(moduleName) {
            var baseUrl = '/luci-static/secubox/';
            var moduleMap = {
                'secubox': 'index.html#modules',
                'system-hub': 'demo-secubox-hub.html',
                'network-modes': 'demo-network-modes.html',
                'client-guardian': 'demo-client-guardian.html',
                'bandwidth-manager': 'demo-bandwidth.html',
                'cdn-cache': 'demo-cdn-cache.html',
                'traffic-shaper': 'demo-traffic-shaper.html',
                'wireguard-dashboard': 'demo-wireguard.html',
                'crowdsec-dashboard': 'demo-crowdsec.html',
                'netdata-dashboard': 'demo-netdata.html',
                'netifyd-dashboard': 'demo-netifyd.html',
                'auth-guardian': 'demo-auth.html',
                'vhost-manager': 'demo-vhost.html',
                'ksm-manager': 'demo-ksm-manager.html',
                'media-flow': 'demo-media.html'
            };
    
            return baseUrl + (moduleMap[moduleName] || 'index.html');
        },
    
        /**
         * Ouvrir l'aide dans une modale (pour aide integree)
         * @param {string} moduleName - Identifiant du module
         */
        openHelpModal: function(moduleName) {
            var helpUrl = this.getHelpUrl(moduleName);
            var iframe = E('iframe', {
                'src': helpUrl,
                'style': 'width: 100%; height: 70vh; border: none; border-radius: 8px;'
            });
    
            ui.showModal(_('Aide et documentation'), [
                E('div', { 'style': 'min-height: 70vh;' }, [iframe]),
                E('div', { 'class': 'right', 'style': 'margin-top: 1rem;' }, [
                    E('button', {
                        'class': 'btn',
                        'click': ui.hideModal
                    }, _('Fermer'))
                ])
            ]);
        }
    });
    
  2. Creer les styles CSS communs

    /* Emplacement : luci-app-secubox/htdocs/luci-static/resources/secubox/help.css */
    
    /* Styles de base du bouton d'aide */
    .sb-help-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem 1rem;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 500;
        transition: all 0.3s ease;
        border: 2px solid transparent;
        cursor: pointer;
    }
    
    .sb-help-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
        border-color: rgba(255, 255, 255, 0.3);
    }
    
    .sb-help-icon {
        font-size: 1.2em;
    }
    
    /* Position en-tete */
    .sb-help-header {
        margin-left: auto;
        padding: 0.4rem 0.8rem;
        font-size: 0.9em;
    }
    
    /* Position pied de page */
    .sb-help-footer {
        margin-top: 2rem;
    }
    
    /* Bouton flottant (bas-droite) */
    .sb-help-floating {
        position: fixed;
        bottom: 2rem;
        right: 2rem;
        z-index: 1000;
        border-radius: 50%;
        width: 60px;
        height: 60px;
        padding: 0;
        justify-content: center;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }
    
    .sb-help-floating .sb-help-label {
        display: none;
    }
    
    .sb-help-floating .sb-help-icon {
        font-size: 1.8em;
    }
    
    /* Ajustements theme sombre */
    [data-theme="dark"] .sb-help-btn {
        background: linear-gradient(135deg, #4c51bf 0%, #553c9a 100%);
    }
    
  3. Mettre a jour chaque module

    Exemple : luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/overview.js

    'use strict';
    'require view';
    'require dom';
    'require ui';
    'require network-modes.api as api';
    'require secubox/help as Help';  // AJOUTER CECI
    
    return view.extend({
        title: _('Modes reseau'),
    
        load: function() {
            return api.getAllData();
        },
    
        render: function(data) {
            var self = this;
            // ... code existant ...
    
            var view = E('div', { 'class': 'network-modes-dashboard' }, [
                // Charger le CSS d'aide
                E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox/help.css') }),
    
                // En-tete avec bouton d'aide
                E('div', { 'class': 'nm-header' }, [
                    E('div', { 'class': 'nm-logo' }, [
                        E('div', { 'class': 'nm-logo-icon' }, '🌐'),
                        E('div', { 'class': 'nm-logo-text' }, ['Configuration ', E('span', {}, 'reseau')])
                    ]),
                    E('div', { 'class': 'nm-mode-badge ' + currentMode }, [
                        E('span', { 'class': 'nm-mode-dot' }),
                        currentModeInfo ? currentModeInfo.name : currentMode
                    ]),
                    // AJOUTER LE BOUTON D'AIDE
                    Help.createHelpButton('network-modes', 'header', {
                        icon: '📖',
                        label: _('Aide')
                    })
                ]),
    
                // ... reste de l'interface ...
            ]);
    
            return view;
        }
    });
    

Phase 2 : Approches alternatives

Approche A : Bouton d'aide flottant

Ajouter un bouton d'aide flottant global qui apparait sur toutes les pages des modules SecuBox.

Avantages :

  • Non intrusif
  • Experience utilisateur coherente sur tous les modules
  • Facile a implementer globalement

Inconvenients :

  • Peut chevaucher d'autres elements flottants
  • Moins facilement reperable

Approche B : Integration dans l'en-tete

Ajouter des boutons d'aide dans l'en-tete de chaque tableau de bord de module.

Avantages :

  • Tres visible
  • Placement naturel
  • Suit les conventions d'interface courantes

Inconvenients :

  • Necessite des modifications dans chaque module
  • Peut encombrer l'en-tete sur petits ecrans

Approche C : Integration aux actions rapides

Ajouter l'aide comme action rapide dans les modules disposant de panneaux d'actions (comme le tableau de bord SecuBox).

Avantages :

  • S'integre au modele d'interface existant
  • Regroupe avec les autres utilitaires
  • Coherent avec le design actuel

Inconvenients :

  • Ne fonctionne que pour les modules avec panneaux d'actions
  • Moins visible

Plan d'implementation recommande

Etape 1 : Creer les fondations (Semaine 1)

  1. Creer le module utilitaire secubox/help.js
  2. Creer la feuille de style secubox/help.css
  3. Deployer sur le routeur de test
  4. Verifier l'accessibilite

Etape 2 : Integrer les modules principaux (Semaine 2)

Mettre a jour ces modules critiques en premier :

  1. luci-app-secubox (tableau de bord principal)
  2. luci-app-system-hub
  3. luci-app-network-modes

Tester sur le routeur de production.

Etape 3 : Deployer sur tous les modules (Semaine 3)

Mettre a jour les modules restants :

  1. luci-app-client-guardian
  2. luci-app-bandwidth-manager
  3. luci-app-cdn-cache
  4. luci-app-traffic-shaper
  5. luci-app-wireguard-dashboard
  6. luci-app-crowdsec-dashboard
  7. luci-app-netdata-dashboard
  8. Autres modules

Etape 4 : Tests utilisateurs et perfectionnement (Semaine 4)

  1. Recueillir les retours utilisateurs
  2. Ajuster le positionnement/style
  3. Ajouter la localisation si necessaire
  4. Documenter pour les utilisateurs finaux

Correspondance module vers page d'aide

Module Page d'aide Statut
secubox index.html#modules Disponible
system-hub demo-secubox-hub.html Disponible
network-modes demo-network-modes.html Disponible
client-guardian demo-client-guardian.html Disponible
bandwidth-manager demo-bandwidth.html Disponible
cdn-cache demo-cdn-cache.html Disponible
traffic-shaper demo-traffic-shaper.html Disponible
wireguard-dashboard demo-wireguard.html Disponible
crowdsec-dashboard demo-crowdsec.html Disponible
netdata-dashboard demo-netdata.html Disponible
netifyd-dashboard demo-netifyd.html Disponible
auth-guardian demo-auth.html Disponible
vhost-manager demo-vhost.html Disponible
ksm-manager demo-ksm-manager.html Disponible
media-flow demo-media.html Disponible

Flux de deploiement

Mises a jour du site web

# Depuis le repertoire secubox-openwrt
./secubox-tools/deploy-website.sh root@192.168.8.191 ../secubox-website

Mises a jour des modules avec integration de l'aide

# Construire et deployer un module individuel
./secubox-tools/deploy-network-modes.sh root@192.168.8.191

# Ou construire tous les modules
./secubox-tools/local-build.sh build-all

Liste de verification des tests

  • Le bouton d'aide apparait dans l'en-tete du module
  • Le bouton d'aide pointe vers la bonne page de documentation
  • La page d'aide s'ouvre dans un nouvel onglet (ou modale si configure)
  • Le style est coherent sur tous les modules
  • Le bouton est responsive sur appareils mobiles
  • Support du theme sombre/clair
  • Support de la localisation (si applicable)
  • Pas d'erreurs JavaScript dans la console
  • Fonctionne sur le routeur local et en deploiement distant

Ameliorations futures

Fonctionnalites avancees

  1. Aide contextuelle

    • Differentes URL d'aide selon la page/section actuelle
    • Liens profonds vers des sections specifiques de la documentation
  2. Infobulles d'aide integrees

    • Infobulles au survol pour des elements d'interface specifiques
    • Astuces rapides sans quitter la page
  3. Recherche dans l'aide

    • Champ de recherche dans la modale d'aide
    • Recherche plein texte dans toute la documentation
  4. Tutoriels interactifs

    • Guides pas a pas
    • Visites guidees pour les nouveaux utilisateurs
  5. Integration du journal des modifications

    • Afficher "Nouveautes" lors des mises a jour de version
    • Lien vers les notes de version

Considerations techniques

Performance

  • Les ressources d'aide sont des fichiers statiques (pas d'appels API)
  • Surcharge JavaScript minimale (~2Ko)
  • CSS charge uniquement si necessaire
  • Pas d'impact sur les fonctionnalites principales du module

Compatibilite

  • Fonctionne avec LuCI 18.06+
  • Compatible avec tous les navigateurs modernes
  • Degradation elegante pour les anciens navigateurs

Securite

  • Tout le contenu d'aide servi depuis la meme origine
  • Pas de dependances externes
  • Pas de risques XSS (HTML/CSS/JS statiques)

Maintenance

  • Utilitaire d'aide centralise (point de mise a jour unique)
  • Modifications des modules minimales (1-3 lignes par module)
  • Mises a jour du site web independantes des mises a jour des modules

References

  • Script de deploiement : secubox-tools/deploy-website.sh
  • Modele de module : secubox-tools/deploy-module-template.sh
  • Depot du site web : /home/reepost/CyberMindStudio/_files/secubox-website/
  • Deploiement actuel : http://192.168.8.191/luci-static/secubox/

Questions et decisions a prendre

  1. Position du bouton : En-tete, flottant, ou les deux ?
  2. Modale vs nouvel onglet : L'aide doit-elle s'ouvrir en modale ou nouvel onglet ?
  3. UX mobile : Comment le bouton d'aide doit-il se comporter sur petits ecrans ?
  4. Localisation : Supporter plusieurs langues pour le contenu d'aide ?
  5. Analytique : Suivre l'utilisation de l'aide (dans le respect de la vie privee) ?

Statut d'approbation

  • Approche technique approuvee
  • Design UI/UX approuve
  • Calendrier d'implementation approuve
  • Plan de test approuve
  • Strategie de deploiement approuvee