fixing attachments for public apps

This commit is contained in:
Martin McKeaveney 2021-06-08 12:50:58 +01:00
parent 0221f9de60
commit 536c2c317c
4 changed files with 12 additions and 8 deletions

View File

@ -3,9 +3,9 @@ import API from "./api"
/**
* Uploads an attachment to the server.
*/
export const uploadAttachment = async data => {
export const uploadAttachment = async (data, tableId = "") => {
return await API.post({
url: "/api/attachments/upload",
url: `/api/attachments/${tableId}/upload`,
body: data,
json: false,
})

View File

@ -7,8 +7,8 @@ const {
PermissionTypes,
PermissionLevels,
} = require("@budibase/auth/permissions")
const usage = require("../../middleware/usageQuota")
const env = require("../../environment")
const { paramResource } = require("../../middleware/resourceId")
const router = Router()
@ -39,9 +39,9 @@ router
.get("/builder/:file*", controller.serveBuilder)
.post("/api/attachments/process", authorized(BUILDER), controller.uploadFile)
.post(
"/api/attachments/upload",
"/api/attachments/:tableId/upload",
paramResource("tableId"),
authorized(PermissionTypes.TABLE, PermissionLevels.WRITE),
usage,
controller.uploadFile
)
.get("/componentlibrary", controller.serveComponentLibrary)

View File

@ -9,8 +9,10 @@
let fieldState
let fieldApi
let fieldSchema
const { API, notifications } = getContext("sdk")
const formContext = getContext("form")
const BYTES_IN_MB = 1000000
export let files = []
@ -28,7 +30,7 @@
for (let i = 0; i < fileList.length; i++) {
data.append("file", fileList[i])
}
return await API.uploadAttachment(data)
return await API.uploadAttachment(data, formContext?.dataSource?.tableId)
}
</script>
@ -45,7 +47,9 @@
<CoreDropzone
value={$fieldState.value}
disabled={$fieldState.disabled}
on:change={e => fieldApi.setValue(e.detail)}
on:change={e => {
fieldApi.setValue(e.detail)
}}
{processFiles}
{handleFileTooLarge}
/>

View File

@ -80,7 +80,7 @@
}
// Provide both form API and state to children
setContext("form", { formApi, formState })
setContext("form", { formApi, formState, dataSource })
// Action context to pass to children
$: actions = [{ type: ActionTypes.ValidateForm, callback: formApi.validate }]