connectors: merge the catalog page into a row-list Connectors page
Nightly Build / build (push) Successful in 6m57s
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:
+33
-55
@@ -22,7 +22,6 @@ export default {
|
||||
'nav.connectors': 'Connectors',
|
||||
'nav.plugins': 'Plugins',
|
||||
'nav.plugin_catalog': 'Plugin Catalog',
|
||||
'nav.catalog': 'Connectors Catalog',
|
||||
'nav.config': 'Settings',
|
||||
'nav.llm_requests': 'LLM Requests',
|
||||
'nav.system_agents': 'System agents',
|
||||
@@ -768,8 +767,6 @@ export default {
|
||||
'connectors.loading': 'Loading…',
|
||||
'connectors.search': 'Search connectors…',
|
||||
'connectors.btn.signin_providers': 'Sign-in providers',
|
||||
'connectors.btn.catalog': 'Catalog',
|
||||
'connectors.btn.marketplace': 'Marketplace',
|
||||
'connectors.empty.installed': 'No connectors installed yet.',
|
||||
'connectors.empty.available': 'Nothing available to you yet.',
|
||||
'connectors.empty.install_hint': 'Install one from the Marketplace to get started.',
|
||||
@@ -998,7 +995,7 @@ export default {
|
||||
|
||||
// ── Marketplace ─────────────────────────────────────────────────────────────
|
||||
'marketplace.title': 'Marketplace',
|
||||
'marketplace.btn.catalog': 'Catalog',
|
||||
'marketplace.btn.connectors': 'Connectors',
|
||||
'marketplace.action.refetch': 'Refetch the feed',
|
||||
'marketplace.not_admin': 'The marketplace is managed by the admin.',
|
||||
'marketplace.not_admin_link': 'Connectors the admin has installed appear on the <a href="#connectors">Connectors</a> page.',
|
||||
@@ -1098,60 +1095,41 @@ export default {
|
||||
|
||||
'users.confirm.delete': 'Delete user "{username}"? This permanently erases their database and all conversation history.',
|
||||
|
||||
// ── Catalog ─────────────────────────────────────────────────────────────────
|
||||
'catalog.title': 'Connector Catalog',
|
||||
'catalog.loading': 'Loading…',
|
||||
'catalog.not_admin': 'The catalog is managed by the admin.',
|
||||
'catalog.not_admin_link': 'What you can activate is on the <a href="#connectors">Connectors</a> page.',
|
||||
'catalog.desc': 'What this box offers. Nothing here is running — a global entry still needs enabling, a per-user one still needs each user to activate it, both on the <a href="#connectors">Connectors</a> page.',
|
||||
'catalog.empty.title': 'The catalog is empty.',
|
||||
'catalog.empty.hint': 'Add a connector from the marketplace to get started.',
|
||||
'catalog.empty.action': 'Browse the marketplace',
|
||||
// ── Connectors: add / manual entry ────────────────────────────────────────────
|
||||
'connectors.add.btn': 'Add connector',
|
||||
'connectors.add.marketplace': 'From the marketplace',
|
||||
'connectors.add.marketplace_desc': 'Vetted connectors, files verified by SHA-256.',
|
||||
'connectors.add.manual': 'Manually',
|
||||
'connectors.add.manual_desc': 'You supply the config, and vouch for it yourself.',
|
||||
|
||||
'catalog.btn.add': 'Add connector',
|
||||
'catalog.dropdown.marketplace': 'From the marketplace',
|
||||
'catalog.dropdown.marketplace_desc': 'Vetted connectors, files verified by SHA-256.',
|
||||
'catalog.dropdown.manual': 'Manually',
|
||||
'catalog.dropdown.manual_desc': 'You supply the config, and vouch for it yourself.',
|
||||
'connectors.action.remove': 'Remove',
|
||||
|
||||
'catalog.table.connector': 'Connector',
|
||||
'catalog.table.scope': 'Scope',
|
||||
'catalog.table.type': 'Type',
|
||||
'catalog.table.auth': 'Auth',
|
||||
'connectors.new.back': 'Back',
|
||||
'connectors.new.title': 'Add connector manually',
|
||||
'connectors.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>A local script runs code on this box. Nothing verifies it — unlike the marketplace path, there is no digest to check.',
|
||||
'connectors.new.name': 'Name',
|
||||
'connectors.new.name_hint': 'slug',
|
||||
'connectors.new.scope': 'Scope',
|
||||
'connectors.new.type': 'Type',
|
||||
'connectors.new.transport': 'Transport',
|
||||
'connectors.new.command': 'Command',
|
||||
'connectors.new.command_ph': 'python3',
|
||||
'connectors.new.script_path': 'Script path',
|
||||
'connectors.new.script_path_hint': 'as <connector>/<file>, under ./connectors',
|
||||
'connectors.new.url': 'URL',
|
||||
'connectors.new.args': 'Args',
|
||||
'connectors.new.args_hint': 'one per line',
|
||||
'connectors.new.config_schema': 'Required secret/env keys',
|
||||
'connectors.new.config_schema_hint': 'comma/newline',
|
||||
'connectors.new.auth': 'Auth',
|
||||
'connectors.new.friendly': 'Friendly name',
|
||||
'connectors.new.desc': 'Description',
|
||||
'connectors.new.desc_hint': 'the LLM reads this when deciding to activate the connector',
|
||||
'connectors.new.cancel': 'Cancel',
|
||||
'connectors.new.save': 'Add connector',
|
||||
|
||||
'catalog.badge.global': 'global',
|
||||
'catalog.badge.per_user': 'per-user',
|
||||
'catalog.badge.local_script':'local script',
|
||||
'catalog.badge.remote': 'remote',
|
||||
|
||||
'catalog.action.remove': 'Remove from catalog',
|
||||
|
||||
'catalog.new.back': 'Back',
|
||||
'catalog.new.title': 'Add connector manually',
|
||||
'catalog.new.script_warn': '<i class="bi bi-exclamation-triangle me-1"></i>A local script runs code on this box. Nothing verifies it — unlike the marketplace path, there is no digest to check.',
|
||||
'catalog.new.name': 'Name',
|
||||
'catalog.new.name_hint': 'slug',
|
||||
'catalog.new.scope': 'Scope',
|
||||
'catalog.new.type': 'Type',
|
||||
'catalog.new.transport': 'Transport',
|
||||
'catalog.new.command': 'Command',
|
||||
'catalog.new.command_ph': 'python3',
|
||||
'catalog.new.script_path': 'Script path',
|
||||
'catalog.new.script_path_hint': 'as <connector>/<file>, under ./connectors',
|
||||
'catalog.new.url': 'URL',
|
||||
'catalog.new.args': 'Args',
|
||||
'catalog.new.args_hint': 'one per line',
|
||||
'catalog.new.config_schema': 'Required secret/env keys',
|
||||
'catalog.new.config_schema_hint': 'comma/newline',
|
||||
'catalog.new.auth': 'Auth',
|
||||
'catalog.new.friendly': 'Friendly name',
|
||||
'catalog.new.desc': 'Description',
|
||||
'catalog.new.desc_hint': 'the LLM reads this when deciding to activate the connector',
|
||||
'catalog.new.cancel': 'Cancel',
|
||||
'catalog.new.save': 'Add to catalog',
|
||||
|
||||
'catalog.error.name': 'Name is required.',
|
||||
'catalog.confirm.delete': 'Remove "{name}" from the catalog?\n\nAnything already activated from it keeps running.',
|
||||
'connectors.new.error_name': 'Name is required.',
|
||||
'connectors.confirm.remove': 'Remove "{name}"?\n\nAnything already activated from it keeps running.',
|
||||
|
||||
// ── Cron ────────────────────────────────────────────────────────────────────
|
||||
'cron.title': 'Cron Jobs',
|
||||
|
||||
+33
-55
@@ -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',
|
||||
|
||||
+33
-55
@@ -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)',
|
||||
|
||||
Reference in New Issue
Block a user