forked from MapComplete/MapComplete
		
	Fix: fix possible failing upload (error report postmortem)
This commit is contained in:
		
							parent
							
								
									db058f4025
								
							
						
					
					
						commit
						22c348af27
					
				
					 3 changed files with 16 additions and 12 deletions
				
			
		|  | @ -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<OsmTags>, | ||||
|         targetKey: string, | ||||
|         noblur: boolean | ||||
|         noblur: boolean, | ||||
|         feature: Feature | ||||
|     ): Promise<void> { | ||||
|         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<UploadResult> { | ||||
|         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, | ||||
|  |  | |||
|  | @ -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, <UIEventSource<any>>tags, { | ||||
|           NoteCommentElement.addCommentTo(url, <UIEventSource<OsmTags>>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) | ||||
|         }} | ||||
|       > | ||||
|         <Tr t={t.selectFile} /> | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue