connectors: merge the catalog page into a row-list Connectors page
Nightly Build / build (push) Successful in 6m57s

The standalone Catalog page added nothing the Connectors page could not
do: drop it (component, route, sidebar entry) and move its affordances
onto the Connectors page — the Add-connector dropdown (marketplace /
manual form, now at #connectors/new) and per-row removal for the admin.

Replace the card grid with a sharper row list (4px radius) built for
scanning status and acting; the marketplace's back link now returns to
#connectors. i18n keys renamed catalog.* -> connectors.add/new/*.
This commit is contained in:
2026-07-27 21:01:32 +01:00
parent 165af19774
commit b198ac923b
13 changed files with 465 additions and 605 deletions
+33 -55
View File
@@ -22,7 +22,6 @@ export default {
'nav.connectors': 'Connecteurs',
'nav.plugins': 'Plugins',
'nav.plugin_catalog': 'Catalogue des plugins',
'nav.catalog': 'Catalogue des connecteurs',
'nav.config': 'Paramètres',
'nav.llm_requests': 'Requêtes LLM',
'nav.system_agents': 'Agents système',
@@ -768,8 +767,6 @@ export default {
'connectors.loading': 'Chargement…',
'connectors.search': 'Rechercher des connecteurs…',
'connectors.btn.signin_providers': 'Fournisseurs d\'authentification',
'connectors.btn.catalog': 'Catalogue',
'connectors.btn.marketplace': 'Marketplace',
'connectors.empty.installed': 'Aucun connecteur installé pour le moment.',
'connectors.empty.available': 'Rien de disponible pour vous pour le moment.',
'connectors.empty.install_hint': 'Installez-en un depuis le Marketplace pour commencer.',
@@ -988,7 +985,7 @@ export default {
// ── Marketplace ─────────────────────────────────────────────────────────────
'marketplace.title': 'Marketplace',
'marketplace.btn.catalog': 'Catalogue',
'marketplace.btn.connectors': 'Connecteurs',
'marketplace.action.refetch': 'Recharger le flux',
'marketplace.not_admin': 'Le Marketplace est géré par l\'administrateur.',
'marketplace.not_admin_link': 'Les connecteurs installés par l\'administrateur apparaissent sur la page <a href="#connectors">Connecteurs</a>.',
@@ -1085,60 +1082,41 @@ export default {
'users.confirm.delete': 'Supprimer l\'utilisateur "{username}" ? Cela efface définitivement sa base de données et tout l\'historique des conversations.',
// ── Catalog ─────────────────────────────────────────────────────────────────
'catalog.title': 'Catalogue des connecteurs',
'catalog.loading': 'Chargement…',
'catalog.not_admin': 'Le catalogue est géré par l\'administrateur.',
'catalog.not_admin_link': 'Ce que vous pouvez activer se trouve sur la page <a href="#connectors">Connecteurs</a>.',
'catalog.desc': 'Ce que cette machine offre. Rien ici n\'est en cours d\'exécution — une entrée globale doit encore être activée, une entrée par utilisateur doit encore être activée par chaque utilisateur, les deux sur la page <a href="#connectors">Connecteurs</a>.',
'catalog.empty.title': 'Le catalogue est vide.',
'catalog.empty.hint': 'Ajoutez un connecteur depuis le Marketplace pour commencer.',
'catalog.empty.action': 'Parcourir le Marketplace',
// ── Connecteurs : ajout / saisie manuelle ────────────────────────────────────
'connectors.add.btn': 'Ajouter un connecteur',
'connectors.add.marketplace': 'Depuis le Marketplace',
'connectors.add.marketplace_desc': 'Connecteurs vérifiés, fichiers vérifiés par SHA-256.',
'connectors.add.manual': 'Manuellement',
'connectors.add.manual_desc': 'Vous fournissez la configuration, et vous en portez la responsabilité.',
'catalog.btn.add': 'Ajouter un connecteur',
'catalog.dropdown.marketplace': 'Depuis le Marketplace',
'catalog.dropdown.marketplace_desc': 'Connecteurs vérifiés, fichiers vérifiés par SHA-256.',
'catalog.dropdown.manual': 'Manuellement',
'catalog.dropdown.manual_desc': 'Vous fournissez la configuration, et vous en portez la responsabilité.',
'connectors.action.remove': 'Retirer',
'catalog.table.connector': 'Connecteur',
'catalog.table.scope': 'Portée',
'catalog.table.type': 'Type',
'catalog.table.auth': 'Auth',
'connectors.new.back': 'Retour',
'connectors.new.title': 'Ajouter un connecteur manuellement',
'connectors.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>Un script local exécute du code sur cette machine. Rien ne le vérifie — contrairement au Marketplace, il n\'y a pas de condensé à contrôler.',
'connectors.new.name': 'Nom',
'connectors.new.name_hint': 'slug',
'connectors.new.scope': 'Portée',
'connectors.new.type': 'Type',
'connectors.new.transport': 'Transport',
'connectors.new.command': 'Commande',
'connectors.new.command_ph': 'python3',
'connectors.new.script_path': 'Chemin du script',
'connectors.new.script_path_hint': 'comme <connecteur>/<fichier>, sous ./connectors',
'connectors.new.url': 'URL',
'connectors.new.args': 'Arguments',
'connectors.new.args_hint': 'un par ligne',
'connectors.new.config_schema': 'Clés secrètes/env requises',
'connectors.new.config_schema_hint': 'virgule/nouvelle ligne',
'connectors.new.auth': 'Auth',
'connectors.new.friendly': 'Nom convivial',
'connectors.new.desc': 'Description',
'connectors.new.desc_hint': 'le LLM lit ceci pour décider d\'activer le connecteur',
'connectors.new.cancel': 'Annuler',
'connectors.new.save': 'Ajouter le connecteur',
'catalog.badge.global': 'global',
'catalog.badge.per_user': 'par utilisateur',
'catalog.badge.local_script':'script local',
'catalog.badge.remote': 'distant',
'catalog.action.remove': 'Retirer du catalogue',
'catalog.new.back': 'Retour',
'catalog.new.title': 'Ajouter un connecteur manuellement',
'catalog.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>Un script local exécute du code sur cette machine. Rien ne le vérifie — contrairement au Marketplace, il n\'y a pas de condensé à contrôler.',
'catalog.new.name': 'Nom',
'catalog.new.name_hint': 'slug',
'catalog.new.scope': 'Portée',
'catalog.new.type': 'Type',
'catalog.new.transport': 'Transport',
'catalog.new.command': 'Commande',
'catalog.new.command_ph': 'python3',
'catalog.new.script_path': 'Chemin du script',
'catalog.new.script_path_hint': 'comme <connecteur>/<fichier>, sous ./connectors',
'catalog.new.url': 'URL',
'catalog.new.args': 'Arguments',
'catalog.new.args_hint': 'un par ligne',
'catalog.new.config_schema': 'Clés secrètes/env requises',
'catalog.new.config_schema_hint': 'virgule/nouvelle ligne',
'catalog.new.auth': 'Auth',
'catalog.new.friendly': 'Nom convivial',
'catalog.new.desc': 'Description',
'catalog.new.desc_hint': 'le LLM lit ceci pour décider d\'activer le connecteur',
'catalog.new.cancel': 'Annuler',
'catalog.new.save': 'Ajouter au catalogue',
'catalog.error.name': 'Le nom est requis.',
'catalog.confirm.delete': 'Retirer "{name}" du catalogue ?\n\nTout ce qui a déjà été activé continuera de fonctionner.',
'connectors.new.error_name': 'Le nom est requis.',
'connectors.confirm.remove': 'Retirer "{name}" ?\n\nTout ce qui a déjà été activé continuera de fonctionner.',
// ── Cron ────────────────────────────────────────────────────────────────────
'cron.title': 'Tâches Cron',