Compare commits
17 Commits
main
...
deploy_exx
| Author | SHA1 | Date |
|---|---|---|
|
|
5fe96a7697 | |
|
|
7534eaa2e4 | |
|
|
4c3325b0ef | |
|
|
cda1baf7c0 | |
|
|
ac7f3ef790 | |
|
|
4c05334283 | |
|
|
43d39a7caa | |
|
|
bcb844b7ba | |
|
|
01f866a8db | |
|
|
cc49ec0063 | |
|
|
047e204b82 | |
|
|
c721140003 | |
|
|
2a469eed6a | |
|
|
0380edeb2a | |
|
|
06a517af53 | |
|
|
d5234ac2e7 | |
|
|
c4fcfef4f0 |
|
|
@ -2,22 +2,32 @@ services:
|
|||
frontend:
|
||||
build:
|
||||
context: frontend
|
||||
ports:
|
||||
- 8080:80
|
||||
environment:
|
||||
- API_HOST=http://localhost:5050
|
||||
- API_HOST=http://ec2-18-193-8-169.eu-central-1.compute.amazonaws.com/ff-api
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.ff-frontend.rule=PathPrefix(`/ff`)"
|
||||
- "traefik.http.routers.ff-frontend.entrypoints=web"
|
||||
- "traefik.http.services.ff-frontend.loadbalancer.server.port=80"
|
||||
- "traefik.http.middlewares.ff-frontend-stripprefix.stripprefix.prefixes=/ff"
|
||||
- "traefik.http.routers.ff-frontend.middlewares=ff-frontend-stripprefix"
|
||||
networks:
|
||||
- proxy
|
||||
- app-network
|
||||
|
||||
db:
|
||||
image: postgres:17-alpine
|
||||
env_file:
|
||||
- .env
|
||||
# ports:
|
||||
# - "5432:5432"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U admin"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
coordinator:
|
||||
build:
|
||||
|
|
@ -31,12 +41,20 @@ services:
|
|||
db:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: wget --spider --no-verbose http://127.0.0.1:5000/health || exit 1
|
||||
test: wget --spider --no-verbose http://127.0.0.1:5000/health || exit 1
|
||||
interval: 20s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
ports:
|
||||
- 5050:5000
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.ff-api.rule=PathPrefix(`/ff-api`)"
|
||||
- "traefik.http.routers.ff-api.entrypoints=web"
|
||||
- "traefik.http.services.ff-api.loadbalancer.server.port=5000"
|
||||
- "traefik.http.middlewares.ff-api-stripprefix.stripprefix.prefixes=/ff-api"
|
||||
- "traefik.http.routers.ff-api.middlewares=ff-api-stripprefix"
|
||||
networks:
|
||||
- proxy
|
||||
- app-network
|
||||
|
||||
ocr:
|
||||
build:
|
||||
|
|
@ -48,18 +66,18 @@ services:
|
|||
- EXXETA_SERVICE_URL=http://exxeta:5000/extract
|
||||
- SPACY_SERVICE_URL=http://spacy:5052/extract
|
||||
- COORDINATOR_URL=http://coordinator:5000
|
||||
ports:
|
||||
- 5051:5000
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
spacy:
|
||||
build:
|
||||
context: backend/spacy-service
|
||||
environment:
|
||||
- VALIDATE_SERVICE_URL=http://validate:5000/validate
|
||||
ports:
|
||||
- 5052:5052
|
||||
volumes:
|
||||
- ./backend/spacy-service/spacy_training:/app/spacy_training
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
exxeta:
|
||||
build:
|
||||
|
|
@ -70,8 +88,8 @@ services:
|
|||
environment:
|
||||
- VALIDATE_SERVICE_URL=http://validate:5000/validate
|
||||
- COORDINATOR_URL=http://coordinator:5000
|
||||
ports:
|
||||
- 5053:5000
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
validate:
|
||||
build:
|
||||
|
|
@ -81,5 +99,14 @@ services:
|
|||
- .env
|
||||
environment:
|
||||
- COORDINATOR_URL=http://coordinator:5000
|
||||
ports:
|
||||
- 5054:5000
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
app-network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
|
@ -4,10 +4,8 @@ WORKDIR /usr/src/app
|
|||
# install dependencies into temp directory
|
||||
# this will cache them and speed up future builds
|
||||
COPY package.json bun.lockb ./
|
||||
#RUN bun install --frozen-lockfile
|
||||
RUN bun install
|
||||
|
||||
|
||||
COPY . .
|
||||
|
||||
# dummy environment variable for build - DONT CHANGE!!!
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ export function ConfigTable({ from, trainingRunning }: ConfigTableProps) {
|
|||
}
|
||||
|
||||
navigate({
|
||||
to: `/config-detail/$kpiId`,
|
||||
to: `/ff/config-detail/$kpiId`,
|
||||
params: { kpiId: kennzahl.id.toString() },
|
||||
search: from ? { from } : undefined,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ export default function KennzahlenTable({
|
|||
|
||||
const handleNavigateToDetail = (settingName: string) => {
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook/$kpi",
|
||||
to: "/ff/extractedResult/$pitchBook/$kpi",
|
||||
params: {
|
||||
pitchBook: pdfId,
|
||||
kpi: settingName,
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ export function PitchBooksTable() {
|
|||
|
||||
const handleRowClick = (pitchBookId: number) => {
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook",
|
||||
to: "/ff/extractedResult/$pitchBook",
|
||||
params: { pitchBook: pitchBookId.toString() },
|
||||
search: { from: "overview" },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ export default function UploadPage() {
|
|||
const uploadFile = useCallback(async () => {
|
||||
const formData = new FormData();
|
||||
formData.append("file", files[0]);
|
||||
const response = await fetch(`${API_HOST}/api/pitch_book`, {
|
||||
const response = await fetch(`${API_HOST}/api/pitch_book/`, {
|
||||
method: "POST",
|
||||
body: formData,
|
||||
});
|
||||
|
|
@ -47,7 +47,7 @@ export default function UploadPage() {
|
|||
setPageId(null);
|
||||
setLoadingState(null);
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook",
|
||||
to: "/ff/extractedResult/$pitchBook",
|
||||
params: { pitchBook: progress.id.toString() },
|
||||
});
|
||||
}
|
||||
|
|
@ -109,7 +109,7 @@ export default function UploadPage() {
|
|||
/>
|
||||
</Box>
|
||||
|
||||
<IconButton onClick={() => navigate({ to: "/config" })}>
|
||||
<IconButton onClick={() => navigate({ to: "/ff/config" })}>
|
||||
<SettingsIcon fontSize="large" />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
|
@ -204,8 +204,8 @@ export default function UploadPage() {
|
|||
backgroundColor: "#383838",
|
||||
"&:hover": { backgroundColor: "#2e2e2e" },
|
||||
}}
|
||||
onMouseEnter={() => router.preloadRoute({ to: "/pitchbooks" })}
|
||||
onClick={() => navigate({ to: "/pitchbooks" })}
|
||||
onMouseEnter={() => router.preloadRoute({ to: "/ff/pitchbooks" })}
|
||||
onClick={() => navigate({ to: "/ff/pitchbooks" })}
|
||||
>
|
||||
Alle Pitchbooks anzeigen
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -11,56 +11,58 @@
|
|||
// Import Routes
|
||||
|
||||
import { Route as rootRoute } from './routes/__root'
|
||||
import { Route as PitchbooksImport } from './routes/pitchbooks'
|
||||
import { Route as ConfigAddImport } from './routes/config-add'
|
||||
import { Route as ConfigImport } from './routes/config'
|
||||
import { Route as IndexImport } from './routes/index'
|
||||
import { Route as ExtractedResultPitchBookImport } from './routes/extractedResult.$pitchBook'
|
||||
import { Route as ConfigDetailKpiIdImport } from './routes/config-detail.$kpiId'
|
||||
import { Route as ExtractedResultPitchBookKpiImport } from './routes/extractedResult_.$pitchBook.$kpi'
|
||||
import { Route as FfIndexImport } from './routes/ff/index'
|
||||
import { Route as FfPitchbooksImport } from './routes/ff/pitchbooks'
|
||||
import { Route as FfConfigAddImport } from './routes/ff/config-add'
|
||||
import { Route as FfConfigImport } from './routes/ff/config'
|
||||
import { Route as FfExtractedResultPitchBookImport } from './routes/ff/extractedResult.$pitchBook'
|
||||
import { Route as FfConfigDetailKpiIdImport } from './routes/ff/config-detail.$kpiId'
|
||||
import { Route as FfExtractedResultPitchBookKpiImport } from './routes/ff/extractedResult_.$pitchBook.$kpi'
|
||||
|
||||
// Create/Update Routes
|
||||
|
||||
const PitchbooksRoute = PitchbooksImport.update({
|
||||
id: '/pitchbooks',
|
||||
path: '/pitchbooks',
|
||||
const FfIndexRoute = FfIndexImport.update({
|
||||
id: '/ff/',
|
||||
path: '/ff/',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const ConfigAddRoute = ConfigAddImport.update({
|
||||
id: '/config-add',
|
||||
path: '/config-add',
|
||||
const FfPitchbooksRoute = FfPitchbooksImport.update({
|
||||
id: '/ff/pitchbooks',
|
||||
path: '/ff/pitchbooks',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const ConfigRoute = ConfigImport.update({
|
||||
id: '/config',
|
||||
path: '/config',
|
||||
const FfConfigAddRoute = FfConfigAddImport.update({
|
||||
id: '/ff/config-add',
|
||||
path: '/ff/config-add',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const IndexRoute = IndexImport.update({
|
||||
id: '/',
|
||||
path: '/',
|
||||
const FfConfigRoute = FfConfigImport.update({
|
||||
id: '/ff/config',
|
||||
path: '/ff/config',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const ExtractedResultPitchBookRoute = ExtractedResultPitchBookImport.update({
|
||||
id: '/extractedResult/$pitchBook',
|
||||
path: '/extractedResult/$pitchBook',
|
||||
const FfExtractedResultPitchBookRoute = FfExtractedResultPitchBookImport.update(
|
||||
{
|
||||
id: '/ff/extractedResult/$pitchBook',
|
||||
path: '/ff/extractedResult/$pitchBook',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any,
|
||||
)
|
||||
|
||||
const FfConfigDetailKpiIdRoute = FfConfigDetailKpiIdImport.update({
|
||||
id: '/ff/config-detail/$kpiId',
|
||||
path: '/ff/config-detail/$kpiId',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const ConfigDetailKpiIdRoute = ConfigDetailKpiIdImport.update({
|
||||
id: '/config-detail/$kpiId',
|
||||
path: '/config-detail/$kpiId',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
const ExtractedResultPitchBookKpiRoute =
|
||||
ExtractedResultPitchBookKpiImport.update({
|
||||
id: '/extractedResult_/$pitchBook/$kpi',
|
||||
path: '/extractedResult/$pitchBook/$kpi',
|
||||
const FfExtractedResultPitchBookKpiRoute =
|
||||
FfExtractedResultPitchBookKpiImport.update({
|
||||
id: '/ff/extractedResult_/$pitchBook/$kpi',
|
||||
path: '/ff/extractedResult/$pitchBook/$kpi',
|
||||
getParentRoute: () => rootRoute,
|
||||
} as any)
|
||||
|
||||
|
|
@ -68,53 +70,53 @@ const ExtractedResultPitchBookKpiRoute =
|
|||
|
||||
declare module '@tanstack/react-router' {
|
||||
interface FileRoutesByPath {
|
||||
'/': {
|
||||
id: '/'
|
||||
path: '/'
|
||||
fullPath: '/'
|
||||
preLoaderRoute: typeof IndexImport
|
||||
'/ff/config': {
|
||||
id: '/ff/config'
|
||||
path: '/ff/config'
|
||||
fullPath: '/ff/config'
|
||||
preLoaderRoute: typeof FfConfigImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/config': {
|
||||
id: '/config'
|
||||
path: '/config'
|
||||
fullPath: '/config'
|
||||
preLoaderRoute: typeof ConfigImport
|
||||
'/ff/config-add': {
|
||||
id: '/ff/config-add'
|
||||
path: '/ff/config-add'
|
||||
fullPath: '/ff/config-add'
|
||||
preLoaderRoute: typeof FfConfigAddImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/config-add': {
|
||||
id: '/config-add'
|
||||
path: '/config-add'
|
||||
fullPath: '/config-add'
|
||||
preLoaderRoute: typeof ConfigAddImport
|
||||
'/ff/pitchbooks': {
|
||||
id: '/ff/pitchbooks'
|
||||
path: '/ff/pitchbooks'
|
||||
fullPath: '/ff/pitchbooks'
|
||||
preLoaderRoute: typeof FfPitchbooksImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/pitchbooks': {
|
||||
id: '/pitchbooks'
|
||||
path: '/pitchbooks'
|
||||
fullPath: '/pitchbooks'
|
||||
preLoaderRoute: typeof PitchbooksImport
|
||||
'/ff/': {
|
||||
id: '/ff/'
|
||||
path: '/ff'
|
||||
fullPath: '/ff'
|
||||
preLoaderRoute: typeof FfIndexImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/config-detail/$kpiId': {
|
||||
id: '/config-detail/$kpiId'
|
||||
path: '/config-detail/$kpiId'
|
||||
fullPath: '/config-detail/$kpiId'
|
||||
preLoaderRoute: typeof ConfigDetailKpiIdImport
|
||||
'/ff/config-detail/$kpiId': {
|
||||
id: '/ff/config-detail/$kpiId'
|
||||
path: '/ff/config-detail/$kpiId'
|
||||
fullPath: '/ff/config-detail/$kpiId'
|
||||
preLoaderRoute: typeof FfConfigDetailKpiIdImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/extractedResult/$pitchBook': {
|
||||
id: '/extractedResult/$pitchBook'
|
||||
path: '/extractedResult/$pitchBook'
|
||||
fullPath: '/extractedResult/$pitchBook'
|
||||
preLoaderRoute: typeof ExtractedResultPitchBookImport
|
||||
'/ff/extractedResult/$pitchBook': {
|
||||
id: '/ff/extractedResult/$pitchBook'
|
||||
path: '/ff/extractedResult/$pitchBook'
|
||||
fullPath: '/ff/extractedResult/$pitchBook'
|
||||
preLoaderRoute: typeof FfExtractedResultPitchBookImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
'/extractedResult_/$pitchBook/$kpi': {
|
||||
id: '/extractedResult_/$pitchBook/$kpi'
|
||||
path: '/extractedResult/$pitchBook/$kpi'
|
||||
fullPath: '/extractedResult/$pitchBook/$kpi'
|
||||
preLoaderRoute: typeof ExtractedResultPitchBookKpiImport
|
||||
'/ff/extractedResult_/$pitchBook/$kpi': {
|
||||
id: '/ff/extractedResult_/$pitchBook/$kpi'
|
||||
path: '/ff/extractedResult/$pitchBook/$kpi'
|
||||
fullPath: '/ff/extractedResult/$pitchBook/$kpi'
|
||||
preLoaderRoute: typeof FfExtractedResultPitchBookKpiImport
|
||||
parentRoute: typeof rootRoute
|
||||
}
|
||||
}
|
||||
|
|
@ -123,85 +125,85 @@ declare module '@tanstack/react-router' {
|
|||
// Create and export the route tree
|
||||
|
||||
export interface FileRoutesByFullPath {
|
||||
'/': typeof IndexRoute
|
||||
'/config': typeof ConfigRoute
|
||||
'/config-add': typeof ConfigAddRoute
|
||||
'/pitchbooks': typeof PitchbooksRoute
|
||||
'/config-detail/$kpiId': typeof ConfigDetailKpiIdRoute
|
||||
'/extractedResult/$pitchBook': typeof ExtractedResultPitchBookRoute
|
||||
'/extractedResult/$pitchBook/$kpi': typeof ExtractedResultPitchBookKpiRoute
|
||||
'/ff/config': typeof FfConfigRoute
|
||||
'/ff/config-add': typeof FfConfigAddRoute
|
||||
'/ff/pitchbooks': typeof FfPitchbooksRoute
|
||||
'/ff': typeof FfIndexRoute
|
||||
'/ff/config-detail/$kpiId': typeof FfConfigDetailKpiIdRoute
|
||||
'/ff/extractedResult/$pitchBook': typeof FfExtractedResultPitchBookRoute
|
||||
'/ff/extractedResult/$pitchBook/$kpi': typeof FfExtractedResultPitchBookKpiRoute
|
||||
}
|
||||
|
||||
export interface FileRoutesByTo {
|
||||
'/': typeof IndexRoute
|
||||
'/config': typeof ConfigRoute
|
||||
'/config-add': typeof ConfigAddRoute
|
||||
'/pitchbooks': typeof PitchbooksRoute
|
||||
'/config-detail/$kpiId': typeof ConfigDetailKpiIdRoute
|
||||
'/extractedResult/$pitchBook': typeof ExtractedResultPitchBookRoute
|
||||
'/extractedResult/$pitchBook/$kpi': typeof ExtractedResultPitchBookKpiRoute
|
||||
'/ff/config': typeof FfConfigRoute
|
||||
'/ff/config-add': typeof FfConfigAddRoute
|
||||
'/ff/pitchbooks': typeof FfPitchbooksRoute
|
||||
'/ff': typeof FfIndexRoute
|
||||
'/ff/config-detail/$kpiId': typeof FfConfigDetailKpiIdRoute
|
||||
'/ff/extractedResult/$pitchBook': typeof FfExtractedResultPitchBookRoute
|
||||
'/ff/extractedResult/$pitchBook/$kpi': typeof FfExtractedResultPitchBookKpiRoute
|
||||
}
|
||||
|
||||
export interface FileRoutesById {
|
||||
__root__: typeof rootRoute
|
||||
'/': typeof IndexRoute
|
||||
'/config': typeof ConfigRoute
|
||||
'/config-add': typeof ConfigAddRoute
|
||||
'/pitchbooks': typeof PitchbooksRoute
|
||||
'/config-detail/$kpiId': typeof ConfigDetailKpiIdRoute
|
||||
'/extractedResult/$pitchBook': typeof ExtractedResultPitchBookRoute
|
||||
'/extractedResult_/$pitchBook/$kpi': typeof ExtractedResultPitchBookKpiRoute
|
||||
'/ff/config': typeof FfConfigRoute
|
||||
'/ff/config-add': typeof FfConfigAddRoute
|
||||
'/ff/pitchbooks': typeof FfPitchbooksRoute
|
||||
'/ff/': typeof FfIndexRoute
|
||||
'/ff/config-detail/$kpiId': typeof FfConfigDetailKpiIdRoute
|
||||
'/ff/extractedResult/$pitchBook': typeof FfExtractedResultPitchBookRoute
|
||||
'/ff/extractedResult_/$pitchBook/$kpi': typeof FfExtractedResultPitchBookKpiRoute
|
||||
}
|
||||
|
||||
export interface FileRouteTypes {
|
||||
fileRoutesByFullPath: FileRoutesByFullPath
|
||||
fullPaths:
|
||||
| '/'
|
||||
| '/config'
|
||||
| '/config-add'
|
||||
| '/pitchbooks'
|
||||
| '/config-detail/$kpiId'
|
||||
| '/extractedResult/$pitchBook'
|
||||
| '/extractedResult/$pitchBook/$kpi'
|
||||
| '/ff/config'
|
||||
| '/ff/config-add'
|
||||
| '/ff/pitchbooks'
|
||||
| '/ff'
|
||||
| '/ff/config-detail/$kpiId'
|
||||
| '/ff/extractedResult/$pitchBook'
|
||||
| '/ff/extractedResult/$pitchBook/$kpi'
|
||||
fileRoutesByTo: FileRoutesByTo
|
||||
to:
|
||||
| '/'
|
||||
| '/config'
|
||||
| '/config-add'
|
||||
| '/pitchbooks'
|
||||
| '/config-detail/$kpiId'
|
||||
| '/extractedResult/$pitchBook'
|
||||
| '/extractedResult/$pitchBook/$kpi'
|
||||
| '/ff/config'
|
||||
| '/ff/config-add'
|
||||
| '/ff/pitchbooks'
|
||||
| '/ff'
|
||||
| '/ff/config-detail/$kpiId'
|
||||
| '/ff/extractedResult/$pitchBook'
|
||||
| '/ff/extractedResult/$pitchBook/$kpi'
|
||||
id:
|
||||
| '__root__'
|
||||
| '/'
|
||||
| '/config'
|
||||
| '/config-add'
|
||||
| '/pitchbooks'
|
||||
| '/config-detail/$kpiId'
|
||||
| '/extractedResult/$pitchBook'
|
||||
| '/extractedResult_/$pitchBook/$kpi'
|
||||
| '/ff/config'
|
||||
| '/ff/config-add'
|
||||
| '/ff/pitchbooks'
|
||||
| '/ff/'
|
||||
| '/ff/config-detail/$kpiId'
|
||||
| '/ff/extractedResult/$pitchBook'
|
||||
| '/ff/extractedResult_/$pitchBook/$kpi'
|
||||
fileRoutesById: FileRoutesById
|
||||
}
|
||||
|
||||
export interface RootRouteChildren {
|
||||
IndexRoute: typeof IndexRoute
|
||||
ConfigRoute: typeof ConfigRoute
|
||||
ConfigAddRoute: typeof ConfigAddRoute
|
||||
PitchbooksRoute: typeof PitchbooksRoute
|
||||
ConfigDetailKpiIdRoute: typeof ConfigDetailKpiIdRoute
|
||||
ExtractedResultPitchBookRoute: typeof ExtractedResultPitchBookRoute
|
||||
ExtractedResultPitchBookKpiRoute: typeof ExtractedResultPitchBookKpiRoute
|
||||
FfConfigRoute: typeof FfConfigRoute
|
||||
FfConfigAddRoute: typeof FfConfigAddRoute
|
||||
FfPitchbooksRoute: typeof FfPitchbooksRoute
|
||||
FfIndexRoute: typeof FfIndexRoute
|
||||
FfConfigDetailKpiIdRoute: typeof FfConfigDetailKpiIdRoute
|
||||
FfExtractedResultPitchBookRoute: typeof FfExtractedResultPitchBookRoute
|
||||
FfExtractedResultPitchBookKpiRoute: typeof FfExtractedResultPitchBookKpiRoute
|
||||
}
|
||||
|
||||
const rootRouteChildren: RootRouteChildren = {
|
||||
IndexRoute: IndexRoute,
|
||||
ConfigRoute: ConfigRoute,
|
||||
ConfigAddRoute: ConfigAddRoute,
|
||||
PitchbooksRoute: PitchbooksRoute,
|
||||
ConfigDetailKpiIdRoute: ConfigDetailKpiIdRoute,
|
||||
ExtractedResultPitchBookRoute: ExtractedResultPitchBookRoute,
|
||||
ExtractedResultPitchBookKpiRoute: ExtractedResultPitchBookKpiRoute,
|
||||
FfConfigRoute: FfConfigRoute,
|
||||
FfConfigAddRoute: FfConfigAddRoute,
|
||||
FfPitchbooksRoute: FfPitchbooksRoute,
|
||||
FfIndexRoute: FfIndexRoute,
|
||||
FfConfigDetailKpiIdRoute: FfConfigDetailKpiIdRoute,
|
||||
FfExtractedResultPitchBookRoute: FfExtractedResultPitchBookRoute,
|
||||
FfExtractedResultPitchBookKpiRoute: FfExtractedResultPitchBookKpiRoute,
|
||||
}
|
||||
|
||||
export const routeTree = rootRoute
|
||||
|
|
@ -214,35 +216,35 @@ export const routeTree = rootRoute
|
|||
"__root__": {
|
||||
"filePath": "__root.tsx",
|
||||
"children": [
|
||||
"/",
|
||||
"/config",
|
||||
"/config-add",
|
||||
"/pitchbooks",
|
||||
"/config-detail/$kpiId",
|
||||
"/extractedResult/$pitchBook",
|
||||
"/extractedResult_/$pitchBook/$kpi"
|
||||
"/ff/config",
|
||||
"/ff/config-add",
|
||||
"/ff/pitchbooks",
|
||||
"/ff/",
|
||||
"/ff/config-detail/$kpiId",
|
||||
"/ff/extractedResult/$pitchBook",
|
||||
"/ff/extractedResult_/$pitchBook/$kpi"
|
||||
]
|
||||
},
|
||||
"/": {
|
||||
"filePath": "index.tsx"
|
||||
"/ff/config": {
|
||||
"filePath": "ff/config.tsx"
|
||||
},
|
||||
"/config": {
|
||||
"filePath": "config.tsx"
|
||||
"/ff/config-add": {
|
||||
"filePath": "ff/config-add.tsx"
|
||||
},
|
||||
"/config-add": {
|
||||
"filePath": "config-add.tsx"
|
||||
"/ff/pitchbooks": {
|
||||
"filePath": "ff/pitchbooks.tsx"
|
||||
},
|
||||
"/pitchbooks": {
|
||||
"filePath": "pitchbooks.tsx"
|
||||
"/ff/": {
|
||||
"filePath": "ff/index.tsx"
|
||||
},
|
||||
"/config-detail/$kpiId": {
|
||||
"filePath": "config-detail.$kpiId.tsx"
|
||||
"/ff/config-detail/$kpiId": {
|
||||
"filePath": "ff/config-detail.$kpiId.tsx"
|
||||
},
|
||||
"/extractedResult/$pitchBook": {
|
||||
"filePath": "extractedResult.$pitchBook.tsx"
|
||||
"/ff/extractedResult/$pitchBook": {
|
||||
"filePath": "ff/extractedResult.$pitchBook.tsx"
|
||||
},
|
||||
"/extractedResult_/$pitchBook/$kpi": {
|
||||
"filePath": "extractedResult_.$pitchBook.$kpi.tsx"
|
||||
"/ff/extractedResult_/$pitchBook/$kpi": {
|
||||
"filePath": "ff/extractedResult_.$pitchBook.$kpi.tsx"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import { createFileRoute, useNavigate } from "@tanstack/react-router";
|
||||
import { Box, Typography, IconButton } from "@mui/material";
|
||||
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
||||
import { KPIForm } from "../components/KPIForm";
|
||||
import type { Kennzahl } from "../types/kpi";
|
||||
import { API_HOST } from "../util/api";
|
||||
import { KPIForm } from "../../components/KPIForm";
|
||||
import type { Kennzahl } from "../../types/kpi";
|
||||
import { API_HOST } from "../../util/api";
|
||||
|
||||
|
||||
export const Route = createFileRoute("/config-add")({
|
||||
export const Route = createFileRoute("/ff/config-add")({
|
||||
component: ConfigAddPage,
|
||||
validateSearch: (search: Record<string, unknown>): { from?: string } => {
|
||||
return {
|
||||
|
|
@ -21,7 +21,7 @@ function ConfigAddPage() {
|
|||
|
||||
const handleBack = () => {
|
||||
navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: from ? { from } : undefined,
|
||||
});
|
||||
};
|
||||
|
|
@ -54,7 +54,7 @@ function ConfigAddPage() {
|
|||
}
|
||||
|
||||
navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: { success: "true", ...(from ? { from } : {}) },
|
||||
});
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ function ConfigAddPage() {
|
|||
|
||||
const handleCancel = () => {
|
||||
navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: from ? { from } : undefined,
|
||||
});
|
||||
};
|
||||
|
|
@ -4,12 +4,12 @@ import {
|
|||
} from "@mui/material";
|
||||
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
||||
import { useEffect, useState } from "react";
|
||||
import type { Kennzahl } from "../types/kpi";
|
||||
import { KPIForm } from "../components/KPIForm";
|
||||
import { typeDisplayMapping } from "../types/kpi";
|
||||
import { API_HOST } from "../util/api";
|
||||
import type { Kennzahl } from "../../types/kpi";
|
||||
import { KPIForm } from "../../components/KPIForm";
|
||||
import { typeDisplayMapping } from "../../types/kpi";
|
||||
import { API_HOST } from "../../util/api";
|
||||
|
||||
export const Route = createFileRoute("/config-detail/$kpiId")({
|
||||
export const Route = createFileRoute("/ff/config-detail/$kpiId")({
|
||||
component: KPIDetailPage,
|
||||
validateSearch: (search: Record<string, unknown>): { from?: string } => {
|
||||
return {
|
||||
|
|
@ -29,7 +29,7 @@ function KPIDetailPage() {
|
|||
|
||||
const handleBack = () => {
|
||||
navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: from ? { from } : undefined
|
||||
});
|
||||
};
|
||||
|
|
@ -121,7 +121,7 @@ function KPIDetailPage() {
|
|||
</Typography>
|
||||
<Button
|
||||
variant="contained"
|
||||
onClick={() => navigate({ to: "/config" })}
|
||||
onClick={() => navigate({ to: "/ff/config" })}
|
||||
sx={{
|
||||
backgroundColor: "#383838",
|
||||
"&:hover": { backgroundColor: "#2e2e2e" },
|
||||
|
|
@ -2,8 +2,8 @@ import { createFileRoute } from "@tanstack/react-router";
|
|||
import { Box, Button, IconButton, Typography } from "@mui/material";
|
||||
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
||||
import { useNavigate } from "@tanstack/react-router";
|
||||
import { ConfigTable } from "../components/ConfigTable";
|
||||
import { API_HOST } from "../util/api";
|
||||
import { ConfigTable } from "../../components/ConfigTable";
|
||||
import { API_HOST } from "../../util/api";
|
||||
import Snackbar from "@mui/material/Snackbar";
|
||||
import MuiAlert from "@mui/material/Alert";
|
||||
import { useState, useEffect } from "react";
|
||||
|
|
@ -14,7 +14,7 @@ import Tooltip from "@mui/material/Tooltip";
|
|||
|
||||
|
||||
|
||||
export const Route = createFileRoute("/config")({
|
||||
export const Route = createFileRoute("/ff/config")({
|
||||
component: ConfigPage,
|
||||
validateSearch: (search: Record<string, unknown>): { from?: string; success?: string } => {
|
||||
return {
|
||||
|
|
@ -58,7 +58,7 @@ function ConfigPage() {
|
|||
if (success === "true") {
|
||||
setTimeout(() => {
|
||||
navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: from ? { from } : undefined,
|
||||
replace: true
|
||||
});
|
||||
|
|
@ -87,16 +87,16 @@ function ConfigPage() {
|
|||
|
||||
const handleAddNewKPI = () => {
|
||||
navigate({
|
||||
to: "/config-add",
|
||||
to: "/ff/config-add",
|
||||
search: from ? { from } : undefined
|
||||
});
|
||||
};
|
||||
|
||||
const handleBack = () => {
|
||||
if (from === "pitchbooks") {
|
||||
navigate({ to: "/pitchbooks" });
|
||||
navigate({ to: "/ff/pitchbooks" });
|
||||
} else {
|
||||
navigate({ to: "/" });
|
||||
navigate({ to: "/ff" });
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -4,12 +4,12 @@ import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
|||
import { useSuspenseQuery } from "@tanstack/react-query";
|
||||
import { createFileRoute, useNavigate } from "@tanstack/react-router";
|
||||
import { useCallback, useState, useMemo } from "react";
|
||||
import KennzahlenTable from "../components/KennzahlenTable";
|
||||
import PDFViewer from "../components/pdfViewer";
|
||||
import { kpiQueryOptions, settingsQueryOptions } from "../util/query";
|
||||
import KennzahlenTable from "../../components/KennzahlenTable";
|
||||
import PDFViewer from "../../components/pdfViewer";
|
||||
import { kpiQueryOptions, settingsQueryOptions } from "../../util/query";
|
||||
import { redirect } from "@tanstack/react-router";
|
||||
|
||||
export const Route = createFileRoute("/extractedResult/$pitchBook")({
|
||||
export const Route = createFileRoute("/ff/extractedResult/$pitchBook")({
|
||||
component: ExtractedResultsPage,
|
||||
validateSearch: (search: Record<string, unknown>): { from?: string } => {
|
||||
return {
|
||||
|
|
@ -23,7 +23,7 @@ export const Route = createFileRoute("/extractedResult/$pitchBook")({
|
|||
]);
|
||||
if (results[0].status === "rejected") {
|
||||
throw redirect({
|
||||
to: "/"
|
||||
to: "/ff"
|
||||
});
|
||||
}
|
||||
return results;
|
||||
|
|
@ -143,7 +143,7 @@ function ExtractedResultsPage() {
|
|||
<Box display="flex" alignItems="center" gap={3}>
|
||||
{from === "overview" && (
|
||||
<IconButton
|
||||
onClick={() => navigate({ to: "/pitchbooks" })}
|
||||
onClick={() => navigate({ to: "/ff/pitchbooks" })}
|
||||
sx={{ ml: -1 }}
|
||||
>
|
||||
<ArrowBackIcon fontSize="large" sx={{ color: '#383838' }}/>
|
||||
|
|
@ -259,7 +259,7 @@ function ExtractedResultsPage() {
|
|||
<Button
|
||||
variant="contained"
|
||||
sx={{ backgroundColor: "#383838" }}
|
||||
onClick={() => navigate({ to: "/" })}
|
||||
onClick={() => navigate({ to: "/ff" })}
|
||||
>
|
||||
Neues Pitchbook hochladen
|
||||
</Button>
|
||||
|
|
@ -28,12 +28,12 @@ import {
|
|||
} from "@tanstack/react-query";
|
||||
import { createFileRoute, useNavigate } from "@tanstack/react-router";
|
||||
import { useEffect, useState, type KeyboardEvent } from "react";
|
||||
import PDFViewer from "../components/pdfViewer";
|
||||
import { fetchPutKPI } from "../util/api";
|
||||
import { kpiQueryOptions } from "../util/query";
|
||||
import PDFViewer from "../../components/pdfViewer";
|
||||
import { fetchPutKPI } from "../../util/api";
|
||||
import { kpiQueryOptions } from "../../util/query";
|
||||
import { redirect } from "@tanstack/react-router";
|
||||
|
||||
export const Route = createFileRoute("/extractedResult_/$pitchBook/$kpi")({
|
||||
export const Route = createFileRoute("/ff/extractedResult_/$pitchBook/$kpi")({
|
||||
component: ExtractedResultsPage,
|
||||
validateSearch: (search: Record<string, unknown>) => {
|
||||
return {
|
||||
|
|
@ -45,7 +45,7 @@ export const Route = createFileRoute("/extractedResult_/$pitchBook/$kpi")({
|
|||
return await queryClient.ensureQueryData(kpiQueryOptions(pitchBook));
|
||||
} catch (err) {
|
||||
throw redirect({
|
||||
to: "/"
|
||||
to: "/ff"
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
@ -151,7 +151,7 @@ function ExtractedResultsPage() {
|
|||
queryKey: ["pitchBookKPI", pitchBook],
|
||||
});
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook",
|
||||
to: "/ff/extractedResult/$pitchBook",
|
||||
params: { pitchBook },
|
||||
search: from ? { from } : undefined
|
||||
});
|
||||
|
|
@ -216,7 +216,7 @@ function ExtractedResultsPage() {
|
|||
setShowConfirmDialog(true);
|
||||
} else {
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook",
|
||||
to: "/ff/extractedResult/$pitchBook",
|
||||
params: { pitchBook },
|
||||
search: from ? { from } : undefined
|
||||
});
|
||||
|
|
@ -226,7 +226,7 @@ function ExtractedResultsPage() {
|
|||
const handleConfirmDiscard = () => {
|
||||
setShowConfirmDialog(false);
|
||||
navigate({
|
||||
to: "/extractedResult/$pitchBook",
|
||||
to: "/ff/extractedResult/$pitchBook",
|
||||
params: { pitchBook },
|
||||
search: from ? { from } : undefined
|
||||
});
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import UploadPage from "../components/UploadPage";
|
||||
import UploadPage from "../../components/UploadPage";
|
||||
|
||||
|
||||
export const Route = createFileRoute("/")({
|
||||
export const Route = createFileRoute("/ff/")({
|
||||
component: App,
|
||||
});
|
||||
|
||||
|
|
@ -3,10 +3,10 @@ import { Box, Typography, IconButton } from "@mui/material";
|
|||
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
||||
import SettingsIcon from "@mui/icons-material/Settings";
|
||||
import { useNavigate } from "@tanstack/react-router";
|
||||
import { PitchBooksTable } from "../components/PitchBooksTable";
|
||||
import { pitchBooksQueryOptions } from "../util/query";
|
||||
import { PitchBooksTable } from "../../components/PitchBooksTable";
|
||||
import { pitchBooksQueryOptions } from "../../util/query";
|
||||
|
||||
export const Route = createFileRoute("/pitchbooks")({
|
||||
export const Route = createFileRoute("/ff/pitchbooks")({
|
||||
component: PitchBooksPage,
|
||||
loader: ({ context: { queryClient } }) =>
|
||||
queryClient.ensureQueryData(pitchBooksQueryOptions()),
|
||||
|
|
@ -35,7 +35,7 @@ function PitchBooksPage() {
|
|||
mb={4}
|
||||
>
|
||||
<Box display="flex" alignItems="center">
|
||||
<IconButton onClick={() => navigate({ to: "/" })}>
|
||||
<IconButton onClick={() => navigate({ to: "/ff" })}>
|
||||
<ArrowBackIcon fontSize="large" sx={{ color: '#383838' }}/>
|
||||
</IconButton>
|
||||
<Typography variant="h5" fontWeight="bold" ml={3}>
|
||||
|
|
@ -44,7 +44,7 @@ function PitchBooksPage() {
|
|||
</Box>
|
||||
<IconButton
|
||||
onClick={() => navigate({
|
||||
to: "/config",
|
||||
to: "/ff/config",
|
||||
search: { from: "pitchbooks" }
|
||||
})}
|
||||
>
|
||||
|
|
@ -4,6 +4,7 @@ import { defineConfig } from "vite";
|
|||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
base: "/ff/",
|
||||
plugins: [TanStackRouterVite({ autoCodeSplitting: true }), viteReact()],
|
||||
build: {
|
||||
chunkSizeWarningLimit: 1000, // default ist 500
|
||||
|
|
|
|||
Loading…
Reference in New Issue