From ce265bc106a273bf19118b04279b4fe608787b46 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sun, 1 Mar 2026 21:42:17 +0100 Subject: [PATCH 1/5] Add internal method to clear config cache --- .../Services/Loaders/ConfigServiceLoader.php | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/formwork/src/Services/Loaders/ConfigServiceLoader.php b/formwork/src/Services/Loaders/ConfigServiceLoader.php index 0605bb777..eabacb031 100644 --- a/formwork/src/Services/Loaders/ConfigServiceLoader.php +++ b/formwork/src/Services/Loaders/ConfigServiceLoader.php @@ -11,17 +11,21 @@ final class ConfigServiceLoader implements ServiceLoaderInterface { + /** + * Config cache path + */ + private const string CACHE_PATH = ROOT_PATH . '/cache/config/'; + public function __construct( private Request $request, ) {} public function load(Container $container): Config { - $cachePath = ROOT_PATH . '/cache/config/'; - $cacheFile = FileSystem::joinPaths($cachePath, "config.{$this->request->host()}.php"); + $cacheFile = FileSystem::joinPaths(self::CACHE_PATH, "config.{$this->request->host()}.php"); - if (!FileSystem::isDirectory($cachePath, assertExists: false)) { - FileSystem::createDirectory($cachePath, recursive: true); + if (!FileSystem::isDirectory(self::CACHE_PATH, assertExists: false)) { + FileSystem::createDirectory(self::CACHE_PATH, recursive: true); } if ( @@ -57,4 +61,15 @@ public function load(Container $container): Config return $config; } + + /** + * Clear config cache + * + * @internal + */ + public static function clearCache(): void + { + FileSystem::delete(self::CACHE_PATH, recursive: true); + FileSystem::createDirectory(self::CACHE_PATH, recursive: true); + } } From e81eda31a185f95cbdb48d8b3caea41080b35057 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sun, 1 Mar 2026 21:42:34 +0100 Subject: [PATCH 2/5] Refactor `clear` action of `CacheCommand` with logging support added --- formwork/src/Commands/CacheCommand.php | 53 ++++++++++++++++++++------ 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/formwork/src/Commands/CacheCommand.php b/formwork/src/Commands/CacheCommand.php index 0d1fc3d55..e131ebed5 100644 --- a/formwork/src/Commands/CacheCommand.php +++ b/formwork/src/Commands/CacheCommand.php @@ -4,9 +4,12 @@ use Formwork\Cache\FilesCache; use Formwork\Cms\App; +use Formwork\Services\Loaders\ConfigServiceLoader; +use Formwork\Utils\Arr; use Formwork\Utils\FileSystem; use League\CLImate\CLImate; use League\CLImate\Exceptions\InvalidArgumentException; +use Psr\Log\LoggerInterface; /** * @since 2.1.0 @@ -20,6 +23,8 @@ final class CacheCommand implements CommandInterface private App $app; + private ?LoggerInterface $logger = null; + /** * @var array */ @@ -65,6 +70,10 @@ public function __invoke(?array $argv = null): never $this->app = App::instance(); $this->app->load(); + if ($this->app->hasService(LoggerInterface::class)) { + $this->logger = $this->app->getService(LoggerInterface::class); + } + if (count($argv) < 2 || $this->climate->arguments->defined('help', $argv)) { $this->help($argv); exit(0); @@ -103,21 +112,19 @@ public function clear(string $type, array $argv = []): void { switch ($type) { case 'all': - $this->clearConfigCache(); - $this->clearImagesCache(); - $this->clearPagesCache(); + $this->clearCaches(['pages' => true, 'images' => true, 'config' => true]); $this->climate->green('All caches cleared.'); break; case 'config': - $this->clearConfigCache(); + $this->clearCaches(['config' => true]); $this->climate->green('Config cache cleared.'); break; case 'pages': - $this->clearPagesCache(); + $this->clearCaches(['pages' => true]); $this->climate->green('Pages cache cleared.'); break; case 'images': - $this->clearImagesCache(); + $this->clearCaches(['images' => true]); $this->climate->green('Images cache cleared.'); break; default: @@ -236,13 +243,29 @@ private function pagesCacheStats(): void } /** - * Clear config cache + * Clear specified caches + * + * @param array $types */ - private function clearConfigCache(): void + private function clearCaches(array $types): void { - $path = ROOT_PATH . '/cache/config/'; - FileSystem::delete($path, recursive: true); - FileSystem::createDirectory($path, recursive: true); + $types = Arr::filter($types, fn($clear) => $clear); + + foreach (array_keys($types) as $type) { + switch ($type) { + case 'pages': + $this->clearPagesCache(); + break; + case 'images': + $this->clearImagesCache(); + break; + case 'config': + $this->clearConfigCache(); + break; + } + } + + $this->logger?->notice('Cache cleared ({types}) from CLI', ['types' => implode(', ', array_keys($types))]); } /** @@ -271,6 +294,14 @@ private function clearPagesCache(): void } } + /** + * Clear config cache + */ + private function clearConfigCache(): void + { + ConfigServiceLoader::clearCache(); + } + /** * Invalidate pages cache */ From 8e394394584428ce755e4df521e4514e3c361e15 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sun, 1 Mar 2026 21:46:18 +0100 Subject: [PATCH 3/5] Add the possibility to clear config cache from `CacheController` and logging support --- .../src/Panel/Controllers/CacheController.php | 70 ++++++++++++++++--- 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/formwork/src/Panel/Controllers/CacheController.php b/formwork/src/Panel/Controllers/CacheController.php index 98670670b..a742de580 100644 --- a/formwork/src/Panel/Controllers/CacheController.php +++ b/formwork/src/Panel/Controllers/CacheController.php @@ -6,14 +6,26 @@ use Formwork\Http\JsonResponse; use Formwork\Http\Response; use Formwork\Router\RouteParams; +use Formwork\Services\Container; +use Formwork\Services\Loaders\ConfigServiceLoader; +use Formwork\Utils\Arr; use Formwork\Utils\FileSystem; +use Psr\Log\LoggerInterface; final class CacheController extends AbstractController { + public function __construct( + private Container $container, + private AbstractCache $pagesCache, + private ?LoggerInterface $logger = null, + ) { + $this->container->call(parent::__construct(...)); + } + /** * Cache@clear action */ - public function clear(RouteParams $routeParams, AbstractCache $cache): JsonResponse|Response + public function clear(RouteParams $routeParams): JsonResponse|Response { if (!$this->hasPermission('panel.cache.clear')) { return $this->forward(ErrorsController::class, 'forbidden'); @@ -21,28 +33,60 @@ public function clear(RouteParams $routeParams, AbstractCache $cache): JsonRespo switch ($type = $routeParams->get('type', 'default')) { case 'default': - $this->clearPagesCache($cache); - if ($this->config->get('system.images.clearCacheByDefault')) { - $this->clearImagesCache(); - } + $this->clearCaches([ + 'pages' => true, + 'images' => $this->config->get('system.images.clearCacheByDefault'), + ]); return JsonResponse::success($this->translate('panel.cache.cleared'), data: compact('type')); + case 'all': + $this->clearCaches(['pages' => true, 'images' => true, 'config' => true]); + return JsonResponse::success($this->translate('panel.cache.cleared.all'), data: compact('type')); case 'pages': - $this->clearPagesCache($cache); + $this->clearCaches(['pages' => true]); return JsonResponse::success($this->translate('panel.cache.cleared.pages'), data: compact('type')); case 'images': - $this->clearImagesCache(); + $this->clearCaches(['images' => true]); return JsonResponse::success($this->translate('panel.cache.cleared.images'), data: compact('type')); + case 'config': + $this->clearCaches(['config' => true]); + return JsonResponse::success($this->translate('panel.cache.cleared.config'), data: compact('type')); default: return JsonResponse::error($this->translate('panel.cache.error')); } } + /** + * Clear specified caches + * + * @param array $types + */ + private function clearCaches(array $types): void + { + $types = Arr::filter($types, fn($clear) => $clear); + + foreach (array_keys($types) as $type) { + switch ($type) { + case 'pages': + $this->clearPagesCache(); + break; + case 'images': + $this->clearImagesCache(); + break; + case 'config': + $this->clearConfigCache(); + break; + } + } + + $this->logger?->notice('Cache cleared ({types}) by user {user}', ['types' => implode(', ', array_keys($types)), 'user' => $this->panel->user()->username()]); + } + /** * Clear pages cache */ - private function clearPagesCache(AbstractCache $cache): void + private function clearPagesCache(): void { - $cache->clear(); + $this->pagesCache->clear(); if ($this->site->contentPath() !== null) { FileSystem::touch($this->site->contentPath()); } @@ -57,4 +101,12 @@ private function clearImagesCache(): void FileSystem::delete($path, recursive: true); FileSystem::createDirectory($path, recursive: true); } + + /** + * Clear config cache + */ + private function clearConfigCache(): void + { + ConfigServiceLoader::clearCache(); + } } From 9e7a914d77aad3c4990a33970b52a7515b650290 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sun, 1 Mar 2026 21:50:40 +0100 Subject: [PATCH 4/5] Add the possibility to clear all cache types from the dashboard --- panel/src/ts/components/views/dashboard.ts | 11 +++++++++++ panel/translations/de.yaml | 4 ++++ panel/translations/el.yaml | 4 ++++ panel/translations/en.yaml | 4 ++++ panel/translations/es.yaml | 4 ++++ panel/translations/fr.yaml | 4 ++++ panel/translations/hu.yaml | 4 ++++ panel/translations/it.yaml | 4 ++++ panel/translations/nl.yaml | 4 ++++ panel/translations/pl.yaml | 4 ++++ panel/translations/pt.yaml | 8 ++++++-- panel/translations/ro.yaml | 4 ++++ panel/translations/ru.yaml | 4 ++++ panel/translations/sv.yaml | 4 ++++ panel/translations/tr.yaml | 4 ++++ panel/translations/uk.yaml | 4 ++++ panel/views/dashboard/index.php | 5 ++++- 17 files changed, 77 insertions(+), 3 deletions(-) diff --git a/panel/src/ts/components/views/dashboard.ts b/panel/src/ts/components/views/dashboard.ts index 7c4181fcb..9b9d99d24 100644 --- a/panel/src/ts/components/views/dashboard.ts +++ b/panel/src/ts/components/views/dashboard.ts @@ -9,6 +9,9 @@ export class Dashboard { const clearCacheCommand = $("[data-view=dashboard] [data-command=clear-cache]"); const clearPagesCacheCommand = $("[data-view=dashboard] [data-command=clear-pages-cache]"); const clearImagesCacheCommand = $("[data-view=dashboard] [data-command=clear-images-cache]"); + const clearConfigCacheCommand = $("[data-view=dashboard] [data-command=clear-config-cache]"); + const clearAllCacheCommand = $("[data-view=dashboard] [data-command=clear-all-cache]"); + const chart = $(".dashboard-chart"); const clearCache = (type?: string) => { @@ -38,6 +41,14 @@ export class Dashboard { clearImagesCacheCommand.addEventListener("click", () => clearCache("images")); } + if (clearConfigCacheCommand) { + clearConfigCacheCommand.addEventListener("click", () => clearCache("config")); + } + + if (clearAllCacheCommand) { + clearAllCacheCommand.addEventListener("click", () => clearCache("all")); + } + if (chart) { const chartData = chart.dataset.chartData; if (chartData) { diff --git a/panel/translations/de.yaml b/panel/translations/de.yaml index 2bc7325be..5a4c6d35e 100644 --- a/panel/translations/de.yaml +++ b/panel/translations/de.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Ungültige Sicherungsdatei panel.backup.error.cannotMake: Sicherung kann nicht erstellt werden. %s. panel.backup.ready: Sicherung bereit. Download wird gestartet... panel.cache.clear: Cache leeren +panel.cache.clear.all: Alle Caches löschen +panel.cache.clear.config: Konfigurations-Cache löschen panel.cache.clear.images: Bilder-Cache löschen panel.cache.clear.pages: Seiten-Cache löschen panel.cache.cleared: Cache geleert +panel.cache.cleared.all: Alle Caches wurden geleert +panel.cache.cleared.config: Konfigurations-Cache wurde geleert panel.cache.cleared.images: Bilder-Cache geleert panel.cache.cleared.pages: Seiten-Cache geleert panel.cache.error: Cache kann nicht gelöscht werden diff --git a/panel/translations/el.yaml b/panel/translations/el.yaml index 8234db6a1..01178ad39 100644 --- a/panel/translations/el.yaml +++ b/panel/translations/el.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Μη έγκυρο αρχεί panel.backup.error.cannotMake: Δεν είναι δυνατή η δημιουργία αντιγράφου ασφαλείας. %s. panel.backup.ready: Το αντίγραφο ασφαλείας είναι έτοιμο. Ξεκινά η λήψη... panel.cache.clear: Εκκαθάριση cache +panel.cache.clear.all: Εκκαθάριση όλων των cache +panel.cache.clear.config: Εκκαθάριση cache ρυθμίσεων panel.cache.clear.images: Εκκαθάριση cache εικόνων panel.cache.clear.pages: Εκκαθάριση cache σελίδων panel.cache.cleared: Η cache εκκαθαρίστηκε +panel.cache.cleared.all: Όλες οι cache εκκαθαρίστηκαν +panel.cache.cleared.config: Η cache ρυθμίσεων εκκαθαρίστηκε panel.cache.cleared.images: Η cache εικόνων εκκαθαρίστηκε panel.cache.cleared.pages: Η cache σελίδων εκκαθαρίστηκε panel.cache.error: Δεν είναι δυνατή η εκκαθάριση της cache diff --git a/panel/translations/en.yaml b/panel/translations/en.yaml index fb9cded8e..61d7b57d7 100644 --- a/panel/translations/en.yaml +++ b/panel/translations/en.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Invalid backup file panel.backup.error.cannotMake: Cannot make backup. %s. panel.backup.ready: Backup ready. Starting download... panel.cache.clear: Clear cache +panel.cache.clear.all: Clear all caches +panel.cache.clear.config: Clear config cache panel.cache.clear.images: Clear images cache panel.cache.clear.pages: Clear pages cache panel.cache.cleared: Cache cleared +panel.cache.cleared.all: All caches cleared +panel.cache.cleared.config: Config cache cleared panel.cache.cleared.images: Images cache cleared panel.cache.cleared.pages: Pages cache cleared panel.cache.error: Cannot clear cache diff --git a/panel/translations/es.yaml b/panel/translations/es.yaml index 4e06ab6c4..1a3b29af9 100644 --- a/panel/translations/es.yaml +++ b/panel/translations/es.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Archivo de respaldo inválido panel.backup.error.cannotMake: No se puede crear el respaldo. %s. panel.backup.ready: Respaldo listo. Iniciando descarga... panel.cache.clear: Limpiar caché +panel.cache.clear.all: Limpiar todas las cachés +panel.cache.clear.config: Limpiar caché de configuración panel.cache.clear.images: Limpiar caché de imágenes panel.cache.clear.pages: Limpiar caché de páginas panel.cache.cleared: Caché limpiada +panel.cache.cleared.all: Todas cachés limpiadas +panel.cache.cleared.config: Caché de configuración limpiada panel.cache.cleared.images: Caché de imágenes limpiada panel.cache.cleared.pages: Caché de páginas limpiada panel.cache.error: No se puede limpiar la caché diff --git a/panel/translations/fr.yaml b/panel/translations/fr.yaml index b8b7b1861..d8d8e0447 100644 --- a/panel/translations/fr.yaml +++ b/panel/translations/fr.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Fichier de sauvegarde invalid panel.backup.error.cannotMake: Impossible de faire une sauvegarde. %s. panel.backup.ready: Sauvegarde prête. Démarrage du téléchargement… panel.cache.clear: Vider le cache +panel.cache.clear.all: Vider tous les caches +panel.cache.clear.config: Vider le cache de configuration panel.cache.clear.images: Vider le cache des images panel.cache.clear.pages: Vider le cache des pages panel.cache.cleared: Cache effacé +panel.cache.cleared.all: Tous les caches effacés +panel.cache.cleared.config: Cache de configuration effacé panel.cache.cleared.images: Cache des images effacé panel.cache.cleared.pages: Cache des pages effacé panel.cache.error: Impossible de vider le cache diff --git a/panel/translations/hu.yaml b/panel/translations/hu.yaml index 4bcc89ede..b25a9a6a2 100644 --- a/panel/translations/hu.yaml +++ b/panel/translations/hu.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Érvénytelen biztonsági men panel.backup.error.cannotMake: Nem lehet biztonsági mentést készíteni. %s. panel.backup.ready: A biztonsági mentés elkészült. Letöltés indítása... panel.cache.clear: Gyorsítótár törlése +panel.cache.clear.all: Az összes gyorsítótár törlése +panel.cache.clear.config: A konfigurációs gyorsítótár törlése panel.cache.clear.images: Képek gyorsítótárának törlése panel.cache.clear.pages: Oldalak gyorsítótárának törlése panel.cache.cleared: Gyorsítótár törölve +panel.cache.cleared.all: Az összes gyorsítótár törölve +panel.cache.cleared.config: A konfigurációs gyorsítótár törölve panel.cache.cleared.images: Képek gyorsítótára törölve panel.cache.cleared.pages: Oldalak gyorsítótára törölve panel.cache.error: Nem lehet törölni a gyorsítótárat diff --git a/panel/translations/it.yaml b/panel/translations/it.yaml index c668fef88..b32178d24 100644 --- a/panel/translations/it.yaml +++ b/panel/translations/it.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: File di backup non valido. panel.backup.error.cannotMake: Impossibile eseguire il backup. %s. panel.backup.ready: Backup pronto. Inizio a scaricare... panel.cache.clear: Svuota cache +panel.cache.clear.all: Svuota tutte le cache +panel.cache.clear.config: Svuota cache configurazione panel.cache.clear.images: Svuota cache immagini panel.cache.clear.pages: Svuota cache pagine panel.cache.cleared: Cache svuotata +panel.cache.cleared.all: Tutte le cache svuotate +panel.cache.cleared.config: Cache configurazione svuotata panel.cache.cleared.images: Cache immagini svuotata panel.cache.cleared.pages: Cache pagine svuotata panel.cache.error: Impossibile svuotare la cache diff --git a/panel/translations/nl.yaml b/panel/translations/nl.yaml index 2b3897155..c4a7768e4 100644 --- a/panel/translations/nl.yaml +++ b/panel/translations/nl.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Ongeldig back-upbestand panel.backup.error.cannotMake: Kan backup niet aanmaken. %s. panel.backup.ready: Backup gereed. Start downloaden... panel.cache.clear: Cache legen +panel.cache.clear.all: Alle caches legen +panel.cache.clear.config: Configuratiecache legen panel.cache.clear.images: Cache voor afbeeldingen legen panel.cache.clear.pages: Cache voor pagina's legen panel.cache.cleared: Cache geleegd +panel.cache.cleared.all: Alle caches geleegd +panel.cache.cleared.config: Configuratiecache geleegd panel.cache.cleared.images: Afbeeldingscache geleegd panel.cache.cleared.pages: Pagina-cache geleegd panel.cache.error: Kan cache niet legen diff --git a/panel/translations/pl.yaml b/panel/translations/pl.yaml index fa33fa17d..a7ea5d622 100644 --- a/panel/translations/pl.yaml +++ b/panel/translations/pl.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Nieprawidłowy plik kopii zap panel.backup.error.cannotMake: Nie można utworzyć kopii zapasowej. %s. panel.backup.ready: Kopia zapasowa gotowa. Rozpoczynanie pobierania... panel.cache.clear: Wyczyść pamięć podręczną +panel.cache.clear.all: Wyczyść wszystkie pamięci podręczne +panel.cache.clear.config: Wyczyść pamięć podręczną konfiguracji panel.cache.clear.images: Wyczyść pamięć podręczną obrazów panel.cache.clear.pages: Wyczyść pamięć podręczną stron panel.cache.cleared: Pamięć podręczna wyczyszczona +panel.cache.cleared.all: Wszystkie pamięci podręczne zostały wyczyszczone +panel.cache.cleared.config: Pamięć podręczna konfiguracji została wyczyszczona panel.cache.cleared.images: Pamięć podręczna obrazów wyczyszczona panel.cache.cleared.pages: Pamięć podręczna stron wyczyszczona panel.cache.error: Nie można wyczyścić pamięci podręcznej diff --git a/panel/translations/pt.yaml b/panel/translations/pt.yaml index ff837ebbe..55ebc5b79 100644 --- a/panel/translations/pt.yaml +++ b/panel/translations/pt.yaml @@ -7,11 +7,15 @@ panel.backup.error.cannotDownload.invalidFilename: Ficheiro de backup inválido panel.backup.error.cannotMake: Não é possível fazer cópia de segurança. %s. panel.backup.ready: Cópia de segurança pronta. A iniciar o download... panel.cache.clear: Limpar cache +panel.cache.clear.all: Limpar todas as caches +panel.cache.clear.config: Limpar cache de configuração panel.cache.clear.images: Limpar cache de imagens panel.cache.clear.pages: Limpar cache de páginas panel.cache.cleared: Cache limpa -panel.cache.cleared.images: Cache de imagens limpo -panel.cache.cleared.pages: Cache de páginas limpo +panel.cache.cleared.all: Todas as caches limpas +panel.cache.cleared.config: Cache de configuração limpa +panel.cache.cleared.images: Cache de imagens limpa +panel.cache.cleared.pages: Cache de páginas limpa panel.cache.error: Não é possível limpar o cache panel.dashboard.dashboard: Painel panel.dashboard.lastModifiedPages: Últimas páginas editadas diff --git a/panel/translations/ro.yaml b/panel/translations/ro.yaml index ce1ff7107..cd91dd282 100644 --- a/panel/translations/ro.yaml +++ b/panel/translations/ro.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Fișier de backup invalid panel.backup.error.cannotMake: Nu se poate crea backup-ul. %s. panel.backup.ready: Backup gata. Încep descărcarea... panel.cache.clear: Golește cache-ul +panel.cache.clear.all: Golește toate cache-urile +panel.cache.clear.config: Golește cache-ul de configurare panel.cache.clear.images: Golește cache-ul de imagini panel.cache.clear.pages: Golește cache-ul de pagini panel.cache.cleared: Cache golit +panel.cache.cleared.all: Toate cache-urile au fost golite +panel.cache.cleared.config: Cache-ul de configurare a fost golit panel.cache.cleared.images: Cache-ul de imagini a fost golit panel.cache.cleared.pages: Cache-ul de pagini a fost golit panel.cache.error: Nu se poate goli cache-ul diff --git a/panel/translations/ru.yaml b/panel/translations/ru.yaml index 2be1b2a7f..865338a9c 100644 --- a/panel/translations/ru.yaml +++ b/panel/translations/ru.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Недопустимый фа panel.backup.error.cannotMake: Невозможно сделать резервную копию. %s. panel.backup.ready: Резервное копирование готовы. Начинается загрузка ... panel.cache.clear: Очистить кэш +panel.cache.clear.all: Очистить все кэши +panel.cache.clear.config: Очистить кэш конфигурации panel.cache.clear.images: Очистить кэш изображений panel.cache.clear.pages: Очистить кэш страниц panel.cache.cleared: Кэш очищается +panel.cache.cleared.all: Все кэши очищены +panel.cache.cleared.config: Кэш конфигурации очищен panel.cache.cleared.images: Кэш изображений очищен panel.cache.cleared.pages: Кэш страниц очищен panel.cache.error: Невозможно очистить кэш diff --git a/panel/translations/sv.yaml b/panel/translations/sv.yaml index 955fe5aba..240cfa457 100644 --- a/panel/translations/sv.yaml +++ b/panel/translations/sv.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Ogiltig säkerhetskopifil panel.backup.error.cannotMake: Kan inte skapa säkerhetskopia. %s. panel.backup.ready: Säkerhetskopian är klar. Startar nedladdning... panel.cache.clear: Rensa cache +panel.cache.clear.all: Rensa alla cacheminnen +panel.cache.clear.config: Rensa konfigurationscache panel.cache.clear.images: Rensa bildcache panel.cache.clear.pages: Rensa sidcache panel.cache.cleared: Cache rensad +panel.cache.cleared.all: Alla cacheminnen rensade +panel.cache.cleared.config: Konfigurationscache rensad panel.cache.cleared.images: Bildcache rensad panel.cache.cleared.pages: Sidcache rensad panel.cache.error: Kan inte rensa cache diff --git a/panel/translations/tr.yaml b/panel/translations/tr.yaml index 054903649..5b68d93e7 100644 --- a/panel/translations/tr.yaml +++ b/panel/translations/tr.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Geçersiz yedek dosyası panel.backup.error.cannotMake: Yedek oluşturulamıyor. %s. panel.backup.ready: Yedek hazır. İndirme başlatılıyor... panel.cache.clear: Önbelleği temizle +panel.cache.clear.all: Tüm önbellekleri temizle +panel.cache.clear.config: Yapılandırma önbelleğini temizle panel.cache.clear.images: Görsellerin önbelleğini temizle panel.cache.clear.pages: Sayfa önbelleğini temizle panel.cache.cleared: Önbellek temizlendi +panel.cache.cleared.all: Tüm önbellekler temizlendi +panel.cache.cleared.config: Yapılandırma önbelleği temizlendi panel.cache.cleared.images: Görsel önbelleği temizlendi panel.cache.cleared.pages: Sayfa önbelleği temizlendi panel.cache.error: Önbellek temizlenemiyor diff --git a/panel/translations/uk.yaml b/panel/translations/uk.yaml index 967e20e15..a15e97956 100644 --- a/panel/translations/uk.yaml +++ b/panel/translations/uk.yaml @@ -7,9 +7,13 @@ panel.backup.error.cannotDownload.invalidFilename: Невірне ім’я фа panel.backup.error.cannotMake: Неможливо створити резервну копію. %s. panel.backup.ready: Резервна копія готова. Починаємо завантаження... panel.cache.clear: Очистити кеш +panel.cache.clear.all: Очистити всі кеші +panel.cache.clear.config: Очистити кеш конфігурації panel.cache.clear.images: Очистити кеш зображень panel.cache.clear.pages: Очистити кеш сторінок panel.cache.cleared: Кеш очищено +panel.cache.cleared.all: Усі кеші очищено +panel.cache.cleared.config: Кеш конфігурації очищено panel.cache.cleared.images: Кеш зображень очищено panel.cache.cleared.pages: Кеш сторінок очищено panel.cache.error: Неможливо очистити кеш diff --git a/panel/views/dashboard/index.php b/panel/views/dashboard/index.php index 3cf7da442..944fe6cf5 100644 --- a/panel/views/dashboard/index.php +++ b/panel/views/dashboard/index.php @@ -27,6 +27,9 @@ @@ -63,4 +66,4 @@ - \ No newline at end of file + From 7c8722ace254b9ca2670340aa3aad1a178068380 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:06:14 +0100 Subject: [PATCH 5/5] Update panel/translations/es.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- panel/translations/es.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panel/translations/es.yaml b/panel/translations/es.yaml index 1a3b29af9..72151d015 100644 --- a/panel/translations/es.yaml +++ b/panel/translations/es.yaml @@ -12,7 +12,7 @@ panel.cache.clear.config: Limpiar caché de configuración panel.cache.clear.images: Limpiar caché de imágenes panel.cache.clear.pages: Limpiar caché de páginas panel.cache.cleared: Caché limpiada -panel.cache.cleared.all: Todas cachés limpiadas +panel.cache.cleared.all: Todas las cachés limpiadas panel.cache.cleared.config: Caché de configuración limpiada panel.cache.cleared.images: Caché de imágenes limpiada panel.cache.cleared.pages: Caché de páginas limpiada