diff --git a/404.html b/404.html index 1bdcaa9a7..7b6c08a9c 100644 --- a/404.html +++ b/404.html @@ -15,8 +15,8 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/11b43341.25c12afa.js b/assets/js/11b43341.25c12afa.js deleted file mode 100644 index d3fa11da0..000000000 --- a/assets/js/11b43341.25c12afa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[2256],{7674:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Getting Started","href":"/docs/tutorial/gettingStarted","docId":"tutorial/gettingStarted","unlisted":false},{"type":"link","label":"Hello world app","href":"/docs/tutorial/helloWorld","docId":"tutorial/helloWorld","unlisted":false},{"type":"link","label":"Glossary","href":"/docs/tutorial/glossary","docId":"tutorial/glossary","unlisted":false},{"type":"category","label":"Customization","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Branding and Theming","href":"/docs/tutorial/Customization/branding","docId":"tutorial/Customization/branding","unlisted":false},{"type":"link","label":"Custom record field rendering","href":"/docs/tutorial/Customization/customFieldRendering","docId":"tutorial/Customization/customFieldRendering","unlisted":false},{"type":"link","label":"Virtual columns","href":"/docs/tutorial/Customization/virtualColumns","docId":"tutorial/Customization/virtualColumns","unlisted":false},{"type":"link","label":"Hooks","href":"/docs/tutorial/Customization/hooks","docId":"tutorial/Customization/hooks","unlisted":false},{"type":"link","label":"Limiting actions access","href":"/docs/tutorial/Customization/limitingAccess","docId":"tutorial/Customization/limitingAccess","unlisted":false},{"type":"link","label":"Custom pages","href":"/docs/tutorial/Customization/customPages","docId":"tutorial/Customization/customPages","unlisted":false},{"type":"link","label":"Alerts and confirmations","href":"/docs/tutorial/Customization/alert","docId":"tutorial/Customization/alert","unlisted":false},{"type":"link","label":"Page Injections","href":"/docs/tutorial/Customization/pageInjections","docId":"tutorial/Customization/pageInjections","unlisted":false},{"type":"link","label":"Custom bulk actions","href":"/docs/tutorial/Customization/bulkActions","docId":"tutorial/Customization/bulkActions","unlisted":false},{"type":"link","label":"Menu Configuration","href":"/docs/tutorial/Customization/menuConfiguration","docId":"tutorial/Customization/menuConfiguration","unlisted":false},{"type":"link","label":"Data API","href":"/docs/tutorial/Customization/dataApi","docId":"tutorial/Customization/dataApi","unlisted":false},{"type":"link","label":"Security","href":"/docs/tutorial/Customization/security","docId":"tutorial/Customization/security","unlisted":false},{"type":"link","label":"Standard pages tuning","href":"/docs/tutorial/Customization/standardPagesTuning","docId":"tutorial/Customization/standardPagesTuning","unlisted":false},{"type":"link","label":"AdminForth Components Library","href":"/docs/tutorial/Customization/afcl","docId":"tutorial/Customization/afcl","unlisted":false}]},{"type":"link","label":"Deploy in Docker","href":"/docs/tutorial/deploy","docId":"tutorial/deploy","unlisted":false},{"type":"category","label":"Plugins","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"AuditLog","href":"/docs/tutorial/Plugins/AuditLog","docId":"tutorial/Plugins/AuditLog","unlisted":false},{"type":"link","label":"Two-Factor Authentication Plugin","href":"/docs/tutorial/Plugins/TwoFactorsAuth","docId":"tutorial/Plugins/TwoFactorsAuth","unlisted":false},{"type":"link","label":"ForeignInlineList","href":"/docs/tutorial/Plugins/ForeignInlineList","docId":"tutorial/Plugins/ForeignInlineList","unlisted":false},{"type":"link","label":"Rich editor","href":"/docs/tutorial/Plugins/RichEditor","docId":"tutorial/Plugins/RichEditor","unlisted":false},{"type":"link","label":"Upload","href":"/docs/tutorial/Plugins/upload","docId":"tutorial/Plugins/upload","unlisted":false},{"type":"link","label":"Chat-GPT","href":"/docs/tutorial/Plugins/chat-gpt","docId":"tutorial/Plugins/chat-gpt","unlisted":false},{"type":"link","label":"Email password reset","href":"/docs/tutorial/Plugins/email-password-reset","docId":"tutorial/Plugins/email-password-reset","unlisted":false},{"type":"link","label":"Import-Export","href":"/docs/tutorial/Plugins/import-export","docId":"tutorial/Plugins/import-export","unlisted":false}]},{"type":"category","label":"Advanced","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Plugin development guide","href":"/docs/tutorial/Advanced/plugin-development","docId":"tutorial/Advanced/plugin-development","unlisted":false}]}],"apiSidebar":[{"type":"category","label":"API","items":[{"type":"category","label":"types","items":[{"type":"category","label":"Back","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"AdminForthMenuTypes","href":"/docs/api/types/Back/enumerations/AdminForthMenuTypes","docId":"api/types/Back/enumerations/AdminForthMenuTypes","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Filters","href":"/docs/api/types/Back/classes/Filters","docId":"api/types/Back/classes/Filters","unlisted":false},{"type":"link","label":"Sorts","href":"/docs/api/types/Back/classes/Sorts","docId":"api/types/Back/classes/Sorts","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"AdminForthBulkAction","href":"/docs/api/types/Back/interfaces/AdminForthBulkAction","docId":"api/types/Back/interfaces/AdminForthBulkAction","unlisted":false},{"type":"link","label":"AdminForthConfig","href":"/docs/api/types/Back/interfaces/AdminForthConfig","docId":"api/types/Back/interfaces/AdminForthConfig","unlisted":false},{"type":"link","label":"AdminForthConfigMenuItem","href":"/docs/api/types/Back/interfaces/AdminForthConfigMenuItem","docId":"api/types/Back/interfaces/AdminForthConfigMenuItem","unlisted":false},{"type":"link","label":"AdminForthForeignResource","href":"/docs/api/types/Back/interfaces/AdminForthForeignResource","docId":"api/types/Back/interfaces/AdminForthForeignResource","unlisted":false},{"type":"link","label":"AdminForthResource","href":"/docs/api/types/Back/interfaces/AdminForthResource","docId":"api/types/Back/interfaces/AdminForthResource","unlisted":false},{"type":"link","label":"AdminForthResourceColumn","href":"/docs/api/types/Back/interfaces/AdminForthResourceColumn","docId":"api/types/Back/interfaces/AdminForthResourceColumn","unlisted":false},{"type":"link","label":"IAdminForth","href":"/docs/api/types/Back/interfaces/IAdminForth","docId":"api/types/Back/interfaces/IAdminForth","unlisted":false},{"type":"link","label":"IAdminForthAuth","href":"/docs/api/types/Back/interfaces/IAdminForthAuth","docId":"api/types/Back/interfaces/IAdminForthAuth","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnector","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnector","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnectorBase","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnectorConstructor","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","unlisted":false},{"type":"link","label":"IAdminForthFilter","href":"/docs/api/types/Back/interfaces/IAdminForthFilter","docId":"api/types/Back/interfaces/IAdminForthFilter","unlisted":false},{"type":"link","label":"IAdminForthHttpResponse","href":"/docs/api/types/Back/interfaces/IAdminForthHttpResponse","docId":"api/types/Back/interfaces/IAdminForthHttpResponse","unlisted":false},{"type":"link","label":"IAdminForthPlugin","href":"/docs/api/types/Back/interfaces/IAdminForthPlugin","docId":"api/types/Back/interfaces/IAdminForthPlugin","unlisted":false},{"type":"link","label":"IAdminForthSort","href":"/docs/api/types/Back/interfaces/IAdminForthSort","docId":"api/types/Back/interfaces/IAdminForthSort","unlisted":false},{"type":"link","label":"ICodeInjector","href":"/docs/api/types/Back/interfaces/ICodeInjector","docId":"api/types/Back/interfaces/ICodeInjector","unlisted":false},{"type":"link","label":"IConfigValidator","href":"/docs/api/types/Back/interfaces/IConfigValidator","docId":"api/types/Back/interfaces/IConfigValidator","unlisted":false},{"type":"link","label":"IExpressHttpServer","href":"/docs/api/types/Back/interfaces/IExpressHttpServer","docId":"api/types/Back/interfaces/IExpressHttpServer","unlisted":false},{"type":"link","label":"IHttpServer","href":"/docs/api/types/Back/interfaces/IHttpServer","docId":"api/types/Back/interfaces/IHttpServer","unlisted":false},{"type":"link","label":"IOperationalResource","href":"/docs/api/types/Back/interfaces/IOperationalResource","docId":"api/types/Back/interfaces/IOperationalResource","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AdminForthDataSource","href":"/docs/api/types/Back/type-aliases/AdminForthDataSource","docId":"api/types/Back/type-aliases/AdminForthDataSource","unlisted":false},{"type":"link","label":"AfterDataSourceResponseFunction","href":"/docs/api/types/Back/type-aliases/AfterDataSourceResponseFunction","docId":"api/types/Back/type-aliases/AfterDataSourceResponseFunction","unlisted":false},{"type":"link","label":"AfterSaveFunction","href":"/docs/api/types/Back/type-aliases/AfterSaveFunction","docId":"api/types/Back/type-aliases/AfterSaveFunction","unlisted":false},{"type":"link","label":"AllowedActionValue","href":"/docs/api/types/Back/type-aliases/AllowedActionValue","docId":"api/types/Back/type-aliases/AllowedActionValue","unlisted":false},{"type":"link","label":"AllowedActions","href":"/docs/api/types/Back/type-aliases/AllowedActions","docId":"api/types/Back/type-aliases/AllowedActions","unlisted":false},{"type":"link","label":"BeforeDataSourceRequestFunction","href":"/docs/api/types/Back/type-aliases/BeforeDataSourceRequestFunction","docId":"api/types/Back/type-aliases/BeforeDataSourceRequestFunction","unlisted":false},{"type":"link","label":"BeforeLoginConfirmationFunction","href":"/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction","docId":"api/types/Back/type-aliases/BeforeLoginConfirmationFunction","unlisted":false},{"type":"link","label":"BeforeSaveFunction","href":"/docs/api/types/Back/type-aliases/BeforeSaveFunction","docId":"api/types/Back/type-aliases/BeforeSaveFunction","unlisted":false},{"type":"link","label":"FDataFilter","href":"/docs/api/types/Back/type-aliases/FDataFilter","docId":"api/types/Back/type-aliases/FDataFilter","unlisted":false},{"type":"link","label":"FDataSort","href":"/docs/api/types/Back/type-aliases/FDataSort","docId":"api/types/Back/type-aliases/FDataSort","unlisted":false},{"type":"link","label":"ResourceOptions","href":"/docs/api/types/Back/type-aliases/ResourceOptions","docId":"api/types/Back/type-aliases/ResourceOptions","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/Back/"},{"type":"category","label":"Common","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"ActionCheckSource","href":"/docs/api/types/Common/enumerations/ActionCheckSource","docId":"api/types/Common/enumerations/ActionCheckSource","unlisted":false},{"type":"link","label":"AdminForthDataTypes","href":"/docs/api/types/Common/enumerations/AdminForthDataTypes","docId":"api/types/Common/enumerations/AdminForthDataTypes","unlisted":false},{"type":"link","label":"AdminForthFilterOperators","href":"/docs/api/types/Common/enumerations/AdminForthFilterOperators","docId":"api/types/Common/enumerations/AdminForthFilterOperators","unlisted":false},{"type":"link","label":"AdminForthResourcePages","href":"/docs/api/types/Common/enumerations/AdminForthResourcePages","docId":"api/types/Common/enumerations/AdminForthResourcePages","unlisted":false},{"type":"link","label":"AdminForthSortDirections","href":"/docs/api/types/Common/enumerations/AdminForthSortDirections","docId":"api/types/Common/enumerations/AdminForthSortDirections","unlisted":false},{"type":"link","label":"AllowedActionsEnum","href":"/docs/api/types/Common/enumerations/AllowedActionsEnum","docId":"api/types/Common/enumerations/AllowedActionsEnum","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"AdminForthBulkActionCommon","href":"/docs/api/types/Common/interfaces/AdminForthBulkActionCommon","docId":"api/types/Common/interfaces/AdminForthBulkActionCommon","unlisted":false},{"type":"link","label":"AdminForthColumnEnumItem","href":"/docs/api/types/Common/interfaces/AdminForthColumnEnumItem","docId":"api/types/Common/interfaces/AdminForthColumnEnumItem","unlisted":false},{"type":"link","label":"AdminForthComponentDeclarationFull","href":"/docs/api/types/Common/interfaces/AdminForthComponentDeclarationFull","docId":"api/types/Common/interfaces/AdminForthComponentDeclarationFull","unlisted":false},{"type":"link","label":"AdminForthFieldComponents","href":"/docs/api/types/Common/interfaces/AdminForthFieldComponents","docId":"api/types/Common/interfaces/AdminForthFieldComponents","unlisted":false},{"type":"link","label":"AdminForthForeignResourceCommon","href":"/docs/api/types/Common/interfaces/AdminForthForeignResourceCommon","docId":"api/types/Common/interfaces/AdminForthForeignResourceCommon","unlisted":false},{"type":"link","label":"AdminForthResourceCommon","href":"/docs/api/types/Common/interfaces/AdminForthResourceCommon","docId":"api/types/Common/interfaces/AdminForthResourceCommon","unlisted":false},{"type":"link","label":"AdminUser","href":"/docs/api/types/Common/interfaces/AdminUser","docId":"api/types/Common/interfaces/AdminUser","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AdminForthComponentDeclaration","href":"/docs/api/types/Common/type-aliases/AdminForthComponentDeclaration","docId":"api/types/Common/type-aliases/AdminForthComponentDeclaration","unlisted":false},{"type":"link","label":"AdminForthResourceColumnCommon","href":"/docs/api/types/Common/type-aliases/AdminForthResourceColumnCommon","docId":"api/types/Common/type-aliases/AdminForthResourceColumnCommon","unlisted":false},{"type":"link","label":"AllowedActionsResolved","href":"/docs/api/types/Common/type-aliases/AllowedActionsResolved","docId":"api/types/Common/type-aliases/AllowedActionsResolved","unlisted":false},{"type":"link","label":"ValidationObject","href":"/docs/api/types/Common/type-aliases/ValidationObject","docId":"api/types/Common/type-aliases/ValidationObject","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/Common/"},{"type":"category","label":"FrontendAPI","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"AlertVariant","href":"/docs/api/types/FrontendAPI/enumerations/AlertVariant","docId":"api/types/FrontendAPI/enumerations/AlertVariant","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"FrontendAPIInterface","href":"/docs/api/types/FrontendAPI/interfaces/FrontendAPIInterface","docId":"api/types/FrontendAPI/interfaces/FrontendAPIInterface","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AlertParams","href":"/docs/api/types/FrontendAPI/type-aliases/AlertParams","docId":"api/types/FrontendAPI/type-aliases/AlertParams","unlisted":false},{"type":"link","label":"ConfirmParams","href":"/docs/api/types/FrontendAPI/type-aliases/ConfirmParams","docId":"api/types/FrontendAPI/type-aliases/ConfirmParams","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/FrontendAPI/"}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/"}]},"docs":{"api/index":{"id":"api/index","title":"TypeDoc API","description":"Modules","sidebar":"apiSidebar"},"api/types/Back/classes/Filters":{"id":"api/types/Back/classes/Filters","title":"Filters","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/classes/Sorts":{"id":"api/types/Back/classes/Sorts","title":"Sorts","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/enumerations/AdminForthMenuTypes":{"id":"api/types/Back/enumerations/AdminForthMenuTypes","title":"AdminForthMenuTypes","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Back/index":{"id":"api/types/Back/index","title":"types/Back","description":"Index","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthBulkAction":{"id":"api/types/Back/interfaces/AdminForthBulkAction","title":"AdminForthBulkAction","description":"Extends","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthConfig":{"id":"api/types/Back/interfaces/AdminForthConfig","title":"AdminForthConfig","description":"Main configuration object for AdminForth","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthConfigMenuItem":{"id":"api/types/Back/interfaces/AdminForthConfigMenuItem","title":"AdminForthConfigMenuItem","description":"Menu item which displayed in the left sidebar of the admin panel.","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthForeignResource":{"id":"api/types/Back/interfaces/AdminForthForeignResource","title":"AdminForthForeignResource","description":"Extends","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthResource":{"id":"api/types/Back/interfaces/AdminForthResource","title":"AdminForthResource","description":"Resource describes one table or collection in database.","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthResourceColumn":{"id":"api/types/Back/interfaces/AdminForthResourceColumn","title":"AdminForthResourceColumn","description":"Column describes one field in the table or collection in database.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForth":{"id":"api/types/Back/interfaces/IAdminForth","title":"IAdminForth","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthAuth":{"id":"api/types/Back/interfaces/IAdminForthAuth","title":"IAdminForthAuth","description":"Methods","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnector":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnector","title":"IAdminForthDataSourceConnector","description":"Extended by","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","title":"IAdminForthDataSourceConnectorBase","description":"Interface that exposes methods to interact with AdminForth in standard way","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","title":"IAdminForthDataSourceConnectorConstructor","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthFilter":{"id":"api/types/Back/interfaces/IAdminForthFilter","title":"IAdminForthFilter","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthHttpResponse":{"id":"api/types/Back/interfaces/IAdminForthHttpResponse","title":"IAdminForthHttpResponse","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthPlugin":{"id":"api/types/Back/interfaces/IAdminForthPlugin","title":"IAdminForthPlugin","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthSort":{"id":"api/types/Back/interfaces/IAdminForthSort","title":"IAdminForthSort","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/ICodeInjector":{"id":"api/types/Back/interfaces/ICodeInjector","title":"ICodeInjector","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IConfigValidator":{"id":"api/types/Back/interfaces/IConfigValidator","title":"IConfigValidator","description":"Methods","sidebar":"apiSidebar"},"api/types/Back/interfaces/IExpressHttpServer":{"id":"api/types/Back/interfaces/IExpressHttpServer","title":"IExpressHttpServer","description":"Implement this interface to create custom HTTP server adapter for AdminForth.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IHttpServer":{"id":"api/types/Back/interfaces/IHttpServer","title":"IHttpServer","description":"Implement this interface to create custom HTTP server adapter for AdminForth.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IOperationalResource":{"id":"api/types/Back/interfaces/IOperationalResource","title":"IOperationalResource","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AdminForthDataSource":{"id":"api/types/Back/type-aliases/AdminForthDataSource","title":"AdminForthDataSource","description":"AdminForthDataSource: object","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AfterDataSourceResponseFunction":{"id":"api/types/Back/type-aliases/AfterDataSourceResponseFunction","title":"AfterDataSourceResponseFunction()","description":"AfterDataSourceResponseFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AfterSaveFunction":{"id":"api/types/Back/type-aliases/AfterSaveFunction","title":"AfterSaveFunction()","description":"AfterSaveFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AllowedActions":{"id":"api/types/Back/type-aliases/AllowedActions","title":"AllowedActions","description":"AllowedActions AllowedActionValue } & object","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AllowedActionValue":{"id":"api/types/Back/type-aliases/AllowedActionValue","title":"AllowedActionValue","description":"AllowedActionValue: boolean \\\\| ({adminUser, resource, meta, source, adminforth}) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeDataSourceRequestFunction":{"id":"api/types/Back/type-aliases/BeforeDataSourceRequestFunction","title":"BeforeDataSourceRequestFunction()","description":"BeforeDataSourceRequestFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeLoginConfirmationFunction":{"id":"api/types/Back/type-aliases/BeforeLoginConfirmationFunction","title":"BeforeLoginConfirmationFunction()","description":"BeforeLoginConfirmationFunction: (params?) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeSaveFunction":{"id":"api/types/Back/type-aliases/BeforeSaveFunction","title":"BeforeSaveFunction()","description":"BeforeSaveFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/FDataFilter":{"id":"api/types/Back/type-aliases/FDataFilter","title":"FDataFilter()","description":"FDataFilter: (field, value) => IAdminForthFilter","sidebar":"apiSidebar"},"api/types/Back/type-aliases/FDataSort":{"id":"api/types/Back/type-aliases/FDataSort","title":"FDataSort()","description":"FDataSort: (field, direction) => IAdminForthSort","sidebar":"apiSidebar"},"api/types/Back/type-aliases/ResourceOptions":{"id":"api/types/Back/type-aliases/ResourceOptions","title":"ResourceOptions","description":"ResourceOptions: Omit \\\\ & object","sidebar":"apiSidebar"},"api/types/Common/enumerations/ActionCheckSource":{"id":"api/types/Common/enumerations/ActionCheckSource","title":"ActionCheckSource","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthDataTypes":{"id":"api/types/Common/enumerations/AdminForthDataTypes","title":"AdminForthDataTypes","description":"Types that are common for both frontend side (SPA) and backend side (server).","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthFilterOperators":{"id":"api/types/Common/enumerations/AdminForthFilterOperators","title":"AdminForthFilterOperators","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthResourcePages":{"id":"api/types/Common/enumerations/AdminForthResourcePages","title":"AdminForthResourcePages","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthSortDirections":{"id":"api/types/Common/enumerations/AdminForthSortDirections","title":"AdminForthSortDirections","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AllowedActionsEnum":{"id":"api/types/Common/enumerations/AllowedActionsEnum","title":"AllowedActionsEnum","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/index":{"id":"api/types/Common/index","title":"types/Common","description":"Index","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthBulkActionCommon":{"id":"api/types/Common/interfaces/AdminForthBulkActionCommon","title":"AdminForthBulkActionCommon","description":"Extended by","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthColumnEnumItem":{"id":"api/types/Common/interfaces/AdminForthColumnEnumItem","title":"AdminForthColumnEnumItem","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthComponentDeclarationFull":{"id":"api/types/Common/interfaces/AdminForthComponentDeclarationFull","title":"AdminForthComponentDeclarationFull","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthFieldComponents":{"id":"api/types/Common/interfaces/AdminForthFieldComponents","title":"AdminForthFieldComponents","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthForeignResourceCommon":{"id":"api/types/Common/interfaces/AdminForthForeignResourceCommon","title":"AdminForthForeignResourceCommon","description":"Extended by","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthResourceCommon":{"id":"api/types/Common/interfaces/AdminForthResourceCommon","title":"AdminForthResourceCommon","description":"Resource describes one table or collection in database.","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminUser":{"id":"api/types/Common/interfaces/AdminUser","title":"AdminUser","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AdminForthComponentDeclaration":{"id":"api/types/Common/type-aliases/AdminForthComponentDeclaration","title":"AdminForthComponentDeclaration","description":"AdminForthComponentDeclaration: AdminForthComponentDeclarationFull \\\\| string","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AdminForthResourceColumnCommon":{"id":"api/types/Common/type-aliases/AdminForthResourceColumnCommon","title":"AdminForthResourceColumnCommon","description":"AdminForthResourceColumnCommon: object","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AllowedActionsResolved":{"id":"api/types/Common/type-aliases/AllowedActionsResolved","title":"AllowedActionsResolved","description":"AllowedActionsResolved boolean }","sidebar":"apiSidebar"},"api/types/Common/type-aliases/ValidationObject":{"id":"api/types/Common/type-aliases/ValidationObject","title":"ValidationObject","description":"ValidationObject: object","sidebar":"apiSidebar"},"api/types/FrontendAPI/enumerations/AlertVariant":{"id":"api/types/FrontendAPI/enumerations/AlertVariant","title":"AlertVariant","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/FrontendAPI/index":{"id":"api/types/FrontendAPI/index","title":"types/FrontendAPI","description":"Index","sidebar":"apiSidebar"},"api/types/FrontendAPI/interfaces/FrontendAPIInterface":{"id":"api/types/FrontendAPI/interfaces/FrontendAPIInterface","title":"FrontendAPIInterface","description":"Properties","sidebar":"apiSidebar"},"api/types/FrontendAPI/type-aliases/AlertParams":{"id":"api/types/FrontendAPI/type-aliases/AlertParams","title":"AlertParams","description":"AlertParams: object","sidebar":"apiSidebar"},"api/types/FrontendAPI/type-aliases/ConfirmParams":{"id":"api/types/FrontendAPI/type-aliases/ConfirmParams","title":"ConfirmParams","description":"ConfirmParams: object","sidebar":"apiSidebar"},"tutorial/Advanced/plugin-development":{"id":"tutorial/Advanced/plugin-development","title":"Plugin development guide","description":"Creating a plugin is a powerful way to extend AdminForth functionality.","sidebar":"tutorialSidebar"},"tutorial/Customization/afcl":{"id":"tutorial/Customization/afcl","title":"AdminForth Components Library","description":"ACL is a new set of components which you can use as build blocks.","sidebar":"tutorialSidebar"},"tutorial/Customization/alert":{"id":"tutorial/Customization/alert","title":"Alerts and confirmations","description":"When you are writing custom components or pages you might need to show alerts or confirmations to the user.","sidebar":"tutorialSidebar"},"tutorial/Customization/branding":{"id":"tutorial/Customization/branding","title":"Branding and Theming","description":"The first things you would probably like to change are the logo, favicon and the name of the application.","sidebar":"tutorialSidebar"},"tutorial/Customization/bulkActions":{"id":"tutorial/Customization/bulkActions","title":"Custom bulk actions","description":"You might need to give admin users a feature to perform same action on multiple records at once.","sidebar":"tutorialSidebar"},"tutorial/Customization/customFieldRendering":{"id":"tutorial/Customization/customFieldRendering","title":"Custom record field rendering","description":"Customizing how AdminForth renders the cells with record values","sidebar":"tutorialSidebar"},"tutorial/Customization/customPages":{"id":"tutorial/Customization/customPages","title":"Custom pages","description":"Most Admin Panels should have some Dashboards or custom pages.","sidebar":"tutorialSidebar"},"tutorial/Customization/dataApi":{"id":"tutorial/Customization/dataApi","title":"Data API","description":"AdminForth Data API is a minimal set of methods to manipulate the data in the database.","sidebar":"tutorialSidebar"},"tutorial/Customization/hooks":{"id":"tutorial/Customization/hooks","title":"Hooks","description":"Hooks are used to:","sidebar":"tutorialSidebar"},"tutorial/Customization/limitingAccess":{"id":"tutorial/Customization/limitingAccess","title":"Limiting actions access","description":"Statically disable some action","sidebar":"tutorialSidebar"},"tutorial/Customization/menuConfiguration":{"id":"tutorial/Customization/menuConfiguration","title":"Menu Configuration","description":"Icons","sidebar":"tutorialSidebar"},"tutorial/Customization/pageInjections":{"id":"tutorial/Customization/pageInjections","title":"Page Injections","description":"In addition to ability to create custom pages and overwrite how fields are rendered, you can also inject custom components in standard AdminForth page.","sidebar":"tutorialSidebar"},"tutorial/Customization/security":{"id":"tutorial/Customization/security","title":"Security","description":"Security and privacy if adminforth users is one of the most important aspects of AdminForth.","sidebar":"tutorialSidebar"},"tutorial/Customization/standardPagesTuning":{"id":"tutorial/Customization/standardPagesTuning","title":"Standard pages tuning","description":"Fields Grouping","sidebar":"tutorialSidebar"},"tutorial/Customization/virtualColumns":{"id":"tutorial/Customization/virtualColumns","title":"Virtual columns","description":"Virtual column for show and list","sidebar":"tutorialSidebar"},"tutorial/deploy":{"id":"tutorial/deploy","title":"Deploy in Docker","description":"In general you can already run your index.ts file which we created in Getting Started","sidebar":"tutorialSidebar"},"tutorial/gettingStarted":{"id":"tutorial/gettingStarted","title":"Getting Started","description":"This Getting Started Page has some explanations and tables with various field types.","sidebar":"tutorialSidebar"},"tutorial/glossary":{"id":"tutorial/glossary","title":"Glossary","description":"dataSource","sidebar":"tutorialSidebar"},"tutorial/helloWorld":{"id":"tutorial/helloWorld","title":"Hello world app","description":"No water. Pure code to get started ASAP.","sidebar":"tutorialSidebar"},"tutorial/Plugins/AuditLog":{"id":"tutorial/Plugins/AuditLog","title":"AuditLog","description":"AuditLog plugin allows to log all changes in the resources done from the admin panel.","sidebar":"tutorialSidebar"},"tutorial/Plugins/chat-gpt":{"id":"tutorial/Plugins/chat-gpt","title":"Chat-GPT","description":"This plugin allows you to auto-complete text and string fields using OpenAI Chat GPT models.","sidebar":"tutorialSidebar"},"tutorial/Plugins/email-password-reset":{"id":"tutorial/Plugins/email-password-reset","title":"Email password reset","description":"Plugin allows to reset password for admin users who forgot their password by sending email with reset link signed with secured JWT token.","sidebar":"tutorialSidebar"},"tutorial/Plugins/ForeignInlineList":{"id":"tutorial/Plugins/ForeignInlineList","title":"ForeignInlineList","description":"Foreign inline list plugin allows to display a list (table) of items from a foreign table in the show view.","sidebar":"tutorialSidebar"},"tutorial/Plugins/import-export":{"id":"tutorial/Plugins/import-export","title":"Import-Export","description":"Import-Export is a plugin that allows you to import and export data from and to a CSV file.","sidebar":"tutorialSidebar"},"tutorial/Plugins/RichEditor":{"id":"tutorial/Plugins/RichEditor","title":"Rich editor","description":"Under the hood this plugin uses Quill. Quill is a free, open source WYSIWYG editor built for the modern web.","sidebar":"tutorialSidebar"},"tutorial/Plugins/TwoFactorsAuth":{"id":"tutorial/Plugins/TwoFactorsAuth","title":"Two-Factor Authentication Plugin","description":"The Two-Factor Authentication Plugin provides an additional layer of security to the application by requiring users to provide a second form of authentication in addition to their password. This plugin supports authenticator apps.","sidebar":"tutorialSidebar"},"tutorial/Plugins/upload":{"id":"tutorial/Plugins/upload","title":"Upload","description":"This plugin allows you to upload files to Amazon S3 bucket.","sidebar":"tutorialSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/11b43341.61ea8183.js b/assets/js/11b43341.61ea8183.js new file mode 100644 index 000000000..0b3aa329f --- /dev/null +++ b/assets/js/11b43341.61ea8183.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[2256],{7674:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Getting Started","href":"/docs/tutorial/gettingStarted","docId":"tutorial/gettingStarted","unlisted":false},{"type":"link","label":"Hello world app","href":"/docs/tutorial/helloWorld","docId":"tutorial/helloWorld","unlisted":false},{"type":"link","label":"Glossary","href":"/docs/tutorial/glossary","docId":"tutorial/glossary","unlisted":false},{"type":"category","label":"Customization","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Branding and Theming","href":"/docs/tutorial/Customization/branding","docId":"tutorial/Customization/branding","unlisted":false},{"type":"link","label":"Custom record field rendering","href":"/docs/tutorial/Customization/customFieldRendering","docId":"tutorial/Customization/customFieldRendering","unlisted":false},{"type":"link","label":"Virtual columns","href":"/docs/tutorial/Customization/virtualColumns","docId":"tutorial/Customization/virtualColumns","unlisted":false},{"type":"link","label":"Hooks","href":"/docs/tutorial/Customization/hooks","docId":"tutorial/Customization/hooks","unlisted":false},{"type":"link","label":"Limiting actions access","href":"/docs/tutorial/Customization/limitingAccess","docId":"tutorial/Customization/limitingAccess","unlisted":false},{"type":"link","label":"Custom pages","href":"/docs/tutorial/Customization/customPages","docId":"tutorial/Customization/customPages","unlisted":false},{"type":"link","label":"Alerts and confirmations","href":"/docs/tutorial/Customization/alert","docId":"tutorial/Customization/alert","unlisted":false},{"type":"link","label":"Page Injections","href":"/docs/tutorial/Customization/pageInjections","docId":"tutorial/Customization/pageInjections","unlisted":false},{"type":"link","label":"Custom bulk actions","href":"/docs/tutorial/Customization/bulkActions","docId":"tutorial/Customization/bulkActions","unlisted":false},{"type":"link","label":"Menu Configuration","href":"/docs/tutorial/Customization/menuConfiguration","docId":"tutorial/Customization/menuConfiguration","unlisted":false},{"type":"link","label":"Data API","href":"/docs/tutorial/Customization/dataApi","docId":"tutorial/Customization/dataApi","unlisted":false},{"type":"link","label":"Security","href":"/docs/tutorial/Customization/security","docId":"tutorial/Customization/security","unlisted":false},{"type":"link","label":"Standard pages tuning","href":"/docs/tutorial/Customization/standardPagesTuning","docId":"tutorial/Customization/standardPagesTuning","unlisted":false},{"type":"link","label":"AdminForth Components Library","href":"/docs/tutorial/Customization/afcl","docId":"tutorial/Customization/afcl","unlisted":false}]},{"type":"link","label":"Deploy in Docker","href":"/docs/tutorial/deploy","docId":"tutorial/deploy","unlisted":false},{"type":"category","label":"Plugins","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"AuditLog","href":"/docs/tutorial/Plugins/AuditLog","docId":"tutorial/Plugins/AuditLog","unlisted":false},{"type":"link","label":"Two-Factor Authentication Plugin","href":"/docs/tutorial/Plugins/TwoFactorsAuth","docId":"tutorial/Plugins/TwoFactorsAuth","unlisted":false},{"type":"link","label":"ForeignInlineList","href":"/docs/tutorial/Plugins/ForeignInlineList","docId":"tutorial/Plugins/ForeignInlineList","unlisted":false},{"type":"link","label":"Rich editor","href":"/docs/tutorial/Plugins/RichEditor","docId":"tutorial/Plugins/RichEditor","unlisted":false},{"type":"link","label":"Upload","href":"/docs/tutorial/Plugins/upload","docId":"tutorial/Plugins/upload","unlisted":false},{"type":"link","label":"Chat-GPT","href":"/docs/tutorial/Plugins/chat-gpt","docId":"tutorial/Plugins/chat-gpt","unlisted":false},{"type":"link","label":"Email password reset","href":"/docs/tutorial/Plugins/email-password-reset","docId":"tutorial/Plugins/email-password-reset","unlisted":false},{"type":"link","label":"Import-Export","href":"/docs/tutorial/Plugins/import-export","docId":"tutorial/Plugins/import-export","unlisted":false},{"type":"link","label":"Open Signup","href":"/docs/tutorial/Plugins/open-signup","docId":"tutorial/Plugins/open-signup","unlisted":false}]},{"type":"category","label":"Advanced","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Plugin development guide","href":"/docs/tutorial/Advanced/plugin-development","docId":"tutorial/Advanced/plugin-development","unlisted":false}]}],"apiSidebar":[{"type":"category","label":"API","items":[{"type":"category","label":"types","items":[{"type":"category","label":"Back","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"AdminForthMenuTypes","href":"/docs/api/types/Back/enumerations/AdminForthMenuTypes","docId":"api/types/Back/enumerations/AdminForthMenuTypes","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Filters","href":"/docs/api/types/Back/classes/Filters","docId":"api/types/Back/classes/Filters","unlisted":false},{"type":"link","label":"Sorts","href":"/docs/api/types/Back/classes/Sorts","docId":"api/types/Back/classes/Sorts","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"AdminForthBulkAction","href":"/docs/api/types/Back/interfaces/AdminForthBulkAction","docId":"api/types/Back/interfaces/AdminForthBulkAction","unlisted":false},{"type":"link","label":"AdminForthConfig","href":"/docs/api/types/Back/interfaces/AdminForthConfig","docId":"api/types/Back/interfaces/AdminForthConfig","unlisted":false},{"type":"link","label":"AdminForthConfigMenuItem","href":"/docs/api/types/Back/interfaces/AdminForthConfigMenuItem","docId":"api/types/Back/interfaces/AdminForthConfigMenuItem","unlisted":false},{"type":"link","label":"AdminForthForeignResource","href":"/docs/api/types/Back/interfaces/AdminForthForeignResource","docId":"api/types/Back/interfaces/AdminForthForeignResource","unlisted":false},{"type":"link","label":"AdminForthResource","href":"/docs/api/types/Back/interfaces/AdminForthResource","docId":"api/types/Back/interfaces/AdminForthResource","unlisted":false},{"type":"link","label":"AdminForthResourceColumn","href":"/docs/api/types/Back/interfaces/AdminForthResourceColumn","docId":"api/types/Back/interfaces/AdminForthResourceColumn","unlisted":false},{"type":"link","label":"IAdminForth","href":"/docs/api/types/Back/interfaces/IAdminForth","docId":"api/types/Back/interfaces/IAdminForth","unlisted":false},{"type":"link","label":"IAdminForthAuth","href":"/docs/api/types/Back/interfaces/IAdminForthAuth","docId":"api/types/Back/interfaces/IAdminForthAuth","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnector","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnector","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnectorBase","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","unlisted":false},{"type":"link","label":"IAdminForthDataSourceConnectorConstructor","href":"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","docId":"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","unlisted":false},{"type":"link","label":"IAdminForthFilter","href":"/docs/api/types/Back/interfaces/IAdminForthFilter","docId":"api/types/Back/interfaces/IAdminForthFilter","unlisted":false},{"type":"link","label":"IAdminForthHttpResponse","href":"/docs/api/types/Back/interfaces/IAdminForthHttpResponse","docId":"api/types/Back/interfaces/IAdminForthHttpResponse","unlisted":false},{"type":"link","label":"IAdminForthPlugin","href":"/docs/api/types/Back/interfaces/IAdminForthPlugin","docId":"api/types/Back/interfaces/IAdminForthPlugin","unlisted":false},{"type":"link","label":"IAdminForthRestAPI","href":"/docs/api/types/Back/interfaces/IAdminForthRestAPI","docId":"api/types/Back/interfaces/IAdminForthRestAPI","unlisted":false},{"type":"link","label":"IAdminForthSort","href":"/docs/api/types/Back/interfaces/IAdminForthSort","docId":"api/types/Back/interfaces/IAdminForthSort","unlisted":false},{"type":"link","label":"ICodeInjector","href":"/docs/api/types/Back/interfaces/ICodeInjector","docId":"api/types/Back/interfaces/ICodeInjector","unlisted":false},{"type":"link","label":"IConfigValidator","href":"/docs/api/types/Back/interfaces/IConfigValidator","docId":"api/types/Back/interfaces/IConfigValidator","unlisted":false},{"type":"link","label":"IExpressHttpServer","href":"/docs/api/types/Back/interfaces/IExpressHttpServer","docId":"api/types/Back/interfaces/IExpressHttpServer","unlisted":false},{"type":"link","label":"IHttpServer","href":"/docs/api/types/Back/interfaces/IHttpServer","docId":"api/types/Back/interfaces/IHttpServer","unlisted":false},{"type":"link","label":"IOperationalResource","href":"/docs/api/types/Back/interfaces/IOperationalResource","docId":"api/types/Back/interfaces/IOperationalResource","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AdminForthDataSource","href":"/docs/api/types/Back/type-aliases/AdminForthDataSource","docId":"api/types/Back/type-aliases/AdminForthDataSource","unlisted":false},{"type":"link","label":"AfterDataSourceResponseFunction","href":"/docs/api/types/Back/type-aliases/AfterDataSourceResponseFunction","docId":"api/types/Back/type-aliases/AfterDataSourceResponseFunction","unlisted":false},{"type":"link","label":"AfterSaveFunction","href":"/docs/api/types/Back/type-aliases/AfterSaveFunction","docId":"api/types/Back/type-aliases/AfterSaveFunction","unlisted":false},{"type":"link","label":"AllowedActionValue","href":"/docs/api/types/Back/type-aliases/AllowedActionValue","docId":"api/types/Back/type-aliases/AllowedActionValue","unlisted":false},{"type":"link","label":"AllowedActions","href":"/docs/api/types/Back/type-aliases/AllowedActions","docId":"api/types/Back/type-aliases/AllowedActions","unlisted":false},{"type":"link","label":"BeforeDataSourceRequestFunction","href":"/docs/api/types/Back/type-aliases/BeforeDataSourceRequestFunction","docId":"api/types/Back/type-aliases/BeforeDataSourceRequestFunction","unlisted":false},{"type":"link","label":"BeforeLoginConfirmationFunction","href":"/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction","docId":"api/types/Back/type-aliases/BeforeLoginConfirmationFunction","unlisted":false},{"type":"link","label":"BeforeSaveFunction","href":"/docs/api/types/Back/type-aliases/BeforeSaveFunction","docId":"api/types/Back/type-aliases/BeforeSaveFunction","unlisted":false},{"type":"link","label":"FDataFilter","href":"/docs/api/types/Back/type-aliases/FDataFilter","docId":"api/types/Back/type-aliases/FDataFilter","unlisted":false},{"type":"link","label":"FDataSort","href":"/docs/api/types/Back/type-aliases/FDataSort","docId":"api/types/Back/type-aliases/FDataSort","unlisted":false},{"type":"link","label":"ResourceOptions","href":"/docs/api/types/Back/type-aliases/ResourceOptions","docId":"api/types/Back/type-aliases/ResourceOptions","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/Back/"},{"type":"category","label":"Common","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"ActionCheckSource","href":"/docs/api/types/Common/enumerations/ActionCheckSource","docId":"api/types/Common/enumerations/ActionCheckSource","unlisted":false},{"type":"link","label":"AdminForthDataTypes","href":"/docs/api/types/Common/enumerations/AdminForthDataTypes","docId":"api/types/Common/enumerations/AdminForthDataTypes","unlisted":false},{"type":"link","label":"AdminForthFilterOperators","href":"/docs/api/types/Common/enumerations/AdminForthFilterOperators","docId":"api/types/Common/enumerations/AdminForthFilterOperators","unlisted":false},{"type":"link","label":"AdminForthResourcePages","href":"/docs/api/types/Common/enumerations/AdminForthResourcePages","docId":"api/types/Common/enumerations/AdminForthResourcePages","unlisted":false},{"type":"link","label":"AdminForthSortDirections","href":"/docs/api/types/Common/enumerations/AdminForthSortDirections","docId":"api/types/Common/enumerations/AdminForthSortDirections","unlisted":false},{"type":"link","label":"AllowedActionsEnum","href":"/docs/api/types/Common/enumerations/AllowedActionsEnum","docId":"api/types/Common/enumerations/AllowedActionsEnum","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"AdminForthBulkActionCommon","href":"/docs/api/types/Common/interfaces/AdminForthBulkActionCommon","docId":"api/types/Common/interfaces/AdminForthBulkActionCommon","unlisted":false},{"type":"link","label":"AdminForthColumnEnumItem","href":"/docs/api/types/Common/interfaces/AdminForthColumnEnumItem","docId":"api/types/Common/interfaces/AdminForthColumnEnumItem","unlisted":false},{"type":"link","label":"AdminForthComponentDeclarationFull","href":"/docs/api/types/Common/interfaces/AdminForthComponentDeclarationFull","docId":"api/types/Common/interfaces/AdminForthComponentDeclarationFull","unlisted":false},{"type":"link","label":"AdminForthFieldComponents","href":"/docs/api/types/Common/interfaces/AdminForthFieldComponents","docId":"api/types/Common/interfaces/AdminForthFieldComponents","unlisted":false},{"type":"link","label":"AdminForthForeignResourceCommon","href":"/docs/api/types/Common/interfaces/AdminForthForeignResourceCommon","docId":"api/types/Common/interfaces/AdminForthForeignResourceCommon","unlisted":false},{"type":"link","label":"AdminForthResourceCommon","href":"/docs/api/types/Common/interfaces/AdminForthResourceCommon","docId":"api/types/Common/interfaces/AdminForthResourceCommon","unlisted":false},{"type":"link","label":"AdminUser","href":"/docs/api/types/Common/interfaces/AdminUser","docId":"api/types/Common/interfaces/AdminUser","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AdminForthComponentDeclaration","href":"/docs/api/types/Common/type-aliases/AdminForthComponentDeclaration","docId":"api/types/Common/type-aliases/AdminForthComponentDeclaration","unlisted":false},{"type":"link","label":"AdminForthResourceColumnCommon","href":"/docs/api/types/Common/type-aliases/AdminForthResourceColumnCommon","docId":"api/types/Common/type-aliases/AdminForthResourceColumnCommon","unlisted":false},{"type":"link","label":"AllowedActionsResolved","href":"/docs/api/types/Common/type-aliases/AllowedActionsResolved","docId":"api/types/Common/type-aliases/AllowedActionsResolved","unlisted":false},{"type":"link","label":"ValidationObject","href":"/docs/api/types/Common/type-aliases/ValidationObject","docId":"api/types/Common/type-aliases/ValidationObject","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/Common/"},{"type":"category","label":"FrontendAPI","items":[{"type":"category","label":"Enumerations","items":[{"type":"link","label":"AlertVariant","href":"/docs/api/types/FrontendAPI/enumerations/AlertVariant","docId":"api/types/FrontendAPI/enumerations/AlertVariant","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Interfaces","items":[{"type":"link","label":"FrontendAPIInterface","href":"/docs/api/types/FrontendAPI/interfaces/FrontendAPIInterface","docId":"api/types/FrontendAPI/interfaces/FrontendAPIInterface","unlisted":false}],"collapsed":false,"collapsible":false},{"type":"category","label":"Type Aliases","items":[{"type":"link","label":"AlertParams","href":"/docs/api/types/FrontendAPI/type-aliases/AlertParams","docId":"api/types/FrontendAPI/type-aliases/AlertParams","unlisted":false},{"type":"link","label":"ConfirmParams","href":"/docs/api/types/FrontendAPI/type-aliases/ConfirmParams","docId":"api/types/FrontendAPI/type-aliases/ConfirmParams","unlisted":false}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/types/FrontendAPI/"}],"collapsed":false,"collapsible":false}],"collapsed":false,"collapsible":false,"href":"/docs/api/"}]},"docs":{"api/index":{"id":"api/index","title":"TypeDoc API","description":"Modules","sidebar":"apiSidebar"},"api/types/Back/classes/Filters":{"id":"api/types/Back/classes/Filters","title":"Filters","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/classes/Sorts":{"id":"api/types/Back/classes/Sorts","title":"Sorts","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/enumerations/AdminForthMenuTypes":{"id":"api/types/Back/enumerations/AdminForthMenuTypes","title":"AdminForthMenuTypes","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Back/index":{"id":"api/types/Back/index","title":"types/Back","description":"Index","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthBulkAction":{"id":"api/types/Back/interfaces/AdminForthBulkAction","title":"AdminForthBulkAction","description":"Extends","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthConfig":{"id":"api/types/Back/interfaces/AdminForthConfig","title":"AdminForthConfig","description":"Main configuration object for AdminForth","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthConfigMenuItem":{"id":"api/types/Back/interfaces/AdminForthConfigMenuItem","title":"AdminForthConfigMenuItem","description":"Menu item which displayed in the left sidebar of the admin panel.","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthForeignResource":{"id":"api/types/Back/interfaces/AdminForthForeignResource","title":"AdminForthForeignResource","description":"Extends","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthResource":{"id":"api/types/Back/interfaces/AdminForthResource","title":"AdminForthResource","description":"Resource describes one table or collection in database.","sidebar":"apiSidebar"},"api/types/Back/interfaces/AdminForthResourceColumn":{"id":"api/types/Back/interfaces/AdminForthResourceColumn","title":"AdminForthResourceColumn","description":"Column describes one field in the table or collection in database.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForth":{"id":"api/types/Back/interfaces/IAdminForth","title":"IAdminForth","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthAuth":{"id":"api/types/Back/interfaces/IAdminForthAuth","title":"IAdminForthAuth","description":"Methods","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnector":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnector","title":"IAdminForthDataSourceConnector","description":"Extended by","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnectorBase","title":"IAdminForthDataSourceConnectorBase","description":"Interface that exposes methods to interact with AdminForth in standard way","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor":{"id":"api/types/Back/interfaces/IAdminForthDataSourceConnectorConstructor","title":"IAdminForthDataSourceConnectorConstructor","description":"Constructors","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthFilter":{"id":"api/types/Back/interfaces/IAdminForthFilter","title":"IAdminForthFilter","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthHttpResponse":{"id":"api/types/Back/interfaces/IAdminForthHttpResponse","title":"IAdminForthHttpResponse","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthPlugin":{"id":"api/types/Back/interfaces/IAdminForthPlugin","title":"IAdminForthPlugin","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthRestAPI":{"id":"api/types/Back/interfaces/IAdminForthRestAPI","title":"IAdminForthRestAPI","description":"Methods","sidebar":"apiSidebar"},"api/types/Back/interfaces/IAdminForthSort":{"id":"api/types/Back/interfaces/IAdminForthSort","title":"IAdminForthSort","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/ICodeInjector":{"id":"api/types/Back/interfaces/ICodeInjector","title":"ICodeInjector","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/interfaces/IConfigValidator":{"id":"api/types/Back/interfaces/IConfigValidator","title":"IConfigValidator","description":"Methods","sidebar":"apiSidebar"},"api/types/Back/interfaces/IExpressHttpServer":{"id":"api/types/Back/interfaces/IExpressHttpServer","title":"IExpressHttpServer","description":"Implement this interface to create custom HTTP server adapter for AdminForth.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IHttpServer":{"id":"api/types/Back/interfaces/IHttpServer","title":"IHttpServer","description":"Implement this interface to create custom HTTP server adapter for AdminForth.","sidebar":"apiSidebar"},"api/types/Back/interfaces/IOperationalResource":{"id":"api/types/Back/interfaces/IOperationalResource","title":"IOperationalResource","description":"Properties","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AdminForthDataSource":{"id":"api/types/Back/type-aliases/AdminForthDataSource","title":"AdminForthDataSource","description":"AdminForthDataSource: object","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AfterDataSourceResponseFunction":{"id":"api/types/Back/type-aliases/AfterDataSourceResponseFunction","title":"AfterDataSourceResponseFunction()","description":"AfterDataSourceResponseFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AfterSaveFunction":{"id":"api/types/Back/type-aliases/AfterSaveFunction","title":"AfterSaveFunction()","description":"AfterSaveFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AllowedActions":{"id":"api/types/Back/type-aliases/AllowedActions","title":"AllowedActions","description":"AllowedActions AllowedActionValue } & object","sidebar":"apiSidebar"},"api/types/Back/type-aliases/AllowedActionValue":{"id":"api/types/Back/type-aliases/AllowedActionValue","title":"AllowedActionValue","description":"AllowedActionValue: boolean \\\\| ({adminUser, resource, meta, source, adminforth}) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeDataSourceRequestFunction":{"id":"api/types/Back/type-aliases/BeforeDataSourceRequestFunction","title":"BeforeDataSourceRequestFunction()","description":"BeforeDataSourceRequestFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeLoginConfirmationFunction":{"id":"api/types/Back/type-aliases/BeforeLoginConfirmationFunction","title":"BeforeLoginConfirmationFunction()","description":"BeforeLoginConfirmationFunction: (params?) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/BeforeSaveFunction":{"id":"api/types/Back/type-aliases/BeforeSaveFunction","title":"BeforeSaveFunction()","description":"BeforeSaveFunction: (params) => Promise\\\\","sidebar":"apiSidebar"},"api/types/Back/type-aliases/FDataFilter":{"id":"api/types/Back/type-aliases/FDataFilter","title":"FDataFilter()","description":"FDataFilter: (field, value) => IAdminForthFilter","sidebar":"apiSidebar"},"api/types/Back/type-aliases/FDataSort":{"id":"api/types/Back/type-aliases/FDataSort","title":"FDataSort()","description":"FDataSort: (field, direction) => IAdminForthSort","sidebar":"apiSidebar"},"api/types/Back/type-aliases/ResourceOptions":{"id":"api/types/Back/type-aliases/ResourceOptions","title":"ResourceOptions","description":"ResourceOptions: Omit \\\\ & object","sidebar":"apiSidebar"},"api/types/Common/enumerations/ActionCheckSource":{"id":"api/types/Common/enumerations/ActionCheckSource","title":"ActionCheckSource","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthDataTypes":{"id":"api/types/Common/enumerations/AdminForthDataTypes","title":"AdminForthDataTypes","description":"Types that are common for both frontend side (SPA) and backend side (server).","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthFilterOperators":{"id":"api/types/Common/enumerations/AdminForthFilterOperators","title":"AdminForthFilterOperators","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthResourcePages":{"id":"api/types/Common/enumerations/AdminForthResourcePages","title":"AdminForthResourcePages","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AdminForthSortDirections":{"id":"api/types/Common/enumerations/AdminForthSortDirections","title":"AdminForthSortDirections","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/enumerations/AllowedActionsEnum":{"id":"api/types/Common/enumerations/AllowedActionsEnum","title":"AllowedActionsEnum","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/Common/index":{"id":"api/types/Common/index","title":"types/Common","description":"Index","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthBulkActionCommon":{"id":"api/types/Common/interfaces/AdminForthBulkActionCommon","title":"AdminForthBulkActionCommon","description":"Extended by","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthColumnEnumItem":{"id":"api/types/Common/interfaces/AdminForthColumnEnumItem","title":"AdminForthColumnEnumItem","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthComponentDeclarationFull":{"id":"api/types/Common/interfaces/AdminForthComponentDeclarationFull","title":"AdminForthComponentDeclarationFull","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthFieldComponents":{"id":"api/types/Common/interfaces/AdminForthFieldComponents","title":"AdminForthFieldComponents","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthForeignResourceCommon":{"id":"api/types/Common/interfaces/AdminForthForeignResourceCommon","title":"AdminForthForeignResourceCommon","description":"Extended by","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminForthResourceCommon":{"id":"api/types/Common/interfaces/AdminForthResourceCommon","title":"AdminForthResourceCommon","description":"Resource describes one table or collection in database.","sidebar":"apiSidebar"},"api/types/Common/interfaces/AdminUser":{"id":"api/types/Common/interfaces/AdminUser","title":"AdminUser","description":"Properties","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AdminForthComponentDeclaration":{"id":"api/types/Common/type-aliases/AdminForthComponentDeclaration","title":"AdminForthComponentDeclaration","description":"AdminForthComponentDeclaration: AdminForthComponentDeclarationFull \\\\| string","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AdminForthResourceColumnCommon":{"id":"api/types/Common/type-aliases/AdminForthResourceColumnCommon","title":"AdminForthResourceColumnCommon","description":"AdminForthResourceColumnCommon: object","sidebar":"apiSidebar"},"api/types/Common/type-aliases/AllowedActionsResolved":{"id":"api/types/Common/type-aliases/AllowedActionsResolved","title":"AllowedActionsResolved","description":"AllowedActionsResolved boolean }","sidebar":"apiSidebar"},"api/types/Common/type-aliases/ValidationObject":{"id":"api/types/Common/type-aliases/ValidationObject","title":"ValidationObject","description":"ValidationObject: object","sidebar":"apiSidebar"},"api/types/FrontendAPI/enumerations/AlertVariant":{"id":"api/types/FrontendAPI/enumerations/AlertVariant","title":"AlertVariant","description":"Enumeration Members","sidebar":"apiSidebar"},"api/types/FrontendAPI/index":{"id":"api/types/FrontendAPI/index","title":"types/FrontendAPI","description":"Index","sidebar":"apiSidebar"},"api/types/FrontendAPI/interfaces/FrontendAPIInterface":{"id":"api/types/FrontendAPI/interfaces/FrontendAPIInterface","title":"FrontendAPIInterface","description":"Properties","sidebar":"apiSidebar"},"api/types/FrontendAPI/type-aliases/AlertParams":{"id":"api/types/FrontendAPI/type-aliases/AlertParams","title":"AlertParams","description":"AlertParams: object","sidebar":"apiSidebar"},"api/types/FrontendAPI/type-aliases/ConfirmParams":{"id":"api/types/FrontendAPI/type-aliases/ConfirmParams","title":"ConfirmParams","description":"ConfirmParams: object","sidebar":"apiSidebar"},"tutorial/Advanced/plugin-development":{"id":"tutorial/Advanced/plugin-development","title":"Plugin development guide","description":"Creating a plugin is a powerful way to extend AdminForth functionality.","sidebar":"tutorialSidebar"},"tutorial/Customization/afcl":{"id":"tutorial/Customization/afcl","title":"AdminForth Components Library","description":"ACL is a new set of components which you can use as build blocks.","sidebar":"tutorialSidebar"},"tutorial/Customization/alert":{"id":"tutorial/Customization/alert","title":"Alerts and confirmations","description":"When you are writing custom components or pages you might need to show alerts or confirmations to the user.","sidebar":"tutorialSidebar"},"tutorial/Customization/branding":{"id":"tutorial/Customization/branding","title":"Branding and Theming","description":"The first things you would probably like to change are the logo, favicon and the name of the application.","sidebar":"tutorialSidebar"},"tutorial/Customization/bulkActions":{"id":"tutorial/Customization/bulkActions","title":"Custom bulk actions","description":"You might need to give admin users a feature to perform same action on multiple records at once.","sidebar":"tutorialSidebar"},"tutorial/Customization/customFieldRendering":{"id":"tutorial/Customization/customFieldRendering","title":"Custom record field rendering","description":"Customizing how AdminForth renders the cells with record values","sidebar":"tutorialSidebar"},"tutorial/Customization/customPages":{"id":"tutorial/Customization/customPages","title":"Custom pages","description":"Most Admin Panels should have some Dashboards or custom pages.","sidebar":"tutorialSidebar"},"tutorial/Customization/dataApi":{"id":"tutorial/Customization/dataApi","title":"Data API","description":"AdminForth Data API is a minimal set of methods to manipulate the data in the database.","sidebar":"tutorialSidebar"},"tutorial/Customization/hooks":{"id":"tutorial/Customization/hooks","title":"Hooks","description":"Hooks are used to:","sidebar":"tutorialSidebar"},"tutorial/Customization/limitingAccess":{"id":"tutorial/Customization/limitingAccess","title":"Limiting actions access","description":"Statically disable some action","sidebar":"tutorialSidebar"},"tutorial/Customization/menuConfiguration":{"id":"tutorial/Customization/menuConfiguration","title":"Menu Configuration","description":"Icons","sidebar":"tutorialSidebar"},"tutorial/Customization/pageInjections":{"id":"tutorial/Customization/pageInjections","title":"Page Injections","description":"In addition to ability to create custom pages and overwrite how fields are rendered, you can also inject custom components in standard AdminForth page.","sidebar":"tutorialSidebar"},"tutorial/Customization/security":{"id":"tutorial/Customization/security","title":"Security","description":"Security and privacy if adminforth users is one of the most important aspects of AdminForth.","sidebar":"tutorialSidebar"},"tutorial/Customization/standardPagesTuning":{"id":"tutorial/Customization/standardPagesTuning","title":"Standard pages tuning","description":"Fields Grouping","sidebar":"tutorialSidebar"},"tutorial/Customization/virtualColumns":{"id":"tutorial/Customization/virtualColumns","title":"Virtual columns","description":"Virtual column for show and list","sidebar":"tutorialSidebar"},"tutorial/deploy":{"id":"tutorial/deploy","title":"Deploy in Docker","description":"In general you can already run your index.ts file which we created in Getting Started","sidebar":"tutorialSidebar"},"tutorial/gettingStarted":{"id":"tutorial/gettingStarted","title":"Getting Started","description":"This Getting Started Page has some explanations and tables with various field types.","sidebar":"tutorialSidebar"},"tutorial/glossary":{"id":"tutorial/glossary","title":"Glossary","description":"dataSource","sidebar":"tutorialSidebar"},"tutorial/helloWorld":{"id":"tutorial/helloWorld","title":"Hello world app","description":"No water. Pure code to get started ASAP.","sidebar":"tutorialSidebar"},"tutorial/Plugins/AuditLog":{"id":"tutorial/Plugins/AuditLog","title":"AuditLog","description":"AuditLog plugin allows to log all changes in the resources done from the admin panel.","sidebar":"tutorialSidebar"},"tutorial/Plugins/chat-gpt":{"id":"tutorial/Plugins/chat-gpt","title":"Chat-GPT","description":"This plugin allows you to auto-complete text and string fields using OpenAI Chat GPT models.","sidebar":"tutorialSidebar"},"tutorial/Plugins/email-password-reset":{"id":"tutorial/Plugins/email-password-reset","title":"Email password reset","description":"Plugin allows to reset password for admin users who forgot their password by sending email with reset link signed with secured JWT token.","sidebar":"tutorialSidebar"},"tutorial/Plugins/ForeignInlineList":{"id":"tutorial/Plugins/ForeignInlineList","title":"ForeignInlineList","description":"Foreign inline list plugin allows to display a list (table) of items from a foreign table in the show view.","sidebar":"tutorialSidebar"},"tutorial/Plugins/import-export":{"id":"tutorial/Plugins/import-export","title":"Import-Export","description":"Import-Export is a plugin that allows you to import and export data from and to a CSV file.","sidebar":"tutorialSidebar"},"tutorial/Plugins/open-signup":{"id":"tutorial/Plugins/open-signup","title":"Open Signup","description":"Open signup plugin allows users to sign up for an account without an invitation.","sidebar":"tutorialSidebar"},"tutorial/Plugins/RichEditor":{"id":"tutorial/Plugins/RichEditor","title":"Rich editor","description":"Under the hood this plugin uses Quill. Quill is a free, open source WYSIWYG editor built for the modern web.","sidebar":"tutorialSidebar"},"tutorial/Plugins/TwoFactorsAuth":{"id":"tutorial/Plugins/TwoFactorsAuth","title":"Two-Factor Authentication Plugin","description":"The Two-Factor Authentication Plugin provides an additional layer of security to the application by requiring users to provide a second form of authentication in addition to their password. This plugin supports authenticator apps.","sidebar":"tutorialSidebar"},"tutorial/Plugins/upload":{"id":"tutorial/Plugins/upload","title":"Upload","description":"This plugin allows you to upload files to Amazon S3 bucket.","sidebar":"tutorialSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/29a082d0.5a9d76bb.js b/assets/js/29a082d0.5a9d76bb.js deleted file mode 100644 index 9959d98d5..000000000 --- a/assets/js/29a082d0.5a9d76bb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[4753],{8249:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=t(4848),s=t(8453);const i={},a="Standard pages tuning",o={id:"tutorial/Customization/standardPagesTuning",title:"Standard pages tuning",description:"Fields Grouping",source:"@site/docs/tutorial/03-Customization/13-standardPagesTuning.md",sourceDirName:"tutorial/03-Customization",slug:"/tutorial/Customization/standardPagesTuning",permalink:"/docs/tutorial/Customization/standardPagesTuning",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Security",permalink:"/docs/tutorial/Customization/security"},next:{title:"AdminForth Components Library",permalink:"/docs/tutorial/Customization/afcl"}},d={},c=[{value:"Fields Grouping",id:"fields-grouping",level:2},{value:"List",id:"list",level:2},{value:"Default Sorting",id:"default-sorting",level:3},{value:"Page size",id:"page-size",level:3},{value:"Custom row click action",id:"custom-row-click-action",level:3},{value:"Auto-refresh records",id:"auto-refresh-records",level:3},{value:"Creating",id:"creating",level:2},{value:"Fill with default values",id:"fill-with-default-values",level:3}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"standard-pages-tuning",children:"Standard pages tuning"}),"\n",(0,r.jsx)(n.h2,{id:"fields-grouping",children:"Fields Grouping"}),"\n",(0,r.jsx)(n.p,{children:'In some cases, you may want to organize data fields into specific groups for better structure and clarity. For example, you could create a "Main Info" group to include columns like title, description, country, and apartment_image. Another group, "Characteristics," could hold attributes such as price, square_meter, number_of_rooms, property_type, and listed. Any values without a specified group will be categorized under "Other."'}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n ...\n options: {\n ...\n //diff-add\n createEditGroups: [\n //diff-add\n {\n //diff-add\n groupName: 'Main info',\n //diff-add\n columns: ['id','title', 'description', 'country', 'apartment_image']\n //diff-add\n },\n //diff-add\n {\n //diff-add\n groupName: 'Characteristics',\n //diff-add\n columns: ['price', 'square_meter', 'number_of_rooms', \"property_type\", \"listed\"]\n //diff-add\n }\n //diff-add\n ],\n }\n }\n ]\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Here is how it looks:\n",(0,r.jsx)(n.img,{alt:"alt text",src:t(5276).A+"",width:"2281",height:"1129"})]}),"\n",(0,r.jsx)(n.h2,{id:"list",children:"List"}),"\n",(0,r.jsx)(n.h3,{id:"default-sorting",children:"Default Sorting"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:"import { AdminForthSortDirections } from 'adminforth';\n\n...\n resources: [\n {\n resourceId: 'aparts',\n options: {\n//diff-add\n defaultSort: {\n//diff-add\n columnName: 'created_at',\n//diff-add\n direction: AdminForthSortDirections.ASC, \n//diff-add\n }\n }\n }\n ]\n"})}),"\n",(0,r.jsx)(n.h3,{id:"page-size",children:"Page size"}),"\n",(0,r.jsxs)(n.p,{children:["use ",(0,r.jsx)(n.code,{children:"options.listPageSize"})," to define how many records will be shown on the page"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n options: {\n ...\n//diff-add\n listPageSize: 10,\n }\n }\n ]\n"})}),"\n",(0,r.jsx)(n.h3,{id:"custom-row-click-action",children:"Custom row click action"}),"\n",(0,r.jsx)(n.p,{children:"By default, when you click on a record in the list view, the show view will be opened."}),"\n",(0,r.jsxs)(n.p,{children:["You can change this behavior by using ",(0,r.jsx)(n.code,{children:"options.listTableClickUrl"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To disable any action (don't open show) return null:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => null,\n }\n }\n ]\n"})}),"\n",(0,r.jsx)(n.p,{children:"To open a custom page, return URL to the custom page (can start with https://, or relative adminforth path):"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => {\n return `https://google.com/search?q=${record.name}`;\n }\n }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["If you wish to open the page in a new tab, add ",(0,r.jsx)(n.code,{children:"target=_blank"})," get param to the returned URL:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => {\n return `https://google.com/search?q=${record.name}&target=_blank`;\n }\n }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"auto-refresh-records",children:"Auto-refresh records"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"options.listRowsAutoRefreshSeconds"})," might be used to silently refresh records that are loaded (no new records will be fetched if\nthey appear)"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n hooks: {\n//diff-add\n list: {\n//diff-add\n afterDatasourceResponse: async ({ response }: { response: any }) => { \n//diff-add\n response.forEach((r: any) => {\n//diff-add\n // substitute random country on any load\n//diff-add\n const countries = [ 'US', 'DE', 'FR', 'GB', 'NL', 'IT', 'ES', 'DK', 'PL', 'UA', \n//diff-add\n 'CA', 'AU', 'BR', 'JP', 'CN', 'IN', 'KR', 'TR', 'MX', 'ID']\n//diff-add\n r.country = countries[Math.floor(Math.random() * countries.length)];\n//diff-add\n })\n//diff-add\n return { ok: true, error: \"\" }\n//diff-add\n }\n//diff-add\n }\n },\n options: {\n ...\n//diff-add\n listRowsAutoRefreshSeconds: 1,\n }\n }\n ]\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"alt text",src:t(8481).A+"",width:"1999",height:"1499"})}),"\n",(0,r.jsx)(n.h2,{id:"creating",children:"Creating"}),"\n",(0,r.jsx)(n.h3,{id:"fill-with-default-values",children:"Fill with default values"}),"\n",(0,r.jsx)(n.p,{children:"Sometimes you want to generate some field value without asking user to fill it. For example createdAt oftenly store time of creation of the record. You can do this by using fillOnCreate:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts" ',children:"\nnew AdminForth({\n ...\n resources: [\n {\n name: 'apartments',\n fields: [\n ...\n {\n name: 'created_at',\n type: AdminForthDataTypes.DATETIME,\n//diff-add\n fillOnCreate: ({ initialRecord, adminUser }) => (new Date()).toISOString(),\n },\n ],\n },\n ...\n ],\n"})}),"\n",(0,r.jsx)(n.p,{children:"Also you can assign adminUser ID by adminUser.dbUser.id in same hook:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:"new AdminForth({\n ...\n resources: [\n {\n name: 'apartments',\n fields: [\n ...\n {\n name: 'created_by',\n type: AdminForthDataTypes.STRING,\n//diff-add\n fillOnCreate: ({ initialRecord, adminUser }) => adminUser.dbUser.id,\n },\n ],\n },\n ...\n ],\n"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Same effect can be achieved by using ",(0,r.jsx)(n.a,{href:"/docs/tutorial/Customization/hooks/#modify-the-data-before-it-is-saved-to-the-database",children:"hooks"}),". But ",(0,r.jsx)(n.code,{children:"fillOnCreate"})," might be shorter and more readable."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},5276:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/createEditGroups-f18aa6d458361110bb74ccf4de8d7bb1.png"},8481:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/silent refresh-f8dfa7102e3a1d31345a43ece682ba02.gif"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(6540);const s={},i=r.createContext(s);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/29a082d0.a54547a4.js b/assets/js/29a082d0.a54547a4.js new file mode 100644 index 000000000..51b400364 --- /dev/null +++ b/assets/js/29a082d0.a54547a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[4753],{8249:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var i=t(4848),r=t(8453);const s={},a="Standard pages tuning",d={id:"tutorial/Customization/standardPagesTuning",title:"Standard pages tuning",description:"Fields Grouping",source:"@site/docs/tutorial/03-Customization/13-standardPagesTuning.md",sourceDirName:"tutorial/03-Customization",slug:"/tutorial/Customization/standardPagesTuning",permalink:"/docs/tutorial/Customization/standardPagesTuning",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Security",permalink:"/docs/tutorial/Customization/security"},next:{title:"AdminForth Components Library",permalink:"/docs/tutorial/Customization/afcl"}},o={},l=[{value:"Fields Grouping",id:"fields-grouping",level:2},{value:"List",id:"list",level:2},{value:"Default Sorting",id:"default-sorting",level:3},{value:"Page size",id:"page-size",level:3},{value:"Custom row click action",id:"custom-row-click-action",level:3},{value:"Auto-refresh records",id:"auto-refresh-records",level:3},{value:"Creating",id:"creating",level:2},{value:"Fill with default values",id:"fill-with-default-values",level:3},{value:"Editing",id:"editing",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"standard-pages-tuning",children:"Standard pages tuning"}),"\n",(0,i.jsx)(n.h2,{id:"fields-grouping",children:"Fields Grouping"}),"\n",(0,i.jsx)(n.p,{children:'In some cases, you may want to organize data fields into specific groups for better structure and clarity. For example, you could create a "Main Info" group to include columns like title, description, country, and apartment_image. Another group, "Characteristics," could hold attributes such as price, square_meter, number_of_rooms, property_type, and listed. Any values without a specified group will be categorized under "Other."'}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n ...\n options: {\n ...\n //diff-add\n createEditGroups: [\n //diff-add\n {\n //diff-add\n groupName: 'Main info',\n //diff-add\n columns: ['id','title', 'description', 'country', 'apartment_image']\n //diff-add\n },\n //diff-add\n {\n //diff-add\n groupName: 'Characteristics',\n //diff-add\n columns: ['price', 'square_meter', 'number_of_rooms', \"property_type\", \"listed\"]\n //diff-add\n }\n //diff-add\n ],\n }\n }\n ]\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Here is how it looks:\n",(0,i.jsx)(n.img,{alt:"alt text",src:t(5276).A+"",width:"2281",height:"1129"})]}),"\n",(0,i.jsx)(n.h2,{id:"list",children:"List"}),"\n",(0,i.jsx)(n.h3,{id:"default-sorting",children:"Default Sorting"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:"import { AdminForthSortDirections } from 'adminforth';\n\n...\n resources: [\n {\n resourceId: 'aparts',\n options: {\n//diff-add\n defaultSort: {\n//diff-add\n columnName: 'created_at',\n//diff-add\n direction: AdminForthSortDirections.ASC, \n//diff-add\n }\n }\n }\n ]\n"})}),"\n",(0,i.jsx)(n.h3,{id:"page-size",children:"Page size"}),"\n",(0,i.jsxs)(n.p,{children:["use ",(0,i.jsx)(n.code,{children:"options.listPageSize"})," to define how many records will be shown on the page"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n options: {\n ...\n//diff-add\n listPageSize: 10,\n }\n }\n ]\n"})}),"\n",(0,i.jsx)(n.h3,{id:"custom-row-click-action",children:"Custom row click action"}),"\n",(0,i.jsx)(n.p,{children:"By default, when you click on a record in the list view, the show view will be opened."}),"\n",(0,i.jsxs)(n.p,{children:["You can change this behavior by using ",(0,i.jsx)(n.code,{children:"options.listTableClickUrl"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"To disable any action (don't open show) return null:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => null,\n }\n }\n ]\n"})}),"\n",(0,i.jsx)(n.p,{children:"To open a custom page, return URL to the custom page (can start with https://, or relative adminforth path):"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => {\n return `https://google.com/search?q=${record.name}`;\n }\n }\n"})}),"\n",(0,i.jsxs)(n.p,{children:["If you wish to open the page in a new tab, add ",(0,i.jsx)(n.code,{children:"target=_blank"})," get param to the returned URL:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" options: {\n ...\n//diff-add\n listTableClickUrl: async (record, adminUser) => {\n return `https://google.com/search?q=${record.name}&target=_blank`;\n }\n }\n"})}),"\n",(0,i.jsx)(n.h3,{id:"auto-refresh-records",children:"Auto-refresh records"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"options.listRowsAutoRefreshSeconds"})," might be used to silently refresh records that are loaded (no new records will be fetched if\nthey appear)"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:" resources: [\n {\n resourceId: 'aparts',\n hooks: {\n//diff-add\n list: {\n//diff-add\n afterDatasourceResponse: async ({ response }: { response: any }) => { \n//diff-add\n response.forEach((r: any) => {\n//diff-add\n // substitute random country on any load\n//diff-add\n const countries = [ 'US', 'DE', 'FR', 'GB', 'NL', 'IT', 'ES', 'DK', 'PL', 'UA', \n//diff-add\n 'CA', 'AU', 'BR', 'JP', 'CN', 'IN', 'KR', 'TR', 'MX', 'ID']\n//diff-add\n r.country = countries[Math.floor(Math.random() * countries.length)];\n//diff-add\n })\n//diff-add\n return { ok: true, error: \"\" }\n//diff-add\n }\n//diff-add\n }\n },\n options: {\n ...\n//diff-add\n listRowsAutoRefreshSeconds: 1,\n }\n }\n ]\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"alt text",src:t(8481).A+"",width:"1999",height:"1499"})}),"\n",(0,i.jsx)(n.h2,{id:"creating",children:"Creating"}),"\n",(0,i.jsx)(n.h3,{id:"fill-with-default-values",children:"Fill with default values"}),"\n",(0,i.jsx)(n.p,{children:"Sometimes you want to generate some field value without asking user to fill it. For example createdAt oftenly store time of creation of the record. You can do this by using fillOnCreate:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts" ',children:"\nnew AdminForth({\n ...\n resources: [\n {\n name: 'apartments',\n fields: [\n ...\n {\n name: 'created_at',\n type: AdminForthDataTypes.DATETIME,\n//diff-add\n fillOnCreate: ({ initialRecord, adminUser }) => (new Date()).toISOString(),\n },\n ],\n },\n ...\n ],\n"})}),"\n",(0,i.jsx)(n.p,{children:"Also you can assign adminUser ID by adminUser.dbUser.id in same hook:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:"new AdminForth({\n ...\n resources: [\n {\n name: 'apartments',\n fields: [\n ...\n {\n name: 'created_by',\n type: AdminForthDataTypes.STRING,\n//diff-add\n fillOnCreate: ({ initialRecord, adminUser }) => adminUser.dbUser.id,\n },\n ],\n },\n ...\n ],\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["Same effect can be achieved by using ",(0,i.jsx)(n.a,{href:"/docs/tutorial/Customization/hooks/#modify-the-data-before-it-is-saved-to-the-database",children:"hooks"}),". But ",(0,i.jsx)(n.code,{children:"fillOnCreate"})," might be shorter and more readable."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"editing",children:"Editing"}),"\n",(0,i.jsxs)(n.p,{children:["You can set a column ",(0,i.jsx)(n.code,{children:"editReadonly"})," so it will be shown in the edit form but will be disabled.",(0,i.jsx)(n.br,{}),"\n","This might be useful to better identify the record during editing or to show some additional information that should not be changed but can help to edit the record."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/apartments.ts"',children:"new AdminForth({\n ...\n resources: [\n {\n name: 'apartments',\n fields: [\n ...\n {\n name: 'created_at',\n type: AdminForthDataTypes.DATETIME,\n//diff-add\n editReadonly: true,\n },\n ],\n },\n ...\n ],\n"})})]})}function u(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},5276:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createEditGroups-f18aa6d458361110bb74ccf4de8d7bb1.png"},8481:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/silent refresh-f8dfa7102e3a1d31345a43ece682ba02.gif"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>d});var i=t(6540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/31091af1.43478307.js b/assets/js/31091af1.43478307.js new file mode 100644 index 000000000..a4de39da6 --- /dev/null +++ b/assets/js/31091af1.43478307.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[103],{2862:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>a,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var t=i(4848),s=i(8453);const o={},l="Open Signup",r={id:"tutorial/Plugins/open-signup",title:"Open Signup",description:"Open signup plugin allows users to sign up for an account without an invitation.",source:"@site/docs/tutorial/05-Plugins/09-open-signup.md",sourceDirName:"tutorial/05-Plugins",slug:"/tutorial/Plugins/open-signup",permalink:"/docs/tutorial/Plugins/open-signup",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Import-Export",permalink:"/docs/tutorial/Plugins/import-export"},next:{title:"Plugin development guide",permalink:"/docs/tutorial/Advanced/plugin-development"}},a={},u=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Email verification",id:"email-verification",level:2}];function p(n){const e={code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,s.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h1,{id:"open-signup",children:"Open Signup"}),"\n",(0,t.jsx)(e.p,{children:"Open signup plugin allows users to sign up for an account without an invitation.\nThis is useful when you want to allow anyone to sign up for an account and assign some low-level permissions to them."}),"\n",(0,t.jsx)(e.h2,{id:"installation",children:"Installation"}),"\n",(0,t.jsx)(e.p,{children:"To install the plugin:"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-bash",children:"npm install @adminforth/open-signup\n"})}),"\n",(0,t.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsx)(e.p,{children:"To use the plugin, instantiate to to user resource:"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-typescript",metastring:'title="./resources/user.ts"',children:"import OpenSignupPlugin from '../adminforth/plugins/open-signup/index.js';\n\n"})}),"\n",(0,t.jsx)(e.p,{children:"Like this:"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-typescript",metastring:'title="./resources/user.ts"',children:"new OpenSignupPlugin({\n emailField: 'email',\n passwordField: 'password',\n passwordHashField: 'password_hash',\n defaultFieldValues: {\n role: 'user',\n },\n }),\n"})}),"\n",(0,t.jsx)(e.p,{children:"Please note that in this mode users will be able to sign up without email verification. For enabling email verification, see below."}),"\n",(0,t.jsx)(e.h2,{id:"email-verification",children:"Email verification"}),"\n",(0,t.jsx)(e.p,{children:"Work in progress"})]})}function c(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(p,{...n})}):p(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>l,x:()=>r});var t=i(6540);const s={},o=t.createContext(s);function l(n){const e=t.useContext(o);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function r(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:l(n.components),t.createElement(o.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/35aacbf2.afc6ca41.js b/assets/js/35aacbf2.afc6ca41.js deleted file mode 100644 index f92187c36..000000000 --- a/assets/js/35aacbf2.afc6ca41.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[1430],{4814:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>t,metadata:()=>i,toc:()=>o});var n=s(4848),d=s(8453);const t={},l="IAdminForth",i={id:"api/types/Back/interfaces/IAdminForth",title:"IAdminForth",description:"Properties",source:"@site/docs/api/types/Back/interfaces/IAdminForth.md",sourceDirName:"api/types/Back/interfaces",slug:"/api/types/Back/interfaces/IAdminForth",permalink:"/docs/api/types/Back/interfaces/IAdminForth",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"AdminForthResourceColumn",permalink:"/docs/api/types/Back/interfaces/AdminForthResourceColumn"},next:{title:"IAdminForthAuth",permalink:"/docs/api/types/Back/interfaces/IAdminForthAuth"}},c={},o=[{value:"Properties",id:"properties",level:2},{value:"activatedPlugins",id:"activatedplugins",level:3},{value:"auth",id:"auth",level:3},{value:"baseUrlSlashed",id:"baseurlslashed",level:3},{value:"codeInjector",id:"codeinjector",level:3},{value:"config",id:"config",level:3},{value:"connectors",id:"connectors",level:3},{value:"Index signature",id:"index-signature",level:4},{value:"express",id:"express",level:3},{value:"runningHotReload",id:"runninghotreload",level:3},{value:"statuses",id:"statuses",level:3},{value:"dbDiscover",id:"dbdiscover",level:4},{value:"Methods",id:"methods",level:2},{value:"bundleNow()",id:"bundlenow",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"createResourceRecord()",id:"createresourcerecord",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Returns",id:"returns-1",level:4},{value:"createdRecord?",id:"createdrecord",level:5},{value:"error?",id:"error",level:5},{value:"deleteResourceRecord()",id:"deleteresourcerecord",level:3},{value:"Parameters",id:"parameters-2",level:4},{value:"Returns",id:"returns-2",level:4},{value:"error?",id:"error-1",level:5},{value:"discoverDatabases()",id:"discoverdatabases",level:3},{value:"Returns",id:"returns-3",level:4},{value:"resource()",id:"resource",level:3},{value:"Parameters",id:"parameters-3",level:4},{value:"Returns",id:"returns-4",level:4},{value:"setupEndpoints()",id:"setupendpoints",level:3},{value:"Parameters",id:"parameters-4",level:4},{value:"Returns",id:"returns-5",level:4},{value:"updateResourceRecord()",id:"updateresourcerecord",level:3},{value:"Parameters",id:"parameters-5",level:4},{value:"Returns",id:"returns-6",level:4},{value:"error?",id:"error-2",level:5}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"iadminforth",children:"IAdminForth"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"activatedplugins",children:"activatedPlugins"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"activatedPlugins"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthPlugin",children:(0,n.jsx)(r.code,{children:"IAdminForthPlugin"})}),"[]"]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"auth",children:"auth"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"auth"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthAuth",children:(0,n.jsx)(r.code,{children:"IAdminForthAuth"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"baseurlslashed",children:"baseUrlSlashed"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"baseUrlSlashed"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"codeinjector",children:"codeInjector"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"codeInjector"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/ICodeInjector",children:(0,n.jsx)(r.code,{children:"ICodeInjector"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"config",children:"config"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"config"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthConfig",children:(0,n.jsx)(r.code,{children:"AdminForthConfig"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"connectors",children:"connectors"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"connectors"}),": ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"index-signature",children:"Index signature"}),"\n",(0,n.jsxs)(r.p,{children:["[",(0,n.jsx)(r.code,{children:"key"}),": ",(0,n.jsx)(r.code,{children:"string"}),"]: ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorBase",children:(0,n.jsx)(r.code,{children:"IAdminForthDataSourceConnectorBase"})})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"express",children:"express"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"express"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IHttpServer",children:(0,n.jsx)(r.code,{children:"IHttpServer"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"runninghotreload",children:"runningHotReload"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"runningHotReload"}),": ",(0,n.jsx)(r.code,{children:"boolean"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Internal flag which indicates if AdminForth is running in hot reload mode."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"statuses",children:"statuses"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"statuses"}),": ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"dbdiscover",children:"dbDiscover"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"dbDiscover"}),": ",(0,n.jsx)(r.code,{children:'"running"'})," | ",(0,n.jsx)(r.code,{children:'"done"'})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"methods",children:"Methods"}),"\n",(0,n.jsx)(r.h3,{id:"bundlenow",children:"bundleNow()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"bundleNow"}),"(",(0,n.jsx)(r.code,{children:"__namedParameters"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Bundles AdminForth SPA by injecting custom components into internal pre-made SPA source code. It generates internally dist which then will be\nserved by AdminForth HTTP adapter.\nBundle is generated in /tmp folder so if you have ramfs or tmpfs this operation will be faster."}),"\n",(0,n.jsx)(r.p,{children:'We recommend calling this method from dedicated script which will be run by CI/CD pipeline in build time. This ensures lowest downtime for your users.\nHowever for simple setup you can call it from your main script, and users will see some "AdminForth is bundling" message in the admin panel while app is bundling.'}),"\n",(0,n.jsx)(r.h4,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters.hotReload"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"boolean"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters.verbose"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"boolean"})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"createresourcerecord",children:"createResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"createResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-1",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-1",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"createdrecord",children:"createdRecord?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"createdRecord"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h5,{id:"error",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"deleteresourcerecord",children:"deleteResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"deleteResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-2",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.recordId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"string"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-2",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"error-1",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"discoverdatabases",children:"discoverDatabases()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"discoverDatabases"}),"(): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Connects to databases defined in datasources and fetches described resource columns to find out data types and constraints.\nYou must call this method as soon as possible after AdminForth class is instantiated."}),"\n",(0,n.jsx)(r.h4,{id:"returns-3",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"resource",children:"resource()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"resource"}),"(",(0,n.jsx)(r.code,{children:"resourceId"}),"): ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IOperationalResource",children:(0,n.jsx)(r.code,{children:"IOperationalResource"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Resource to get access to operational resources for data api fetching and manipulation."}),"\n",(0,n.jsx)(r.h4,{id:"parameters-3",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsx)(r.tbody,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"resourceId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"string"})})]})})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-4",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IOperationalResource",children:(0,n.jsx)(r.code,{children:"IOperationalResource"})})}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"setupendpoints",children:"setupEndpoints()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"setupEndpoints"}),"(",(0,n.jsx)(r.code,{children:"server"}),"): ",(0,n.jsx)(r.code,{children:"void"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"This method will be automatically called from AdminForth HTTP adapter to serve AdminForth SPA."}),"\n",(0,n.jsx)(r.h4,{id:"parameters-4",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsx)(r.tbody,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"server"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IHttpServer",children:(0,n.jsx)(r.code,{children:"IHttpServer"})})})]})})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-5",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.code,{children:"void"})}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"updateresourcerecord",children:"updateResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"updateResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-5",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.oldRecord"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.recordId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-6",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"error-2",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,r,s)=>{s.d(r,{R:()=>l,x:()=>i});var n=s(6540);const d={},t=n.createContext(d);function l(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/35aacbf2.eb9b8940.js b/assets/js/35aacbf2.eb9b8940.js new file mode 100644 index 000000000..4b067d534 --- /dev/null +++ b/assets/js/35aacbf2.eb9b8940.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[1430],{4814:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>t,metadata:()=>i,toc:()=>o});var n=s(4848),d=s(8453);const t={},l="IAdminForth",i={id:"api/types/Back/interfaces/IAdminForth",title:"IAdminForth",description:"Properties",source:"@site/docs/api/types/Back/interfaces/IAdminForth.md",sourceDirName:"api/types/Back/interfaces",slug:"/api/types/Back/interfaces/IAdminForth",permalink:"/docs/api/types/Back/interfaces/IAdminForth",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"AdminForthResourceColumn",permalink:"/docs/api/types/Back/interfaces/AdminForthResourceColumn"},next:{title:"IAdminForthAuth",permalink:"/docs/api/types/Back/interfaces/IAdminForthAuth"}},c={},o=[{value:"Properties",id:"properties",level:2},{value:"activatedPlugins",id:"activatedplugins",level:3},{value:"auth",id:"auth",level:3},{value:"baseUrlSlashed",id:"baseurlslashed",level:3},{value:"codeInjector",id:"codeinjector",level:3},{value:"config",id:"config",level:3},{value:"connectors",id:"connectors",level:3},{value:"Index signature",id:"index-signature",level:4},{value:"express",id:"express",level:3},{value:"restApi",id:"restapi",level:3},{value:"runningHotReload",id:"runninghotreload",level:3},{value:"statuses",id:"statuses",level:3},{value:"dbDiscover",id:"dbdiscover",level:4},{value:"Methods",id:"methods",level:2},{value:"bundleNow()",id:"bundlenow",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Returns",id:"returns",level:4},{value:"createResourceRecord()",id:"createresourcerecord",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Returns",id:"returns-1",level:4},{value:"createdRecord?",id:"createdrecord",level:5},{value:"error?",id:"error",level:5},{value:"deleteResourceRecord()",id:"deleteresourcerecord",level:3},{value:"Parameters",id:"parameters-2",level:4},{value:"Returns",id:"returns-2",level:4},{value:"error?",id:"error-1",level:5},{value:"discoverDatabases()",id:"discoverdatabases",level:3},{value:"Returns",id:"returns-3",level:4},{value:"resource()",id:"resource",level:3},{value:"Parameters",id:"parameters-3",level:4},{value:"Returns",id:"returns-4",level:4},{value:"setupEndpoints()",id:"setupendpoints",level:3},{value:"Parameters",id:"parameters-4",level:4},{value:"Returns",id:"returns-5",level:4},{value:"updateResourceRecord()",id:"updateresourcerecord",level:3},{value:"Parameters",id:"parameters-5",level:4},{value:"Returns",id:"returns-6",level:4},{value:"error?",id:"error-2",level:5}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",hr:"hr",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"iadminforth",children:"IAdminForth"}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"activatedplugins",children:"activatedPlugins"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"activatedPlugins"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthPlugin",children:(0,n.jsx)(r.code,{children:"IAdminForthPlugin"})}),"[]"]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"auth",children:"auth"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"auth"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthAuth",children:(0,n.jsx)(r.code,{children:"IAdminForthAuth"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"baseurlslashed",children:"baseUrlSlashed"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"baseUrlSlashed"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"codeinjector",children:"codeInjector"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"codeInjector"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/ICodeInjector",children:(0,n.jsx)(r.code,{children:"ICodeInjector"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"config",children:"config"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"config"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthConfig",children:(0,n.jsx)(r.code,{children:"AdminForthConfig"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"connectors",children:"connectors"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"connectors"}),": ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"index-signature",children:"Index signature"}),"\n",(0,n.jsxs)(r.p,{children:["[",(0,n.jsx)(r.code,{children:"key"}),": ",(0,n.jsx)(r.code,{children:"string"}),"]: ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthDataSourceConnectorBase",children:(0,n.jsx)(r.code,{children:"IAdminForthDataSourceConnectorBase"})})]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"express",children:"express"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"express"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IHttpServer",children:(0,n.jsx)(r.code,{children:"IHttpServer"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"restapi",children:"restApi"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"restApi"}),": ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IAdminForthRestAPI",children:(0,n.jsx)(r.code,{children:"IAdminForthRestAPI"})})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"runninghotreload",children:"runningHotReload"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"runningHotReload"}),": ",(0,n.jsx)(r.code,{children:"boolean"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Internal flag which indicates if AdminForth is running in hot reload mode."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"statuses",children:"statuses"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"statuses"}),": ",(0,n.jsx)(r.code,{children:"object"})]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"dbdiscover",children:"dbDiscover"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"dbDiscover"}),": ",(0,n.jsx)(r.code,{children:'"running"'})," | ",(0,n.jsx)(r.code,{children:'"done"'})]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"methods",children:"Methods"}),"\n",(0,n.jsx)(r.h3,{id:"bundlenow",children:"bundleNow()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"bundleNow"}),"(",(0,n.jsx)(r.code,{children:"__namedParameters"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Bundles AdminForth SPA by injecting custom components into internal pre-made SPA source code. It generates internally dist which then will be\nserved by AdminForth HTTP adapter.\nBundle is generated in /tmp folder so if you have ramfs or tmpfs this operation will be faster."}),"\n",(0,n.jsx)(r.p,{children:'We recommend calling this method from dedicated script which will be run by CI/CD pipeline in build time. This ensures lowest downtime for your users.\nHowever for simple setup you can call it from your main script, and users will see some "AdminForth is bundling" message in the admin panel while app is bundling.'}),"\n",(0,n.jsx)(r.h4,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters.hotReload"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"boolean"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"__namedParameters.verbose"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"boolean"})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"createresourcerecord",children:"createResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"createResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-1",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-1",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"createdrecord",children:"createdRecord?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"createdRecord"}),": ",(0,n.jsx)(r.code,{children:"any"})]}),"\n"]}),"\n",(0,n.jsx)(r.h5,{id:"error",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"deleteresourcerecord",children:"deleteResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"deleteResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-2",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.recordId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"string"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-2",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"error-1",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"discoverdatabases",children:"discoverDatabases()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"discoverDatabases"}),"(): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Connects to databases defined in datasources and fetches described resource columns to find out data types and constraints.\nYou must call this method as soon as possible after AdminForth class is instantiated."}),"\n",(0,n.jsx)(r.h4,{id:"returns-3",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"void"}),">"]}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"resource",children:"resource()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"resource"}),"(",(0,n.jsx)(r.code,{children:"resourceId"}),"): ",(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IOperationalResource",children:(0,n.jsx)(r.code,{children:"IOperationalResource"})})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Resource to get access to operational resources for data api fetching and manipulation."}),"\n",(0,n.jsx)(r.h4,{id:"parameters-3",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsx)(r.tbody,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"resourceId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"string"})})]})})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-4",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IOperationalResource",children:(0,n.jsx)(r.code,{children:"IOperationalResource"})})}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"setupendpoints",children:"setupEndpoints()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"setupEndpoints"}),"(",(0,n.jsx)(r.code,{children:"server"}),"): ",(0,n.jsx)(r.code,{children:"void"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"This method will be automatically called from AdminForth HTTP adapter to serve AdminForth SPA."}),"\n",(0,n.jsx)(r.h4,{id:"parameters-4",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsx)(r.tbody,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"server"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/IHttpServer",children:(0,n.jsx)(r.code,{children:"IHttpServer"})})})]})})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-5",children:"Returns"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.code,{children:"void"})}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"updateresourcerecord",children:"updateResourceRecord()"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"updateResourceRecord"}),"(",(0,n.jsx)(r.code,{children:"params"}),"): ",(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"parameters-5",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Parameter"}),(0,n.jsx)(r.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"object"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.adminUser"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,n.jsx)(r.code,{children:"AdminUser"})})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.oldRecord"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.record"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.recordId"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"any"})})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.code,{children:"params.resource"})}),(0,n.jsx)(r.td,{style:{textAlign:"left"},children:(0,n.jsx)(r.a,{href:"/docs/api/types/Back/interfaces/AdminForthResource",children:(0,n.jsx)(r.code,{children:"AdminForthResource"})})})]})]})]}),"\n",(0,n.jsx)(r.h4,{id:"returns-6",children:"Returns"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"Promise"}),"<",(0,n.jsx)(r.code,{children:"object"}),">"]}),"\n",(0,n.jsx)(r.h5,{id:"error-2",children:"error?"}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"optional"})," ",(0,n.jsx)(r.strong,{children:"error"}),": ",(0,n.jsx)(r.code,{children:"string"})]}),"\n"]})]})}function a(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,r,s)=>{s.d(r,{R:()=>l,x:()=>i});var n=s(6540);const d={},t=n.createContext(d);function l(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/41b6af93.37681ad0.js b/assets/js/41b6af93.37681ad0.js deleted file mode 100644 index 3aff0dfbb..000000000 --- a/assets/js/41b6af93.37681ad0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[8867],{2899:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var o=t(4848),r=t(8453);const i={},s="BeforeLoginConfirmationFunction()",l={id:"api/types/Back/type-aliases/BeforeLoginConfirmationFunction",title:"BeforeLoginConfirmationFunction()",description:"BeforeLoginConfirmationFunction: (params?) => Promise\\",source:"@site/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction.md",sourceDirName:"api/types/Back/type-aliases",slug:"/api/types/Back/type-aliases/BeforeLoginConfirmationFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"BeforeDataSourceRequestFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeDataSourceRequestFunction"},next:{title:"BeforeSaveFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeSaveFunction"}},d={},c=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"body",id:"body",level:3},{value:"body.allowedLogin?",id:"bodyallowedlogin",level:3},{value:"body.redirectTo?",id:"bodyredirectto",level:3},{value:"error?",id:"error",level:3},{value:"ok",id:"ok",level:3}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"beforeloginconfirmationfunction",children:"BeforeLoginConfirmationFunction()"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"BeforeLoginConfirmationFunction"}),": (",(0,o.jsx)(n.code,{children:"params"}),"?) => ",(0,o.jsx)(n.code,{children:"Promise"}),"<",(0,o.jsx)(n.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Allow to get user data before login confirmation, will triger when user try to login."}),"\n",(0,o.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{style:{textAlign:"left"},children:"Parameter"}),(0,o.jsx)(n.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,o.jsx)(n.code,{children:"params"}),"?"]}),(0,o.jsx)(n.td,{style:{textAlign:"left"},children:(0,o.jsx)(n.code,{children:"object"})})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,o.jsx)(n.code,{children:"params.adminUser"}),"?"]}),(0,o.jsx)(n.td,{style:{textAlign:"left"},children:(0,o.jsx)(n.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,o.jsx)(n.code,{children:"AdminUser"})})})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,o.jsx)(n.code,{children:"params.adminforth"}),"?"]}),(0,o.jsx)(n.td,{style:{textAlign:"left"},children:(0,o.jsx)(n.a,{href:"/docs/api/types/Back/interfaces/IAdminForth",children:(0,o.jsx)(n.code,{children:"IAdminForth"})})})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,o.jsx)(n.code,{children:"params.response"}),"?"]}),(0,o.jsx)(n.td,{style:{textAlign:"left"},children:(0,o.jsx)(n.a,{href:"/docs/api/types/Back/interfaces/IAdminForthHttpResponse",children:(0,o.jsx)(n.code,{children:"IAdminForthHttpResponse"})})})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Promise"}),"<",(0,o.jsx)(n.code,{children:"object"}),">"]}),"\n",(0,o.jsx)(n.h3,{id:"body",children:"body"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"body"}),": ",(0,o.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"bodyallowedlogin",children:"body.allowedLogin?"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"optional"})," ",(0,o.jsx)(n.strong,{children:"allowedLogin"}),": ",(0,o.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"bodyredirectto",children:"body.redirectTo?"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"optional"})," ",(0,o.jsx)(n.strong,{children:"redirectTo"}),": ",(0,o.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"error",children:"error?"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"optional"})," ",(0,o.jsx)(n.strong,{children:"error"}),": ",(0,o.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"ok",children:"ok"}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"ok"}),": ",(0,o.jsx)(n.code,{children:"boolean"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var o=t(6540);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/41b6af93.82c48813.js b/assets/js/41b6af93.82c48813.js new file mode 100644 index 000000000..d48122bad --- /dev/null +++ b/assets/js/41b6af93.82c48813.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[8867],{2899:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var r=t(4848),o=t(8453);const i={},s="BeforeLoginConfirmationFunction()",d={id:"api/types/Back/type-aliases/BeforeLoginConfirmationFunction",title:"BeforeLoginConfirmationFunction()",description:"BeforeLoginConfirmationFunction: (params?) => Promise\\",source:"@site/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction.md",sourceDirName:"api/types/Back/type-aliases",slug:"/api/types/Back/type-aliases/BeforeLoginConfirmationFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeLoginConfirmationFunction",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"BeforeDataSourceRequestFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeDataSourceRequestFunction"},next:{title:"BeforeSaveFunction",permalink:"/docs/api/types/Back/type-aliases/BeforeSaveFunction"}},c={},l=[{value:"Parameters",id:"parameters",level:2},{value:"Returns",id:"returns",level:2},{value:"body",id:"body",level:3},{value:"body.allowedLogin?",id:"bodyallowedlogin",level:3},{value:"body.redirectTo?",id:"bodyredirectto",level:3},{value:"error?",id:"error",level:3}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"beforeloginconfirmationfunction",children:"BeforeLoginConfirmationFunction()"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"BeforeLoginConfirmationFunction"}),": (",(0,r.jsx)(n.code,{children:"params"}),"?) => ",(0,r.jsx)(n.code,{children:"Promise"}),"<",(0,r.jsx)(n.code,{children:"object"}),">"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Allow to get user data before login confirmation, will triger when user try to login."}),"\n",(0,r.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"Parameter"}),(0,r.jsx)(n.th,{style:{textAlign:"left"},children:"Type"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,r.jsx)(n.code,{children:"params"}),"?"]}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.code,{children:"object"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,r.jsx)(n.code,{children:"params.adminUser"}),"?"]}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.a,{href:"/docs/api/types/Common/interfaces/AdminUser",children:(0,r.jsx)(n.code,{children:"AdminUser"})})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,r.jsx)(n.code,{children:"params.adminforth"}),"?"]}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.a,{href:"/docs/api/types/Back/interfaces/IAdminForth",children:(0,r.jsx)(n.code,{children:"IAdminForth"})})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{style:{textAlign:"left"},children:[(0,r.jsx)(n.code,{children:"params.response"}),"?"]}),(0,r.jsx)(n.td,{style:{textAlign:"left"},children:(0,r.jsx)(n.a,{href:"/docs/api/types/Back/interfaces/IAdminForthHttpResponse",children:(0,r.jsx)(n.code,{children:"IAdminForthHttpResponse"})})})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"returns",children:"Returns"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Promise"}),"<",(0,r.jsx)(n.code,{children:"object"}),">"]}),"\n",(0,r.jsx)(n.h3,{id:"body",children:"body"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"body"}),": ",(0,r.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"bodyallowedlogin",children:"body.allowedLogin?"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"optional"})," ",(0,r.jsx)(n.strong,{children:"allowedLogin"}),": ",(0,r.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"bodyredirectto",children:"body.redirectTo?"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"optional"})," ",(0,r.jsx)(n.strong,{children:"redirectTo"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"error",children:"error?"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"optional"})," ",(0,r.jsx)(n.strong,{children:"error"}),": ",(0,r.jsx)(n.code,{children:"string"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>d});var r=t(6540);const o={},i=r.createContext(o);function s(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/62fb5867.c1a75156.js b/assets/js/62fb5867.c1a75156.js deleted file mode 100644 index d6f50be25..000000000 --- a/assets/js/62fb5867.c1a75156.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[2133],{796:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var o=n(4848),r=n(8453);const i={},s="Import-Export",l={id:"tutorial/Plugins/import-export",title:"Import-Export",description:"Import-Export is a plugin that allows you to import and export data from and to a CSV file.",source:"@site/docs/tutorial/05-Plugins/08-import-export.md",sourceDirName:"tutorial/05-Plugins",slug:"/tutorial/Plugins/import-export",permalink:"/docs/tutorial/Plugins/import-export",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Email password reset",permalink:"/docs/tutorial/Plugins/email-password-reset"},next:{title:"Plugin development guide",permalink:"/docs/tutorial/Advanced/plugin-development"}},a={},p=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2}];function d(t){const e={code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h1,{id:"import-export",children:"Import-Export"}),"\n",(0,o.jsx)(e.p,{children:"Import-Export is a plugin that allows you to import and export data from and to a CSV file."}),"\n",(0,o.jsx)(e.p,{children:"This plugin is mostly useful for next use cases:"}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsx)(e.li,{children:"Move data from one environment to another (e.g. from development to production)"}),"\n",(0,o.jsx)(e.li,{children:"Export data for various purposes (e.g. backup, analysis)"}),"\n"]}),"\n",(0,o.jsx)(e.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsx)(e.p,{children:"To install the plugin:"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-bash",children:"npm install @adminforth/import-export\n"})}),"\n",(0,o.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(e.p,{children:["To use the plugin, you need to import it and call the ",(0,o.jsx)(e.code,{children:"importExport"})," function:"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",children:"import importExport from '@adminforth/import-export';\n"})}),"\n",(0,o.jsxs)(e.p,{children:["Add plugin instantiation to the ",(0,o.jsx)(e.code,{children:"plugins"})," array of resource where you want to use it:"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",children:"\nnew AdminForth({\n ...\n resources: [\n {\n resourceId: 'aparts',\n plugins: [\n ...\n new importExport({}),\n ],\n },\n ],\n});\n"})})]})}function u(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>l});var o=n(6540);const r={},i=o.createContext(r);function s(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function l(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/62fb5867.fd69f478.js b/assets/js/62fb5867.fd69f478.js new file mode 100644 index 000000000..995a08270 --- /dev/null +++ b/assets/js/62fb5867.fd69f478.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[2133],{796:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var o=e(4848),r=e(8453);const i={},s="Import-Export",a={id:"tutorial/Plugins/import-export",title:"Import-Export",description:"Import-Export is a plugin that allows you to import and export data from and to a CSV file.",source:"@site/docs/tutorial/05-Plugins/08-import-export.md",sourceDirName:"tutorial/05-Plugins",slug:"/tutorial/Plugins/import-export",permalink:"/docs/tutorial/Plugins/import-export",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Email password reset",permalink:"/docs/tutorial/Plugins/email-password-reset"},next:{title:"Open Signup",permalink:"/docs/tutorial/Plugins/open-signup"}},l={},p=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2}];function u(t){const n={code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"import-export",children:"Import-Export"}),"\n",(0,o.jsx)(n.p,{children:"Import-Export is a plugin that allows you to import and export data from and to a CSV file."}),"\n",(0,o.jsx)(n.p,{children:"This plugin is mostly useful for next use cases:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Move data from one environment to another (e.g. from development to production)"}),"\n",(0,o.jsx)(n.li,{children:"Export data for various purposes (e.g. backup, analysis)"}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,o.jsx)(n.p,{children:"To install the plugin:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm install @adminforth/import-export\n"})}),"\n",(0,o.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(n.p,{children:["To use the plugin, you need to import it and call the ",(0,o.jsx)(n.code,{children:"importExport"})," function:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"import importExport from '@adminforth/import-export';\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Add plugin instantiation to the ",(0,o.jsx)(n.code,{children:"plugins"})," array of resource where you want to use it:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"\nnew AdminForth({\n ...\n resources: [\n {\n resourceId: 'aparts',\n plugins: [\n ...\n new importExport({}),\n ],\n },\n ],\n});\n"})})]})}function c(t={}){const{wrapper:n}={...(0,r.R)(),...t.components};return n?(0,o.jsx)(n,{...t,children:(0,o.jsx)(u,{...t})}):u(t)}},8453:(t,n,e)=>{e.d(n,{R:()=>s,x:()=>a});var o=e(6540);const r={},i=o.createContext(r);function s(t){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function a(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),o.createElement(i.Provider,{value:n},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/7b54dab9.aaba9e13.js b/assets/js/7b54dab9.aaba9e13.js deleted file mode 100644 index fd4c4e6b2..000000000 --- a/assets/js/7b54dab9.aaba9e13.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[3093],{4615:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>t,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var l=i(4848),o=i(8453);const s={},r="AdminForthResourceColumnCommon",d={id:"api/types/Common/type-aliases/AdminForthResourceColumnCommon",title:"AdminForthResourceColumnCommon",description:"AdminForthResourceColumnCommon: object",source:"@site/docs/api/types/Common/type-aliases/AdminForthResourceColumnCommon.md",sourceDirName:"api/types/Common/type-aliases",slug:"/api/types/Common/type-aliases/AdminForthResourceColumnCommon",permalink:"/docs/api/types/Common/type-aliases/AdminForthResourceColumnCommon",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"AdminForthComponentDeclaration",permalink:"/docs/api/types/Common/type-aliases/AdminForthComponentDeclaration"},next:{title:"AllowedActionsResolved",permalink:"/docs/api/types/Common/type-aliases/AllowedActionsResolved"}},t={},c=[{value:"Type declaration",id:"type-declaration",level:2},{value:"_underlineType?",id:"_underlinetype",level:3},{value:"allowMinMaxQuery?",id:"allowminmaxquery",level:3},{value:"backendOnly?",id:"backendonly",level:3},{value:"components?",id:"components",level:3},{value:"editingNote?",id:"editingnote",level:3},{value:"enforceLowerCase?",id:"enforcelowercase",level:3},{value:"enum?",id:"enum",level:3},{value:"extra?",id:"extra",level:3},{value:"extra.jsonCollapsedLevel?",id:"extrajsoncollapsedlevel",level:3},{value:"fillOnCreate?",id:"filloncreate",level:3},{value:"foreignResource?",id:"foreignresource",level:3},{value:"isUnique?",id:"isunique",level:3},{value:"label?",id:"label",level:3},{value:"masked?",id:"masked",level:3},{value:"max?",id:"max",level:3},{value:"maxLength?",id:"maxlength",level:3},{value:"maxValue?",id:"maxvalue",level:3},{value:"min?",id:"min",level:3},{value:"minLength?",id:"minlength",level:3},{value:"minValue?",id:"minvalue",level:3},{value:"name",id:"name",level:3},{value:"primaryKey?",id:"primarykey",level:3},{value:"required?",id:"required",level:3},{value:"showIn?",id:"showin",level:3},{value:"sortable?",id:"sortable",level:3},{value:"type?",id:"type",level:3},{value:"validation?",id:"validation",level:3},{value:"virtual?",id:"virtual",level:3}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h1,{id:"adminforthresourcecolumncommon",children:"AdminForthResourceColumnCommon"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"AdminForthResourceColumnCommon"}),": ",(0,l.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Column describes one field in the table or collection in database."}),"\n",(0,l.jsx)(n.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,l.jsx)(n.h3,{id:"_underlinetype",children:"_underlineType?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"_underlineType"}),": ",(0,l.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Internal type which indicates original type of column in database."}),"\n",(0,l.jsx)(n.h3,{id:"allowminmaxquery",children:"allowMinMaxQuery?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"allowMinMaxQuery"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether AdminForth will show this field in list view."}),"\n",(0,l.jsx)(n.h3,{id:"backendonly",children:"backendOnly?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"backendOnly"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"if true field will !not be passed to UI under no circumstances, but will be presented in hooks"}),"\n",(0,l.jsx)(n.h3,{id:"components",children:"components?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"components"}),": ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/interfaces/AdminForthFieldComponents",children:(0,l.jsx)(n.code,{children:"AdminForthFieldComponents"})})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Custom components which will be used to render this field in the admin panel."}),"\n",(0,l.jsx)(n.h3,{id:"editingnote",children:"editingNote?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"editingNote"}),": ",(0,l.jsx)(n.code,{children:"string"})," | ",(0,l.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether AdminForth will show editing note near the field in edit/create form."}),"\n",(0,l.jsx)(n.h3,{id:"enforcelowercase",children:"enforceLowerCase?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"enforceLowerCase"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Will automatically convert any capital letters to lowercase in input during editing"}),"\n",(0,l.jsx)(n.h3,{id:"enum",children:"enum?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"enum"}),": ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/interfaces/AdminForthColumnEnumItem",children:(0,l.jsx)(n.code,{children:"AdminForthColumnEnumItem"})}),"[]"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Enum of possible values for this field."}),"\n",(0,l.jsx)(n.h3,{id:"extra",children:"extra?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"extra"}),": ",(0,l.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"An optional configuration object for extra settings."}),"\n",(0,l.jsx)(n.h3,{id:"extrajsoncollapsedlevel",children:"extra.jsonCollapsedLevel?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"jsonCollapsedLevel"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["How many levels of JSON should be collapsed.\n",(0,l.jsx)(n.code,{children:"0"})," means - root level will be already collapsed e.g. ",(0,l.jsx)(n.code,{children:"{a:1}"})," will show ",(0,l.jsx)(n.code,{children:"{...}"})," where ",(0,l.jsx)(n.code,{children:"'...'"})," is clickable\n",(0,l.jsx)(n.code,{children:"1"})," means - root level will be shown, but next sub-level will be collapsed e.g. ",(0,l.jsx)(n.code,{children:"{a: {b: 1}}"})," will show ",(0,l.jsx)(n.code,{children:"{a: ...}"})," where ",(0,l.jsx)(n.code,{children:"'...'"})," is clickable"]}),"\n",(0,l.jsx)(n.p,{children:"Default is 1."}),"\n",(0,l.jsx)(n.h3,{id:"filloncreate",children:"fillOnCreate?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"fillOnCreate"}),": ",(0,l.jsx)(n.code,{children:"Function"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether AdminForth will show this field in show view."}),"\n",(0,l.jsx)(n.h3,{id:"foreignresource",children:"foreignResource?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"foreignResource"}),": ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/interfaces/AdminForthForeignResourceCommon",children:(0,l.jsx)(n.code,{children:"AdminForthForeignResourceCommon"})})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Foreign resource which has pk column with values same that written in this column."}),"\n",(0,l.jsx)(n.h3,{id:"isunique",children:"isUnique?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"isUnique"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether AdminForth will request user to enter unique value during creating or editing record.\nThis option causes AdminForth to make a request to database to check if value is unique.\n(Constraints are not used, so for large-tables performance make sure you have unique index in database if you set this option to true)"}),"\n",(0,l.jsx)(n.h3,{id:"label",children:"label?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"label"}),": ",(0,l.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"How column can be labled in the admin panel.\nUse it for renaming columns. Defaulted to column name with Uppercased first letter."}),"\n",(0,l.jsx)(n.h3,{id:"masked",children:"masked?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"masked"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Masked fields will be displayed as ",(0,l.jsx)(n.code,{children:"*****"})," on Edit and Create pages."]}),"\n",(0,l.jsx)(n.h3,{id:"max",children:"max?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"max"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"maxlength",children:"maxLength?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"maxLength"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Maximum length of string that can be entered in this field."}),"\n",(0,l.jsx)(n.h3,{id:"maxvalue",children:"maxValue?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"maxValue"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Maximum value that can be entered in this field."}),"\n",(0,l.jsx)(n.h3,{id:"min",children:"min?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"min"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"minlength",children:"minLength?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"minLength"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Minimum length of string that can be entered in this field."}),"\n",(0,l.jsx)(n.h3,{id:"minvalue",children:"minValue?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"minValue"}),": ",(0,l.jsx)(n.code,{children:"number"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Minimum value that can be entered in this field."}),"\n",(0,l.jsx)(n.h3,{id:"name",children:"name"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"name"}),": ",(0,l.jsx)(n.code,{children:"string"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Column name in database."}),"\n",(0,l.jsx)(n.h3,{id:"primarykey",children:"primaryKey?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"primaryKey"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether to use this column as record identifier.\nOnly one column can be primary key.\nAdminForth tries to guess primary key automatically first."}),"\n",(0,l.jsx)(n.h3,{id:"required",children:"required?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"required"}),": ",(0,l.jsx)(n.code,{children:"boolean"})," | ",(0,l.jsx)(n.code,{children:"object"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Whether AdminForth will require this field to be filled in create and edit forms.\nCan be set to boolean or object with create and edit properties.\nIf boolean, it will be used for both create and edit forms."}),"\n",(0,l.jsx)(n.h3,{id:"showin",children:"showIn?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"showIn"}),": (",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/enumerations/AdminForthResourcePages",children:(0,l.jsx)(n.code,{children:"AdminForthResourcePages"})})," | keyof ",(0,l.jsx)(n.em,{children:"typeof"})," ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/enumerations/AdminForthResourcePages",children:(0,l.jsx)(n.code,{children:"AdminForthResourcePages"})}),")[]"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"On which AdminForth pages this field will be shown. By default all.\nExample: if you want to show field only in create and edit pages, set it to"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-ts",children:"showIn: [AdminForthResourcePages.CREATE, AdminForthResourcePages.EDIT]\n"})}),"\n",(0,l.jsx)(n.h3,{id:"sortable",children:"sortable?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"sortable"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"type",children:"type?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"type"}),": ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/enumerations/AdminForthDataTypes",children:(0,l.jsx)(n.code,{children:"AdminForthDataTypes"})})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Type of data in column.\nAdminForth will use this information to render proper input fields in the admin panel.\nAdminForth tries to guess type of data from database column type automatically for typed databases like SQL-based.\nHowever you can explicitly set it to any value. E.g. set AdminForthDataTypes.DATETIME for your string column in SQLite, which stores ISO date strings."}),"\n",(0,l.jsx)(n.h3,{id:"validation",children:"validation?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"validation"}),": ",(0,l.jsx)(n.a,{href:"/docs/api/types/Common/type-aliases/ValidationObject",children:(0,l.jsx)(n.code,{children:"ValidationObject"})}),"[]"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Runtime validation Regexp rules for this field."}),"\n",(0,l.jsx)(n.h3,{id:"virtual",children:"virtual?"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"optional"})," ",(0,l.jsx)(n.strong,{children:"virtual"}),": ",(0,l.jsx)(n.code,{children:"boolean"})]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"Allows to make the field which does not exist in database table.\nExamples: add custom show field with user country flag:"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-ts",children:"{\n label: 'Country Flag',\n type: AdminForthDataTypes.STRING,\n virtual: true,\n showIn: [AdminForthResourcePages.SHOW, AdminForthResourcePages.LIST],\n components: {\n show: '@@/CountryFlag.vue',\n list: '@@/CountryFlag.vue',\n },\n}\n"})}),"\n",(0,l.jsxs)(n.p,{children:["This field will be displayed in show and list views with custom component ",(0,l.jsx)(n.code,{children:"CountryFlag.vue"}),". CountryFlag.vue should be placed in custom folder and can be next:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-html",children:"\n\n - - + +
Skip to main content

Build AI-Assisted blog with AdminForth and Nuxt in 20 minutes

· 19 min read
Ivan Borshcho
Maintainer of AdminForth

Many developers today are using copilots to write code faster and relax their minds from a routine tasks.

diff --git a/blog/archive/index.html b/blog/archive/index.html index 252f5a384..cde72377c 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -15,8 +15,8 @@ - - + + diff --git a/blog/chatgpt-plugin/index.html b/blog/chatgpt-plugin/index.html index 39b234171..f774869c3 100644 --- a/blog/chatgpt-plugin/index.html +++ b/blog/chatgpt-plugin/index.html @@ -15,8 +15,8 @@ - - + +

Chat-GPT plugin to co-write texts and strings

· 4 min read
Ivan Borshcho
Maintainer of AdminForth

Couple of days ago we released a plugin which allows you to co-write texts and strings with the AI.

diff --git a/blog/compose-ec2-deployment-github-actions/index.html b/blog/compose-ec2-deployment-github-actions/index.html index b1578afdd..c131f8b2c 100644 --- a/blog/compose-ec2-deployment-github-actions/index.html +++ b/blog/compose-ec2-deployment-github-actions/index.html @@ -15,8 +15,8 @@ - - + +

Deploy AdminForth to EC2 with terraform on CI

· 8 min read
Ivan Borshcho
Maintainer of AdminForth

Here is more advanced snippet to deploy AdminForth to Terraform.

diff --git a/blog/compose-ec2-deployment/index.html b/blog/compose-ec2-deployment/index.html index 82342d69d..d837afcd3 100644 --- a/blog/compose-ec2-deployment/index.html +++ b/blog/compose-ec2-deployment/index.html @@ -15,8 +15,8 @@ - - + +

Deploy AdminForth to EC2 with terraform (without CI)

· 4 min read
Ivan Borshcho
Maintainer of AdminForth

Here is a row snippet to deploy AdminForth to Terraform.

diff --git a/blog/index.html b/blog/index.html index 8fe177fe3..28b66c289 100644 --- a/blog/index.html +++ b/blog/index.html @@ -15,8 +15,8 @@ - - + +

Deploy AdminForth to EC2 with terraform on CI

· 8 min read
Ivan Borshcho
Maintainer of AdminForth

Here is more advanced snippet to deploy AdminForth to Terraform.

diff --git a/blog/tags/aws/index.html b/blog/tags/aws/index.html index caec59251..e1c29fd4d 100644 --- a/blog/tags/aws/index.html +++ b/blog/tags/aws/index.html @@ -15,8 +15,8 @@ - - + +

2 posts tagged with "AWS"

Amazon Web Services (AWS) is a cloud computing platform that provides a wide range of services for building and deploying applications.

View All Tags

Deploy AdminForth to EC2 with terraform on CI

· 8 min read
Ivan Borshcho
Maintainer of AdminForth

Here is more advanced snippet to deploy AdminForth to Terraform.

diff --git a/blog/tags/chatgpt/index.html b/blog/tags/chatgpt/index.html index 8d272178f..cb0fb3970 100644 --- a/blog/tags/chatgpt/index.html +++ b/blog/tags/chatgpt/index.html @@ -15,8 +15,8 @@ - - + +

2 posts tagged with "ChatGPT"

ChatGPT is a conversational AI model that can generate human-like responses to text inputs.

View All Tags

Build AI-Assisted blog with AdminForth and Nuxt in 20 minutes

· 19 min read
Ivan Borshcho
Maintainer of AdminForth

Many developers today are using copilots to write code faster and relax their minds from a routine tasks.

diff --git a/blog/tags/github-actions/index.html b/blog/tags/github-actions/index.html index f31c8a7cd..7bf945770 100644 --- a/blog/tags/github-actions/index.html +++ b/blog/tags/github-actions/index.html @@ -15,8 +15,8 @@ - - + +

One post tagged with "GitHub Actions"

GitHub Actions is a continuous integration and continuous deployment (CI/CD) service provided by GitHub that allows you to automate your software development workflows.

View All Tags

Deploy AdminForth to EC2 with terraform on CI

· 8 min read
Ivan Borshcho
Maintainer of AdminForth

Here is more advanced snippet to deploy AdminForth to Terraform.

diff --git a/blog/tags/index.html b/blog/tags/index.html index d3550cfa0..c915a590d 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -15,8 +15,8 @@ - - + + diff --git a/blog/tags/nuxt/index.html b/blog/tags/nuxt/index.html index 884fec432..2ce88b587 100644 --- a/blog/tags/nuxt/index.html +++ b/blog/tags/nuxt/index.html @@ -15,8 +15,8 @@ - - + +

One post tagged with "Nuxt.js"

Nuxt.js is a free and open-source web application framework based on Vue.js, Node.js, Webpack, and Babel.js.

View All Tags

Build AI-Assisted blog with AdminForth and Nuxt in 20 minutes

· 19 min read
Ivan Borshcho
Maintainer of AdminForth

Many developers today are using copilots to write code faster and relax their minds from a routine tasks.

diff --git a/blog/tags/plugin/index.html b/blog/tags/plugin/index.html index cfafa42d8..69af13b39 100644 --- a/blog/tags/plugin/index.html +++ b/blog/tags/plugin/index.html @@ -15,8 +15,8 @@ - - + +

One post tagged with "Plugin"

Plugins are extensions that add new features or functionality to a AdminForth.

View All Tags

Chat-GPT plugin to co-write texts and strings

· 4 min read
Ivan Borshcho
Maintainer of AdminForth

Couple of days ago we released a plugin which allows you to co-write texts and strings with the AI.

diff --git a/blog/tags/terraform/index.html b/blog/tags/terraform/index.html index 07b575b94..ee34bfd30 100644 --- a/blog/tags/terraform/index.html +++ b/blog/tags/terraform/index.html @@ -15,8 +15,8 @@ - - + +

2 posts tagged with "Terraform"

Terraform is an open-source infrastructure as code software tool created by HashiCorp that enables users to define and provision data center infrastructure using a declarative configuration language.

View All Tags

Deploy AdminForth to EC2 with terraform on CI

· 8 min read
Ivan Borshcho
Maintainer of AdminForth

Here is more advanced snippet to deploy AdminForth to Terraform.

diff --git a/docs/api/index.html b/docs/api/index.html index 4f57648dc..99d766198 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -15,11 +15,11 @@ - - + + -

TypeDoc API

+
diff --git a/docs/api/types/Back/classes/Filters/index.html b/docs/api/types/Back/classes/Filters/index.html index fc8f973f7..9d710b050 100644 --- a/docs/api/types/Back/classes/Filters/index.html +++ b/docs/api/types/Back/classes/Filters/index.html @@ -15,11 +15,11 @@ - - + + -

Filters

+

Filters

Constructors

new Filters()

diff --git a/docs/api/types/Back/classes/Sorts/index.html b/docs/api/types/Back/classes/Sorts/index.html index d14dd978c..f2cb5d756 100644 --- a/docs/api/types/Back/classes/Sorts/index.html +++ b/docs/api/types/Back/classes/Sorts/index.html @@ -15,11 +15,11 @@ - - + + -

Sorts

+

Sorts

Constructors

new Sorts()

diff --git a/docs/api/types/Back/enumerations/AdminForthMenuTypes/index.html b/docs/api/types/Back/enumerations/AdminForthMenuTypes/index.html index 7faac616f..000b1789c 100644 --- a/docs/api/types/Back/enumerations/AdminForthMenuTypes/index.html +++ b/docs/api/types/Back/enumerations/AdminForthMenuTypes/index.html @@ -15,11 +15,11 @@ - - + + -

AdminForthMenuTypes

+

AdminForthMenuTypes

Enumeration Members

Enumeration MemberValueDescription
divider"divider"DIVIDER is a divider between menu items.
gap"gap"GAP ads some space between menu items.
group"group"GROUP is a group of menu items. Respects label, icon and children properties in AdminForthConfigMenuItem use @AdminForthMenuTypes.open to set if group is open by default
heading"heading"HEADING is just a label in the menu. Respect label and icon property in AdminForthConfigMenuItem
page"page"

PAGE is a link to a custom page. Respects label, icon, path, component, homepage, isStaticRoute, properties in AdminForthConfigMenuItem

Example:

{

type: AdminForthMenuTypes.PAGE,

label: 'Custom Page',

icon: 'home',

path: '/dash',

component: '@@/Dashboard.vue',

homepage: true,

}

resource"resource"RESOURCE is a link to a resource. Respects label, icon, resourceId, homepage, isStaticRoute properties in AdminForthConfigMenuItem
diff --git a/docs/api/types/Back/index.html b/docs/api/types/Back/index.html index fcd4c4391..d376e3089 100644 --- a/docs/api/types/Back/index.html +++ b/docs/api/types/Back/index.html @@ -15,18 +15,18 @@ - - + + -

types/Back

+

types/Back

Index

Enumerations

EnumerationDescription
AdminForthMenuTypes-

Classes

ClassDescription
Filters-
Sorts-

Interfaces

-
InterfaceDescription
AdminForthBulkAction-
AdminForthConfigMain configuration object for AdminForth
AdminForthConfigMenuItemMenu item which displayed in the left sidebar of the admin panel.
AdminForthForeignResource-
AdminForthResourceResource describes one table or collection in database. AdminForth generates set of pages for 'list', 'show', 'edit', 'create', 'filter' operations for each resource.
AdminForthResourceColumnColumn describes one field in the table or collection in database.
IAdminForth-
IAdminForthAuth-
IAdminForthDataSourceConnector-
IAdminForthDataSourceConnectorBaseInterface that exposes methods to interact with AdminForth in standard way
IAdminForthDataSourceConnectorConstructor-
IAdminForthFilter-
IAdminForthHttpResponse-
IAdminForthPlugin-
IAdminForthSort-
ICodeInjector-
IConfigValidator-
IExpressHttpServerImplement this interface to create custom HTTP server adapter for AdminForth.
IHttpServerImplement this interface to create custom HTTP server adapter for AdminForth.
IOperationalResource-
+
InterfaceDescription
AdminForthBulkAction-
AdminForthConfigMain configuration object for AdminForth
AdminForthConfigMenuItemMenu item which displayed in the left sidebar of the admin panel.
AdminForthForeignResource-
AdminForthResourceResource describes one table or collection in database. AdminForth generates set of pages for 'list', 'show', 'edit', 'create', 'filter' operations for each resource.
AdminForthResourceColumnColumn describes one field in the table or collection in database.
IAdminForth-
IAdminForthAuth-
IAdminForthDataSourceConnector-
IAdminForthDataSourceConnectorBaseInterface that exposes methods to interact with AdminForth in standard way
IAdminForthDataSourceConnectorConstructor-
IAdminForthFilter-
IAdminForthHttpResponse-
IAdminForthPlugin-
IAdminForthRestAPI-
IAdminForthSort-
ICodeInjector-
IConfigValidator-
IExpressHttpServerImplement this interface to create custom HTTP server adapter for AdminForth.
IHttpServerImplement this interface to create custom HTTP server adapter for AdminForth.
IOperationalResource-

Type Aliases

Type aliasDescription
AdminForthDataSourceData source describes database connection which will be used to fetch data for resources. Each resource should use one data source.
AfterDataSourceResponseFunctionModify response to change how data is returned after fetching from database. Return ok: false and error: string to stop execution and show error message to user. Return ok: true to continue execution.
AfterSaveFunctionModify record to change how data is saved to database. Return ok: false and error: string to stop execution and show error message to user. Return ok: true to continue execution.
AllowedActionValueDefines whether user has access to an action, can statically be Boolean or function which returns Boolean or string with error message
AllowedActionsObject which describes allowed actions for user.
BeforeDataSourceRequestFunctionModify query to change how data is fetched from database. Return ok: false and error: string to stop execution and show error message to user. Return ok: true to continue execution.
BeforeLoginConfirmationFunctionAllow to get user data before login confirmation, will triger when user try to login.
BeforeSaveFunctionModify record to change how data is saved to database. Return ok: false and error: string to stop execution and show error message to user. Return ok: true to continue execution.
FDataFilter-
FDataSort-
ResourceOptionsGeneral options for resource.
diff --git a/docs/api/types/Back/interfaces/AdminForthBulkAction/index.html b/docs/api/types/Back/interfaces/AdminForthBulkAction/index.html index 40f79bd99..575639f6a 100644 --- a/docs/api/types/Back/interfaces/AdminForthBulkAction/index.html +++ b/docs/api/types/Back/interfaces/AdminForthBulkAction/index.html @@ -15,11 +15,11 @@ - - + + -

AdminForthBulkAction

+

AdminForthBulkAction

Extends

Will automatically convert any capital letters to lowercase in input during editing

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.enforceLowerCase


enum?

@@ -79,7 +87,7 @@

enum?AdminForthColumnEnumItem[]

Enum of possible values for this field.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.enum


extra?

@@ -95,7 +103,7 @@

jsonColla 0 means - root level will be already collapsed e.g. {a:1} will show {...} where '...' is clickable 1 means - root level will be shown, but next sub-level will be collapsed e.g. {a: {b: 1}} will show {a: ...} where '...' is clickable

Default is 1.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.extra


fillOnCreate?

@@ -103,7 +111,7 @@

fillOnCreate?optional fillOnCreate: Function

Whether AdminForth will show this field in show view.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.fillOnCreate


foreignResource?

@@ -120,7 +128,7 @@

isUnique?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.isUnique


label?

@@ -129,7 +137,7 @@

label?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.label


masked?

@@ -137,14 +145,14 @@

masked?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.masked


max?

optional max: number

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.max


maxLength?

@@ -152,7 +160,7 @@

maxLength?optional maxLength: number

Maximum length of string that can be entered in this field.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.maxLength


maxValue?

@@ -160,14 +168,14 @@

maxValue?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.maxValue


min?

optional min: number

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.min


minLength?

@@ -175,7 +183,7 @@

minLength?optional minLength: number

Minimum length of string that can be entered in this field.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.minLength


minValue?

@@ -183,7 +191,7 @@

minValue?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.minValue


name

@@ -191,7 +199,7 @@

nameInherited from

+

Inherited from

AdminForthResourceColumnCommon.name


primaryKey?

@@ -201,7 +209,7 @@

primaryKey?Whether to use this column as record identifier. Only one column can be primary key. AdminForth tries to guess primary key automatically first.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.primaryKey


required?

@@ -211,7 +219,7 @@

required?Inherited from

+

Inherited from

AdminForthResourceColumnCommon.required


showIn?

@@ -221,14 +229,14 @@

showIn?
showIn: [AdminForthResourcePages.CREATE, AdminForthResourcePages.EDIT]

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.showIn


sortable?

optional sortable: boolean

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.sortable


type?

@@ -239,7 +247,7 @@

type?

+

Inherited from

AdminForthResourceColumnCommon.type


validation?

@@ -247,7 +255,7 @@

validation?optional validation: ValidationObject[]

Runtime validation Regexp rules for this field.

-

Inherited from

+

Inherited from

AdminForthResourceColumnCommon.validation


virtual?

@@ -259,7 +267,7 @@

virtual?
{
label: 'Country Flag',
type: AdminForthDataTypes.STRING,
virtual: true,
showIn: [AdminForthResourcePages.SHOW, AdminForthResourcePages.LIST],
components: {
show: '@@/CountryFlag.vue',
list: '@@/CountryFlag.vue',
},
}

This field will be displayed in show and list views with custom component CountryFlag.vue. CountryFlag.vue should be placed in custom folder and can be next:

<template>
{{ getFlagEmojiFromIso(record.ipCountry) }}
</template>

<script setup>
const props = defineProps(['record']);

function getFlagEmojiFromIso(iso) {
return iso.toUpperCase().replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397));
}
</script>
-

Inherited from

-

AdminForthResourceColumnCommon.virtual

+

Inherited from

+

AdminForthResourceColumnCommon.virtual

\ No newline at end of file diff --git a/docs/api/types/Back/interfaces/IAdminForth/index.html b/docs/api/types/Back/interfaces/IAdminForth/index.html index 8a71361e9..65af4f920 100644 --- a/docs/api/types/Back/interfaces/IAdminForth/index.html +++ b/docs/api/types/Back/interfaces/IAdminForth/index.html @@ -15,11 +15,11 @@ - - + + -

IAdminForth

+
+
\ No newline at end of file diff --git a/docs/api/types/Back/interfaces/IAdminForthAuth/index.html b/docs/api/types/Back/interfaces/IAdminForthAuth/index.html index 69ea59001..47d40cd6b 100644 --- a/docs/api/types/Back/interfaces/IAdminForthAuth/index.html +++ b/docs/api/types/Back/interfaces/IAdminForthAuth/index.html @@ -15,11 +15,11 @@ - - + + -

IAdminForthAuth

+

IAdminForthAuth

Methods

issueJWT()

diff --git a/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector/index.html b/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector/index.html index 771902616..830549785 100644 --- a/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector/index.html +++ b/docs/api/types/Back/interfaces/IAdminForthDataSourceConnector/index.html @@ -15,11 +15,11 @@ - - + + -

IAdminForthDataSourceConnector

+

IAdminForthDataSourceConnector

Extended by