From 22c348af27677cd97f124dc45f63276d91b40152 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 13 Dec 2024 13:47:47 +0100 Subject: [PATCH] Fix: fix possible failing upload (error report postmortem) --- src/Logic/ImageProviders/ImageUploadManager.ts | 14 +++++++++----- src/UI/Image/UploadImage.svelte | 10 +++++----- src/UI/SpecialVisualizations.ts | 4 ++-- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index 01f68b1da..11e1974cf 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -107,12 +107,15 @@ export class ImageUploadManager { * @param file a jpg file to upload * @param tagsStore The tags of the feature * @param targetKey Use this key to save the attribute under. Default: 'image' + * @param noblur if true, then the api call will indicate that the image is already blurred. The server won't apply blurring in this case + * @param feature the feature this image is about. Will be used as fallback to get the GPS-coordinates */ public async uploadImageAndApply( file: File, tagsStore: UIEventSource, targetKey: string, - noblur: boolean + noblur: boolean, + feature: Feature ): Promise { const canBeUploaded = this.canBeUploaded(file) if (canBeUploaded !== true) { @@ -130,7 +133,8 @@ export class ImageUploadManager { author, file, targetKey, - noblur + noblur, + feature ) if (!uploadResult) { return @@ -157,7 +161,7 @@ export class ImageUploadManager { blob: File, targetKey: string | undefined, noblur: boolean, - feature?: Feature, + feature: Feature, ignoreGps: boolean = false ): Promise { this.increaseCountFor(this._uploadStarted, featureId) @@ -186,7 +190,7 @@ export class ImageUploadManager { } } try { - ;({ key, value, absoluteUrl } = await this._uploader.uploadImage( + ({ key, value, absoluteUrl } = await this._uploader.uploadImage( blob, location, author, @@ -196,7 +200,7 @@ export class ImageUploadManager { this.increaseCountFor(this._uploadRetried, featureId) console.error("Could not upload image, trying again:", e) try { - ;({ key, value, absoluteUrl } = await this._uploader.uploadImage( + ({ key, value, absoluteUrl } = await this._uploader.uploadImage( blob, location, author, diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index 250da9d3e..8e6a8c284 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -13,10 +13,10 @@ import FileSelector from "../Base/FileSelector.svelte" import LoginButton from "../Base/LoginButton.svelte" import { Translation } from "../i18n/Translation" - import Camera from "@babeard/svelte-heroicons/solid/Camera" import LayerConfig from "../../Models/ThemeConfig/LayerConfig" import NoteCommentElement from "../Popup/Notes/NoteCommentElement" import type { Feature } from "geojson" + import Camera from "@babeard/svelte-heroicons/mini/Camera" export let state: SpecialVisualizationState @@ -24,7 +24,7 @@ export let targetKey: string = undefined export let layer: LayerConfig export let noBlur: boolean = false - export let feature: Feature = undefined + export let feature: Feature /** * Image to show in the button * NOT the image to upload! @@ -65,13 +65,13 @@ } const url = uploadResult.absoluteUrl await state.osmConnection.addCommentToNote(tags.data.id, url) - NoteCommentElement.addCommentTo(url, >tags, { + NoteCommentElement.addCommentTo(url, >tags, { osmConnection: state.osmConnection, }) return } - await state?.imageUploadManager?.uploadImageAndApply(file, tags, targetKey, noBlur) + await state?.imageUploadManager?.uploadImageAndApply(file, tags, targetKey, noBlur, feature) } catch (e) { console.error(e) state.reportError(e, "Could not upload image") @@ -133,9 +133,9 @@ cls="flex justify-center md:hidden button" multiple={true} on:submit={(e) => { - return handleFiles(e.detail, true) e.preventDefault() e.stopPropagation() + return handleFiles(e.detail, true) }} > diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index 9b709ef0b..412805f01 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -750,7 +750,7 @@ export default class SpecialVisualizations { feature, labelText: args[1], image: args[2], - noBlur: noBlur === "true" || noBlur === "yes", + noBlur: noBlur === "true" || noBlur === "yes" }) }, }, @@ -1090,7 +1090,7 @@ export default class SpecialVisualizations { tags .map((tags) => tags[args[0]]) .map((commentsStr) => { - const comments: any[] = JSON.parse(commentsStr) + const comments: { text: string }[] = JSON.parse(commentsStr) const startLoc = Number(args[1] ?? 0) if (!isNaN(startLoc) && startLoc > 0) { comments.splice(0, startLoc)