@hrbolek/uoisfrontend-template 0.6.0
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.
- package/index.html +104 -0
- package/package.json +24 -0
- package/src/Base/Components/Attribute.jsx +51 -0
- package/src/Base/Components/CardCapsule.jsx +353 -0
- package/src/Base/Components/Col.jsx +36 -0
- package/src/Base/Components/ConfirmEdit.jsx +61 -0
- package/src/Base/Components/CopyButton.jsx +33 -0
- package/src/Base/Components/LargeCard.jsx +22 -0
- package/src/Base/Components/Link.jsx +42 -0
- package/src/Base/Components/LiveEdit.jsx +64 -0
- package/src/Base/Components/MediumCard.jsx +30 -0
- package/src/Base/Components/MediumContent.jsx +74 -0
- package/src/Base/Components/MediumEditableContent.jsx +52 -0
- package/src/Base/Components/ProxyLink.jsx +132 -0
- package/src/Base/Components/Row.jsx +23 -0
- package/src/Base/Components/Table.jsx +275 -0
- package/src/Base/Components/index.js +14 -0
- package/src/Base/Components/style.js +278 -0
- package/src/Base/FormControls/Collapsible.jsx +46 -0
- package/src/Base/FormControls/Dialog.jsx +75 -0
- package/src/Base/FormControls/EntityLookup.jsx +175 -0
- package/src/Base/FormControls/Filter.jsx +834 -0
- package/src/Base/FormControls/Input.jsx +163 -0
- package/src/Base/FormControls/Label.jsx +40 -0
- package/src/Base/FormControls/Select.jsx +150 -0
- package/src/Base/FormControls/TextArea.jsx +86 -0
- package/src/Base/FormControls/index.js +8 -0
- package/src/Base/Helpers/AsyncStateIndicator.jsx +9 -0
- package/src/Base/Helpers/GQLEntityProvider.jsx +163 -0
- package/src/Base/Helpers/NavigationHistoryProvider.jsx +178 -0
- package/src/Base/Helpers/PlaceChild.jsx +13 -0
- package/src/Base/Helpers/generateQuery.js +508 -0
- package/src/Base/Helpers/index.js +5 -0
- package/src/Base/Mutations/Create.jsx +152 -0
- package/src/Base/Mutations/Delete.jsx +237 -0
- package/src/Base/Mutations/General.jsx +241 -0
- package/src/Base/Mutations/InteractiveMutations.jsx +32 -0
- package/src/Base/Mutations/Update.jsx +270 -0
- package/src/Base/Mutations/helpers.jsx +7 -0
- package/src/Base/Mutations/index.js +5 -0
- package/src/Base/Pages/Page.jsx +235 -0
- package/src/Base/Pages/PageCatch.jsx +235 -0
- package/src/Base/Pages/PageNavbar.jsx +70 -0
- package/src/Base/Pages/PageVector.jsx +229 -0
- package/src/Base/Pages/RouterSegment.jsx +66 -0
- package/src/Base/Pages/index.js +5 -0
- package/src/Base/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/Base/Queries/Fragments.jsx +101 -0
- package/src/Base/Queries/InsertAsyncAction.jsx +40 -0
- package/src/Base/Queries/ReadAsyncAction.jsx +44 -0
- package/src/Base/Queries/ReadPageAsyncAction.jsx +16 -0
- package/src/Base/Queries/SearchAsyncAction.jsx +16 -0
- package/src/Base/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/Base/Queries/index.js +6 -0
- package/src/Base/Scalars/ScalarAttribute.jsx +49 -0
- package/src/Base/Scalars/index.js +1 -0
- package/src/Base/Vectors/VectorAttribute.jsx +137 -0
- package/src/Base/Vectors/index.js +1 -0
- package/src/Base/index.js +32 -0
- package/src/GroupGQLModel/Components/CUDButton.jsx +128 -0
- package/src/GroupGQLModel/Components/CardCapsule.jsx +44 -0
- package/src/GroupGQLModel/Components/Children.jsx +31 -0
- package/src/GroupGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/GroupGQLModel/Components/Filter.jsx +14 -0
- package/src/GroupGQLModel/Components/LargeCard.jsx +68 -0
- package/src/GroupGQLModel/Components/Link.jsx +54 -0
- package/src/GroupGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/GroupGQLModel/Components/MediumCard.jsx +51 -0
- package/src/GroupGQLModel/Components/MediumContent.jsx +56 -0
- package/src/GroupGQLModel/Components/MediumEditableContent.jsx +52 -0
- package/src/GroupGQLModel/Components/Table.jsx +70 -0
- package/src/GroupGQLModel/Components/index.js +14 -0
- package/src/GroupGQLModel/Mutations/AddMembership.jsx +156 -0
- package/src/GroupGQLModel/Mutations/Create.jsx +67 -0
- package/src/GroupGQLModel/Mutations/Delete.jsx +81 -0
- package/src/GroupGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/GroupGQLModel/Mutations/Update.jsx +74 -0
- package/src/GroupGQLModel/Pages/PageBase.jsx +56 -0
- package/src/GroupGQLModel/Pages/PageCreateItem.jsx +27 -0
- package/src/GroupGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/GroupGQLModel/Pages/PageNavbar.jsx +264 -0
- package/src/GroupGQLModel/Pages/PageReadItem.jsx +12 -0
- package/src/GroupGQLModel/Pages/PageReadItemEx.jsx +57 -0
- package/src/GroupGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/GroupGQLModel/Pages/PageVector.jsx +80 -0
- package/src/GroupGQLModel/Pages/RouterSegment.jsx +85 -0
- package/src/GroupGQLModel/Pages/index.js +2 -0
- package/src/GroupGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
- package/src/GroupGQLModel/Queries/Fragments.jsx +129 -0
- package/src/GroupGQLModel/Queries/InsertAsyncAction.jsx +43 -0
- package/src/GroupGQLModel/Queries/ReadAsyncAction.jsx +44 -0
- package/src/GroupGQLModel/Queries/ReadPageAsyncAction.jsx +18 -0
- package/src/GroupGQLModel/Queries/SearchAsyncAction.jsx +15 -0
- package/src/GroupGQLModel/Queries/UpdateAsyncAction.jsx +56 -0
- package/src/GroupGQLModel/Queries/index.js +6 -0
- package/src/GroupGQLModel/Scalars/GroupRoles.jsx +69 -0
- package/src/GroupGQLModel/Scalars/MasterGroup.jsx +15 -0
- package/src/GroupGQLModel/Scalars/RBACObject.jsx +233 -0
- package/src/GroupGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/GroupGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/GroupGQLModel/Scalars/index.js +1 -0
- package/src/GroupGQLModel/Vectors/GroupMemberships.jsx +115 -0
- package/src/GroupGQLModel/Vectors/GroupRoles.jsx +112 -0
- package/src/GroupGQLModel/Vectors/GroupRolesOn.jsx +113 -0
- package/src/GroupGQLModel/Vectors/GroupSubgroups.jsx +97 -0
- package/src/GroupGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/GroupGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/GroupGQLModel/Vectors/index.js +1 -0
- package/src/GroupGQLModel/index.js +7 -0
- package/src/GroupTypeGQLModel/Components/CUDButton.jsx +128 -0
- package/src/GroupTypeGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/GroupTypeGQLModel/Components/Children.jsx +31 -0
- package/src/GroupTypeGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/GroupTypeGQLModel/Components/Filter.jsx +14 -0
- package/src/GroupTypeGQLModel/Components/LargeCard.jsx +49 -0
- package/src/GroupTypeGQLModel/Components/Link.jsx +53 -0
- package/src/GroupTypeGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/GroupTypeGQLModel/Components/MediumCard.jsx +39 -0
- package/src/GroupTypeGQLModel/Components/MediumContent.jsx +97 -0
- package/src/GroupTypeGQLModel/Components/MediumEditableContent.jsx +35 -0
- package/src/GroupTypeGQLModel/Components/Table.jsx +7 -0
- package/src/GroupTypeGQLModel/Components/index.js +14 -0
- package/src/GroupTypeGQLModel/Mutations/Create.jsx +67 -0
- package/src/GroupTypeGQLModel/Mutations/Delete.jsx +80 -0
- package/src/GroupTypeGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/GroupTypeGQLModel/Mutations/Update.jsx +74 -0
- package/src/GroupTypeGQLModel/Pages/Page.jsx +3 -0
- package/src/GroupTypeGQLModel/Pages/PageBase.jsx +26 -0
- package/src/GroupTypeGQLModel/Pages/PageCreateItem.jsx +21 -0
- package/src/GroupTypeGQLModel/Pages/PageDeleteItem.jsx +13 -0
- package/src/GroupTypeGQLModel/Pages/PageNavbar.jsx +148 -0
- package/src/GroupTypeGQLModel/Pages/PageReadItem.jsx +28 -0
- package/src/GroupTypeGQLModel/Pages/PageUpdateItem.jsx +25 -0
- package/src/GroupTypeGQLModel/Pages/PageVector.jsx +83 -0
- package/src/GroupTypeGQLModel/Pages/RouterSegment.jsx +68 -0
- package/src/GroupTypeGQLModel/Pages/index.js +10 -0
- package/src/GroupTypeGQLModel/Queries/DeleteAsyncAction.jsx +27 -0
- package/src/GroupTypeGQLModel/Queries/Fragments.jsx +96 -0
- package/src/GroupTypeGQLModel/Queries/InsertAsyncAction.jsx +41 -0
- package/src/GroupTypeGQLModel/Queries/ReadAsyncAction.jsx +45 -0
- package/src/GroupTypeGQLModel/Queries/ReadPageAsyncAction.jsx +14 -0
- package/src/GroupTypeGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/GroupTypeGQLModel/Queries/UpdateAsyncAction.jsx +42 -0
- package/src/GroupTypeGQLModel/Queries/index.js +6 -0
- package/src/GroupTypeGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/GroupTypeGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/GroupTypeGQLModel/Scalars/index.js +1 -0
- package/src/GroupTypeGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/GroupTypeGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/GroupTypeGQLModel/Vectors/index.js +1 -0
- package/src/GroupTypeGQLModel/index.js +6 -0
- package/src/MembershipGQLModel/Components/CUDButton.jsx +128 -0
- package/src/MembershipGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/MembershipGQLModel/Components/Children.jsx +31 -0
- package/src/MembershipGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/MembershipGQLModel/Components/Filter.jsx +14 -0
- package/src/MembershipGQLModel/Components/LargeCard.jsx +49 -0
- package/src/MembershipGQLModel/Components/Link.jsx +54 -0
- package/src/MembershipGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/MembershipGQLModel/Components/MediumCard.jsx +39 -0
- package/src/MembershipGQLModel/Components/MediumContent.jsx +97 -0
- package/src/MembershipGQLModel/Components/MediumEditableContent.jsx +35 -0
- package/src/MembershipGQLModel/Components/Table.jsx +7 -0
- package/src/MembershipGQLModel/Components/index.js +14 -0
- package/src/MembershipGQLModel/Mutations/Create.jsx +67 -0
- package/src/MembershipGQLModel/Mutations/Delete.jsx +80 -0
- package/src/MembershipGQLModel/Mutations/InteractiveMutations.jsx +31 -0
- package/src/MembershipGQLModel/Mutations/Update.jsx +74 -0
- package/src/MembershipGQLModel/Mutations/helpers.jsx +7 -0
- package/src/MembershipGQLModel/Pages/PageBase.jsx +57 -0
- package/src/MembershipGQLModel/Pages/PageCreateItem.jsx +28 -0
- package/src/MembershipGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/MembershipGQLModel/Pages/PageNavbar.jsx +110 -0
- package/src/MembershipGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/MembershipGQLModel/Pages/PageReadItemEx.jsx +42 -0
- package/src/MembershipGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/MembershipGQLModel/Pages/PageVector.jsx +80 -0
- package/src/MembershipGQLModel/Pages/RouterSegment.jsx +73 -0
- package/src/MembershipGQLModel/Pages/index.js +2 -0
- package/src/MembershipGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/MembershipGQLModel/Queries/Fragments.jsx +113 -0
- package/src/MembershipGQLModel/Queries/InsertAsyncAction.jsx +38 -0
- package/src/MembershipGQLModel/Queries/ReadAsyncAction.jsx +44 -0
- package/src/MembershipGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/MembershipGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/MembershipGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/MembershipGQLModel/Queries/index.js +6 -0
- package/src/MembershipGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/MembershipGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/MembershipGQLModel/Scalars/index.js +1 -0
- package/src/MembershipGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/MembershipGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/MembershipGQLModel/Vectors/index.js +1 -0
- package/src/MembershipGQLModel/WhatToDo.md +44 -0
- package/src/MembershipGQLModel/index.js +6 -0
- package/src/RBACGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/RBACGQLModel/Components/Children.jsx +31 -0
- package/src/RBACGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/RBACGQLModel/Components/Filter.jsx +14 -0
- package/src/RBACGQLModel/Components/LargeCard.jsx +50 -0
- package/src/RBACGQLModel/Components/Link.jsx +54 -0
- package/src/RBACGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/RBACGQLModel/Components/MediumCard.jsx +39 -0
- package/src/RBACGQLModel/Components/MediumContent.jsx +96 -0
- package/src/RBACGQLModel/Components/MediumEditableContent.jsx +212 -0
- package/src/RBACGQLModel/Components/Table.jsx +7 -0
- package/src/RBACGQLModel/Components/index.js +13 -0
- package/src/RBACGQLModel/Mutations/Create.jsx +202 -0
- package/src/RBACGQLModel/Mutations/Delete.jsx +173 -0
- package/src/RBACGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/RBACGQLModel/Mutations/Update.jsx +147 -0
- package/src/RBACGQLModel/Mutations/helpers.jsx +7 -0
- package/src/RBACGQLModel/Pages/PageBase.jsx +56 -0
- package/src/RBACGQLModel/Pages/PageCreateItem.jsx +28 -0
- package/src/RBACGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/RBACGQLModel/Pages/PageNavbar.jsx +160 -0
- package/src/RBACGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/RBACGQLModel/Pages/PageReadItemEx.jsx +42 -0
- package/src/RBACGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/RBACGQLModel/Pages/PageVector.jsx +80 -0
- package/src/RBACGQLModel/Pages/RouterSegment.jsx +72 -0
- package/src/RBACGQLModel/Pages/index.js +2 -0
- package/src/RBACGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/RBACGQLModel/Queries/Fragments.jsx +101 -0
- package/src/RBACGQLModel/Queries/InsertAsyncAction.jsx +40 -0
- package/src/RBACGQLModel/Queries/ReadAsyncAction.jsx +44 -0
- package/src/RBACGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/RBACGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/RBACGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/RBACGQLModel/Queries/index.js +6 -0
- package/src/RBACGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/RBACGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/RBACGQLModel/Scalars/index.js +1 -0
- package/src/RBACGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/RBACGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/RBACGQLModel/Vectors/index.js +1 -0
- package/src/RBACGQLModel/WhatToDo.md +44 -0
- package/src/RBACGQLModel/index.js +71 -0
- package/src/RoleGQLModel/Components/CUDButton.jsx +128 -0
- package/src/RoleGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/RoleGQLModel/Components/Children.jsx +31 -0
- package/src/RoleGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/RoleGQLModel/Components/Filter.jsx +14 -0
- package/src/RoleGQLModel/Components/LargeCard.jsx +49 -0
- package/src/RoleGQLModel/Components/Link.jsx +55 -0
- package/src/RoleGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/RoleGQLModel/Components/MediumCard.jsx +39 -0
- package/src/RoleGQLModel/Components/MediumContent.jsx +97 -0
- package/src/RoleGQLModel/Components/MediumEditableContent.jsx +72 -0
- package/src/RoleGQLModel/Components/RBACObject.jsx +22 -0
- package/src/RoleGQLModel/Components/Table.jsx +82 -0
- package/src/RoleGQLModel/Components/index.js +14 -0
- package/src/RoleGQLModel/Mutations/AddRoleOnGroup.jsx +117 -0
- package/src/RoleGQLModel/Mutations/Create.jsx +67 -0
- package/src/RoleGQLModel/Mutations/Delete.jsx +80 -0
- package/src/RoleGQLModel/Mutations/InteractiveMutations.jsx +31 -0
- package/src/RoleGQLModel/Mutations/Update.jsx +74 -0
- package/src/RoleGQLModel/Pages/Page.jsx +3 -0
- package/src/RoleGQLModel/Pages/PageBase.jsx +26 -0
- package/src/RoleGQLModel/Pages/PageContent.jsx +31 -0
- package/src/RoleGQLModel/Pages/PageCreateItem.jsx +21 -0
- package/src/RoleGQLModel/Pages/PageDeleteItem.jsx +13 -0
- package/src/RoleGQLModel/Pages/PageNavbar.jsx +161 -0
- package/src/RoleGQLModel/Pages/PageReadItem.jsx +28 -0
- package/src/RoleGQLModel/Pages/PageUpdateItem.jsx +25 -0
- package/src/RoleGQLModel/Pages/PageVector.jsx +83 -0
- package/src/RoleGQLModel/Pages/RouterSegment.jsx +69 -0
- package/src/RoleGQLModel/Pages/index.js +10 -0
- package/src/RoleGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
- package/src/RoleGQLModel/Queries/Fragments.jsx +123 -0
- package/src/RoleGQLModel/Queries/InsertAsyncAction.jsx +45 -0
- package/src/RoleGQLModel/Queries/ReadAsyncAction.jsx +45 -0
- package/src/RoleGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/RoleGQLModel/Queries/UpdateAsyncAction.jsx +35 -0
- package/src/RoleGQLModel/Queries/index.js +6 -0
- package/src/RoleGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/RoleGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/RoleGQLModel/Scalars/index.js +1 -0
- package/src/RoleGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/RoleGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/RoleGQLModel/Vectors/index.js +1 -0
- package/src/RoleGQLModel/index.js +6 -0
- package/src/RoleTypeGQLModel/Components/CUDButton.jsx +128 -0
- package/src/RoleTypeGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/RoleTypeGQLModel/Components/Children.jsx +31 -0
- package/src/RoleTypeGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/RoleTypeGQLModel/Components/Filter.jsx +14 -0
- package/src/RoleTypeGQLModel/Components/LargeCard.jsx +49 -0
- package/src/RoleTypeGQLModel/Components/Link.jsx +55 -0
- package/src/RoleTypeGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/RoleTypeGQLModel/Components/MediumCard.jsx +39 -0
- package/src/RoleTypeGQLModel/Components/MediumContent.jsx +97 -0
- package/src/RoleTypeGQLModel/Components/MediumEditableContent.jsx +35 -0
- package/src/RoleTypeGQLModel/Components/Table.jsx +7 -0
- package/src/RoleTypeGQLModel/Components/index.js +14 -0
- package/src/RoleTypeGQLModel/Mutations/Create.jsx +67 -0
- package/src/RoleTypeGQLModel/Mutations/Delete.jsx +80 -0
- package/src/RoleTypeGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/RoleTypeGQLModel/Mutations/Update.jsx +74 -0
- package/src/RoleTypeGQLModel/Pages/Page.jsx +3 -0
- package/src/RoleTypeGQLModel/Pages/PageBase.jsx +56 -0
- package/src/RoleTypeGQLModel/Pages/PageCreateItem.jsx +27 -0
- package/src/RoleTypeGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/RoleTypeGQLModel/Pages/PageNavbar.jsx +148 -0
- package/src/RoleTypeGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/RoleTypeGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/RoleTypeGQLModel/Pages/PageVector.jsx +79 -0
- package/src/RoleTypeGQLModel/Pages/RouterSegment.jsx +69 -0
- package/src/RoleTypeGQLModel/Pages/index.js +10 -0
- package/src/RoleTypeGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/RoleTypeGQLModel/Queries/Fragments.jsx +103 -0
- package/src/RoleTypeGQLModel/Queries/InsertAsyncAction.jsx +40 -0
- package/src/RoleTypeGQLModel/Queries/ReadAsyncAction.jsx +44 -0
- package/src/RoleTypeGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/RoleTypeGQLModel/Queries/SearchAsyncAction.jsx +29 -0
- package/src/RoleTypeGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/RoleTypeGQLModel/Queries/index.js +6 -0
- package/src/RoleTypeGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/RoleTypeGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/RoleTypeGQLModel/Scalars/index.js +1 -0
- package/src/RoleTypeGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/RoleTypeGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/RoleTypeGQLModel/Vectors/index.js +1 -0
- package/src/RoleTypeGQLModel/index.js +6 -0
- package/src/StateGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/StateGQLModel/Components/Children.jsx +31 -0
- package/src/StateGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/StateGQLModel/Components/Filter.jsx +14 -0
- package/src/StateGQLModel/Components/LargeCard.jsx +50 -0
- package/src/StateGQLModel/Components/Link.jsx +54 -0
- package/src/StateGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/StateGQLModel/Components/MediumCard.jsx +39 -0
- package/src/StateGQLModel/Components/MediumContent.jsx +96 -0
- package/src/StateGQLModel/Components/MediumEditableContent.jsx +36 -0
- package/src/StateGQLModel/Components/Table.jsx +7 -0
- package/src/StateGQLModel/Components/index.js +13 -0
- package/src/StateGQLModel/Mutations/Create.jsx +79 -0
- package/src/StateGQLModel/Mutations/Delete.jsx +87 -0
- package/src/StateGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/StateGQLModel/Mutations/Update.jsx +76 -0
- package/src/StateGQLModel/Mutations/helpers.jsx +7 -0
- package/src/StateGQLModel/Pages/PageBase.jsx +56 -0
- package/src/StateGQLModel/Pages/PageCreateItem.jsx +28 -0
- package/src/StateGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/StateGQLModel/Pages/PageNavbar.jsx +160 -0
- package/src/StateGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/StateGQLModel/Pages/PageReadItemEx.jsx +42 -0
- package/src/StateGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/StateGQLModel/Pages/PageVector.jsx +80 -0
- package/src/StateGQLModel/Pages/RouterSegment.jsx +72 -0
- package/src/StateGQLModel/Pages/index.js +2 -0
- package/src/StateGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/StateGQLModel/Queries/Fragments.jsx +109 -0
- package/src/StateGQLModel/Queries/InsertAsyncAction.jsx +104 -0
- package/src/StateGQLModel/Queries/ReadAsyncAction.jsx +48 -0
- package/src/StateGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
- package/src/StateGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/StateGQLModel/Queries/UpdateAsyncAction.jsx +106 -0
- package/src/StateGQLModel/Queries/index.js +6 -0
- package/src/StateGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/StateGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/StateGQLModel/Scalars/index.js +1 -0
- package/src/StateGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/StateGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/StateGQLModel/Vectors/index.js +1 -0
- package/src/StateGQLModel/index.js +71 -0
- package/src/StateMachineGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/StateMachineGQLModel/Components/Children.jsx +31 -0
- package/src/StateMachineGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/StateMachineGQLModel/Components/Filter.jsx +14 -0
- package/src/StateMachineGQLModel/Components/LargeCard.jsx +50 -0
- package/src/StateMachineGQLModel/Components/Link.jsx +54 -0
- package/src/StateMachineGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/StateMachineGQLModel/Components/MediumCard.jsx +39 -0
- package/src/StateMachineGQLModel/Components/MediumContent.jsx +96 -0
- package/src/StateMachineGQLModel/Components/MediumEditableContent.jsx +989 -0
- package/src/StateMachineGQLModel/Components/Table.jsx +7 -0
- package/src/StateMachineGQLModel/Components/index.js +13 -0
- package/src/StateMachineGQLModel/Mutations/Create.jsx +79 -0
- package/src/StateMachineGQLModel/Mutations/Delete.jsx +80 -0
- package/src/StateMachineGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/StateMachineGQLModel/Mutations/Update.jsx +74 -0
- package/src/StateMachineGQLModel/Mutations/helpers.jsx +7 -0
- package/src/StateMachineGQLModel/Pages/PageBase.jsx +56 -0
- package/src/StateMachineGQLModel/Pages/PageCreateItem.jsx +28 -0
- package/src/StateMachineGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/StateMachineGQLModel/Pages/PageNavbar.jsx +160 -0
- package/src/StateMachineGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/StateMachineGQLModel/Pages/PageReadItemEx.jsx +42 -0
- package/src/StateMachineGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/StateMachineGQLModel/Pages/PageVector.jsx +80 -0
- package/src/StateMachineGQLModel/Pages/RouterSegment.jsx +72 -0
- package/src/StateMachineGQLModel/Pages/index.js +2 -0
- package/src/StateMachineGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/StateMachineGQLModel/Queries/Fragments.jsx +148 -0
- package/src/StateMachineGQLModel/Queries/InsertAsyncAction.jsx +44 -0
- package/src/StateMachineGQLModel/Queries/ReadAsyncAction.jsx +48 -0
- package/src/StateMachineGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
- package/src/StateMachineGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/StateMachineGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/StateMachineGQLModel/Queries/index.js +6 -0
- package/src/StateMachineGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/StateMachineGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/StateMachineGQLModel/Scalars/index.js +1 -0
- package/src/StateMachineGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/StateMachineGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/StateMachineGQLModel/Vectors/index.js +1 -0
- package/src/StateMachineGQLModel/WhatToDo.md +44 -0
- package/src/StateMachineGQLModel/index.js +71 -0
- package/src/StateTransitionGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/StateTransitionGQLModel/Components/Children.jsx +31 -0
- package/src/StateTransitionGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/StateTransitionGQLModel/Components/Filter.jsx +14 -0
- package/src/StateTransitionGQLModel/Components/LargeCard.jsx +50 -0
- package/src/StateTransitionGQLModel/Components/Link.jsx +54 -0
- package/src/StateTransitionGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/StateTransitionGQLModel/Components/MediumCard.jsx +39 -0
- package/src/StateTransitionGQLModel/Components/MediumContent.jsx +96 -0
- package/src/StateTransitionGQLModel/Components/MediumEditableContent.jsx +35 -0
- package/src/StateTransitionGQLModel/Components/Table.jsx +7 -0
- package/src/StateTransitionGQLModel/Components/index.js +13 -0
- package/src/StateTransitionGQLModel/Mutations/Create.jsx +79 -0
- package/src/StateTransitionGQLModel/Mutations/Delete.jsx +80 -0
- package/src/StateTransitionGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/StateTransitionGQLModel/Mutations/Update.jsx +75 -0
- package/src/StateTransitionGQLModel/Mutations/helpers.jsx +7 -0
- package/src/StateTransitionGQLModel/Pages/PageBase.jsx +56 -0
- package/src/StateTransitionGQLModel/Pages/PageCreateItem.jsx +28 -0
- package/src/StateTransitionGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/StateTransitionGQLModel/Pages/PageNavbar.jsx +160 -0
- package/src/StateTransitionGQLModel/Pages/PageReadItem.jsx +11 -0
- package/src/StateTransitionGQLModel/Pages/PageReadItemEx.jsx +42 -0
- package/src/StateTransitionGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/StateTransitionGQLModel/Pages/PageVector.jsx +80 -0
- package/src/StateTransitionGQLModel/Pages/RouterSegment.jsx +72 -0
- package/src/StateTransitionGQLModel/Pages/index.js +2 -0
- package/src/StateTransitionGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/StateTransitionGQLModel/Queries/Fragments.jsx +150 -0
- package/src/StateTransitionGQLModel/Queries/InsertAsyncAction.jsx +107 -0
- package/src/StateTransitionGQLModel/Queries/ReadAsyncAction.jsx +48 -0
- package/src/StateTransitionGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
- package/src/StateTransitionGQLModel/Queries/SearchAsyncAction.jsx +16 -0
- package/src/StateTransitionGQLModel/Queries/UpdateAsyncAction.jsx +109 -0
- package/src/StateTransitionGQLModel/Queries/index.js +6 -0
- package/src/StateTransitionGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/StateTransitionGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/StateTransitionGQLModel/Scalars/index.js +1 -0
- package/src/StateTransitionGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/StateTransitionGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/StateTransitionGQLModel/Vectors/index.js +1 -0
- package/src/StateTransitionGQLModel/WhatToDo.md +44 -0
- package/src/StateTransitionGQLModel/index.js +71 -0
- package/src/Template/Attributes/TemplateTrivialAttribute.jsx +21 -0
- package/src/Template/Attributes/index.js +1 -0
- package/src/Template/Components/CUDButton.jsx +128 -0
- package/src/Template/Components/CardCapsule.jsx +43 -0
- package/src/Template/Components/Children.jsx +31 -0
- package/src/Template/Components/ConfirmEdit.jsx +61 -0
- package/src/Template/Components/LargeCard.jsx +48 -0
- package/src/Template/Components/Link.jsx +41 -0
- package/src/Template/Components/LiveEdit.jsx +111 -0
- package/src/Template/Components/MediumCard.jsx +39 -0
- package/src/Template/Components/MediumContent.jsx +97 -0
- package/src/Template/Components/MediumEditableContent.jsx +36 -0
- package/src/Template/Components/Table.jsx +7 -0
- package/src/Template/Components/index.js +14 -0
- package/src/Template/Pages/Page.jsx +28 -0
- package/src/Template/Pages/PageCapsule.jsx +13 -0
- package/src/Template/Pages/PageContent.jsx +34 -0
- package/src/Template/Pages/PageEdit.jsx +17 -0
- package/src/Template/Pages/PageNavbar.jsx +110 -0
- package/src/Template/Pages/RouterSegment.jsx +52 -0
- package/src/Template/Pages/VectorPage.jsx +133 -0
- package/src/Template/Pages/index.js +6 -0
- package/src/Template/Queries/DeleteAsyncAction.jsx +22 -0
- package/src/Template/Queries/Fragments.jsx +92 -0
- package/src/Template/Queries/InsertAsyncAction.jsx +22 -0
- package/src/Template/Queries/ReadAsyncAction.jsx +45 -0
- package/src/Template/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/Template/Queries/UpdateAsyncAction.jsx +76 -0
- package/src/Template/Queries/index.js +6 -0
- package/src/Template/Scalars/ScalarAttribute.jsx +54 -0
- package/src/Template/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/Template/Scalars/index.js +1 -0
- package/src/Template/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/Template/Vectors/VectorAttribute.jsx +56 -0
- package/src/Template/Vectors/index.js +1 -0
- package/src/Template/index.js +71 -0
- package/src/UserGQLModel/Components/CUDButton.jsx +128 -0
- package/src/UserGQLModel/Components/CardCapsule.jsx +43 -0
- package/src/UserGQLModel/Components/ConfirmEdit.jsx +61 -0
- package/src/UserGQLModel/Components/Filter.jsx +15 -0
- package/src/UserGQLModel/Components/LargeCard.jsx +82 -0
- package/src/UserGQLModel/Components/Link.jsx +54 -0
- package/src/UserGQLModel/Components/LiveEdit.jsx +111 -0
- package/src/UserGQLModel/Components/MediumCard.jsx +40 -0
- package/src/UserGQLModel/Components/MediumContent.jsx +43 -0
- package/src/UserGQLModel/Components/MediumEditableContent.jsx +57 -0
- package/src/UserGQLModel/Components/Table.jsx +7 -0
- package/src/UserGQLModel/Components/index.js +13 -0
- package/src/UserGQLModel/Mutations/AddMembership.jsx +136 -0
- package/src/UserGQLModel/Mutations/Create.jsx +68 -0
- package/src/UserGQLModel/Mutations/Delete.jsx +81 -0
- package/src/UserGQLModel/Mutations/InteractiveMutations.jsx +30 -0
- package/src/UserGQLModel/Mutations/Update.jsx +68 -0
- package/src/UserGQLModel/Mutations/helpers.jsx +7 -0
- package/src/UserGQLModel/Pages/PageAddMembership.jsx +15 -0
- package/src/UserGQLModel/Pages/PageBase.jsx +56 -0
- package/src/UserGQLModel/Pages/PageCreateItem.jsx +27 -0
- package/src/UserGQLModel/Pages/PageDeleteItem.jsx +16 -0
- package/src/UserGQLModel/Pages/PageNavbar.jsx +146 -0
- package/src/UserGQLModel/Pages/PageReadItem.jsx +12 -0
- package/src/UserGQLModel/Pages/PageReadItemEx.jsx +62 -0
- package/src/UserGQLModel/Pages/PageUpdateItem.jsx +14 -0
- package/src/UserGQLModel/Pages/PageVector.jsx +78 -0
- package/src/UserGQLModel/Pages/RouterSegment.jsx +77 -0
- package/src/UserGQLModel/Pages/index.js +9 -0
- package/src/UserGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
- package/src/UserGQLModel/Queries/Fragments.jsx +114 -0
- package/src/UserGQLModel/Queries/InsertAsyncAction.jsx +22 -0
- package/src/UserGQLModel/Queries/ReadAsyncAction.jsx +45 -0
- package/src/UserGQLModel/Queries/ReadPageAsyncAction.jsx +17 -0
- package/src/UserGQLModel/Queries/SearchAsyncAction.jsx +15 -0
- package/src/UserGQLModel/Queries/UpdateAsyncAction.jsx +76 -0
- package/src/UserGQLModel/Queries/index.js +6 -0
- package/src/UserGQLModel/Scalars/ScalarAttribute.jsx +54 -0
- package/src/UserGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/UserGQLModel/Scalars/index.js +1 -0
- package/src/UserGQLModel/Vectors/Roles.jsx +23 -0
- package/src/UserGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/UserGQLModel/Vectors/UserMemberships.jsx +56 -0
- package/src/UserGQLModel/Vectors/UserRoles.jsx +81 -0
- package/src/UserGQLModel/Vectors/VectorAttribute.jsx +56 -0
- package/src/UserGQLModel/Vectors/index.js +1 -0
- package/src/UserGQLModel/index.js +6 -0
- package/src/_Template/Components/CardCapsule.jsx +43 -0
- package/src/_Template/Components/Children.jsx +31 -0
- package/src/_Template/Components/ConfirmEdit.jsx +61 -0
- package/src/_Template/Components/Filter.jsx +14 -0
- package/src/_Template/Components/LargeCard.jsx +50 -0
- package/src/_Template/Components/Link.jsx +54 -0
- package/src/_Template/Components/LiveEdit.jsx +111 -0
- package/src/_Template/Components/MediumCard.jsx +39 -0
- package/src/_Template/Components/MediumContent.jsx +96 -0
- package/src/_Template/Components/MediumEditableContent.jsx +35 -0
- package/src/_Template/Components/Table.jsx +7 -0
- package/src/_Template/Components/index.js +13 -0
- package/src/_Template/Mutations/Create.jsx +202 -0
- package/src/_Template/Mutations/Delete.jsx +173 -0
- package/src/_Template/Mutations/InteractiveMutations.jsx +30 -0
- package/src/_Template/Mutations/Update.jsx +147 -0
- package/src/_Template/Mutations/helpers.jsx +7 -0
- package/src/_Template/Pages/PageBase.jsx +56 -0
- package/src/_Template/Pages/PageCreateItem.jsx +28 -0
- package/src/_Template/Pages/PageDeleteItem.jsx +16 -0
- package/src/_Template/Pages/PageNavbar.jsx +160 -0
- package/src/_Template/Pages/PageReadItem.jsx +11 -0
- package/src/_Template/Pages/PageReadItemEx.jsx +42 -0
- package/src/_Template/Pages/PageUpdateItem.jsx +14 -0
- package/src/_Template/Pages/PageVector.jsx +80 -0
- package/src/_Template/Pages/RouterSegment.jsx +72 -0
- package/src/_Template/Pages/index.js +2 -0
- package/src/_Template/Queries/DeleteAsyncAction.jsx +32 -0
- package/src/_Template/Queries/Fragments.jsx +101 -0
- package/src/_Template/Queries/InsertAsyncAction.jsx +40 -0
- package/src/_Template/Queries/ReadAsyncAction.jsx +44 -0
- package/src/_Template/Queries/ReadPageAsyncAction.jsx +13 -0
- package/src/_Template/Queries/SearchAsyncAction.jsx +16 -0
- package/src/_Template/Queries/UpdateAsyncAction.jsx +40 -0
- package/src/_Template/Queries/index.js +6 -0
- package/src/_Template/Scalars/ScalarAttribute.jsx +54 -0
- package/src/_Template/Scalars/TemplateScalarAttribute.jsx +88 -0
- package/src/_Template/Scalars/index.js +1 -0
- package/src/_Template/Vectors/TemplateVectorsAttribute.jsx +326 -0
- package/src/_Template/Vectors/VectorAttribute.jsx +56 -0
- package/src/_Template/Vectors/index.js +1 -0
- package/src/_Template/WhatToDo.md +44 -0
- package/src/_Template/index.js +71 -0
- package/src/index.js +8 -0
- package/src/uriroot.js +158 -0
- package/vite.config.js +47 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import Nav from 'react-bootstrap/Nav'
|
|
2
|
+
import { ProxyLink, MyNavbar, useHash } from '@hrbolek/uoisfrontend-shared';
|
|
3
|
+
|
|
4
|
+
import { LinkURI } from '../Components'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Allow to use HashContainer for determination which component at page will be rendered.
|
|
8
|
+
* That must be manually inserted at TemplatePageContent, usually this should be done
|
|
9
|
+
* as children of TemplateLargeCard.
|
|
10
|
+
* <TemplateLargeCard>
|
|
11
|
+
* <HashContainer>
|
|
12
|
+
* <VectorA id="history"/>
|
|
13
|
+
* <VectorB id="roles"/>
|
|
14
|
+
* <VectorC id="graph"/>
|
|
15
|
+
* </HashContainer>
|
|
16
|
+
* </TemplateLargeCard>
|
|
17
|
+
* it is usefull to define globally active "areas" like science, administration, teaching, ...
|
|
18
|
+
*/
|
|
19
|
+
const TemplatePageSegments = [
|
|
20
|
+
{ segment: 'education', label: 'Výuka' },
|
|
21
|
+
{ segment: 'reaserach', label: 'Tvůrčí činnost' },
|
|
22
|
+
{ segment: 'administration', label: 'Organizační činnost' },
|
|
23
|
+
{ segment: 'development', label: 'Rozvoj' },
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A navigation button component that generates a URL based on the template's ID and a specific segment.
|
|
28
|
+
* The button uses a `ProxyLink` to navigate while preserving hash and query parameters.
|
|
29
|
+
*
|
|
30
|
+
* ### Features:
|
|
31
|
+
* - Dynamically constructs the URL with a hash fragment pointing to the specified segment.
|
|
32
|
+
* - Displays a label for the navigation link.
|
|
33
|
+
* - Integrates seamlessly with `ProxyLink` for enhanced navigation.
|
|
34
|
+
*
|
|
35
|
+
* @component
|
|
36
|
+
* @param {Object} props - The properties for the TitleNavButton component.
|
|
37
|
+
* @param {Object} props.template - The template object containing details about the template.
|
|
38
|
+
* @param {string|number} props.template.id - The unique identifier for the template.
|
|
39
|
+
* @param {string} props.segment - The segment to append as a hash fragment in the URL.
|
|
40
|
+
* @param {string} props.label - The text to display as the label for the navigation button.
|
|
41
|
+
*
|
|
42
|
+
* @returns {JSX.Element} A styled navigation button linking to the constructed URL.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Example 1: Basic usage with a template and segment
|
|
46
|
+
* const template = { id: 123 };
|
|
47
|
+
* const segment = "details";
|
|
48
|
+
* const label = "View Details";
|
|
49
|
+
*
|
|
50
|
+
* <TitleNavButton template={template} segment={segment} label={label} />
|
|
51
|
+
* // Resulting URL: `/ug/template/view/123#details`
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Example 2: Different segment and label
|
|
55
|
+
* <TitleNavButton template={{ id: 456 }} segment="settings" label="Template Settings" />
|
|
56
|
+
* // Resulting URL: `/ug/template/view/456#settings`
|
|
57
|
+
*/
|
|
58
|
+
const TitleNavButton = ({ item, segment, label, ...props }) => {
|
|
59
|
+
// const urlbase = (segment) => `/templates/template/${segment}/${template?.id}`;
|
|
60
|
+
const urlbase = (segment) => `${LinkURI}${item?.id}#${segment}`;
|
|
61
|
+
return (
|
|
62
|
+
<Nav.Link as={"span"} {...props}>
|
|
63
|
+
{/* <ProxyLink to={urlbase(segment)}>{label}</ProxyLink> */}
|
|
64
|
+
</Nav.Link>
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Renders the navigation bar for an Template page.
|
|
70
|
+
*
|
|
71
|
+
* This component uses a custom hook, `useHash()`, to determine the current hash
|
|
72
|
+
* and highlights the active segment. It displays a navigation bar (using MyNavbar)
|
|
73
|
+
* with several segments (e.g. "history", "roles", "graph"), each rendered as a
|
|
74
|
+
* TitleNavButton. The segments are hardcoded in this component and only rendered
|
|
75
|
+
* if an `template` object is provided.
|
|
76
|
+
*
|
|
77
|
+
* @component
|
|
78
|
+
* @param {Object} props - The component properties.
|
|
79
|
+
* @param {Object} props.template - The template entity object that provides context for the page.
|
|
80
|
+
* @param {string|number} props.template.id - The unique identifier for the template.
|
|
81
|
+
* @param {Function} props.onSearchChange - Callback function to handle changes in the search input.
|
|
82
|
+
*
|
|
83
|
+
* @returns {JSX.Element} The rendered TemplatePageNavbar component.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* // Example usage:
|
|
87
|
+
* const template = { id: 123, ... };
|
|
88
|
+
* <TemplatePageNavbar template={template} onSearchChange={handleSearchChange} />
|
|
89
|
+
*/
|
|
90
|
+
export const PageNavbar = ({ item, children, onSearchChange }) => {
|
|
91
|
+
// const [currentHash, setHash] = useHash(); // Use the custom hook to manage hash
|
|
92
|
+
const currentHash = "da"
|
|
93
|
+
return (
|
|
94
|
+
<div className='screen-only'>
|
|
95
|
+
<MyNavbar onSearchChange={onSearchChange} >
|
|
96
|
+
{item && TemplatePageSegments.map(({ segment, label }) => (
|
|
97
|
+
<Nav.Item key={segment} >
|
|
98
|
+
<TitleNavButton
|
|
99
|
+
template={item}
|
|
100
|
+
segment={segment}
|
|
101
|
+
label={label}
|
|
102
|
+
className={segment === currentHash ? "active" : ""} aria-current={segment === currentHash ? "page" : undefined}
|
|
103
|
+
/>
|
|
104
|
+
</Nav.Item>
|
|
105
|
+
))}
|
|
106
|
+
{children}
|
|
107
|
+
</MyNavbar>
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { LinkURI } from "../Components/Link"
|
|
2
|
+
import { Page, PageMediumCard } from "./Page"
|
|
3
|
+
import { PageEdit } from "./PageEdit"
|
|
4
|
+
import { VectorPage } from "./VectorPage"
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Definice segmentů rout pro Template stránky.
|
|
8
|
+
*
|
|
9
|
+
* Každý objekt v tomto poli popisuje jednu trasu (route) v aplikaci:
|
|
10
|
+
* - `path`: Stringová URL s parametrem `:id`, která identifikuje konkrétní instanci template entity.
|
|
11
|
+
* - `element`: React komponenta, která se má renderovat při shodě s cestou.
|
|
12
|
+
*
|
|
13
|
+
* Pokud komponenta stránky podporuje children jako render funkci,
|
|
14
|
+
* všechny children předané přes router budou dostávat objekt:
|
|
15
|
+
* - `template` — načtená entita podle `:id`
|
|
16
|
+
* - `onChange` — callback pro změnu hodnoty pole
|
|
17
|
+
* - `onBlur` — callback pro blur event (například při opuštění pole)
|
|
18
|
+
*
|
|
19
|
+
* @constant
|
|
20
|
+
* @type {Array<{ path: string, element: JSX.Element }>}
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Tato route reaguje na URL jako "/template/123"
|
|
24
|
+
* {
|
|
25
|
+
* path: "/template/:id",
|
|
26
|
+
* element: <TemplatePage />
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* // Editační route: "/template/edit/123"
|
|
30
|
+
* {
|
|
31
|
+
* path: "/template/edit/:id",
|
|
32
|
+
* element: <TemplateEditPage />
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
export const TemplateRouterSegments = [
|
|
36
|
+
{
|
|
37
|
+
path: `/${LinkURI}:id`,
|
|
38
|
+
element: (<Page />),
|
|
39
|
+
},
|
|
40
|
+
// {
|
|
41
|
+
// path: `/${LinkURI}`,
|
|
42
|
+
// element: (<VectorPage />),
|
|
43
|
+
// },
|
|
44
|
+
{
|
|
45
|
+
path: `/${LinkURI.replace('view', 'edit')}:id`,
|
|
46
|
+
element: (<PageEdit />),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
path: `/${LinkURI.replace('view', 'view2')}:id`,
|
|
50
|
+
element: (<PageMediumCard />),
|
|
51
|
+
}
|
|
52
|
+
]
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { useLocation } from "react-router"
|
|
2
|
+
import { InfiniteScroll } from "@hrbolek/uoisfrontend-shared"
|
|
3
|
+
import { ReadPageAsyncAction } from "../Queries"
|
|
4
|
+
import { Link, MediumCard } from "../Components"
|
|
5
|
+
import { PageNavbar } from "./PageNavbar"
|
|
6
|
+
import { Col } from "react-bootstrap"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Visualizes a list of template entities using TemplateMediumCard.
|
|
10
|
+
*
|
|
11
|
+
* This component receives an array of template objects via the `items` prop
|
|
12
|
+
* and renders a `TemplateMediumCard` for each item. Each card is keyed by the template's `id`.
|
|
13
|
+
*
|
|
14
|
+
* @component
|
|
15
|
+
* @param {Object} props - Component properties.
|
|
16
|
+
* @param {Array<Object>} props.items - Array of template entities to visualize. Each object should have a unique `id` property.
|
|
17
|
+
* @returns {JSX.Element} A fragment containing a list of TemplateMediumCard components.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const templates = [
|
|
21
|
+
* { id: 1, name: "Template 1", ... },
|
|
22
|
+
* { id: 2, name: "Template 2", ... }
|
|
23
|
+
* ];
|
|
24
|
+
*
|
|
25
|
+
* <TemplateVisualiser items={templates} />
|
|
26
|
+
*/
|
|
27
|
+
const CardVisualiser = ({items}) => {
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
{items.map(template => (
|
|
31
|
+
<Col key={requesttype.id} >
|
|
32
|
+
<MediumCard key={template.id} template={template}>
|
|
33
|
+
|
|
34
|
+
</MediumCard>
|
|
35
|
+
</Col>
|
|
36
|
+
))}
|
|
37
|
+
</>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Visualizes a list of template entities using table.
|
|
43
|
+
*
|
|
44
|
+
* This component receives an array of template objects via the `items` prop
|
|
45
|
+
* and renders a `tr` for each item. Each row is keyed by the template's `id`.
|
|
46
|
+
*
|
|
47
|
+
* @component
|
|
48
|
+
* @param {Object} props - Component properties.
|
|
49
|
+
* @param {Array<Object>} props.items - Array of template entities to visualize. Each object should have a unique `id` property.
|
|
50
|
+
* @returns {JSX.Element} A fragment containing a list of TemplateMediumCard components.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* const templates = [
|
|
54
|
+
* { id: 1, name: "Template 1", ... },
|
|
55
|
+
* { id: 2, name: "Template 2", ... }
|
|
56
|
+
* ];
|
|
57
|
+
*
|
|
58
|
+
* <TemplateTableVisualiser items={templates} />
|
|
59
|
+
*/
|
|
60
|
+
export const TableVisualiser = ({items}) => {
|
|
61
|
+
return (
|
|
62
|
+
<table className="table table-striped">
|
|
63
|
+
<thead>
|
|
64
|
+
<tr>
|
|
65
|
+
<th>Name</th>
|
|
66
|
+
<th>Name</th>
|
|
67
|
+
<th>Tools</th>
|
|
68
|
+
</tr>
|
|
69
|
+
</thead>
|
|
70
|
+
<tbody>
|
|
71
|
+
{items.map(template => (
|
|
72
|
+
<tr key={template?.id} >
|
|
73
|
+
<td>
|
|
74
|
+
<Link template={template} />
|
|
75
|
+
</td>
|
|
76
|
+
<td>{template?.name}</td>
|
|
77
|
+
<td></td>
|
|
78
|
+
</tr>
|
|
79
|
+
))}
|
|
80
|
+
</tbody>
|
|
81
|
+
</table>
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Page component for displaying a (potentially filtered) list of template entities with infinite scrolling.
|
|
87
|
+
*
|
|
88
|
+
* This component parses the `where` query parameter from the URL (if present),
|
|
89
|
+
* passes it as a filter to the `InfiniteScroll` component, and visualizes the resulting templates using the specified `Visualiser`.
|
|
90
|
+
*
|
|
91
|
+
* You can optionally provide custom children or a custom Visualiser component.
|
|
92
|
+
*
|
|
93
|
+
* @component
|
|
94
|
+
* @param {Object} props - Component props.
|
|
95
|
+
* @param {function} [props.Visualiser=TemplateVisualiser] -
|
|
96
|
+
* Optional component used to visualize the loaded templates. Receives `items` as prop.
|
|
97
|
+
* @param {React.ReactNode} [props.children] - Optional child elements to render below the visualized templates.
|
|
98
|
+
*
|
|
99
|
+
* @returns {JSX.Element} The rendered page with infinite scroll and optional children.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* // Will fetch and display templates filtered by a `where` clause passed in the URL, e.g.:
|
|
103
|
+
* // /template?where={"name":"Example"}
|
|
104
|
+
* <TemplateVectorPage />
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* // With a custom visualizer and children:
|
|
108
|
+
* <TemplateVectorPage Visualiser={CustomTemplateList}>
|
|
109
|
+
* <Footer />
|
|
110
|
+
* </TemplateVectorPage>
|
|
111
|
+
*/
|
|
112
|
+
export const VectorPage = ({children, Visualiser=CardVisualiser}) => {
|
|
113
|
+
const { search } = useLocation();
|
|
114
|
+
let actionParams = { skip: 0, limit: 10};
|
|
115
|
+
try {
|
|
116
|
+
const params = new URLSearchParams(search);
|
|
117
|
+
const where = params.get('where');
|
|
118
|
+
actionParams.where = where ? JSON.parse(where) : undefined;
|
|
119
|
+
} catch (e) {
|
|
120
|
+
console.warn("Invalid 'where' query parameter!", e);
|
|
121
|
+
}
|
|
122
|
+
const onSearchChange = () => null
|
|
123
|
+
return (<>
|
|
124
|
+
<PageNavbar template={template} onSearchChange={onSearchChange} />
|
|
125
|
+
<InfiniteScroll
|
|
126
|
+
preloadedItems={[]} // No preloaded items for template
|
|
127
|
+
actionParams={actionParams}
|
|
128
|
+
asyncAction={ReadPageAsyncAction}
|
|
129
|
+
Visualiser={Visualiser}
|
|
130
|
+
/>
|
|
131
|
+
{children}
|
|
132
|
+
</>)
|
|
133
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared";
|
|
2
|
+
import { LargeFragment } from "./Fragments";
|
|
3
|
+
import { createAsyncGraphQLAction2 } from "../../../../dynamic/src/Core/createAsyncGraphQLAction2";
|
|
4
|
+
|
|
5
|
+
const DeleteMutationStr = `
|
|
6
|
+
mutation DeleteMutation($id: UUID!, $lastchange: DateTime!) {
|
|
7
|
+
result: Delete(
|
|
8
|
+
item : {id: $id, lastchange: $lastchange}
|
|
9
|
+
) {
|
|
10
|
+
... on GQLModelDeleteError {
|
|
11
|
+
failed
|
|
12
|
+
msg
|
|
13
|
+
input
|
|
14
|
+
Entity {
|
|
15
|
+
...Large
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`
|
|
21
|
+
const DeleteMutation = createQueryStrLazy(`${DeleteMutationStr}`, LargeFragment)
|
|
22
|
+
export const DeleteAsyncAction = createAsyncGraphQLAction2(DeleteMutation)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared"
|
|
2
|
+
|
|
3
|
+
const LinkFragmentStr = `
|
|
4
|
+
fragment Link on UserGQLModel {
|
|
5
|
+
__typename
|
|
6
|
+
id
|
|
7
|
+
lastchange
|
|
8
|
+
name
|
|
9
|
+
surname
|
|
10
|
+
email
|
|
11
|
+
}
|
|
12
|
+
`
|
|
13
|
+
|
|
14
|
+
const MediumFragmentStr = `
|
|
15
|
+
fragment Medium on UserGQLModel {
|
|
16
|
+
...Link
|
|
17
|
+
rbacobject {
|
|
18
|
+
...RBRoles
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`
|
|
22
|
+
|
|
23
|
+
const LargeFragmentStr = `
|
|
24
|
+
fragment Large on UserGQLModel {
|
|
25
|
+
...Medium
|
|
26
|
+
rolesOn {
|
|
27
|
+
...Role
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`
|
|
31
|
+
|
|
32
|
+
const RoleFragmentStr = `
|
|
33
|
+
fragment Role on RoleGQLModel {
|
|
34
|
+
__typename
|
|
35
|
+
id
|
|
36
|
+
lastchange
|
|
37
|
+
created
|
|
38
|
+
createdbyId
|
|
39
|
+
changedbyId
|
|
40
|
+
rbacobjectId
|
|
41
|
+
createdby { id __typename }
|
|
42
|
+
changedby { id __typename }
|
|
43
|
+
rbacobject { id __typename }
|
|
44
|
+
valid
|
|
45
|
+
deputy
|
|
46
|
+
startdate
|
|
47
|
+
enddate
|
|
48
|
+
roletypeId
|
|
49
|
+
userId
|
|
50
|
+
groupId
|
|
51
|
+
roletype { __typename id }
|
|
52
|
+
user { __typename id fullname }
|
|
53
|
+
group { __typename id name }
|
|
54
|
+
}
|
|
55
|
+
`
|
|
56
|
+
|
|
57
|
+
const RBACFragmentStr = `
|
|
58
|
+
fragment RBRoles on RBACObjectGQLModel {
|
|
59
|
+
__typename
|
|
60
|
+
id
|
|
61
|
+
currentUserRoles {
|
|
62
|
+
__typename
|
|
63
|
+
id
|
|
64
|
+
lastchange
|
|
65
|
+
valid
|
|
66
|
+
startdate
|
|
67
|
+
enddate
|
|
68
|
+
roletype {
|
|
69
|
+
__typename
|
|
70
|
+
id
|
|
71
|
+
name
|
|
72
|
+
}
|
|
73
|
+
group {
|
|
74
|
+
__typename
|
|
75
|
+
id
|
|
76
|
+
name
|
|
77
|
+
grouptype {
|
|
78
|
+
__typename
|
|
79
|
+
id
|
|
80
|
+
name
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}`
|
|
85
|
+
|
|
86
|
+
export const RoleFragment = createQueryStrLazy(`${RoleFragmentStr}`)
|
|
87
|
+
export const RBACFragment = createQueryStrLazy(`${RBACFragmentStr}`)
|
|
88
|
+
|
|
89
|
+
export const LinkFragment = createQueryStrLazy(`${LinkFragmentStr}`)
|
|
90
|
+
export const MediumFragment = createQueryStrLazy(`${MediumFragmentStr}`, LinkFragment, RBACFragment)
|
|
91
|
+
export const LargeFragment = createQueryStrLazy(`${LargeFragmentStr}`, MediumFragment, RoleFragment)
|
|
92
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared";
|
|
2
|
+
import { LargeFragment } from "./Fragments";
|
|
3
|
+
import { createAsyncGraphQLAction2 } from "../../../../dynamic/src/Core/createAsyncGraphQLAction2";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const InsertMutationStr = `
|
|
7
|
+
mutation InsertMutation($id: UUID, $name: String, $name_en: String) {
|
|
8
|
+
result: Insert(
|
|
9
|
+
template: {id: $id, name: $name, nameEn: $name_en}
|
|
10
|
+
) {
|
|
11
|
+
... on InsertError {
|
|
12
|
+
failed
|
|
13
|
+
msg
|
|
14
|
+
input
|
|
15
|
+
}
|
|
16
|
+
...Large
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`
|
|
20
|
+
|
|
21
|
+
const InsertMutation = createQueryStrLazy(`${InsertMutationStr}`, LargeFragment)
|
|
22
|
+
export const InsertAsyncAction = createAsyncGraphQLAction2(InsertMutation)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared";
|
|
2
|
+
import { LargeFragment } from "./Fragments";
|
|
3
|
+
import { createAsyncGraphQLAction2 } from "../../../../dynamic/src/Core/createAsyncGraphQLAction2";
|
|
4
|
+
import { reduceToFirstEntity } from "../../../../dynamic/src/Store";
|
|
5
|
+
|
|
6
|
+
const ReadQueryStr = `
|
|
7
|
+
query ReadQuery($id: UUID!) {
|
|
8
|
+
result: userById(id: $id) {
|
|
9
|
+
...Large
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
`
|
|
13
|
+
|
|
14
|
+
const ReadQuery = createQueryStrLazy(`${ReadQueryStr}`, LargeFragment)
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* An async action for executing a GraphQL query to read entities.
|
|
18
|
+
*
|
|
19
|
+
* This action is created using `createAsyncGraphQLAction` with a predefined `QueryRead` query.
|
|
20
|
+
* It can be dispatched with query variables to fetch data related to entities from the GraphQL API.
|
|
21
|
+
*
|
|
22
|
+
* @constant
|
|
23
|
+
* @type {Function}
|
|
24
|
+
*
|
|
25
|
+
* @param {Object} query_variables - The variables for the GraphQL query.
|
|
26
|
+
* @param {string|number} query_variables.id - The unique identifier for the entity to fetch.
|
|
27
|
+
*
|
|
28
|
+
* @returns {Function} A dispatchable async action that performs the GraphQL query, applies middleware, and dispatches the result.
|
|
29
|
+
*
|
|
30
|
+
* @throws {Error} If `query_variables` is not a valid JSON object.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // Example usage:
|
|
34
|
+
* const queryVariables = { id: "12345" };
|
|
35
|
+
*
|
|
36
|
+
* dispatch(ReadAsyncAction(queryVariables))
|
|
37
|
+
* .then((result) => {
|
|
38
|
+
* console.log("Fetched data:", result);
|
|
39
|
+
* })
|
|
40
|
+
* .catch((error) => {
|
|
41
|
+
* console.error("Error fetching data:", error);
|
|
42
|
+
* });
|
|
43
|
+
*/
|
|
44
|
+
// export const ReadAsyncAction = createAsyncGraphQLAction2(ReadQuery, reduceToFirstEntity("result"))
|
|
45
|
+
export const ReadAsyncAction = createAsyncGraphQLAction2(ReadQuery)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared";
|
|
2
|
+
import { LargeFragment } from "./Fragments";
|
|
3
|
+
import { createAsyncGraphQLAction2 } from "../../../../dynamic/src/Core/createAsyncGraphQLAction2";
|
|
4
|
+
|
|
5
|
+
const ReadPageQueryStr = `
|
|
6
|
+
query ReadPageQuery($skip: Int, $limit: Int, $where: UserWhereInputFilter) {
|
|
7
|
+
result: userPage(skip: $skip, limit: $limit, where: $where) {
|
|
8
|
+
...Large
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
`
|
|
12
|
+
const ReadPageQuery = createQueryStrLazy(`${ReadPageQueryStr}`, LargeFragment)
|
|
13
|
+
export const ReadPageAsyncAction = createAsyncGraphQLAction2(ReadPageQuery)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared";
|
|
2
|
+
import { LargeFragment } from "./Fragments";
|
|
3
|
+
import { createAsyncGraphQLAction2 } from "../../../../dynamic/src/Core/createAsyncGraphQLAction2";
|
|
4
|
+
import { reduceToFirstEntity, updateItemsFromGraphQLResult } from "../../../../dynamic/src/Store";
|
|
5
|
+
|
|
6
|
+
const UpdateMutationStr = `
|
|
7
|
+
mutation userUpdate($id: UUID!, $lastchange: DateTime!, $name: String, $surname: String, $email: String, $valid: Boolean) {
|
|
8
|
+
userUpdate(
|
|
9
|
+
user: {id: $id, lastchange: $lastchange, name: $name, surname: $surname, email: $email, valid: $valid}
|
|
10
|
+
) {
|
|
11
|
+
... on UserGQLModel {
|
|
12
|
+
...User
|
|
13
|
+
}
|
|
14
|
+
... on UserGQLModelUpdateError {
|
|
15
|
+
...Error
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
# fragment Role on RoleGQLModel {
|
|
21
|
+
# __typename
|
|
22
|
+
# id
|
|
23
|
+
# lastchange
|
|
24
|
+
# created
|
|
25
|
+
# createdbyId
|
|
26
|
+
# changedbyId
|
|
27
|
+
# rbacobjectId
|
|
28
|
+
# createdby {
|
|
29
|
+
# id
|
|
30
|
+
# }
|
|
31
|
+
# changedby {
|
|
32
|
+
# id
|
|
33
|
+
# }
|
|
34
|
+
# rbacobject {
|
|
35
|
+
# id
|
|
36
|
+
# }
|
|
37
|
+
# valid
|
|
38
|
+
# deputy
|
|
39
|
+
# startdate
|
|
40
|
+
# enddate
|
|
41
|
+
# roletypeId
|
|
42
|
+
# userId
|
|
43
|
+
# groupId
|
|
44
|
+
# roletype {
|
|
45
|
+
# id
|
|
46
|
+
# }
|
|
47
|
+
# user {
|
|
48
|
+
# id
|
|
49
|
+
# }
|
|
50
|
+
# group {
|
|
51
|
+
# id
|
|
52
|
+
# }
|
|
53
|
+
# }
|
|
54
|
+
|
|
55
|
+
fragment User on UserGQLModel {
|
|
56
|
+
__typename
|
|
57
|
+
id
|
|
58
|
+
...Large
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
fragment Error on UserGQLModelUpdateError {
|
|
62
|
+
__typename
|
|
63
|
+
Entity {
|
|
64
|
+
...User
|
|
65
|
+
}
|
|
66
|
+
msg
|
|
67
|
+
failed
|
|
68
|
+
code
|
|
69
|
+
location
|
|
70
|
+
input
|
|
71
|
+
}
|
|
72
|
+
`
|
|
73
|
+
|
|
74
|
+
const UpdateMutation = createQueryStrLazy(`${UpdateMutationStr}`, LargeFragment)
|
|
75
|
+
export const UpdateAsyncAction = createAsyncGraphQLAction2(UpdateMutation,
|
|
76
|
+
updateItemsFromGraphQLResult, reduceToFirstEntity)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
|
|
2
|
+
export { InsertAsyncAction } from './InsertAsyncAction'
|
|
3
|
+
export { UpdateAsyncAction } from './UpdateAsyncAction'
|
|
4
|
+
export { DeleteAsyncAction } from './DeleteAsyncAction'
|
|
5
|
+
export { ReadAsyncAction } from './ReadAsyncAction'
|
|
6
|
+
export { ReadPageAsyncAction } from './ReadPageAsyncAction'
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useSelector } from "react-redux";
|
|
2
|
+
|
|
3
|
+
// import { selectItemById } from "../Store/ItemSlice"; // uprav cestu
|
|
4
|
+
|
|
5
|
+
import { CardCapsule } from "../Components/CardCapsule"
|
|
6
|
+
import { MediumCard } from "../Components/MediumCard"
|
|
7
|
+
import { Col } from "../../../../_template/src/Base/Components/Col"
|
|
8
|
+
import { Row } from "../../../../_template/src/Base/Components/Row"
|
|
9
|
+
import { selectItemById } from "../../../../dynamic/src/Store";
|
|
10
|
+
import { useMemo } from "react";
|
|
11
|
+
|
|
12
|
+
export const ScalarAttributeCapsule = ({ attribute_name, item, children }) => {
|
|
13
|
+
return (
|
|
14
|
+
<Row>
|
|
15
|
+
<Col className="col-2"><b>{attribute_name}</b></Col>
|
|
16
|
+
<Col className="col-10">
|
|
17
|
+
{children}
|
|
18
|
+
</Col>
|
|
19
|
+
</Row>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const ScalarAttributeBase = ({ attribute_name, item }) => {
|
|
24
|
+
return (
|
|
25
|
+
<ScalarAttributeCapsule attribute_name={attribute_name} item={item}>
|
|
26
|
+
<MediumCard item={item} />
|
|
27
|
+
</ScalarAttributeCapsule>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const ScalarAttributeBind = ({ attribute_name, item }) => {
|
|
32
|
+
const id = item?.[attribute_name]?.id
|
|
33
|
+
const storedItem = useSelector((rootState) => {
|
|
34
|
+
const result = id != null ? selectItemById(rootState, id) : null
|
|
35
|
+
return result
|
|
36
|
+
})
|
|
37
|
+
return (
|
|
38
|
+
<ScalarAttributeBase attribute_name={attribute_name} item={storedItem} />
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const MediumCardScalars = ({ item }) => {
|
|
43
|
+
const sureitem = item || {}
|
|
44
|
+
const noArrays = useMemo(() => Object.fromEntries(
|
|
45
|
+
Object.entries(sureitem).filter(([_, v]) => v && typeof v === "object" && !Array.isArray(v) && v.id != null)
|
|
46
|
+
), [item]);
|
|
47
|
+
return (
|
|
48
|
+
<CardCapsule item={sureitem}>
|
|
49
|
+
{Object.keys(noArrays).map(
|
|
50
|
+
(attribute_name) => <ScalarAttributeBind key={attribute_name} item={item} attribute_name={attribute_name} />
|
|
51
|
+
)}
|
|
52
|
+
</CardCapsule>
|
|
53
|
+
)
|
|
54
|
+
}
|