Websocket basic
Websocket basic
This commit is contained in:
@@ -215,6 +215,14 @@ export class JobService {
|
|||||||
this.communicationRepository.send(CommunicationEvent.UPLOAD_SUCCESS, asset.ownerId, mapAsset(asset));
|
this.communicationRepository.send(CommunicationEvent.UPLOAD_SUCCESS, asset.ownerId, mapAsset(asset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case JobName.SIDECAR_WRITE: {
|
||||||
|
const [asset] = await this.assetRepository.getByIds([item.data.id]);
|
||||||
|
if (asset) {
|
||||||
|
this.communicationRepository.send(CommunicationEvent.ASSET_UPDATE, asset.ownerId, mapAsset(asset));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// In addition to the above jobs, all of these should queue `SEARCH_INDEX_ASSET`
|
// In addition to the above jobs, all of these should queue `SEARCH_INDEX_ASSET`
|
||||||
|
|||||||
@@ -125,7 +125,6 @@
|
|||||||
longitude: gps.lng,
|
longitude: gps.lng,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
notificationController.show({ message: 'Metadata updated please reload to apply', type: NotificationType.Info });
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleError(error, 'Unable to change location');
|
handleError(error, 'Unable to change location');
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@
|
|||||||
await api.assetApi.updateAssets({
|
await api.assetApi.updateAssets({
|
||||||
assetBulkUpdateDto: { ids, dateTimeOriginal },
|
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) {
|
} catch (error) {
|
||||||
handleError(error, 'Unable to change date');
|
handleError(error, 'Unable to change date');
|
||||||
}
|
}
|
||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
longitude: point.lng,
|
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) {
|
} catch (error) {
|
||||||
handleError(error, 'Unable to update location');
|
handleError(error, 'Unable to update location');
|
||||||
}
|
}
|
||||||
@@ -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>
|
||||||
@@ -14,6 +14,7 @@ export const websocketStore = {
|
|||||||
onUploadSuccess: writable<AssetResponseDto>(),
|
onUploadSuccess: writable<AssetResponseDto>(),
|
||||||
onAssetDelete: writable<string>(),
|
onAssetDelete: writable<string>(),
|
||||||
onAssetTrash: writable<string[]>(),
|
onAssetTrash: writable<string[]>(),
|
||||||
|
onAssetUpdate: writable<AssetResponseDto>(),
|
||||||
onPersonThumbnail: writable<string>(),
|
onPersonThumbnail: writable<string>(),
|
||||||
serverVersion: writable<ServerVersionResponseDto>(),
|
serverVersion: writable<ServerVersionResponseDto>(),
|
||||||
connected: writable<boolean>(false),
|
connected: writable<boolean>(false),
|
||||||
@@ -41,6 +42,7 @@ export const openWebsocketConnection = () => {
|
|||||||
// .on('on_upload_success', (data) => websocketStore.onUploadSuccess.set(data))
|
// .on('on_upload_success', (data) => websocketStore.onUploadSuccess.set(data))
|
||||||
.on('on_asset_delete', (data) => websocketStore.onAssetDelete.set(data))
|
.on('on_asset_delete', (data) => websocketStore.onAssetDelete.set(data))
|
||||||
.on('on_asset_trash', (data) => websocketStore.onAssetTrash.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_person_thumbnail', (data) => websocketStore.onPersonThumbnail.set(data))
|
||||||
.on('on_server_version', (data) => websocketStore.serverVersion.set(data))
|
.on('on_server_version', (data) => websocketStore.serverVersion.set(data))
|
||||||
.on('on_config_update', () => loadConfig())
|
.on('on_config_update', () => loadConfig())
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
||||||
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
||||||
import FavoriteAction from '$lib/components/photos-page/actions/favorite-action.svelte';
|
import FavoriteAction from '$lib/components/photos-page/actions/favorite-action.svelte';
|
||||||
import ChangeDate from '$lib/components/photos-page/actions/change-date.svelte';
|
import ChangeDate from '$lib/components/photos-page/actions/change-date-action.svelte';
|
||||||
import ChangeLocation from '$lib/components/photos-page/actions/change-location.svelte';
|
import ChangeLocation from '$lib/components/photos-page/actions/change-location-action.svelte';
|
||||||
import RemoveFromAlbum from '$lib/components/photos-page/actions/remove-from-album.svelte';
|
import RemoveFromAlbum from '$lib/components/photos-page/actions/remove-from-album.svelte';
|
||||||
import SelectAllAssets from '$lib/components/photos-page/actions/select-all-assets.svelte';
|
import SelectAllAssets from '$lib/components/photos-page/actions/select-all-assets.svelte';
|
||||||
import AssetGrid from '$lib/components/photos-page/asset-grid.svelte';
|
import AssetGrid from '$lib/components/photos-page/asset-grid.svelte';
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
|
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
|
||||||
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
||||||
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
||||||
import ChangeDate from '$lib/components/photos-page/actions/change-date.svelte';
|
import ChangeDate from '$lib/components/photos-page/actions/change-date-action.svelte';
|
||||||
import ChangeLocation from '$lib/components/photos-page/actions/change-location.svelte';
|
import ChangeLocation from '$lib/components/photos-page/actions/change-location-action.svelte';
|
||||||
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
||||||
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
||||||
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
import SetBirthDateModal from '$lib/components/faces-page/set-birth-date-modal.svelte';
|
import SetBirthDateModal from '$lib/components/faces-page/set-birth-date-modal.svelte';
|
||||||
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
||||||
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
||||||
import ChangeDate from '$lib/components/photos-page/actions/change-date.svelte';
|
import ChangeDate from '$lib/components/photos-page/actions/change-date-action.svelte';
|
||||||
import ChangeLocation from '$lib/components/photos-page/actions/change-location.svelte';
|
import ChangeLocation from '$lib/components/photos-page/actions/change-location-action.svelte';
|
||||||
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
||||||
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
||||||
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
|
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
|
||||||
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
||||||
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
||||||
import ChangeDate from '$lib/components/photos-page/actions/change-date.svelte';
|
import ChangeDate from '$lib/components/photos-page/actions/change-date-action.svelte';
|
||||||
import ChangeLocation from '$lib/components/photos-page/actions/change-location.svelte';
|
import ChangeLocation from '$lib/components/photos-page/actions/change-location-action.svelte';
|
||||||
import AssetJobActions from '$lib/components/photos-page/actions/asset-job-actions.svelte';
|
import AssetJobActions from '$lib/components/photos-page/actions/asset-job-actions.svelte';
|
||||||
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
||||||
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
import { page } from '$app/stores';
|
import { page } from '$app/stores';
|
||||||
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
|
||||||
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
|
||||||
import ChangeDate from '$lib/components/photos-page/actions/change-date.svelte';
|
import ChangeDate from '$lib/components/photos-page/actions/change-location-action.svelte';
|
||||||
import ChangeLocation from '$lib/components/photos-page/actions/change-location.svelte';
|
import ChangeLocation from '$lib/components/photos-page/actions/change-datetion-action.svelte';
|
||||||
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
|
||||||
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
|
||||||
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
import NavigationLoadingBar from '$lib/components/shared-components/navigation-loading-bar.svelte';
|
import NavigationLoadingBar from '$lib/components/shared-components/navigation-loading-bar.svelte';
|
||||||
import DownloadPanel from '$lib/components/asset-viewer/download-panel.svelte';
|
import DownloadPanel from '$lib/components/asset-viewer/download-panel.svelte';
|
||||||
import UploadPanel from '$lib/components/shared-components/upload-panel.svelte';
|
import UploadPanel from '$lib/components/shared-components/upload-panel.svelte';
|
||||||
|
import UpdatePanel from '$lib/components/shared-components/update-panel.svelte';
|
||||||
import NotificationList from '$lib/components/shared-components/notification/notification-list.svelte';
|
import NotificationList from '$lib/components/shared-components/notification/notification-list.svelte';
|
||||||
import VersionAnnouncementBox from '$lib/components/shared-components/version-announcement-box.svelte';
|
import VersionAnnouncementBox from '$lib/components/shared-components/version-announcement-box.svelte';
|
||||||
import type { LayoutData } from './$types';
|
import type { LayoutData } from './$types';
|
||||||
@@ -120,6 +121,7 @@
|
|||||||
|
|
||||||
<DownloadPanel />
|
<DownloadPanel />
|
||||||
<UploadPanel />
|
<UploadPanel />
|
||||||
|
<UpdatePanel />
|
||||||
<NotificationList />
|
<NotificationList />
|
||||||
|
|
||||||
{#if data.user?.isAdmin}
|
{#if data.user?.isAdmin}
|
||||||
|
|||||||
Reference in New Issue
Block a user