From 46dac2e34e3edbd289d8ce11c15788610b5fa074 Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Thu, 25 Apr 2024 18:24:53 -0400 Subject: [PATCH] fixup! Add front-end for image upload --- .../components/ControlledListManager/ItemEditor.vue | 11 ++++++++++- arches/app/views/controlled_lists.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/arches/app/src/components/ControlledListManager/ItemEditor.vue b/arches/app/src/components/ControlledListManager/ItemEditor.vue index d6416080a43..cde0a3b815d 100644 --- a/arches/app/src/components/ControlledListManager/ItemEditor.vue +++ b/arches/app/src/components/ControlledListManager/ItemEditor.vue @@ -19,7 +19,7 @@ import { } from "@/components/ControlledListManager/const.ts"; import { bestLabel } from "@/components/ControlledListManager/utils.ts"; -import type { FileUploadBeforeSendEvent } from "primevue/fileupload"; +import type { FileUploadBeforeSendEvent, FileUploadUploadEvent } from "primevue/fileupload"; import type { ControlledListItem, Label, NewLabel } from "@/types/ControlledListManager"; const { displayedRow: item } = inject(displayedRowKey); @@ -55,6 +55,14 @@ const addHeader = (event: FileUploadBeforeSendEvent) => { event.xhr.setRequestHeader("X-CSRFToken", Cookies.get("csrftoken")); event.formData.set("item_id", item.value.id); }; + +const onUpload = (event: FileUploadUploadEvent) => { + if (event.xhr.status !== 201) { + return; + } + const newImage = JSON.parse(event.xhr.responseText); + item.value.images.push(newImage); +}; diff --git a/arches/app/views/controlled_lists.py b/arches/app/views/controlled_lists.py index 7b1ce598a3a..31109145f9d 100644 --- a/arches/app/views/controlled_lists.py +++ b/arches/app/views/controlled_lists.py @@ -554,7 +554,7 @@ def add_new_image(self, request): value=uploaded_file, ) img.save() - return JSONResponse(status=201) + return JSONResponse(serialize(img), status=201) def post(self, request, **kwargs): if not (image_id := kwargs.get("id", None)):