Skip to content

Commit

Permalink
feat(Layout): Update so ticket layout works
Browse files Browse the repository at this point in the history
  • Loading branch information
jon-nfc committed Oct 5, 2024
1 parent 8869ab2 commit 0d1c4ad
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 98 deletions.
39 changes: 23 additions & 16 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,67 +35,69 @@ function App() {
/>}
errorElement={<ErrorPage /> }
>
<Route path="/:module/:model"

<Route path="/:module/ticket/:model"
element={<List
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/:model/add" // add
element={<ModelForm
<Route path="/:module/ticket/:model/:pk"
element={<Ticket
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/:model/:pk"
element={<Detail
<Route path="/:module/:model"
element={<List
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/:model/:pk/:action" // edit | delete
<Route path="/:module/:model/add" // add
element={<ModelForm
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/:common_model/:common_pk/:model/add" // add
element={<ModelForm
<Route path="/:module/:model/:pk"
element={<Detail
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/:common_model/:common_pk/:model/:pk/:action" // add
<Route path="/:module/:model/:pk/:action" // edit | delete
element={<ModelForm
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/ticket/:model"
element={<List
<Route path="/:module/:common_model/:common_pk/:model/add" // add
element={<ModelForm
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

<Route path="/:module/ticket/:model/:pk"
element={<Ticket
<Route path="/:module/:common_model/:common_pk/:model/:pk/:action" // add
element={<ModelForm
setContentHeading={setContentHeading}
/>}
errorElement={<ErrorPage /> }
loader = {detailsLoader}
/>

</Route>
));

Expand All @@ -119,7 +121,6 @@ const detailsLoader = async ({request, params}) => {

let loader = null


let url = '/' + params.module + '/' + params.model // + '/' + params.pk // default edit

if( params.common_pk ) {
Expand All @@ -128,6 +129,12 @@ const detailsLoader = async ({request, params}) => {

}

if( String(window.location.pathname).includes('/ticket/') ) {

url = '/' + params.module + '/ticket/' + params.model

}

url = 'http://127.0.0.1:8002/api/v2' + url

if( params.pk ) {
Expand Down
12 changes: 11 additions & 1 deletion src/components/Table.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useEffect, useId, useState } from "react";
import { apiFetch } from "../hooks/apiFetch";
import FieldData from "../functions/FieldData";
import TextField from "./form/Textfield";
import { Link } from "react-router-dom";
import { Link, useParams } from "react-router-dom";


/**
Expand All @@ -29,10 +29,20 @@ const Table = ({

const pagefieldId = useId();

const params = useParams();

if( ! String(data_url_path).startsWith('/') ) {
data_url_path = '/' + data_url_path
}


if( String(window.location.pathname).includes('/ticket/') ) {

data_url_path = '/' + params.module + '/ticket/' + params.model

}


useEffect(() => {

apiFetch(
Expand Down
96 changes: 64 additions & 32 deletions src/functions/FieldData.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,67 +107,99 @@ export default function FieldData({

field_data = (
<>
{data[field_name].map((icon) => {
return (
<span className={icon.style}>
<IconLoader name={icon.name} fill={null} height='20px' width='20px'/>
</span>
)
})}
{data[field_name].map((icon) => {
return (
<span className={icon.style}>
<IconLoader name={icon.name} fill={null} height='20px' width='20px' />
</span>
)
})}
</>
)

break;

case 'GenericField':
case 'Relationship':
case 'Serializer':

if( data[field_name] === null ) {

field_data = '-'
if( fields[field_name].relationship_type === 'ManyToMany' ) {

} else if( typeof(data[field_name]) === 'object' ){

if( 'url' in data[field_name] ) {
if( typeof (data[field_name]) === 'object' ) {

field_data = (
<Link to={String(data[field_name].url).split(API_SPLIT)[1]}>{data[field_name].display_name}</Link>
)

} else {
data[field_name].map((field) => {

field_data = data[field_name].display_name
if( 'url' in field ) {

return ('');

} else {

return (
<>
{field.display_name}&nbsp;
</>
);
}
})
)
}

} else {

field_data = data[field_name]
if( data[field_name] === null ) {

field_data = '-'

} else if( typeof (data[field_name] ) === 'object' ) {

if( 'url' in data[field_name] ) {

field_data = (
<Link to={String(data[field_name].url).split(API_SPLIT)[1]}>{data[field_name].display_name}</Link>
)

} else {

field_data = data[field_name].display_name

}

} else if( typeof (data[field_name]) === 'list' ) {

field_data = 'data[field_name]'

} else {

field_data = data[field_name]

}
}

break;

case 'JSON':
case 'JSON':

let markdown = "``` json"
+ "\r\n\r\n"
+ JSON.stringify( data[field_name], null, 4 )
+ "\r\n\r\n"
+ "```"
+ "\r\n"
+ "\r\n\r\n"
+ JSON.stringify(data[field_name], null, 4)
+ "\r\n\r\n"
+ "```"
+ "\r\n"

field_data = (
<RenderMarkdown full_width={full_width}>
{ markdown}
</RenderMarkdown>
)
field_data = (
<RenderMarkdown full_width={full_width}>
{markdown}
</RenderMarkdown>
)

break;
break;

default:
default:

if (
if(
(
field_name === 'name'
|| field_name === 'title'
Expand Down
Loading

0 comments on commit 0d1c4ad

Please sign in to comment.