From 6900dedd3e20b44fed4652dd98831a9e1d6a693f Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 25 Nov 2024 18:00:30 +0100 Subject: [PATCH] Experiment: more finetuning of the filepickers, see #2202 --- langs/en.json | 3 ++- src/Logic/ImageProviders/ImageUploadManager.ts | 5 +++-- src/UI/Base/FileSelector.svelte | 2 ++ src/UI/Image/UploadImage.svelte | 18 ++++++++++-------- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/langs/en.json b/langs/en.json index e52bf45e91..a48943fc9c 100644 --- a/langs/en.json +++ b/langs/en.json @@ -588,7 +588,7 @@ "translationMode": "Toggle translation mode on or off" }, "image": { - "addPicture": "Add picture", + "addPicture": "Take a picture", "currentLicense": "Your images will be published under {license}", "doDelete": "Remove image", "dontDelete": "Cancel", @@ -622,6 +622,7 @@ "pleaseLogin": "Please log in to add a picture", "processing": "The server is processing your image", "respectPrivacy": "Do not upload from Google Maps, Google Streetview or other copyrighted sources.", + "selectFile": "Select a picture from your device", "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}", "unlink": { "button": "Unlink picture", diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index 87108b75cf..49c878bcbc 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -157,14 +157,15 @@ export class ImageUploadManager { blob: File, targetKey: string | undefined, noblur: boolean, - feature?: Feature + feature?: Feature, + ignoreGps: boolean = false ): Promise { this.increaseCountFor(this._uploadStarted, featureId) let key: string let value: string let absoluteUrl: string let location: [number, number] = undefined - if (this._gps.data) { + if (this._gps.data && !ignoreGps) { location = [this._gps.data.longitude, this._gps.data.latitude] } if (location === undefined || location?.some((l) => l === undefined)) { diff --git a/src/UI/Base/FileSelector.svelte b/src/UI/Base/FileSelector.svelte index b4317656b2..28351fafb9 100644 --- a/src/UI/Base/FileSelector.svelte +++ b/src/UI/Base/FileSelector.svelte @@ -3,6 +3,7 @@ import { twMerge } from "tailwind-merge" export let accept: string | undefined + export let capture: string | undefined = undefined export let multiple: boolean = true const dispatcher = createEventDispatcher<{ submit: FileList }>() @@ -98,5 +99,6 @@ {multiple} name="file-input" type="file" + {capture} /> diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index c5877e2621..d37d2f5418 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -38,7 +38,7 @@ let errors = new UIEventSource([]) - async function handleFiles(files: FileList) { + async function handleFiles(files: FileList, ignoreGps: boolean= false) { const errs = [] for (let i = 0; i < files.length; i++) { const file = files.item(i) @@ -57,7 +57,8 @@ file, "image", noBlur, - feature + feature, + ignoreGps ) if (!uploadResult) { return @@ -97,7 +98,8 @@ {/each} handleFiles(e.detail)} @@ -112,7 +114,7 @@ {labelText} {:else}
- + {#if noBlur} @@ -123,12 +125,12 @@
handleFiles(e.detail)} + on:submit={(e) => handleFiles(e.detail, true)} > - Use the file selector dialog +