diff --git a/src/components/forms/formGenerator.js b/src/components/forms/formGenerator.js
index 7f906c5..86b00d7 100644
--- a/src/components/forms/formGenerator.js
+++ b/src/components/forms/formGenerator.js
@@ -14,7 +14,9 @@ export const FormGenerator = ({
const handler = async (event) => {
event.preventDefault()
- if ( inputList[0].action === 'Download' ) {
+ if ( inputList[0].action === 'Download'
+ || inputList[0].action === 'Upload'
+ ) {
await action()
} else {
for (let i = 0; i < refList.length; i++) {
@@ -215,7 +217,8 @@ const UploadInputGenerator = ({
const onLoadFile = async (event) => {
event.preventDefault()
let data = event.target.files[0]
- input.setFile(await toBase64(data))
+ // input.setFile(await toBase64(data))
+ input.setFile( data )
setDropInfos(data.name, data.size)
}
@@ -223,11 +226,12 @@ const UploadInputGenerator = ({
event.preventDefault()
event.persist()
let data = event.dataTransfer.files[0]
- input.setFile(await toBase64(data))
+ // input.setFile(await toBase64(data))
+ input.setFile( data )
setDropInfos(data.name, data.size)
}
- const toBase64 = (file) => new Promise((resolve, reject) => {
+ const toBase64 = async (file) => new Promise((resolve, reject) => {
let fileReader = new FileReader()
fileReader.readAsDataURL(file)
fileReader.onload = () => resolve(fileReader.result)
diff --git a/src/components/forms/model_crud/modelUpload.js b/src/components/forms/model_crud/modelUpload.js
index de69c65..f36572a 100644
--- a/src/components/forms/model_crud/modelUpload.js
+++ b/src/components/forms/model_crud/modelUpload.js
@@ -1,8 +1,58 @@
-import React from 'react'
+import React, { useState } from 'react'
+import { useSelector, useDispatch } from 'react-redux'
+
+import { userAuthSelector } from '../../../redux/slices/userAuthSlice'
+import { modelCrudSelector } from '../../../redux/slices/modelCrudSlice'
+import modelCrudAsyncThunk from '../../../redux/asyncThunks/modelCrudAsyncThunk'
+
+import FormGenerator from '../formGenerator'
+
const ModelUploadForm = () => {
+
+ const dispatch = useDispatch()
+
+ const [blend, setBlend] = useState('')
+ const [blendInfo, setBlendInfo] = useState('Drop/Click\nfor upload "*.blend" file')
+
+ const { upload_blend_file_status } = useSelector( modelCrudSelector )
+ const { user, token } = useSelector( userAuthSelector )
+
+ let inputList = [
+ {
+ type: 'info',
+ action: 'Upload',
+ endpint: 'model/upload',
+ button_value: 'Upload Model'
+ },
+ {
+ type: 'file',
+ name: 'Model',
+ fileType: 'blender',
+ dropInfo: blendInfo,
+ setDropInfo: setBlendInfo,
+ file: blend,
+ setFile: setBlend
+ }
+ ]
+
+ const handleModelUpload = () => {
+ let body = {
+ user_id: user.id,
+ file: blend,
+ token: token
+ }
+ console.log( body )
+ dispatch( modelCrudAsyncThunk.fetchUploadModel( body ) )
+ }
+
return (
<>
+
>
)
}
diff --git a/src/components/forms/render_crud/renderShowReadyRendersAndDownload.js b/src/components/forms/render_crud/renderShowReadyRendersAndDownload.js
index e69de29..5b003c4 100644
--- a/src/components/forms/render_crud/renderShowReadyRendersAndDownload.js
+++ b/src/components/forms/render_crud/renderShowReadyRendersAndDownload.js
@@ -0,0 +1,65 @@
+import React, { useEffect } from 'react'
+
+import { useSelector, useDispatch } from 'react-redux'
+
+import { userAuthSelector } from '../../../redux/slices/userAuthSlice'
+import { renderCrudSelector } from '../../../redux/slices/renderCrudSlice'
+import renderCrudAsyncThunk from '../../../redux/asyncThunks/renderCrudAsyncThunk'
+
+import { GeneralAddress } from '../../../redux/asyncThunks/abstracts/abstractAddress'
+
+import FormGenerator from '../formGenerator'
+
+
+const RenderShowAndDownloadForm = () => {
+
+ const dispatch = useDispatch()
+
+ const { render_list } = useSelector( renderCrudSelector )
+ const { user, token } = useSelector( userAuthSelector )
+
+ let blocker = false
+
+ useEffect(
+ () => {
+ if ( render_list.length === 0 && user.id > 0 && token !== '' && !blocker ) {
+ dispatch( renderCrudAsyncThunk.fetchGetAllRenders( token ) )
+ if ( render_list.length === 0 ) {
+ blocker = true
+ }
+ }
+ }
+ )
+
+ let inputList = [
+ {
+ type: 'info',
+ action: 'Download',
+ endpint: 'model/download',
+ button_value: 'Refresh Renders List'
+ },
+ {
+ type: 'drop-box',
+ name: 'Renders',
+ values: render_list,
+ link: GeneralAddress + '/render/',
+ }
+ ]
+
+ const handleRefresh = () => {
+ dispatch( renderCrudAsyncThunk.fetchGetAllRenders( token ) )
+ }
+
+ return (
+ <>
+
+ >
+ )
+
+}
+
+export default RenderShowAndDownloadForm
\ No newline at end of file
diff --git a/src/pages/func_group/navigationBar.js b/src/pages/func_group/navigationBar.js
index 857350c..22da780 100644
--- a/src/pages/func_group/navigationBar.js
+++ b/src/pages/func_group/navigationBar.js
@@ -10,17 +10,17 @@ import userAuthAsyncThunk from '../../redux/asyncThunks/userAuthAsyncThunk'
const __setShowGeneral = ( view, key, movements ) => {
- movements.user_view.userCrudView = {
+ let user_default = {
update_user: false,
delete_user: false
}
- movements.model_view.modelCrudView = {
+ let model_default = {
show_models_and_dwonload: false,
upload_model: false
}
- movements.render_view.renderView = {
+ let render_default = {
show_ready_renders_and_download: false,
render_functionality: {
render_single_image: false,
@@ -37,6 +37,12 @@ const __setShowGeneral = ( view, key, movements ) => {
movements.user_view.setUserCrudView(
new_move
)
+ movements.model_view.setModelCrudView(
+ model_default
+ )
+ movements.render_view.setRenderView(
+ render_default
+ )
} else if (view === 'model_view') {
let new_move = movements.model_view.modelCrudView
@@ -44,19 +50,31 @@ const __setShowGeneral = ( view, key, movements ) => {
movements.model_view.setModelCrudView(
new_move
)
+ movements.user_view.setUserCrudView(
+ user_default
+ )
+ movements.render_view.setRenderView(
+ render_default
+ )
} else if (view === 'render_view') {
let new_move = movements.render_view.renderView
if ( key in new_move ) {
new_move[key] = true
- movements.model_view.setModelCrudView(
+ movements.render_view.setRenderView(
new_move
)
} else {
new_move['render_functionality'][key] = true
- movements.model_view.setModelCrudView(
+ movements.render_view.setRenderView(
new_move
)
}
+ movements.model_view.setModelCrudView(
+ model_default
+ )
+ movements.user_view.setUserCrudView(
+ user_default
+ )
}
}
@@ -82,7 +100,7 @@ const NavigationBar = ({ movements }) => {
const dispatch = useDispatch()
useEffect( () => {
- if ( user_get === {} && token !== '' && user.id > 0)
+ if ( Object.keys(user_get).length === 0 && token !== '' && user.id > 0)
dispatch(
userCrudAsyncThunk.fetchGetOneUser(
{
diff --git a/src/pages/func_group/render/renderIndex.js b/src/pages/func_group/render/renderIndex.js
new file mode 100644
index 0000000..899c8bc
--- /dev/null
+++ b/src/pages/func_group/render/renderIndex.js
@@ -0,0 +1,42 @@
+import React, { useState, useEffect } from 'react'
+
+import RenderShowAndDownloadForm from '../../../components/forms/render_crud/renderShowReadyRendersAndDownload'
+
+const __handleSwap = (name, movement) => {
+
+ let display = {
+ display: 'block'
+ }
+
+ let hide = {
+ display: 'none'
+ }
+
+ if ( Object.keys(movement['movement']).includes(name) ) {
+ if (movement['movement'][name])
+ return display
+ else
+ return hide
+ } else if (Object.keys(movement['movement']['render_functionality']).includes(name)) {
+ if (movement['movement'][name])
+ return display
+ else
+ return hide
+ } else {
+ return hide
+ }
+
+}
+
+const RenderIndex = ( movement ) => {
+
+ return (
+
+ )
+}
+
+export default RenderIndex
\ No newline at end of file
diff --git a/src/pages/func_group/render_crud/renderCrudIndex.js b/src/pages/func_group/render_crud/renderCrudIndex.js
deleted file mode 100644
index 6ca6d3c..0000000
--- a/src/pages/func_group/render_crud/renderCrudIndex.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import React, { useState, useEffect } from 'react'
-
-const RenderCrudIndex = () => {
-
- return (
-
-
- )
-}
-
-export default RenderCrudIndex
\ No newline at end of file
diff --git a/src/pages/func_group/root.js b/src/pages/func_group/root.js
index 92585b7..47c7376 100644
--- a/src/pages/func_group/root.js
+++ b/src/pages/func_group/root.js
@@ -2,13 +2,6 @@ import React, { useState, useEffect } from 'react'
import VerifyUserSession from './rootUtils'
-import UserAuthIndex from './user_auth/userAuthIndex'
-import UserCrudIndex from './user_crud/userCrudIndex'
-import ModelCrudIndex from './model_crud/modelCrudIndex'
-import RenderCrudIndex from './render_crud/renderCrudIndex'
-import RenderWebsocketIndex from './render_websocket/renderWebsocketIndex'
-
-
const Root = () => {
return (
diff --git a/src/pages/func_group/rootUtils.js b/src/pages/func_group/rootUtils.js
index 07fdfdd..45dbb27 100644
--- a/src/pages/func_group/rootUtils.js
+++ b/src/pages/func_group/rootUtils.js
@@ -6,8 +6,7 @@ import { userAuthSelector } from '../../redux/slices/userAuthSlice'
import UserAuthIndex from './user_auth/userAuthIndex'
import UserCrudIndex from './user_crud/userCrudIndex'
import ModelCrudIndex from './model_crud/modelCrudIndex'
-import RenderCrudIndex from './render_crud/renderCrudIndex'
-import RenderWebsocketIndex from './render_websocket/renderWebsocketIndex'
+import RenderIndex from './render/renderIndex'
import NavigationBar from './navigationBar'
@@ -65,12 +64,12 @@ const GeneralView = () => {
-
-
+ /> */}
>
)
}
diff --git a/src/redux/asyncThunks/abstracts/abstractService.js b/src/redux/asyncThunks/abstracts/abstractService.js
index dc58850..b3ae2b0 100644
--- a/src/redux/asyncThunks/abstracts/abstractService.js
+++ b/src/redux/asyncThunks/abstracts/abstractService.js
@@ -72,6 +72,7 @@ const responseAbstract = async (endpoint, method, token, body) => {
body,
)
)
+ console.log(response)
return response
}
@@ -86,8 +87,8 @@ const headerBuilder = (url, method, token, body) => {
headers_r = {
'authorization': token,
'x-csrftoken': getCookie('csrftoken'),
- 'accept': 'multipart/form-data',
- 'content-type': 'multipart/form-data',
+ // 'accept': 'multipart/form-data',
+ // 'content-type': 'multipart/form-data'
}
}
let headers = {
@@ -97,9 +98,15 @@ const headerBuilder = (url, method, token, body) => {
credentials: 'same-origin'
}
if (method === 'PUT' || method === 'POST' || method === 'PATCH') {
- headers = Object.assign({}, headers, {
- data: JSON.stringify(body),
- })
+ if ('file' in body) {
+ headers = Object.assign({}, headers, {
+ data: body,
+ })
+ } else {
+ headers = Object.assign({}, headers, {
+ data: JSON.stringify(body),
+ })
+ }
}
return headers
}
diff --git a/src/redux/asyncThunks/modelCrudAsyncThunk.js b/src/redux/asyncThunks/modelCrudAsyncThunk.js
index c3c13a4..261312d 100644
--- a/src/redux/asyncThunks/modelCrudAsyncThunk.js
+++ b/src/redux/asyncThunks/modelCrudAsyncThunk.js
@@ -45,9 +45,6 @@ const fetchUploadModel = createAsyncThunk(
body,
thunkAPI
) => {
- let formData = FormData()
- formData.append("blend", body.file)
- body.file = formData
return await abstractService._post(
endpoint,
body,
diff --git a/src/redux/slices/renderCrudSlice.js b/src/redux/slices/renderCrudSlice.js
index 1019395..41786b5 100644
--- a/src/redux/slices/renderCrudSlice.js
+++ b/src/redux/slices/renderCrudSlice.js
@@ -11,7 +11,7 @@ const renderCrudSlice = createSlice(
reducers: {},
extraReducers: {
[renderCrudAsyncThunk.fetchGetAllRenders.fulfilled.type]: (state, action) => {
- state.render_list = action.payload.data.render_list
+ state.render_list = action.payload.data
},
[renderCrudAsyncThunk.fetchGetOneRenderAndDownload.fulfilled.type]: (state, action) => {
state.download_zip_file = action.payload.data