refactor: architecture modules indépendants — nettoyage CORE, registry enrichi, page modules dynamique
- Supprimer les modules services et logs du CORE (déplacés dans viewServices et viewLogs) - Enrichir modules/module.go : interface Registry avec NavItemDef, RunOnTarget, StreamOnTarget - Réécrire modules/loader.go : NewLoader accepte *db.DB, *sshpool.Pool, *crypto.Encryptor - Ajouter migration 005 : colonnes nav_* sur la table modules + suppression services/logs DB - Mettre à jour db.go (repairSchema) pour ajout idempotent des colonnes nav_* - Mettre à jour settings.go : GetModules retourne les champs nav, ajout GetRegistryModules et InstallRegistryModule - Mettre à jour main.go : NewLoader avec les bons arguments, ajout routes /api/registry/modules - Mettre à jour modules.html : section Store avec liste des modules Forgejo - Mettre à jour app.js : sidebar dynamique (nav_href depuis DB), modulesPage avec store - Mettre à jour pages.css : styles pour store de modules Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
91cf788221
commit
ec7d120ef6
15 changed files with 460 additions and 997 deletions
|
|
@ -208,6 +208,12 @@ func (db *DB) repairSchema() error {
|
|||
{"refresh_tokens", "user_agent", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"refresh_tokens", "ip", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"refresh_tokens", "last_used_at", "DATETIME"},
|
||||
// Migration 005 : colonnes de navigation des modules (ajout idempotent)
|
||||
{"modules", "nav_href", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"modules", "nav_icon", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"modules", "nav_color", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"modules", "nav_label_key", "TEXT NOT NULL DEFAULT ''"},
|
||||
{"modules", "repo_url", "TEXT NOT NULL DEFAULT ''"},
|
||||
}
|
||||
for _, c := range needed {
|
||||
if err := db.ensureColumn(c.table, c.name, c.def); err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue