feat(web/server): Add options to rerun job on all assets (#1422)
This commit is contained in:
@@ -18,20 +18,28 @@
|
||||
|
||||
onMount(async () => {
|
||||
await load();
|
||||
timer = setInterval(async () => await load(), 5_000);
|
||||
timer = setInterval(async () => await load(), 1_000);
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
clearInterval(timer);
|
||||
});
|
||||
|
||||
const run = async (jobId: JobId, jobName: string, emptyMessage: string) => {
|
||||
const run = async (
|
||||
jobId: JobId,
|
||||
jobName: string,
|
||||
emptyMessage: string,
|
||||
includeAllAssets: boolean
|
||||
) => {
|
||||
try {
|
||||
const { data } = await api.jobApi.sendJobCommand(jobId, { command: JobCommand.Start });
|
||||
const { data } = await api.jobApi.sendJobCommand(jobId, {
|
||||
command: JobCommand.Start,
|
||||
includeAllAssets
|
||||
});
|
||||
|
||||
if (data) {
|
||||
notificationController.show({
|
||||
message: `Started ${jobName}`,
|
||||
message: includeAllAssets ? `Started ${jobName} for all assets` : `Started ${jobName}`,
|
||||
type: NotificationType.Info
|
||||
});
|
||||
} else {
|
||||
@@ -43,53 +51,77 @@
|
||||
};
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col gap-10">
|
||||
<div class="flex flex-col gap-7">
|
||||
{#if jobs}
|
||||
<JobTile
|
||||
title={'Generate thumbnails'}
|
||||
subtitle={'Regenerate missing thumbnail (JPEG, WEBP)'}
|
||||
on:click={() =>
|
||||
run(JobId.ThumbnailGeneration, 'thumbnail generation', 'No missing thumbnails found')}
|
||||
subtitle={'Regenerate JPEG and WebP thumbnails'}
|
||||
on:click={(e) => {
|
||||
const { includeAllAssets } = e.detail;
|
||||
|
||||
run(
|
||||
JobId.ThumbnailGeneration,
|
||||
'thumbnail generation',
|
||||
'No missing thumbnails found',
|
||||
includeAllAssets
|
||||
);
|
||||
}}
|
||||
jobCounts={jobs[JobId.ThumbnailGeneration]}
|
||||
/>
|
||||
|
||||
<JobTile
|
||||
title={'Extract EXIF'}
|
||||
subtitle={'Extract missing EXIF information'}
|
||||
on:click={() => run(JobId.MetadataExtraction, 'extract EXIF', 'No missing EXIF found')}
|
||||
title={'EXTRACT METADATA'}
|
||||
subtitle={'Extract metadata information i.e. GPS, resolution...etc'}
|
||||
on:click={(e) => {
|
||||
const { includeAllAssets } = e.detail;
|
||||
run(JobId.MetadataExtraction, 'extract EXIF', 'No missing EXIF found', includeAllAssets);
|
||||
}}
|
||||
jobCounts={jobs[JobId.MetadataExtraction]}
|
||||
/>
|
||||
|
||||
<JobTile
|
||||
title={'Detect objects'}
|
||||
subtitle={'Run machine learning process to detect and classify objects'}
|
||||
on:click={() =>
|
||||
run(JobId.MachineLearning, 'object detection', 'No missing object detection found')}
|
||||
on:click={(e) => {
|
||||
const { includeAllAssets } = e.detail;
|
||||
|
||||
run(
|
||||
JobId.MachineLearning,
|
||||
'object detection',
|
||||
'No missing object detection found',
|
||||
includeAllAssets
|
||||
);
|
||||
}}
|
||||
jobCounts={jobs[JobId.MachineLearning]}
|
||||
>
|
||||
Note that some assets may not have any objects detected, this is normal.
|
||||
Note that some assets may not have any objects detected
|
||||
</JobTile>
|
||||
|
||||
<JobTile
|
||||
title={'Video transcoding'}
|
||||
subtitle={'Run video transcoding process to transcode videos not in the desired format'}
|
||||
on:click={() =>
|
||||
subtitle={'Transcode videos not in the desired format'}
|
||||
on:click={(e) => {
|
||||
const { includeAllAssets } = e.detail;
|
||||
run(
|
||||
JobId.VideoConversion,
|
||||
'video conversion',
|
||||
'No videos without an encoded version found'
|
||||
)}
|
||||
'No videos without an encoded version found',
|
||||
includeAllAssets
|
||||
);
|
||||
}}
|
||||
jobCounts={jobs[JobId.VideoConversion]}
|
||||
/>
|
||||
|
||||
<JobTile
|
||||
title={'Storage migration'}
|
||||
showOptions={false}
|
||||
subtitle={''}
|
||||
on:click={() =>
|
||||
run(
|
||||
JobId.StorageTemplateMigration,
|
||||
'storage template migration',
|
||||
'All files have been migrated to the new storage template'
|
||||
'All files have been migrated to the new storage template',
|
||||
false
|
||||
)}
|
||||
jobCounts={jobs[JobId.StorageTemplateMigration]}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user