feat(catalog): undo bulk offer edits with guarded history restoration
CI / check (push) Successful in 2m1s
CI / deploy (push) Successful in 18s
CI / publish-container (push) Successful in 1m28s

This commit is contained in:
Simo committed 2026-09-11 10:47:46 +02:00
1 parent 13bd3695cb
commit c5a2b44807
33 files changed
+1399 -116

No files matched your search

+39 -5
View File
@@ -2133,7 +2133,10 @@
"pageSearch": "Cerca categorie…",
"back": "Rivedi le modifiche",
"selectionLimit": "Seleziona al massimo 500 offerte per operazione.",
"refreshing": "Aggiornamento delle offerte modificate…"
"refreshing": "Aggiornamento delle offerte modificate…",
"undo": "Annulla",
"undoHint": "Puoi ripristinare le singole offerte anche dalla cronologia delle modifiche.",
"undoSuccess": "Ripristinate {count} offerte."
},
"discovery": {
"searchPlaceholder": "Nome, classname, ID furni o #ID offerta…",
@@ -3280,7 +3283,8 @@
"fullStory": "Contenuto articolo",
"status": "Stato pubblicazione",
"publishAt": "Pubblicazione programmata",
"publishedAt": "Data pubblicazione"
"publishedAt": "Data pubblicazione",
"pageId": "Categoria"
}
}
},
@@ -4335,11 +4339,11 @@
},
"performance": {
"title": "Prestazioni delle richieste",
"scope": "API autenticate dell’HK: tempo server fino alla risposta pronta. Non misura il rendering del browser o le pagine pubbliche.",
"scope": "Misure server delle API HK autenticate e di alcune pagine pubbliche. Scegli un gruppo qui sotto.",
"refresh": "Aggiorna",
"shared": "Diagnostica condivisa tramite Redis.",
"local": "Diagnostica locale di questa istanza; si azzera al riavvio.",
"retention": "Fino a 200 richieste recenti, conservate per un’ora. La raccolta può omettere misure.",
"retention": "Fino a 200 campioni per gruppo, conservati per un’ora. La raccolta non è garantita per ogni richiesta.",
"search": "Percorso o ID operazione",
"sort": "Ordine",
"slowest": "Prima le più lente",
@@ -4354,7 +4358,18 @@
"calls": "{count} chiamate",
"failures": "{count} errori",
"streaming": "Risposta in streaming: la misura termina alla creazione della risposta, non alla fine dell’operazione.",
"operation": "ID operazione"
"operation": "ID operazione",
"kind": "Gruppo di misurazione",
"adminApi": "API HK",
"publicPage": "Pagine pubbliche",
"applyFilters": "Applica filtri",
"publicBoundary": "Le misure pubbliche coprono il componente server principale di /me, news, profili, eventi e ricerca. Escludono metadati, componenti figli renderizzati separatamente, rete e rendering nel browser. Gli esiti non sono codici HTTP. Le esecuzioni durante la build statica sono escluse.",
"outcomes": {
"completed": "Componente completato",
"failed": "Componente fallito",
"redirect": "Reindirizzamento",
"not-found": "Pagina non trovata"
}
},
"importProgress": {
"validating": "Verifica dati locali",
@@ -4759,6 +4774,25 @@
},
"openAudit": "Apri Audit catalogo per risolvere i conflitti",
"excludedConflicts": "{count, plural, one {# elemento richiede un controllo ed è escluso da questa importazione.} other {# elementi richiedono un controllo e sono esclusi da questa importazione.}}"
},
"preflight": {
"filterLabel": "Filtra i controlli di importazione",
"filters": {
"all": "Tutti ({count})",
"complete": "Da completare ({count})",
"conflict": "Conflitti ({count})",
"verify": "Da verificare ({count})"
},
"empty": "Nessun furni in questo gruppo.",
"actions": {
"complete": "Suggerimento: completa il furni esistente",
"import": "Suggerimento: importa il nuovo furni",
"refresh": "Il furni esistente è completo; aggiorna i dati dalla fonte",
"conflict": "Risolvi i conflitti nei dati locali prima di importare",
"verify": "Controlla i componenti non verificati prima di proseguire"
},
"missing": "Mancanti: {parts}",
"unknown": "Non verificati: {parts}"
}
}
},