Websocket basic

Websocket basic
This commit is contained in:
yannfrendo
2023-11-23 17:02:45 +01:00
parent 867ace738d
commit 0ac9f152cf
12 changed files with 56 additions and 13 deletions

View File

@@ -125,7 +125,6 @@
longitude: gps.lng,
},
});
notificationController.show({ message: 'Metadata updated please reload to apply', type: NotificationType.Info });
} catch (error) {
handleError(error, 'Unable to change location');
}

View File

@@ -24,7 +24,7 @@
await api.assetApi.updateAssets({
assetBulkUpdateDto: { ids, dateTimeOriginal },
});
notificationController.show({ message: 'Metadata updated please reload to apply', type: NotificationType.Info });
notificationController.show({ message: 'Updating date please wait', type: NotificationType.Info });
} catch (error) {
handleError(error, 'Unable to change date');
}

View File

@@ -29,7 +29,7 @@
longitude: point.lng,
},
});
notificationController.show({ message: 'Metadata updated please reload to apply', type: NotificationType.Info });
notificationController.show({ message: 'Updating location please wait', type: NotificationType.Info });
} catch (error) {
handleError(error, 'Unable to update location');
}

View File

@@ -0,0 +1,32 @@
<script lang="ts">
import { websocketStore } from '$lib/stores/websocket';
import { notificationController, NotificationType } from './notification/notification';
let assetUpdateCount = 0;
let lastAssetName;
let timeoutId;
const subscribe = websocketStore.onAssetUpdate.subscribe(value => {
if (value && value.originalFileName) {
lastAssetName = value.originalFileName;
assetUpdateCount++;
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
if (assetUpdateCount === 1) {
notificationController.show({
message: `Asset updated: ${lastAssetName}.\nPlease reload to apply changes`,
type: NotificationType.Info,
});
} else {
notificationController.show({
message: `${assetUpdateCount} assets updated.\nPlease reload to apply changes`,
type: NotificationType.Info,
});
}
assetUpdateCount = 0;
}, 500);
}
});
</script>

View File

@@ -14,6 +14,7 @@ export const websocketStore = {
onUploadSuccess: writable<AssetResponseDto>(),
onAssetDelete: writable<string>(),
onAssetTrash: writable<string[]>(),
onAssetUpdate: writable<AssetResponseDto>(),
onPersonThumbnail: writable<string>(),
serverVersion: writable<ServerVersionResponseDto>(),
connected: writable<boolean>(false),
@@ -41,6 +42,7 @@ export const openWebsocketConnection = () => {
// .on('on_upload_success', (data) => websocketStore.onUploadSuccess.set(data))
.on('on_asset_delete', (data) => websocketStore.onAssetDelete.set(data))
.on('on_asset_trash', (data) => websocketStore.onAssetTrash.set(data))
.on('on_asset_update', (data) => websocketStore.onAssetUpdate.set(data))
.on('on_person_thumbnail', (data) => websocketStore.onPersonThumbnail.set(data))
.on('on_server_version', (data) => websocketStore.serverVersion.set(data))
.on('on_config_update', () => loadConfig())