diff --git a/frontend/components/Item/CreateModal.vue b/frontend/components/Item/CreateModal.vue
index c8000868..f0884311 100644
--- a/frontend/components/Item/CreateModal.vue
+++ b/frontend/components/Item/CreateModal.vue
@@ -6,8 +6,14 @@
file name: {{ form.photo.name }}
+use Shift + Enter to create and add another @@ -41,6 +58,7 @@ import MdiPackageVariant from "~icons/mdi/package-variant"; import MdiPackageVariantClosed from "~icons/mdi/package-variant-closed"; import MdiChevronDown from "~icons/mdi/chevron-down"; + import { AttachmentTypes } from "~~/lib/api/types/non-generated"; const props = defineProps({ modelValue: { @@ -85,10 +103,40 @@ description: "", color: "", // Future! labels: [] as LabelOut[], + preview: null, + photo: null }); const { shift } = useMagicKeys(); + function previewImage(event) { + var input = event.target; + if (input.files) { + var reader = new FileReader(); + reader.onload = (e) => { + form.preview = e.target.result; + } + form.photo=input.files[0]; + reader.readAsDataURL(input.files[0]); + } + } + + + function uploadImage(e: Event) { + const files = (e.target as HTMLInputElement).files; + if (!files || !files.item(0)) { + return; + } + + const first = files.item(0); + if (!first) { + return; + } + + uploadAttachment([first], null); + } + + whenever( () => modal.value, () => { @@ -133,10 +181,25 @@ toast.success("Item created"); + // if the photo was provided, upload it + if(form.photo){ + const { data2, error } = await api.items.attachments.add(data.id, form.photo, form.photo.name, AttachmentTypes.Photo); + + if (error) { + toast.error("Failed to upload Photo"); + return; + } + + toast.success("Photo uploaded"); + } + + // Reset form.name = ""; form.description = ""; form.color = ""; + form.preview = null; + form.photo = null; focused.value = false; loading.value = false; diff --git a/frontend/locales/en.json b/frontend/locales/en.json index 19fa8804..6959e6db 100644 --- a/frontend/locales/en.json +++ b/frontend/locales/en.json @@ -18,7 +18,8 @@ }, "item": { "create_modal": { - "title": "Create Item" + "title": "Create Item", + "photo_button": "Photo \uD83D\uDCF7" }, "view": { "selectable": {