diff --git a/webapp/packages/core-app/public/icons/collapse_m.svg b/webapp/packages/core-app/public/icons/collapse_m.svg
index 4581b68233..0511a33e57 100644
--- a/webapp/packages/core-app/public/icons/collapse_m.svg
+++ b/webapp/packages/core-app/public/icons/collapse_m.svg
@@ -7,7 +7,7 @@
}
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/core-app/public/icons/settings_cog_m.svg b/webapp/packages/core-app/public/icons/settings_cog_m.svg
index cc3421c2a5..11b72dcba4 100644
--- a/webapp/packages/core-app/public/icons/settings_cog_m.svg
+++ b/webapp/packages/core-app/public/icons/settings_cog_m.svg
@@ -7,6 +7,6 @@
}
-
-
+
+
\ No newline at end of file
diff --git a/webapp/packages/core-blocks/public/icons/refresh.svg b/webapp/packages/core-blocks/public/icons/refresh.svg
index 16a85aa928..3dd370c310 100644
--- a/webapp/packages/core-blocks/public/icons/refresh.svg
+++ b/webapp/packages/core-blocks/public/icons/refresh.svg
@@ -7,6 +7,7 @@
}
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/core-blocks/public/icons/refresh_m.svg b/webapp/packages/core-blocks/public/icons/refresh_m.svg
index 34919acb02..de3896d3f7 100644
--- a/webapp/packages/core-blocks/public/icons/refresh_m.svg
+++ b/webapp/packages/core-blocks/public/icons/refresh_m.svg
@@ -8,8 +8,10 @@
}
-
+ d="M12,21.43c-5.2,0-9.43-4.23-9.43-9.43S6.8,2.57,12,2.57s9.43,4.23,9.43,9.43c0,3.09-1.5,5.82-3.8,7.54.25.19.46.42.61.71.13.17.23.36.35.54,2.67-2.01,4.4-5.19,4.4-8.79,0-6.08-4.92-11-11-11S1,5.92,1,12s4.92,11,11,11c0,0,0-1.57,0-1.57Z" />
+
+
\ No newline at end of file
diff --git a/webapp/packages/core-blocks/public/icons/refresh_sm.svg b/webapp/packages/core-blocks/public/icons/refresh_sm.svg
index b6f6a9a4e2..f94a6535ef 100644
--- a/webapp/packages/core-blocks/public/icons/refresh_sm.svg
+++ b/webapp/packages/core-blocks/public/icons/refresh_sm.svg
@@ -3,10 +3,12 @@
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/core-browser/src/service-worker.ts b/webapp/packages/core-browser/src/service-worker.ts
index a0d79c7ea7..cf754e8dc9 100644
--- a/webapp/packages/core-browser/src/service-worker.ts
+++ b/webapp/packages/core-browser/src/service-worker.ts
@@ -1,6 +1,6 @@
/*
* CloudBeaver - Cloud Database Manager
- * Copyright (C) 2020-2024 DBeaver Corp and others
+ * Copyright (C) 2020-2025 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
@@ -18,6 +18,9 @@ import { CacheFirst } from 'workbox-strategies';
declare const self: ServiceWorkerGlobalScope;
const manifest = self.__WB_MANIFEST;
+const imagesCacheName = 'images';
+const fontsCacheName = 'fonts';
+
async function broadcastMessage(message: Record) {
const clients = await self.clients.matchAll({ includeUncontrolled: true });
clients.forEach(client => {
@@ -25,7 +28,7 @@ async function broadcastMessage(message: Record) {
});
}
-addEventListener('fetch', async event => {
+addEventListener('fetch', event => {
if (!(event instanceof FetchEvent)) {
return;
}
@@ -60,6 +63,25 @@ self.addEventListener('install', () => {
self.skipWaiting();
});
+self.addEventListener('activate', event => {
+ event.waitUntil(
+ (async () => {
+ // Clean fonts and images caches when service worker updates
+ const cacheNames = await caches.keys();
+ const cacheNamesToDelete = cacheNames.filter(cacheName => cacheName === fontsCacheName || cacheName === imagesCacheName);
+
+ await Promise.all(cacheNamesToDelete.map(cacheName => caches.delete(cacheName)));
+
+ if (cacheNamesToDelete.length > 0) {
+ await broadcastMessage({
+ type: 'caches-cleared',
+ clearedCaches: cacheNamesToDelete,
+ });
+ }
+ })(),
+ );
+});
+
function createUpdateProgressPlugin(): WorkboxPlugin {
const precacheController = getOrCreatePrecacheController();
let updated = 0;
@@ -103,7 +125,7 @@ precacheAndRoute(manifest);
registerRoute(
({ request }) => request.destination === 'font',
new CacheFirst({
- cacheName: 'fonts',
+ cacheName: fontsCacheName,
plugins: [
new CacheableResponsePlugin({
statuses: [0, 200],
@@ -119,7 +141,7 @@ registerRoute(
registerRoute(
({ request, url }) => url.origin === self.location.origin && request.destination === 'image',
new CacheFirst({
- cacheName: 'images',
+ cacheName: imagesCacheName,
plugins: [
new CacheableResponsePlugin({
statuses: [0, 200],
diff --git a/webapp/packages/plugin-connections/public/icons/folder.svg b/webapp/packages/plugin-connections/public/icons/folder.svg
index 307fc1ac2f..876915fbbc 100644
--- a/webapp/packages/plugin-connections/public/icons/folder.svg
+++ b/webapp/packages/plugin-connections/public/icons/folder.svg
@@ -3,15 +3,11 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/plugin-connections/public/icons/folder_m.svg b/webapp/packages/plugin-connections/public/icons/folder_m.svg
index 6fcfed61b2..e54a3499b7 100644
--- a/webapp/packages/plugin-connections/public/icons/folder_m.svg
+++ b/webapp/packages/plugin-connections/public/icons/folder_m.svg
@@ -3,15 +3,11 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/plugin-connections/public/icons/folder_sm.svg b/webapp/packages/plugin-connections/public/icons/folder_sm.svg
index a19e49c67e..a7ddd085bf 100644
--- a/webapp/packages/plugin-connections/public/icons/folder_sm.svg
+++ b/webapp/packages/plugin-connections/public/icons/folder_sm.svg
@@ -3,15 +3,11 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/plugin-connections/public/icons/plugin_connection_new.svg b/webapp/packages/plugin-connections/public/icons/plugin_connection_new.svg
index bd1f3d9d71..d6df40808b 100644
--- a/webapp/packages/plugin-connections/public/icons/plugin_connection_new.svg
+++ b/webapp/packages/plugin-connections/public/icons/plugin_connection_new.svg
@@ -3,15 +3,11 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/plugin-connections/public/icons/plugin_connection_new_m.svg b/webapp/packages/plugin-connections/public/icons/plugin_connection_new_m.svg
index 37774450ce..dfe17716d6 100644
--- a/webapp/packages/plugin-connections/public/icons/plugin_connection_new_m.svg
+++ b/webapp/packages/plugin-connections/public/icons/plugin_connection_new_m.svg
@@ -3,15 +3,11 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/webapp/packages/plugin-connections/public/icons/plugin_connection_new_sm.svg b/webapp/packages/plugin-connections/public/icons/plugin_connection_new_sm.svg
index 1bf050d69c..0d3120ed5d 100644
--- a/webapp/packages/plugin-connections/public/icons/plugin_connection_new_sm.svg
+++ b/webapp/packages/plugin-connections/public/icons/plugin_connection_new_sm.svg
@@ -3,16 +3,12 @@
-
-
-
+
+
+
\ No newline at end of file