ApiLogicServer 15.0.14__py3-none-any.whl → 15.0.20__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. api_logic_server_cli/api_logic_server.py +4 -4
  2. api_logic_server_cli/api_logic_server_info.yaml +2 -2
  3. api_logic_server_cli/cli.py +44 -1
  4. api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc +0 -0
  5. api_logic_server_cli/create_from_model/api_logic_server_utils.py +14 -0
  6. api_logic_server_cli/genai/genai_admin_app copy.py +150 -0
  7. api_logic_server_cli/genai/genai_admin_app.py +162 -0
  8. api_logic_server_cli/genai/genai_svcs.py +49 -10
  9. api_logic_server_cli/logging.yml +5 -0
  10. api_logic_server_cli/prototypes/.DS_Store +0 -0
  11. api_logic_server_cli/prototypes/base/config/config.py +4 -3
  12. api_logic_server_cli/prototypes/base/docs/training/admin_app_1_context.prompt.md +3 -0
  13. api_logic_server_cli/prototypes/base/docs/training/admin_app_2_functionality.prompt.md +69 -0
  14. api_logic_server_cli/prototypes/base/docs/training/admin_app_3_architecture.prompt.md +29 -0
  15. api_logic_server_cli/prototypes/base/docs/training/admin_app_unused.md +156 -0
  16. api_logic_server_cli/prototypes/base/integration/mcp/mcp_client_executor.py +15 -12
  17. api_logic_server_cli/prototypes/basic_demo/customizations/docs/mcp_learning/mcp_discovery.json +108 -0
  18. api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/Admin-App-Learning-Prompt.md +170 -0
  19. api_logic_server_cli/prototypes/manager/system/genai/app_templates/app_learning/notes.md +7 -0
  20. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/.DS_Store +0 -0
  21. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/README.md +17 -0
  22. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/README_create_react_app.md +70 -0
  23. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/package-lock.json +18469 -0
  24. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/package.json +44 -0
  25. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/favicon.ico +0 -0
  26. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/index.html +43 -0
  27. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/logo192.png +0 -0
  28. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/logo512.png +0 -0
  29. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/manifest.json +25 -0
  30. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/public/robots.txt +3 -0
  31. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/App.css +38 -0
  32. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/App.js +25 -0
  33. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/App.test.js +8 -0
  34. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/dataProvider.js +110 -0
  35. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/index.css +13 -0
  36. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/index.js +17 -0
  37. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/logo.svg +1 -0
  38. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/reportWebVitals.js +13 -0
  39. api_logic_server_cli/prototypes/manager/system/genai/app_templates/react-admin-template/src/setupTests.js +5 -0
  40. api_logic_server_cli/prototypes/nw/.DS_Store +0 -0
  41. api_logic_server_cli/prototypes/nw/ui/.DS_Store +0 -0
  42. api_logic_server_cli/prototypes/nw/ui/react_admin/.DS_Store +0 -0
  43. api_logic_server_cli/prototypes/nw/ui/react_admin/README.md +19 -0
  44. api_logic_server_cli/prototypes/nw/ui/react_admin/README_create_react_app.md +70 -0
  45. api_logic_server_cli/prototypes/nw/ui/react_admin/package-lock.json +18469 -0
  46. api_logic_server_cli/prototypes/nw/ui/react_admin/package.json +44 -0
  47. api_logic_server_cli/prototypes/nw/ui/react_admin/public/favicon.ico +0 -0
  48. api_logic_server_cli/prototypes/nw/ui/react_admin/public/index.html +43 -0
  49. api_logic_server_cli/prototypes/nw/ui/react_admin/public/logo192.png +0 -0
  50. api_logic_server_cli/prototypes/nw/ui/react_admin/public/logo512.png +0 -0
  51. api_logic_server_cli/prototypes/nw/ui/react_admin/public/manifest.json +25 -0
  52. api_logic_server_cli/prototypes/nw/ui/react_admin/public/robots.txt +3 -0
  53. api_logic_server_cli/prototypes/nw/ui/react_admin/src/App.css +38 -0
  54. api_logic_server_cli/prototypes/nw/ui/react_admin/src/App.js +58 -0
  55. api_logic_server_cli/prototypes/nw/ui/react_admin/src/App.test.js +8 -0
  56. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Category.js +82 -0
  57. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Customer.js +211 -0
  58. api_logic_server_cli/prototypes/nw/ui/react_admin/src/CustomerDemographic.js +57 -0
  59. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Department.js +98 -0
  60. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Employee.js +100 -0
  61. api_logic_server_cli/prototypes/nw/ui/react_admin/src/EmployeeAudit.js +106 -0
  62. api_logic_server_cli/prototypes/nw/ui/react_admin/src/EmployeeTerritory.js +98 -0
  63. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Location.js +87 -0
  64. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Order.js +98 -0
  65. api_logic_server_cli/prototypes/nw/ui/react_admin/src/OrderDetail.js +112 -0
  66. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Product.js +103 -0
  67. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Region.js +65 -0
  68. api_logic_server_cli/prototypes/nw/ui/react_admin/src/SampleDBVersion.js +73 -0
  69. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Shipper.js +67 -0
  70. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Supplier.js +87 -0
  71. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Territory.js +90 -0
  72. api_logic_server_cli/prototypes/nw/ui/react_admin/src/Union.js +61 -0
  73. api_logic_server_cli/prototypes/nw/ui/react_admin/src/dataProvider.js +110 -0
  74. api_logic_server_cli/prototypes/nw/ui/react_admin/src/index.css +13 -0
  75. api_logic_server_cli/prototypes/nw/ui/react_admin/src/index.js +17 -0
  76. api_logic_server_cli/prototypes/nw/ui/react_admin/src/logo.svg +1 -0
  77. api_logic_server_cli/prototypes/nw/ui/react_admin/src/reportWebVitals.js +13 -0
  78. api_logic_server_cli/prototypes/nw/ui/react_admin/src/setupTests.js +5 -0
  79. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/METADATA +1 -1
  80. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/RECORD +84 -16
  81. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/WHEEL +0 -0
  82. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/entry_points.txt +0 -0
  83. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/licenses/LICENSE +0 -0
  84. {apilogicserver-15.0.14.dist-info → apilogicserver-15.0.20.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,98 @@
1
+ import React from 'react';
2
+ import {
3
+ List,
4
+ Datagrid,
5
+ TextField,
6
+ NumberField,
7
+ ReferenceField,
8
+ Show,
9
+ SimpleShowLayout,
10
+ TabbedShowLayout,
11
+ Tab,
12
+ ReferenceManyField,
13
+ Edit,
14
+ SimpleForm,
15
+ TextInput,
16
+ NumberInput,
17
+ ReferenceInput,
18
+ Create,
19
+ SelectInput, Pagination
20
+ } from 'react-admin';
21
+
22
+ export const DepartmentList = (props) => (
23
+ <List {...props} filters={<DepartmentFilter />} pagination={<DepartmentPagination />}>
24
+ <Datagrid rowClick="show">
25
+ <TextField source="DepartmentName" label="Department Name" />
26
+ <NumberField source="SecurityLevel" label="Security Level" />
27
+ <NumberField source="Id" label="ID" />
28
+ </Datagrid>
29
+ </List>
30
+ );
31
+
32
+ export const DepartmentShow = (props) => (
33
+ <Show {...props}>
34
+ <SimpleShowLayout>
35
+ <TextField source="DepartmentName" label="Department Name" />
36
+ <NumberField source="SecurityLevel" label="Security Level" />
37
+ <NumberField source="Id" label="ID" />
38
+ </SimpleShowLayout>
39
+ <TabbedShowLayout>
40
+ <Tab label="Departments">
41
+ <ReferenceManyField reference="Department" target="DepartmentId" label="" perPage={5} sort={{ field: 'Id', order: 'ASC' }}>
42
+ <Datagrid>
43
+ <ReferenceField source="DepartmentId" reference="Department"><TextField source="DepartmentName" /></ReferenceField>
44
+ <NumberField source="SecurityLevel" label="Security Level" />
45
+ <NumberField source="Id" label="ID" />
46
+ </Datagrid>
47
+ </ReferenceManyField>
48
+ </Tab>
49
+ <Tab label="On Loan Employees">
50
+ <ReferenceManyField reference="Employee" target="OnLoanDepartmentId" label="" perPage={5} sort={{ field: 'Id', order: 'ASC' }}>
51
+ <Datagrid>
52
+ <TextField source="LastName" label="Last Name" />
53
+ <TextField source="FirstName" label="First Name" />
54
+ <NumberField source="Id" label="Employee ID" />
55
+ </Datagrid>
56
+ </ReferenceManyField>
57
+ </Tab>
58
+ <Tab label="Works For Employees">
59
+ <ReferenceManyField reference="Employee" target="WorksForDepartmentId" label="" perPage={5} sort={{ field: 'Id', order: 'ASC' }}>
60
+ <Datagrid>
61
+ <TextField source="LastName" label="Last Name" />
62
+ <TextField source="FirstName" label="First Name" />
63
+ <NumberField source="Id" label="Employee ID" />
64
+ </Datagrid>
65
+ </ReferenceManyField>
66
+ </Tab>
67
+ </TabbedShowLayout>
68
+ </Show>
69
+ );
70
+
71
+ export const DepartmentCreate = (props) => (
72
+ <Create {...props}>
73
+ <SimpleForm>
74
+ <TextInput source="DepartmentName" label="Department Name" />
75
+ <NumberInput source="SecurityLevel" label="Security Level" />
76
+ </SimpleForm>
77
+ </Create>
78
+ );
79
+
80
+ export const DepartmentEdit = (props) => (
81
+ <Edit {...props}>
82
+ <SimpleForm>
83
+ <TextInput source="DepartmentName" label="Department Name" />
84
+ <NumberInput source="SecurityLevel" label="Security Level" />
85
+ <NumberInput source="Id" label="ID" />
86
+ </SimpleForm>
87
+ </Edit>
88
+ );
89
+
90
+ const DepartmentFilter = (props) => (
91
+ <div>
92
+ <TextInput label="Search By Name" source="DepartmentName" alwaysOn {...props} />
93
+ </div>
94
+ );
95
+
96
+ const DepartmentPagination = () => (
97
+ <Pagination rowsPerPageOptions={[5, 10, 25]} />
98
+ );
@@ -0,0 +1,100 @@
1
+ import React from 'react';
2
+ import {
3
+ List, Show, Edit, Create, Datagrid, TextField, NumberField, DateField,
4
+ SimpleShowLayout, TabbedShowLayout, Tab, SimpleForm, TextInput, NumberInput, DateTimeInput,
5
+ ReferenceField, ReferenceManyField, ReferenceInput, SelectInput, BooleanField, BooleanInput,
6
+ FunctionField, Pagination, Filter
7
+ } from 'react-admin';
8
+
9
+ // Filter for Employee
10
+ const EmployeeFilter = (props) => (
11
+ <Filter {...props}>
12
+ <TextInput label="Search by Last Name" source="LastName" alwaysOn />
13
+ <TextInput label="First Name" source="FirstName" />
14
+ <ReferenceInput label="Department" source="WorksForDepartmentId" reference="Department">
15
+ <SelectInput optionText="DepartmentName" />
16
+ </ReferenceInput>
17
+ </Filter>
18
+ );
19
+
20
+ // Employee List
21
+ export const EmployeeList = (props) => (
22
+ <List {...props} filters={<EmployeeFilter />} pagination={<Pagination rowsPerPageOptions={[7, 14, 28]} />} perPage={7}>
23
+ <Datagrid rowClick="show">
24
+ <TextField source="LastName" label="Last Name" />
25
+ <TextField source="FirstName" label="First Name" />
26
+ <TextField source="Title" />
27
+ <DateField source="BirthDate" label="Birth Date" />
28
+ <TextField source="City" />
29
+ <ReferenceField label="Department" source="WorksForDepartmentId" reference="Department">
30
+ <TextField source="DepartmentName" />
31
+ </ReferenceField>
32
+ <NumberField source="Salary" options={{ style: 'currency', currency: 'USD' }} />
33
+ <NumberField source="Id" /> {/* Showing primary key at the end */}
34
+ </Datagrid>
35
+ </List>
36
+ );
37
+
38
+ // Employee Show
39
+ export const EmployeeShow = (props) => (
40
+ <Show {...props}>
41
+ <SimpleShowLayout>
42
+ <TextField source="LastName" label="Last Name" />
43
+ <TextField source="FirstName" label="First Name" />
44
+ <TextField source="Title" />
45
+ <DateField source="BirthDate" label="Birth Date" />
46
+ <TextField source="City" />
47
+ <NumberField source="Salary" options={{ style: 'currency', currency: 'USD' }} />
48
+ <NumberField source="Id" /> // Primary Key field
49
+ </SimpleShowLayout>
50
+ <TabbedShowLayout>
51
+ <Tab label="Audit">
52
+ <ReferenceManyField reference="EmployeeAudit" target="EmployeeId" addLabel={false}>
53
+ <Datagrid rowClick="show">
54
+ <TextField source="LastName" />
55
+ <TextField source="Title" />
56
+ <DateField source="CreatedOn" label="Created On" />
57
+ </Datagrid>
58
+ </ReferenceManyField>
59
+ </Tab>
60
+ <Tab label="Territories">
61
+ <ReferenceManyField reference="EmployeeTerritory" target="EmployeeId" addLabel={false}>
62
+ <Datagrid rowClick="show">
63
+ <TextField source="TerritoryDescription" label="Description" />
64
+ </Datagrid>
65
+ </ReferenceManyField>
66
+ </Tab>
67
+ </TabbedShowLayout>
68
+ </Show>
69
+ );
70
+
71
+ // Employee Create
72
+ export const EmployeeCreate = (props) => (
73
+ <Create {...props}>
74
+ <SimpleForm>
75
+ <TextInput source="LastName" />
76
+ <TextInput source="FirstName" />
77
+ <TextInput source="Title" />
78
+ <DateTimeInput source="BirthDate" label="Birth Date" />
79
+ <TextInput source="City" />
80
+ <NumberInput source="Salary" label="Salary" />
81
+ </SimpleForm>
82
+ </Create>
83
+ );
84
+
85
+ // Employee Edit
86
+ export const EmployeeEdit = (props) => (
87
+ <Edit {...props}>
88
+ <SimpleForm>
89
+ <TextInput source="LastName" />
90
+ <TextInput source="FirstName" />
91
+ <TextInput source="Title" />
92
+ <DateTimeInput source="BirthDate" label="Birth Date" />
93
+ <TextInput source="City" />
94
+ <NumberInput source="Salary" label="Salary" />
95
+ <ReferenceInput label="Department" source="WorksForDepartmentId" reference="Department">
96
+ <SelectInput optionText="DepartmentName" />
97
+ </ReferenceInput>
98
+ </SimpleForm>
99
+ </Edit>
100
+ );
@@ -0,0 +1,106 @@
1
+ import React from 'react';
2
+ import {
3
+ List,
4
+ Datagrid,
5
+ TextField,
6
+ DateField,
7
+ ReferenceField,
8
+ Show,
9
+ TabbedShowLayout,
10
+ Tab,
11
+ SimpleShowLayout,
12
+ Filter,
13
+ TextInput,
14
+ Create,
15
+ SimpleForm,
16
+ Edit,
17
+ NumberField,
18
+ DateTimeInput,
19
+ ReferenceInput,
20
+ SelectInput,
21
+ NumberInput
22
+ } from 'react-admin';
23
+
24
+ // Filters for EmployeeAudit List
25
+ const EmployeeAuditFilter = props => (
26
+ <Filter {...props}>
27
+ <TextInput label="Search by Last Name" source="LastName" alwaysOn />
28
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee" allowEmpty>
29
+ <SelectInput optionText="LastName" />
30
+ </ReferenceInput>
31
+ </Filter>
32
+ );
33
+
34
+ // EmployeeAudit List Component
35
+ export const EmployeeAuditList = props => (
36
+ <List filters={<EmployeeAuditFilter />} {...props} perPage={7} sort={{ field: 'LastName', order: 'ASC' }}>
37
+ <Datagrid rowClick="show">
38
+ <TextField source="LastName" label="Last Name" />
39
+ <TextField source="FirstName" label="First Name" />
40
+ <TextField source="Title" />
41
+ <NumberField source="Salary" options={{ style: 'currency', currency: 'USD' }} />
42
+ <DateField source="CreatedOn" label="Created On" />
43
+ <ReferenceField label="Employee" source="EmployeeId" reference="Employee">
44
+ <TextField source="LastName" />
45
+ </ReferenceField>
46
+ </Datagrid>
47
+ </List>
48
+ );
49
+
50
+ // EmployeeAudit Show Component
51
+ export const EmployeeAuditShow = props => (
52
+ <Show {...props}>
53
+ <SimpleShowLayout>
54
+ <TextField source="LastName" label="Last Name" />
55
+ <TextField source="FirstName" label="First Name" />
56
+ <TextField source="Title" />
57
+ <NumberField source="Salary" options={{ style: 'currency', currency: 'USD' }} label="Salary" />
58
+ <DateField source="CreatedOn" label="Created On" />
59
+ <DateField source="UpdatedOn" label="Updated On" />
60
+ <TextField source="CreatedBy" label="Created By" />
61
+ <TextField source="UpdatedBy" label="Updated By" />
62
+
63
+ <TabbedShowLayout>
64
+ <Tab label="Related Employee">
65
+ <ReferenceField label="Employee" source="EmployeeId" reference="Employee">
66
+ <TextField source="LastName" />
67
+ </ReferenceField>
68
+ </Tab>
69
+ </TabbedShowLayout>
70
+ </SimpleShowLayout>
71
+ </Show>
72
+ );
73
+
74
+ // EmployeeAudit Create Component
75
+ export const EmployeeAuditCreate = props => (
76
+ <Create {...props}>
77
+ <SimpleForm>
78
+ <TextInput source="LastName" label="Last Name" />
79
+ <TextInput source="FirstName" label="First Name" />
80
+ <TextInput source="Title" />
81
+ <NumberInput source="Salary" label="Salary" />
82
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
83
+ <SelectInput optionText="LastName" />
84
+ </ReferenceInput>
85
+ </SimpleForm>
86
+ </Create>
87
+ );
88
+
89
+ // EmployeeAudit Edit Component
90
+ export const EmployeeAuditEdit = props => (
91
+ <Edit {...props}>
92
+ <SimpleForm>
93
+ <TextInput source="LastName" label="Last Name" />
94
+ <TextInput source="FirstName" label="First Name" />
95
+ <TextInput source="Title" />
96
+ <NumberInput source="Salary" label="Salary" />
97
+ <DateTimeInput source="CreatedOn" label="Created On" />
98
+ <DateTimeInput source="UpdatedOn" label="Updated On" />
99
+ <TextInput source="CreatedBy" label="Created By" />
100
+ <TextInput source="UpdatedBy" label="Updated By" />
101
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
102
+ <SelectInput optionText="LastName" />
103
+ </ReferenceInput>
104
+ </SimpleForm>
105
+ </Edit>
106
+ );
@@ -0,0 +1,98 @@
1
+ import React from 'react';
2
+ import {
3
+ List,
4
+ Show,
5
+ SimpleShowLayout,
6
+ TabbedShowLayout,
7
+ Tab,
8
+ Datagrid,
9
+ TextField,
10
+ ReferenceField,
11
+ NumberField,
12
+ ReferenceManyField,
13
+ TextInput,
14
+ ReferenceInput,
15
+ SelectInput,
16
+ Create,
17
+ SimpleForm,
18
+ Edit,
19
+ Filter
20
+ } from 'react-admin';
21
+
22
+ const EmployeeTerritoryFilter = (props) => (
23
+ <Filter {...props}>
24
+ <TextInput label="Employee" source="EmployeeId" alwaysOn />
25
+ <TextInput label="Territory" source="TerritoryId" alwaysOn />
26
+ </Filter>
27
+ );
28
+
29
+ export const EmployeeTerritoryList = props => (
30
+ <List filters={<EmployeeTerritoryFilter />} {...props} perPage={25} sort={{ field: 'Id', order: 'ASC' }}>
31
+ <Datagrid rowClick="show">
32
+ <TextField source="Id" label="ID" />
33
+ <ReferenceField source="EmployeeId" reference="Employee" label="Employee">
34
+ <TextField source="LastName" />
35
+ </ReferenceField>
36
+ <ReferenceField source="TerritoryId" reference="Territory" label="Territory">
37
+ <TextField source="TerritoryDescription" />
38
+ </ReferenceField>
39
+ </Datagrid>
40
+ </List>
41
+ );
42
+
43
+ export const EmployeeTerritoryShow = props => (
44
+ <Show {...props}>
45
+ <SimpleShowLayout>
46
+ <TextField source="Id" label="ID" />
47
+ <ReferenceField source="EmployeeId" reference="Employee" label="Employee">
48
+ <TextField source="LastName" />
49
+ </ReferenceField>
50
+ <ReferenceField source="TerritoryId" reference="Territory" label="Territory">
51
+ <TextField source="TerritoryDescription" />
52
+ </ReferenceField>
53
+ <TabbedShowLayout>
54
+ <Tab label="Details">
55
+ <ReferenceManyField label="Employee" reference="Employee" target="EmployeeId">
56
+ <Datagrid>
57
+ <TextField source="FirstName" label="First Name"/>
58
+ <TextField source="LastName" label="Last Name"/>
59
+ </Datagrid>
60
+ </ReferenceManyField>
61
+ <ReferenceManyField label="Territory" reference="Territory" target="TerritoryId">
62
+ <Datagrid>
63
+ <TextField source="TerritoryDescription" label="Description"/>
64
+ </Datagrid>
65
+ </ReferenceManyField>
66
+ </Tab>
67
+ </TabbedShowLayout>
68
+ </SimpleShowLayout>
69
+ </Show>
70
+ );
71
+
72
+ export const EmployeeTerritoryCreate = props => (
73
+ <Create {...props}>
74
+ <SimpleForm>
75
+ <TextInput source="Id" />
76
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
77
+ <SelectInput optionText="LastName" />
78
+ </ReferenceInput>
79
+ <ReferenceInput label="Territory" source="TerritoryId" reference="Territory">
80
+ <SelectInput optionText="TerritoryDescription" />
81
+ </ReferenceInput>
82
+ </SimpleForm>
83
+ </Create>
84
+ );
85
+
86
+ export const EmployeeTerritoryEdit = props => (
87
+ <Edit {...props}>
88
+ <SimpleForm>
89
+ <TextInput source="Id" />
90
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
91
+ <SelectInput optionText="LastName" />
92
+ </ReferenceInput>
93
+ <ReferenceInput label="Territory" source="TerritoryId" reference="Territory">
94
+ <SelectInput optionText="TerritoryDescription" />
95
+ </ReferenceInput>
96
+ </SimpleForm>
97
+ </Edit>
98
+ );
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import {
3
+ List,
4
+ Datagrid,
5
+ TextField,
6
+ ReferenceManyField,
7
+ Show,
8
+ SimpleShowLayout,
9
+ TabbedShowLayout,
10
+ Tab,
11
+ createFilter,
12
+ Create,
13
+ Edit,
14
+ SimpleForm,
15
+ TextInput,
16
+ } from 'react-admin';
17
+
18
+ // List Component for Location
19
+ export const LocationList = () => (
20
+ <List
21
+ filters={<LocationFilter />}
22
+ perPage={7}
23
+ title="Location List"
24
+ >
25
+ <Datagrid rowClick="show">
26
+ <TextField source="country" label="Country" />
27
+ <TextField source="city" label="City" />
28
+ <TextField source="notes" label="Notes" />
29
+ </Datagrid>
30
+ </List>
31
+ );
32
+
33
+ // Filter Component for Location
34
+ const LocationFilter = () => (
35
+ <createFilter>
36
+ <TextInput label="Country" source="country" alwaysOn />
37
+ <TextInput label="City" source="city" />
38
+ </createFilter>
39
+ );
40
+
41
+ // Show Component for Location
42
+ export const LocationShow = (props) => (
43
+ <Show {...props} title="Location Details">
44
+ <SimpleShowLayout>
45
+ <TextField source="country" label="Country" />
46
+ <TextField source="city" label="City" />
47
+ <TextField source="notes" label="Notes" />
48
+ </SimpleShowLayout>
49
+ <TabbedShowLayout>
50
+ <Tab label="Order List">
51
+ <ReferenceManyField
52
+ reference="Order"
53
+ target="City"
54
+ source="City"
55
+ label="Orders in City"
56
+ >
57
+ <Datagrid rowClick="show">
58
+ <TextField source="ShipName" label="Ship Name" />
59
+ <TextField source="OrderDate" label="Order Date" />
60
+ </Datagrid>
61
+ </ReferenceManyField>
62
+ </Tab>
63
+ </TabbedShowLayout>
64
+ </Show>
65
+ );
66
+
67
+ // Create Component for Location
68
+ export const LocationCreate = (props) => (
69
+ <Create {...props} title="Create a Location">
70
+ <SimpleForm>
71
+ <TextInput source="country" label="Country" />
72
+ <TextInput source="city" label="City" />
73
+ <TextInput source="notes" label="Notes" />
74
+ </SimpleForm>
75
+ </Create>
76
+ );
77
+
78
+ // Edit Component for Location
79
+ export const LocationEdit = (props) => (
80
+ <Edit {...props} title="Edit Location">
81
+ <SimpleForm>
82
+ <TextInput source="country" label="Country" />
83
+ <TextInput source="city" label="City" />
84
+ <TextInput source="notes" label="Notes" />
85
+ </SimpleForm>
86
+ </Edit>
87
+ );
@@ -0,0 +1,98 @@
1
+ // Order.js
2
+ import React from 'react';
3
+ import { List, Datagrid, TextField, DateField, NumberField, ReferenceField, ReferenceManyField, Show, TabbedShowLayout, Tab, SimpleShowLayout, TextInput, NumberInput, DateTimeInput, ReferenceInput, SelectInput, Create, SimpleForm, Edit, Filter, Pagination, BooleanField, BooleanInput } from 'react-admin';
4
+
5
+ // Order Filter
6
+ const OrderFilter = (props) => (
7
+ <Filter {...props}>
8
+ <TextInput label="Search" source="q" alwaysOn />
9
+ <TextInput source="ShipName" />
10
+ </Filter>
11
+ );
12
+
13
+ // Order List
14
+ export const OrderList = props => (
15
+ <List {...props} filters={<OrderFilter />} pagination={<Pagination rowsPerPageOptions={[5, 10, 25]} />}>
16
+ <Datagrid rowClick="show">
17
+ <TextField source="ShipName" label="Ship Name" />
18
+ <DateField source="OrderDate" />
19
+ <ReferenceField source="CustomerId" reference="Customer"><TextField source="CompanyName" /></ReferenceField>
20
+ <ReferenceField source="EmployeeId" reference="Employee"><TextField source="LastName" /></ReferenceField>
21
+ <NumberField source="Freight" options={{ style: 'currency', currency: 'USD' }} />
22
+ <BooleanField source="Ready" />
23
+ <NumberField source="Id" />
24
+ </Datagrid>
25
+ </List>
26
+ );
27
+
28
+ // Order Show
29
+ export const OrderShow = props => (
30
+ <Show {...props}>
31
+ <SimpleShowLayout>
32
+ <TextField source="ShipName" />
33
+ <DateField source="OrderDate" />
34
+ <ReferenceField source="CustomerId" reference="Customer"><TextField source="CompanyName" /></ReferenceField>
35
+ <ReferenceField source="EmployeeId" reference="Employee"><TextField source="LastName" /></ReferenceField>
36
+ <NumberField source="AmountTotal" label="Total Amount" options={{ style: 'currency', currency: 'USD' }} />
37
+ <TextField source="ShipAddress" />
38
+ <TextField source="ShipCity" />
39
+ <TextField source="ShipCountry" />
40
+ <BooleanField source="Ready" />
41
+ </SimpleShowLayout>
42
+ <TabbedShowLayout>
43
+ <Tab label="Order Details">
44
+ <ReferenceManyField reference="OrderDetail" target="OrderId">
45
+ <Datagrid>
46
+ <ReferenceField source="ProductId" reference="Product"><TextField source="ProductName" /></ReferenceField>
47
+ <NumberField source="UnitPrice" options={{ style: 'currency', currency: 'USD' }} />
48
+ <NumberField source="Quantity" />
49
+ <NumberField source="Discount" />
50
+ <NumberField source="Amount" options={{ style: 'currency', currency: 'USD' }} />
51
+ </Datagrid>
52
+ </ReferenceManyField>
53
+ </Tab>
54
+ </TabbedShowLayout>
55
+ </Show>
56
+ );
57
+
58
+ // Order Create
59
+ export const OrderCreate = props => (
60
+ <Create {...props}>
61
+ <SimpleForm>
62
+ <TextInput source="ShipName" />
63
+ <DateTimeInput source="OrderDate" />
64
+ <ReferenceInput label="Customer" source="CustomerId" reference="Customer">
65
+ <SelectInput optionText="CompanyName" />
66
+ </ReferenceInput>
67
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
68
+ <SelectInput optionText="LastName" />
69
+ </ReferenceInput>
70
+ <NumberInput source="AmountTotal" />
71
+ <TextInput source="ShipAddress" />
72
+ <TextInput source="ShipCity" />
73
+ <TextInput source="ShipCountry" />
74
+ <BooleanInput source="Ready" />
75
+ </SimpleForm>
76
+ </Create>
77
+ );
78
+
79
+ // Order Edit
80
+ export const OrderEdit = props => (
81
+ <Edit {...props}>
82
+ <SimpleForm>
83
+ <TextInput source="ShipName" />
84
+ <DateTimeInput source="OrderDate" />
85
+ <ReferenceInput label="Customer" source="CustomerId" reference="Customer">
86
+ <SelectInput optionText="CompanyName" />
87
+ </ReferenceInput>
88
+ <ReferenceInput label="Employee" source="EmployeeId" reference="Employee">
89
+ <SelectInput optionText="LastName" />
90
+ </ReferenceInput>
91
+ <NumberInput source="AmountTotal" />
92
+ <TextInput source="ShipAddress" />
93
+ <TextInput source="ShipCity" />
94
+ <TextInput source="ShipCountry" />
95
+ <BooleanInput source="Ready" />
96
+ </SimpleForm>
97
+ </Edit>
98
+ );