feat: add generated code
This commit is contained in:
60
frontend/src/App.tsx
Normal file
60
frontend/src/App.tsx
Normal file
@@ -0,0 +1,60 @@
|
||||
import { Admin, Resource } from 'react-admin';
|
||||
import { dataProvider } from './dataProvider';
|
||||
import { authProvider } from './authProvider';
|
||||
|
||||
// ProductType resources
|
||||
import { ProductTypeList, ProductTypeCreate, ProductTypeEdit, ProductTypeShow } from './resources/product-type';
|
||||
|
||||
// Product resources
|
||||
import { ProductList, ProductCreate, ProductEdit, ProductShow } from './resources/product';
|
||||
|
||||
// StockStatus resources
|
||||
import { StockStatusList, StockStatusCreate, StockStatusEdit, StockStatusShow } from './resources/stock-status';
|
||||
|
||||
// StockMovement resources
|
||||
import { StockMovementList, StockMovementCreate, StockMovementEdit, StockMovementShow } from './resources/stock-movement';
|
||||
|
||||
// StockMovementLine resources
|
||||
import { StockMovementLineList, StockMovementLineCreate, StockMovementLineEdit, StockMovementLineShow } from './resources/stock-movement-line';
|
||||
|
||||
const App = () => (
|
||||
<Admin dataProvider={dataProvider} authProvider={authProvider}>
|
||||
<Resource
|
||||
name="product-types"
|
||||
list={ProductTypeList}
|
||||
create={ProductTypeCreate}
|
||||
edit={ProductTypeEdit}
|
||||
show={ProductTypeShow}
|
||||
/>
|
||||
<Resource
|
||||
name="products"
|
||||
list={ProductList}
|
||||
create={ProductCreate}
|
||||
edit={ProductEdit}
|
||||
show={ProductShow}
|
||||
/>
|
||||
<Resource
|
||||
name="stock-statuses"
|
||||
list={StockStatusList}
|
||||
create={StockStatusCreate}
|
||||
edit={StockStatusEdit}
|
||||
show={StockStatusShow}
|
||||
/>
|
||||
<Resource
|
||||
name="stock-movements"
|
||||
list={StockMovementList}
|
||||
create={StockMovementCreate}
|
||||
edit={StockMovementEdit}
|
||||
show={StockMovementShow}
|
||||
/>
|
||||
<Resource
|
||||
name="stock-movement-lines"
|
||||
list={StockMovementLineList}
|
||||
create={StockMovementLineCreate}
|
||||
edit={StockMovementLineEdit}
|
||||
show={StockMovementLineShow}
|
||||
/>
|
||||
</Admin>
|
||||
);
|
||||
|
||||
export default App;
|
||||
15
frontend/src/main.tsx
Normal file
15
frontend/src/main.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import App from './App';
|
||||
import { initKeycloak } from './authProvider';
|
||||
|
||||
// Initialize Keycloak before rendering the app
|
||||
initKeycloak().then(() => {
|
||||
ReactDOM.createRoot(document.getElementById('root')!).render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
</React.StrictMode>
|
||||
);
|
||||
}).catch((error) => {
|
||||
console.error('Failed to initialize Keycloak:', error);
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Create, SimpleForm, TextInput } from 'react-admin';
|
||||
|
||||
export const ProductTypeCreate = () => (
|
||||
<Create>
|
||||
<SimpleForm>
|
||||
<TextInput source="name" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
10
frontend/src/resources/product-type/ProductTypeEdit.tsx
Normal file
10
frontend/src/resources/product-type/ProductTypeEdit.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Edit, SimpleForm, TextInput } from 'react-admin';
|
||||
|
||||
export const ProductTypeEdit = () => (
|
||||
<Edit>
|
||||
<SimpleForm>
|
||||
<TextInput disabled source="id" />
|
||||
<TextInput source="name" />
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
13
frontend/src/resources/product-type/ProductTypeList.tsx
Normal file
13
frontend/src/resources/product-type/ProductTypeList.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import { List, DataTable, TextField, DateField, EditButton } from 'react-admin';
|
||||
|
||||
export const ProductTypeList = () => (
|
||||
<List>
|
||||
<DataTable>
|
||||
<DataTable.Col source="id" />
|
||||
<DataTable.Col source="name" />
|
||||
<DataTable.Col source="createdAt" field={DateField} />
|
||||
<DataTable.Col source="updatedAt" field={DateField} />
|
||||
<DataTable.Col><EditButton /></DataTable.Col>
|
||||
</DataTable>
|
||||
</List>
|
||||
);
|
||||
12
frontend/src/resources/product-type/ProductTypeShow.tsx
Normal file
12
frontend/src/resources/product-type/ProductTypeShow.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Show, SimpleShowLayout, TextField, DateField } from 'react-admin';
|
||||
|
||||
export const ProductTypeShow = () => (
|
||||
<Show>
|
||||
<SimpleShowLayout>
|
||||
<TextField source="id" />
|
||||
<TextField source="name" />
|
||||
<DateField source="createdAt" />
|
||||
<DateField source="updatedAt" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
4
frontend/src/resources/product-type/index.ts
Normal file
4
frontend/src/resources/product-type/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { ProductTypeList } from './ProductTypeList';
|
||||
export { ProductTypeEdit } from './ProductTypeEdit';
|
||||
export { ProductTypeCreate } from './ProductTypeCreate';
|
||||
export { ProductTypeShow } from './ProductTypeShow';
|
||||
15
frontend/src/resources/product/ProductCreate.tsx
Normal file
15
frontend/src/resources/product/ProductCreate.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import { Create, SimpleForm, TextInput, ReferenceInput, SelectInput } from 'react-admin';
|
||||
|
||||
export const ProductCreate = () => (
|
||||
<Create>
|
||||
<SimpleForm>
|
||||
<TextInput source="name" />
|
||||
<ReferenceInput source="productTypeId" reference="product-types">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<ReferenceInput source="parentId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
16
frontend/src/resources/product/ProductEdit.tsx
Normal file
16
frontend/src/resources/product/ProductEdit.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Edit, SimpleForm, TextInput, ReferenceInput, SelectInput } from 'react-admin';
|
||||
|
||||
export const ProductEdit = () => (
|
||||
<Edit>
|
||||
<SimpleForm>
|
||||
<TextInput disabled source="id" />
|
||||
<TextInput source="name" />
|
||||
<ReferenceInput source="productTypeId" reference="product-types">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<ReferenceInput source="parentId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
19
frontend/src/resources/product/ProductList.tsx
Normal file
19
frontend/src/resources/product/ProductList.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { List, DataTable, TextField, ReferenceField, DateField, EditButton } from 'react-admin';
|
||||
|
||||
export const ProductList = () => (
|
||||
<List>
|
||||
<DataTable>
|
||||
<DataTable.Col source="id" />
|
||||
<DataTable.Col source="name" />
|
||||
<DataTable.Col source="productTypeId" field={ReferenceField} reference="product-types">
|
||||
<TextField source="name" />
|
||||
</DataTable.Col>
|
||||
<DataTable.Col source="parentId" field={ReferenceField} reference="products">
|
||||
<TextField source="name" />
|
||||
</DataTable.Col>
|
||||
<DataTable.Col source="createdAt" field={DateField} />
|
||||
<DataTable.Col source="updatedAt" field={DateField} />
|
||||
<DataTable.Col><EditButton /></DataTable.Col>
|
||||
</DataTable>
|
||||
</List>
|
||||
);
|
||||
18
frontend/src/resources/product/ProductShow.tsx
Normal file
18
frontend/src/resources/product/ProductShow.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Show, SimpleShowLayout, TextField, ReferenceField, DateField } from 'react-admin';
|
||||
|
||||
export const ProductShow = () => (
|
||||
<Show>
|
||||
<SimpleShowLayout>
|
||||
<TextField source="id" />
|
||||
<TextField source="name" />
|
||||
<ReferenceField source="productTypeId" reference="product-types">
|
||||
<TextField source="name" />
|
||||
</ReferenceField>
|
||||
<ReferenceField source="parentId" reference="products">
|
||||
<TextField source="name" />
|
||||
</ReferenceField>
|
||||
<DateField source="createdAt" />
|
||||
<DateField source="updatedAt" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
4
frontend/src/resources/product/index.ts
Normal file
4
frontend/src/resources/product/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { ProductList } from './ProductList';
|
||||
export { ProductEdit } from './ProductEdit';
|
||||
export { ProductCreate } from './ProductCreate';
|
||||
export { ProductShow } from './ProductShow';
|
||||
@@ -0,0 +1,16 @@
|
||||
import { Create, SimpleForm, ReferenceInput, SelectInput, NumberInput, BooleanInput } from 'react-admin';
|
||||
|
||||
export const StockMovementLineCreate = () => (
|
||||
<Create>
|
||||
<SimpleForm>
|
||||
<ReferenceInput source="productId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<ReferenceInput source="movementId" reference="stock-movements">
|
||||
<SelectInput optionText="id" />
|
||||
</ReferenceInput>
|
||||
<NumberInput source="quantity" />
|
||||
<BooleanInput source="inStock" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Edit, SimpleForm, TextInput, ReferenceInput, SelectInput, NumberInput, BooleanInput } from 'react-admin';
|
||||
|
||||
export const StockMovementLineEdit = () => (
|
||||
<Edit>
|
||||
<SimpleForm>
|
||||
<TextInput disabled source="id" />
|
||||
<ReferenceInput source="productId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<ReferenceInput source="movementId" reference="stock-movements">
|
||||
<SelectInput optionText="id" />
|
||||
</ReferenceInput>
|
||||
<NumberInput source="quantity" />
|
||||
<BooleanInput source="inStock" />
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
@@ -0,0 +1,20 @@
|
||||
import { List, DataTable, TextField, ReferenceField, NumberField, BooleanField, DateField, EditButton } from 'react-admin';
|
||||
|
||||
export const StockMovementLineList = () => (
|
||||
<List>
|
||||
<DataTable>
|
||||
<DataTable.Col source="id" />
|
||||
<DataTable.Col source="productId" field={ReferenceField} reference="products">
|
||||
<TextField source="name" />
|
||||
</DataTable.Col>
|
||||
<DataTable.Col source="movementId" field={ReferenceField} reference="stock-movements">
|
||||
<TextField source="id" />
|
||||
</DataTable.Col>
|
||||
<DataTable.Col source="quantity" field={NumberField} />
|
||||
<DataTable.Col source="inStock" field={BooleanField} />
|
||||
<DataTable.Col source="createdAt" field={DateField} />
|
||||
<DataTable.Col source="updatedAt" field={DateField} />
|
||||
<DataTable.Col><EditButton /></DataTable.Col>
|
||||
</DataTable>
|
||||
</List>
|
||||
);
|
||||
@@ -0,0 +1,19 @@
|
||||
import { Show, SimpleShowLayout, TextField, ReferenceField, NumberField, BooleanField, DateField } from 'react-admin';
|
||||
|
||||
export const StockMovementLineShow = () => (
|
||||
<Show>
|
||||
<SimpleShowLayout>
|
||||
<TextField source="id" />
|
||||
<ReferenceField source="productId" reference="products">
|
||||
<TextField source="name" />
|
||||
</ReferenceField>
|
||||
<ReferenceField source="movementId" reference="stock-movements">
|
||||
<TextField source="id" />
|
||||
</ReferenceField>
|
||||
<NumberField source="quantity" />
|
||||
<BooleanField source="inStock" />
|
||||
<DateField source="createdAt" />
|
||||
<DateField source="updatedAt" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
4
frontend/src/resources/stock-movement-line/index.ts
Normal file
4
frontend/src/resources/stock-movement-line/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { StockMovementLineList } from './StockMovementLineList';
|
||||
export { StockMovementLineEdit } from './StockMovementLineEdit';
|
||||
export { StockMovementLineCreate } from './StockMovementLineCreate';
|
||||
export { StockMovementLineShow } from './StockMovementLineShow';
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Create, SimpleForm, TextInput, DateInput, SelectInput } from 'react-admin';
|
||||
|
||||
const kindChoices = [
|
||||
{ id: 'Receipt', name: 'Receipt' },
|
||||
{ id: 'Issue', name: 'Issue' },
|
||||
{ id: 'Transfer', name: 'Transfer' },
|
||||
{ id: 'Adjustment', name: 'Adjustment' },
|
||||
];
|
||||
|
||||
export const StockMovementCreate = () => (
|
||||
<Create>
|
||||
<SimpleForm>
|
||||
<DateInput source="documentDate" />
|
||||
<SelectInput source="kind" choices={kindChoices} />
|
||||
<TextInput multiline source="comment" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
19
frontend/src/resources/stock-movement/StockMovementEdit.tsx
Normal file
19
frontend/src/resources/stock-movement/StockMovementEdit.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Edit, SimpleForm, TextInput, DateInput, SelectInput } from 'react-admin';
|
||||
|
||||
const kindChoices = [
|
||||
{ id: 'Receipt', name: 'Receipt' },
|
||||
{ id: 'Issue', name: 'Issue' },
|
||||
{ id: 'Transfer', name: 'Transfer' },
|
||||
{ id: 'Adjustment', name: 'Adjustment' },
|
||||
];
|
||||
|
||||
export const StockMovementEdit = () => (
|
||||
<Edit>
|
||||
<SimpleForm>
|
||||
<TextInput disabled source="id" />
|
||||
<DateInput source="documentDate" />
|
||||
<SelectInput source="kind" choices={kindChoices} />
|
||||
<TextInput multiline source="comment" />
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
15
frontend/src/resources/stock-movement/StockMovementList.tsx
Normal file
15
frontend/src/resources/stock-movement/StockMovementList.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import { List, DataTable, TextField, DateField, EditButton } from 'react-admin';
|
||||
|
||||
export const StockMovementList = () => (
|
||||
<List>
|
||||
<DataTable>
|
||||
<DataTable.Col source="id" />
|
||||
<DataTable.Col source="documentDate" field={DateField} />
|
||||
<DataTable.Col source="kind" />
|
||||
<DataTable.Col source="comment" />
|
||||
<DataTable.Col source="createdAt" field={DateField} />
|
||||
<DataTable.Col source="updatedAt" field={DateField} />
|
||||
<DataTable.Col><EditButton /></DataTable.Col>
|
||||
</DataTable>
|
||||
</List>
|
||||
);
|
||||
14
frontend/src/resources/stock-movement/StockMovementShow.tsx
Normal file
14
frontend/src/resources/stock-movement/StockMovementShow.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Show, SimpleShowLayout, TextField, DateField } from 'react-admin';
|
||||
|
||||
export const StockMovementShow = () => (
|
||||
<Show>
|
||||
<SimpleShowLayout>
|
||||
<TextField source="id" />
|
||||
<DateField source="documentDate" />
|
||||
<TextField source="kind" />
|
||||
<TextField source="comment" />
|
||||
<DateField source="createdAt" />
|
||||
<DateField source="updatedAt" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
4
frontend/src/resources/stock-movement/index.ts
Normal file
4
frontend/src/resources/stock-movement/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { StockMovementList } from './StockMovementList';
|
||||
export { StockMovementEdit } from './StockMovementEdit';
|
||||
export { StockMovementCreate } from './StockMovementCreate';
|
||||
export { StockMovementShow } from './StockMovementShow';
|
||||
13
frontend/src/resources/stock-status/StockStatusCreate.tsx
Normal file
13
frontend/src/resources/stock-status/StockStatusCreate.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Create, SimpleForm, ReferenceInput, SelectInput, NumberInput, BooleanInput } from 'react-admin';
|
||||
|
||||
export const StockStatusCreate = () => (
|
||||
<Create>
|
||||
<SimpleForm>
|
||||
<ReferenceInput source="productId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<NumberInput source="quantity" />
|
||||
<BooleanInput source="inStock" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
13
frontend/src/resources/stock-status/StockStatusEdit.tsx
Normal file
13
frontend/src/resources/stock-status/StockStatusEdit.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Edit, SimpleForm, ReferenceInput, SelectInput, NumberInput, BooleanInput } from 'react-admin';
|
||||
|
||||
export const StockStatusEdit = () => (
|
||||
<Edit>
|
||||
<SimpleForm>
|
||||
<ReferenceInput source="productId" reference="products">
|
||||
<SelectInput optionText="name" />
|
||||
</ReferenceInput>
|
||||
<NumberInput source="quantity" />
|
||||
<BooleanInput source="inStock" />
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
15
frontend/src/resources/stock-status/StockStatusList.tsx
Normal file
15
frontend/src/resources/stock-status/StockStatusList.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import { List, DataTable, ReferenceField, TextField, NumberField, BooleanField, DateField, EditButton } from 'react-admin';
|
||||
|
||||
export const StockStatusList = () => (
|
||||
<List>
|
||||
<DataTable>
|
||||
<DataTable.Col source="productId" field={ReferenceField} reference="products">
|
||||
<TextField source="name" />
|
||||
</DataTable.Col>
|
||||
<DataTable.Col source="quantity" field={NumberField} />
|
||||
<DataTable.Col source="inStock" field={BooleanField} />
|
||||
<DataTable.Col source="updatedAt" field={DateField} />
|
||||
<DataTable.Col><EditButton /></DataTable.Col>
|
||||
</DataTable>
|
||||
</List>
|
||||
);
|
||||
14
frontend/src/resources/stock-status/StockStatusShow.tsx
Normal file
14
frontend/src/resources/stock-status/StockStatusShow.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Show, SimpleShowLayout, ReferenceField, TextField, NumberField, BooleanField, DateField } from 'react-admin';
|
||||
|
||||
export const StockStatusShow = () => (
|
||||
<Show>
|
||||
<SimpleShowLayout>
|
||||
<ReferenceField source="productId" reference="products">
|
||||
<TextField source="name" />
|
||||
</ReferenceField>
|
||||
<NumberField source="quantity" />
|
||||
<BooleanField source="inStock" />
|
||||
<DateField source="updatedAt" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
4
frontend/src/resources/stock-status/index.ts
Normal file
4
frontend/src/resources/stock-status/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { StockStatusList } from './StockStatusList';
|
||||
export { StockStatusEdit } from './StockStatusEdit';
|
||||
export { StockStatusCreate } from './StockStatusCreate';
|
||||
export { StockStatusShow } from './StockStatusShow';
|
||||
Reference in New Issue
Block a user