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': 'Connettori',
'nav.plugins': 'Plugin',
'nav.plugin_catalog': 'Catalogo plugin',
'nav.catalog': 'Catalogo connettori',
'nav.config': 'Impostazioni',
'nav.llm_requests': 'Richieste LLM',
'nav.system_agents': 'Agenti di sistema',
@@ -768,8 +767,6 @@ export default {
'connectors.loading': 'Caricamento…',
'connectors.search': 'Cerca connettori…',
'connectors.btn.signin_providers': 'Provider di accesso',
'connectors.btn.catalog': 'Catalogo',
'connectors.btn.marketplace': 'Marketplace',
'connectors.empty.installed': 'Nessun connettore installato.',
'connectors.empty.available': 'Niente di disponibile per te.',
'connectors.empty.install_hint': 'Installane uno dal Marketplace per iniziare.',
@@ -988,7 +985,7 @@ export default {
// ── Marketplace ──────────────────────────────────────────────────────────────
'marketplace.title': 'Marketplace',
'marketplace.btn.catalog': 'Catalogo',
'marketplace.btn.connectors': 'Connettori',
'marketplace.action.refetch': 'Ricarica il feed',
'marketplace.not_admin': 'Il marketplace è gestito dall\'amministratore.',
'marketplace.not_admin_link': 'I connettori installati dall\'amministratore appaiono nella pagina <a href="#connectors">Connettori</a>.',
@@ -1085,60 +1082,41 @@ export default {
'users.confirm.delete': 'Eliminare l\'utente "{username}"? Questo cancella definitivamente il database e tutta la cronologia delle conversazioni.',
// ── Catalogo ────────────────────────────────────────────────────────────────
'catalog.title': 'Catalogo connettori',
'catalog.loading': 'Caricamento…',
'catalog.not_admin': 'Il catalogo è gestito dall\'amministratore.',
'catalog.not_admin_link': 'Quello che puoi attivare è nella pagina <a href="#connectors">Connettori</a>.',
'catalog.desc': 'Cosa offre questo computer. Niente qui è in esecuzione — una voce globale necessita comunque di essere abilitata, una per utente necessita che ogni utente la attivi, entrambe nella pagina <a href="#connectors">Connettori</a>.',
'catalog.empty.title': 'Il catalogo è vuoto.',
'catalog.empty.hint': 'Aggiungi un connettore dal marketplace per iniziare.',
'catalog.empty.action': 'Sfoglia il marketplace',
// ── Connettori: aggiunta / inserimento manuale ───────────────────────────────
'connectors.add.btn': 'Aggiungi connettore',
'connectors.add.marketplace': 'Dal marketplace',
'connectors.add.marketplace_desc': 'Connettori verificati, file controllati tramite SHA-256.',
'connectors.add.manual': 'Manualmente',
'connectors.add.manual_desc': 'Fornisci tu la configurazione e te ne assumi la responsabilità.',
'catalog.btn.add': 'Aggiungi connettore',
'catalog.dropdown.marketplace': 'Dal marketplace',
'catalog.dropdown.marketplace_desc': 'Connettori verificati, file controllati tramite SHA-256.',
'catalog.dropdown.manual': 'Manualmente',
'catalog.dropdown.manual_desc': 'Fornisci tu la configurazione e te ne assumi la responsabilità.',
'connectors.action.remove': 'Rimuovi',
'catalog.table.connector': 'Connettore',
'catalog.table.scope': 'Ambito',
'catalog.table.type': 'Tipo',
'catalog.table.auth': 'Auth',
'connectors.new.back': 'Indietro',
'connectors.new.title': 'Aggiungi connettore manualmente',
'connectors.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>Uno script locale esegue codice su questo computer. Niente lo verifica — a differenza del marketplace, non c\'è un digest da controllare.',
'connectors.new.name': 'Nome',
'connectors.new.name_hint': 'slug',
'connectors.new.scope': 'Ambito',
'connectors.new.type': 'Tipo',
'connectors.new.transport': 'Trasporto',
'connectors.new.command': 'Comando',
'connectors.new.command_ph': 'python3',
'connectors.new.script_path': 'Percorso script',
'connectors.new.script_path_hint': 'come <connettore>/<file>, sotto ./connectors',
'connectors.new.url': 'URL',
'connectors.new.args': 'Argomenti',
'connectors.new.args_hint': 'uno per riga',
'connectors.new.config_schema': 'Chiavi segrete/env richieste',
'connectors.new.config_schema_hint': 'virgola/nuova riga',
'connectors.new.auth': 'Auth',
'connectors.new.friendly': 'Nome visualizzato',
'connectors.new.desc': 'Descrizione',
'connectors.new.desc_hint': 'l\'LLM legge questo quando decide se attivare il connettore',
'connectors.new.cancel': 'Annulla',
'connectors.new.save': 'Aggiungi connettore',
'catalog.badge.global': 'globale',
'catalog.badge.per_user': 'per utente',
'catalog.badge.local_script':'script locale',
'catalog.badge.remote': 'remoto',
'catalog.action.remove': 'Rimuovi dal catalogo',
'catalog.new.back': 'Indietro',
'catalog.new.title': 'Aggiungi connettore manualmente',
'catalog.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>Uno script locale esegue codice su questo computer. Niente lo verifica — a differenza del marketplace, non c\'è un digest da controllare.',
'catalog.new.name': 'Nome',
'catalog.new.name_hint': 'slug',
'catalog.new.scope': 'Ambito',
'catalog.new.type': 'Tipo',
'catalog.new.transport': 'Trasporto',
'catalog.new.command': 'Comando',
'catalog.new.command_ph': 'python3',
'catalog.new.script_path': 'Percorso script',
'catalog.new.script_path_hint': 'come <connettore>/<file>, sotto ./connectors',
'catalog.new.url': 'URL',
'catalog.new.args': 'Argomenti',
'catalog.new.args_hint': 'uno per riga',
'catalog.new.config_schema': 'Chiavi segrete/env richieste',
'catalog.new.config_schema_hint': 'virgola/nuova riga',
'catalog.new.auth': 'Auth',
'catalog.new.friendly': 'Nome visualizzato',
'catalog.new.desc': 'Descrizione',
'catalog.new.desc_hint': 'l\'LLM legge questo quando decide se attivare il connettore',
'catalog.new.cancel': 'Annulla',
'catalog.new.save': 'Aggiungi al catalogo',
'catalog.error.name': 'Il nome è obbligatorio.',
'catalog.confirm.delete': 'Rimuovere "{name}" dal catalogo?\n\nTutto ciò che è già stato attivato continuerà a funzionare.',
'connectors.new.error_name': 'Il nome è obbligatorio.',
'connectors.confirm.remove': 'Rimuovere "{name}"?\n\nLe attivazioni già fatte continueranno a funzionare.',
// ── Cron ────────────────────────────────────────────────────────────────────
'cron.title': 'Processi pianificati (Cron)',