@dashadmin/dash-admin 1.3.72 → 1.3.74-srcfree.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/tenant/TenancyPlan.js +307 -0
- package/dist/systemResources.js +18 -2
- package/package.json +25 -22
- package/src/AppAsyncWrapper.tsx +0 -42
- package/src/AppWrapper.tsx +0 -45
- package/src/DASHAdmin.tsx +0 -502
- package/src/DASHAdmin.tsx.old +0 -456
- package/src/RoutingWrapper.tsx +0 -143
- package/src/classes/DASHStorageClass.tsx +0 -8
- package/src/components/Input/RichTextField.tsx +0 -27
- package/src/components/Redirect.tsx +0 -46
- package/src/components/avatar/Avatar.tsx +0 -71
- package/src/components/avatar/SingleImageUploader.tsx +0 -107
- package/src/components/currency/Format.tsx +0 -79
- package/src/components/custom/Redirect.tsx +0 -23
- package/src/components/error/Error.tsx +0 -168
- package/src/components/geocoding/GeocodingField.tsx +0 -167
- package/src/components/i18n/BridgedLocalesMenuButton.tsx +0 -160
- package/src/components/i18n/LangSwitcher.tsx +0 -204
- package/src/components/loader/GlobalLoader.tsx +0 -49
- package/src/components/logs/LogFile.tsx +0 -88
- package/src/components/logs/LogFileById.tsx +0 -68
- package/src/components/logs/LogViewer.tsx +0 -43
- package/src/components/menu/AppMenu.tsx +0 -22
- package/src/components/menu/CustomMenuItemLink.tsx +0 -61
- package/src/components/menu/DarkToggleMode.tsx +0 -65
- package/src/components/menu/LanguageToggleMode.tsx +0 -120
- package/src/components/misc/CustomImageInput.tsx +0 -62
- package/src/components/misc/DASHGlobalErrorHandler.tsx +0 -194
- package/src/components/misc/DarkModeSwitcher.tsx +0 -112
- package/src/components/misc/HorizontalScroller.tsx +0 -225
- package/src/components/misc/LanguageSwitcher.tsx +0 -199
- package/src/components/misc/MUIHtmlToolTip.tsx +0 -15
- package/src/components/misc/MuiSimpleJsonTable.tsx +0 -279
- package/src/components/misc/MultiLevelTable.tsx +0 -229
- package/src/components/misc/NoResults.tsx +0 -28
- package/src/components/misc/PDFViewer.tsx +0 -85
- package/src/components/navigation/Breadcrumbs.tsx +0 -220
- package/src/components/navigation/BreadcrumbsManager.tsx +0 -310
- package/src/components/navigation/index.tsx +0 -5
- package/src/components/panel/Error.tsx +0 -168
- package/src/components/permission/AvailablePermissionsContext.tsx +0 -173
- package/src/components/permission/PermissionsSelector.tsx +0 -834
- package/src/components/permission/PermissionsSelectorList.tsx +0 -473
- package/src/components/permission/tsx +0 -0
- package/src/components/racustombuttons/CustomRAButton.tsx +0 -87
- package/src/components/racustombuttons/QuickButton.tsx +0 -117
- package/src/components/racustombuttons/QuickEditButton.tsx +0 -115
- package/src/components/racustombuttons/QuickIconButton.tsx +0 -122
- package/src/components/scrollbar/Scrollbar.tsx +0 -31
- package/src/components/selects/MultiSelect.tsx +0 -53
- package/src/components/selects/RASearchableSelect.tsx +0 -282
- package/src/components/selects/RASearchableSelectChips.tsx +0 -308
- package/src/components/selects/SearchableSelect.tsx +0 -139
- package/src/components/serviceAccount/ApiKeyRevealDialog.tsx +0 -129
- package/src/components/serviceAccount/ServiceAccountStatusSwitch.tsx +0 -99
- package/src/components/subscription/BillingCycleSelectInput.tsx +0 -68
- package/src/components/subscription/PlanAddonsSettings.tsx +0 -563
- package/src/components/subscription/PlanAuditLog.tsx +0 -453
- package/src/components/subscription/PlanFeaturesSettings.tsx +0 -243
- package/src/components/subscription/PlanLimitsSettings.tsx +0 -230
- package/src/components/subscription/PlanMetadataSettings.tsx +0 -306
- package/src/components/subscription/PlanPricesSettings.tsx +0 -307
- package/src/components/subscription/index.ts +0 -7
- package/src/components/svgelements/SvgLoading.tsx +0 -229
- package/src/components/svgelements/SvgLogo.tsx +0 -53
- package/src/components/svgelements/SvgLogoMin.tsx +0 -64
- package/src/components/svgelements/SvgShipping.tsx +0 -673
- package/src/components/tenancy/GlobalTenantWrapper.tsx +0 -84
- package/src/components/tenancy/TenantSwitcher.tsx +0 -514
- package/src/components/tenant/AvailablePermissionsContext.tsx +0 -0
- package/src/components/tenant/SettingsSections.tsx +0 -151
- package/src/components/tenant/TenancySettings.tsx +0 -122
- package/src/components/tenant/TenantAttributes.tsx +0 -153
- package/src/components/tenant/TenantAttributesContext.tsx +0 -163
- package/src/components/tenant/TenantSelector.tsx +0 -142
- package/src/components/tenant/TenantSettings.tsx +0 -184
- package/src/components/tenant/TenantSettingsContext.tsx +0 -165
- package/src/components/tenant/TenantTheme.tsx +0 -172
- package/src/components/user/AvatarComponent.tsx +0 -317
- package/src/components/user/TenantAvatarComponent.tsx +0 -99
- package/src/components/user/UserPreferences.tsx +0 -677
- package/src/config/ACTIONS.tsx +0 -26
- package/src/config/ConstantsService.tsx +0 -44
- package/src/config/DASHAdminSystemConstants.tsx +0 -183
- package/src/config/PARSERS.tsx +0 -9
- package/src/contexts/DashQueryClientContext.tsx +0 -113
- package/src/contexts/DashResourceContext.tsx +0 -34
- package/src/contexts/I18nBridgeContext.tsx +0 -156
- package/src/contexts/I18nBridgeSetter.tsx +0 -39
- package/src/contexts/I18nReduxSync.tsx +0 -27
- package/src/contexts/SubscriptionPlanFormatsProvider.tsx +0 -217
- package/src/contexts/SystemRequestsCache.tsx +0 -215
- package/src/contexts/auth/AuthContext.tsx +0 -567
- package/src/contexts/auth/AuthContextLocalStorage.tsx +0 -140
- package/src/contexts/auth/DASHAuthenticationService.tsx +0 -915
- package/src/contexts/auth/WindowContext.tsx +0 -15
- package/src/contexts/auth/index.tsx +0 -3
- package/src/contexts/com/FCMContext.tsx +0 -415
- package/src/contexts/com/LaravelEchoContext.tsx +0 -41
- package/src/contexts/com/LaravelEchoMgr.tsx +0 -155
- package/src/contexts/com/components/DefaultNotificationComponent.tsx +0 -20
- package/src/contexts/com/components/EchoNotificationsCenter.tsx +0 -65
- package/src/contexts/com/components/NotificationAttributesTable.tsx +0 -54
- package/src/contexts/com/components/NotificationRenderer.tsx +0 -42
- package/src/contexts/com/components/NotificationsWidget.tsx +0 -182
- package/src/contexts/com/components/notificationFormats.tsx +0 -50
- package/src/contexts/com/useLaravelEcho.tsx +0 -432
- package/src/contexts/dictionary/DictionaryContext.tsx +0 -94
- package/src/declarations.d.ts +0 -17
- package/src/default-theme/DASHAppProviders.tsx +0 -117
- package/src/default-theme/DashThemeContext.tsx +0 -209
- package/src/default-theme/DashThemeContext.tsx.fast +0 -143
- package/src/default-theme/DashThemeContext.tsx.old +0 -306
- package/src/default-theme/DashThemeHelperProvider.tsx +0 -98
- package/src/default-theme/DomainAppLayout.tsx +0 -166
- package/src/default-theme/DomainHeader.tsx +0 -162
- package/src/default-theme/DomainTheme.tsx +0 -59
- package/src/default-theme/FullLayoutMarkup.tsx +0 -231
- package/src/default-theme/StaticLayout.tsx +0 -47
- package/src/default-theme/index.tsx +0 -11
- package/src/default-theme/menu/AppDashboardGrid.tsx +0 -279
- package/src/default-theme/menu/AppMaterialMenu.tsx +0 -546
- package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +0 -61
- package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +0 -264
- package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +0 -31
- package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +0 -293
- package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +0 -92
- package/src/default-theme/menu/AppMenuComponents/getItem.tsx +0 -17
- package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +0 -41
- package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +0 -90
- package/src/default-theme/menu/AppSidebarMaterial.tsx +0 -339
- package/src/default-theme/menu/SidebarActions.tsx +0 -84
- package/src/default-theme/updateDomCssVariables.tsx +0 -176
- package/src/helpers/checkRole.tsx +0 -66
- package/src/helpers/parseAxiosError.tsx +0 -41
- package/src/hooks/audio/useAudio.tsx +0 -39
- package/src/hooks/axios.tsx +0 -165
- package/src/hooks/data/useDashboardStats.tsx +0 -65
- package/src/hooks/data/usePackageByClientsStats.tsx +0 -44
- package/src/hooks/data/usePackageByCommunesStats.tsx +0 -44
- package/src/hooks/data/usePackageStats.tsx +0 -69
- package/src/hooks/data/usePackageWithdrawDetails.tsx +0 -61
- package/src/hooks/data/useStats.tsx +0 -86
- package/src/hooks/isCurrentPath.tsx +0 -22
- package/src/hooks/notifications/WSMessagesManager.tsx +0 -152
- package/src/hooks/notifications/WSPusherManager.tsx +0 -92
- package/src/hooks/useBreadcrumbs.tsx +0 -329
- package/src/hooks/useClickOutside.tsx +0 -57
- package/src/hooks/useFormPersistance.tsx +0 -150
- package/src/hooks/useGlobalErrorMediator.tsx +0 -43
- package/src/hooks/useGlobalLoaderMgr.tsx +0 -21
- package/src/hooks/useHash.tsx +0 -27
- package/src/hooks/useLocalStorage.tsx +0 -196
- package/src/hooks/usePolyglotTranslation.tsx +0 -62
- package/src/hooks/usePrevious.tsx +0 -9
- package/src/hooks/usePrintSelected.tsx +0 -37
- package/src/hooks/useVirtualHash.tsx +0 -33
- package/src/hooks/window/useWindowSize.tsx +0 -36
- package/src/index.tsx +0 -134
- package/src/interfaces/IAppResourceConfig.tsx +0 -20
- package/src/interfaces/Log.tsx +0 -16
- package/src/interfaces/Tenant.tsx +0 -25
- package/src/interfaces/communication/IActions.tsx +0 -5
- package/src/interfaces/communication/INotification.tsx +0 -21
- package/src/interfaces/communication/IPayload.tsx +0 -3
- package/src/interfaces/communication/IRequestAction.tsx +0 -10
- package/src/interfaces/communication/IRequestPayload.tsx +0 -7
- package/src/interfaces/communication/IResponseAction.tsx +0 -7
- package/src/interfaces/misc/IAny.tsx +0 -3
- package/src/interfaces/misc/IFlashMessage.tsx +0 -10
- package/src/interfaces/navigation/IAppMenu.ts +0 -14
- package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +0 -12
- package/src/interfaces/navigation/IMenuItem.ts +0 -16
- package/src/interfaces/notifications/IModel.tsx +0 -6
- package/src/interfaces/notifications/IModelField.tsx +0 -8
- package/src/interfaces/notifications/IUserNotification.tsx +0 -12
- package/src/interfaces/notifications/IUserNotificationData.tsx +0 -13
- package/src/interfaces/notifications/IUserNotificationPayload.tsx +0 -8
- package/src/interfaces/user/IGetAuth.tsx +0 -92
- package/src/interfaces/user/ITenantSettings.tsx +0 -3
- package/src/interfaces/user/IUser.tsx +0 -60
- package/src/interfaces/user/IUserSettings.tsx +0 -43
- package/src/interfaces.tsx +0 -6
- package/src/layout/AppLayout.tsx +0 -112
- package/src/layout/ApplicationLayout.tsx +0 -197
- package/src/layout/MotionWrapper.original.tsx +0 -236
- package/src/layout/MotionWrapper.tsx +0 -236
- package/src/layout/ResourceMenu.tsx +0 -164
- package/src/layout/ResoureLayout.tsx +0 -105
- package/src/layout/TransitionWrapper.tsx +0 -125
- package/src/pages/ChangePassword.tsx +0 -179
- package/src/pages/DASHLanding.tsx +0 -22
- package/src/pages/DASHLightWeightLogin.tsx +0 -611
- package/src/pages/DASHSimpleLogin.tsx +0 -260
- package/src/pages/Login.tsx +0 -111
- package/src/pages/Profile.tsx +0 -357
- package/src/pages/RecoverPassword.tsx +0 -175
- package/src/pages/SingleImageUploader.tsx +0 -55
- package/src/pages/VerifyAccount.tsx +0 -128
- package/src/providers/authProvider.tsx +0 -217
- package/src/providers/dataProvider.tsx +0 -672
- package/src/providers/i18n/en.ts +0 -646
- package/src/providers/i18n/es.ts +0 -652
- package/src/providers/i18n/languages.tsx +0 -8
- package/src/providers/i18n/mergeTranslations.ts +0 -53
- package/src/providers/i18nProvider.tsx +0 -23
- package/src/react-admin-dash/RADashComponent.tsx +0 -240
- package/src/react-admin-dash/Resource.tsx +0 -77
- package/src/resources/Brand/BrandResource.tsx +0 -130
- package/src/resources/DASHResourceLoader.ts +0 -180
- package/src/resources/Log/LogResource.tsx +0 -73
- package/src/resources/Tenant/ImpersonateTenantResource.tsx +0 -113
- package/src/resources/Trash/TrashTemplate.tsx +0 -180
- package/src/resources/User/components/AvatarUploadField.tsx +0 -57
- package/src/resources/User/components/PasswordFields.tsx +0 -73
- package/src/resources/User/getProfileMenu.ts +0 -57
- package/src/resources/User/profileResource.tsx +0 -51
- package/src/resources/User/userLayout.tsx +0 -62
- package/src/resources/User/userResource.tsx +0 -111
- package/src/resources/User/userSchema.tsx +0 -213
- package/src/resources/User/usersFilters.tsx +0 -21
- package/src/resources.tsx +0 -280
- package/src/schemas/log.tsx +0 -45
- package/src/schemas/notification.tsx +0 -42
- package/src/schemas/permissions.tsx +0 -44
- package/src/schemas/roles.tsx +0 -48
- package/src/schemas/rolesDataGrid.tsx +0 -48
- package/src/schemas/subscription/components/SubscriptionActions.tsx +0 -153
- package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +0 -127
- package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +0 -162
- package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +0 -141
- package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +0 -318
- package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +0 -72
- package/src/schemas/subscription/subscriptionPlanSchema.tsx +0 -185
- package/src/schemas/subscription/subscriptionSchema.tsx +0 -152
- package/src/schemas/subscriptionPlan.ts +0 -422
- package/src/schemas/tenant.tsx +0 -129
- package/src/schemas/tenantUser.tsx +0 -96
- package/src/schemas/tenant_superadmin.tsx +0 -119
- package/src/schemas/user.tsx +0 -26
- package/src/systemResources.old.tsx +0 -928
- package/src/systemResources.tsx +0 -1369
- package/src/templates/ResourceTemplate.tsx +0 -240
- package/src/templates/ResourceTemplate.tsx.memoized_experiment +0 -350
- package/src/templates/ResourceTemplate.tsx.original +0 -396
- package/src/templates/ResourceTemplateCreate.tsx +0 -182
- package/src/templates/ResourceTemplateEdit.tsx +0 -176
- package/src/templates/ResourceTemplateFull.tsx +0 -581
- package/src/templates/ResourceTemplateList.tsx +0 -340
- package/src/templates/ResourceTemplateOld.tsx.bkup +0 -567
- package/src/templates/ResourceTemplateShow.tsx +0 -88
- package/src/templates/TrashTemplate.tsx +0 -179
- package/src/tenantResources.tsx +0 -223
- package/src/test_portal_bubbles.tsx +0 -40
- package/src/theme/AppHeader.tsx +0 -52
- package/src/theme/AppLayoutSetting.tsx +0 -33
- package/src/theme/AppLogo.tsx +0 -13
- package/src/theme/AppSidebar.tsx +0 -12
- package/src/theme/AppSidebarContent.tsx +0 -105
- package/src/theme/AppSidebarLogo.tsx +0 -48
- package/src/theme/components/PageTitle.tsx +0 -37
- package/src/utils/cache/CacheInvalidatorContext.tsx +0 -125
- package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +0 -10
- package/src/utils/cache/useCacheInvalidatorListener.tsx +0 -27
- package/src/utils/convertFileToBase64.tsx +0 -9
- package/src/utils/convertToFile.tsx +0 -14
- package/src/utils/cookies.tsx +0 -33
- package/src/utils/dashDefaultQueryClient.tsx +0 -34
- package/src/utils/dataUrlToBlob.tsx +0 -30
- package/src/utils/deepReplace.tsx +0 -19
- package/src/utils/getProfileMenu.tsx +0 -41
- package/src/utils/getTenantSettings.tsx +0 -9
- package/src/utils/getType.tsx +0 -8
- package/src/utils/getUserSettings.tsx +0 -8
- package/src/utils/hasCode.tsx +0 -14
- package/src/utils/index.ts +0 -19
- package/src/utils/injectTenantStyles.ts +0 -28
- package/src/utils/isComponent.tsx +0 -45
- package/src/utils/navEvents.tsx +0 -91
- package/src/utils/prototypes.tsx +0 -5
- package/src/utils/regexp.tsx +0 -4
- package/src/utils/resolveObjectPath.tsx +0 -4
- package/src/utils/setNativeValue.tsx +0 -24
- package/src/utils/slugify.tsx +0 -11
- package/src/utils/validators/emailValidator.tsx +0 -6
- package/src/utils/validators/requiredValidator.tsx +0 -5
- package/src/utils/validators/rutValidator.tsx +0 -31
- package/src/utils/validators.tsx +0 -96
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Resource, TabbedShowLayout } from 'react-admin';
|
|
2
|
-
import { Show } from 'react-admin';
|
|
3
|
-
import { IAppResourceConfig } from '../../interfaces/IAppResourceConfig';
|
|
4
|
-
import { TopToolbar } from 'react-admin';
|
|
5
|
-
import { EditButton } from 'react-admin';
|
|
6
|
-
import { CustomRoutes } from 'react-admin';
|
|
7
|
-
import TrashTemplate from '../Trash/TrashTemplate';
|
|
8
|
-
import {
|
|
9
|
-
DashAutoList,
|
|
10
|
-
DashAutoReferenceTab,
|
|
11
|
-
DashAutoTabs,
|
|
12
|
-
DashAutoTitle,
|
|
13
|
-
} from 'dash-auto-admin';
|
|
14
|
-
import ApplicationLayout from '../../layout/ApplicationLayout';
|
|
15
|
-
|
|
16
|
-
export const LogResource = (resourceConfig: IAppResourceConfig) => {
|
|
17
|
-
return (
|
|
18
|
-
<>
|
|
19
|
-
<CustomRoutes>{TrashTemplate(resourceConfig)}</CustomRoutes>
|
|
20
|
-
|
|
21
|
-
<Resource
|
|
22
|
-
options={{ label: resourceConfig.label, group: resourceConfig.group }}
|
|
23
|
-
name={resourceConfig.model}
|
|
24
|
-
list={() => {
|
|
25
|
-
return (
|
|
26
|
-
<ApplicationLayout resourceConfig={resourceConfig}>
|
|
27
|
-
<DashAutoList
|
|
28
|
-
/*sx={{
|
|
29
|
-
flexGrow: 1,
|
|
30
|
-
transition: (theme: any) =>
|
|
31
|
-
theme.transitions.create(['all'], {
|
|
32
|
-
duration: theme.transitions.duration.enteringScreen,
|
|
33
|
-
})
|
|
34
|
-
}}*/
|
|
35
|
-
|
|
36
|
-
/*search={resourceConfig.search} schema={resourceConfig.listSchema ? resourceConfig.listSchema : resourceConfig.schema} BulkActions={resourceConfig.BulkActions} create={resourceConfig.create}*/ resourceConfig={
|
|
37
|
-
resourceConfig
|
|
38
|
-
}
|
|
39
|
-
/>
|
|
40
|
-
</ApplicationLayout>
|
|
41
|
-
);
|
|
42
|
-
}}
|
|
43
|
-
show={() => {
|
|
44
|
-
const ShowActions = ({ edit }) => (
|
|
45
|
-
<TopToolbar sx={{ mb: 2 }} >{edit !== false && <EditButton />}</TopToolbar>
|
|
46
|
-
);
|
|
47
|
-
return (
|
|
48
|
-
<ApplicationLayout resourceConfig={resourceConfig}>
|
|
49
|
-
<Show
|
|
50
|
-
title={
|
|
51
|
-
<DashAutoTitle
|
|
52
|
-
resourceConfig={resourceConfig}
|
|
53
|
-
//schema={resourceConfig.showSchema ? resourceConfig.showSchema : resourceConfig.schema}
|
|
54
|
-
/>
|
|
55
|
-
}
|
|
56
|
-
actions={<ShowActions edit={resourceConfig.edit} />}
|
|
57
|
-
>
|
|
58
|
-
<TabbedShowLayout>
|
|
59
|
-
{DashAutoTabs(resourceConfig)}
|
|
60
|
-
{resourceConfig.references &&
|
|
61
|
-
resourceConfig.references.map((reference) => DashAutoReferenceTab(reference) )}
|
|
62
|
-
</TabbedShowLayout>
|
|
63
|
-
</Show>
|
|
64
|
-
</ApplicationLayout>
|
|
65
|
-
);
|
|
66
|
-
}}
|
|
67
|
-
/* @ts-ignore Known issue type mismatch */
|
|
68
|
-
icon={resourceConfig.icon}
|
|
69
|
-
/>
|
|
70
|
-
</>
|
|
71
|
-
);
|
|
72
|
-
};
|
|
73
|
-
export default LogResource;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
// in posts.js
|
|
2
|
-
import { ReferenceField, Resource, TextField } from 'react-admin';
|
|
3
|
-
|
|
4
|
-
import { IAppResourceConfig } from '../../interfaces/IAppResourceConfig';
|
|
5
|
-
import { FC, useState } from 'react';
|
|
6
|
-
import { SaveButton } from 'react-admin';
|
|
7
|
-
import { Toolbar } from 'react-admin';
|
|
8
|
-
import { SimpleForm } from 'react-admin';
|
|
9
|
-
//import { useForm } from 'react-hook-form';
|
|
10
|
-
import { Create } from 'react-admin';
|
|
11
|
-
import { ReferenceInput } from 'react-admin';
|
|
12
|
-
import { AutocompleteInput } from 'react-admin';
|
|
13
|
-
import { setCookie, getCookie } from '../../utils/cookies';
|
|
14
|
-
import ApplicationLayout from '../../layout/ApplicationLayout';
|
|
15
|
-
import { Alert, Card } from '@mui/material';
|
|
16
|
-
import { Route } from 'react-router';
|
|
17
|
-
import {DASHAppConstants} from 'dash-constants';
|
|
18
|
-
import { dashStorage } from 'dash-utils';
|
|
19
|
-
|
|
20
|
-
export const ImpersonateTenantComponent: FC<any> = (props) => {
|
|
21
|
-
|
|
22
|
-
const { children: children, ...rest } = props;
|
|
23
|
-
const [selectedTenantId, setSelectedTenantId] = useState<string | null>(null);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const CustomToolbar = (toolbarProps) => {
|
|
27
|
-
return (
|
|
28
|
-
<Toolbar {...toolbarProps}>
|
|
29
|
-
<SaveButton alwaysEnable={true} />
|
|
30
|
-
</Toolbar>
|
|
31
|
-
);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const validateFn = () => {
|
|
35
|
-
const _errors: any = {};
|
|
36
|
-
|
|
37
|
-
/*if(!values.tenant) {
|
|
38
|
-
errors.tenant_id = "Debe seeleccionar un cliente"
|
|
39
|
-
}*/
|
|
40
|
-
return _errors;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const onSubmit = (data) => {
|
|
44
|
-
dashStorage.setItem('tenant_id', selectedTenantId);
|
|
45
|
-
setCookie('tenant_id', selectedTenantId, null);
|
|
46
|
-
window.location.reload();
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
//const [tenantId, setTenantId] = useState<string>(getCookie('tenant_id'));
|
|
50
|
-
|
|
51
|
-
return (
|
|
52
|
-
<Card title={'Impersonar Tenant'}>
|
|
53
|
-
<SimpleForm
|
|
54
|
-
toolbar={<CustomToolbar {...rest} />}
|
|
55
|
-
validate={validateFn}
|
|
56
|
-
noValidate
|
|
57
|
-
onSubmit={onSubmit}
|
|
58
|
-
>
|
|
59
|
-
Cliente:
|
|
60
|
-
<ReferenceInput label='Tenant' source='id' reference='system/tenant'>
|
|
61
|
-
<AutocompleteInput
|
|
62
|
-
filterToQuery={(search) => ({ q: search })}
|
|
63
|
-
optionValue='id'
|
|
64
|
-
optionText='name'
|
|
65
|
-
onChange={(event, value) => {
|
|
66
|
-
|
|
67
|
-
setSelectedTenantId(value["id"])
|
|
68
|
-
}}
|
|
69
|
-
/>
|
|
70
|
-
</ReferenceInput>
|
|
71
|
-
|
|
72
|
-
<Alert severity="info">Cliente impersonado: {getCookie('tenant_id') && (
|
|
73
|
-
<ReferenceField label="Tenant" source="id" reference="system/tenant" record={{ id: getCookie('tenant_id') }}>
|
|
74
|
-
<TextField source="name" />
|
|
75
|
-
</ReferenceField>
|
|
76
|
-
)}
|
|
77
|
-
</Alert>
|
|
78
|
-
|
|
79
|
-
</SimpleForm>
|
|
80
|
-
</Card>
|
|
81
|
-
);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export const TenantImpersonateResource = (resourceConfig: IAppResourceConfig) => {
|
|
85
|
-
|
|
86
|
-
const _resourceConfig: IAppResourceConfig = {
|
|
87
|
-
...resourceConfig,
|
|
88
|
-
mainAction: null,
|
|
89
|
-
create: false,
|
|
90
|
-
edit: false,
|
|
91
|
-
view: false,
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
return (
|
|
95
|
-
<Route path={_resourceConfig.model + '/impersonate'} element={
|
|
96
|
-
<Resource
|
|
97
|
-
options={{ label: _resourceConfig.label, group: _resourceConfig.group }}
|
|
98
|
-
name={_resourceConfig.model}
|
|
99
|
-
list={() => {
|
|
100
|
-
return (
|
|
101
|
-
<ApplicationLayout resourceConfig={_resourceConfig}>
|
|
102
|
-
<Create>
|
|
103
|
-
<ImpersonateTenantComponent />
|
|
104
|
-
</Create>
|
|
105
|
-
</ApplicationLayout>
|
|
106
|
-
);
|
|
107
|
-
}}
|
|
108
|
-
/* @ts-ignore known issue */
|
|
109
|
-
icon={_resourceConfig.icon}
|
|
110
|
-
/>
|
|
111
|
-
} />);
|
|
112
|
-
};
|
|
113
|
-
export default TenantImpersonateResource;
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { Resource, TabbedShowLayout } from 'react-admin';
|
|
2
|
-
import { Show } from 'react-admin';
|
|
3
|
-
|
|
4
|
-
import { IAppResourceConfig } from '../../interfaces/IAppResourceConfig';
|
|
5
|
-
import { useNotify } from 'react-admin';
|
|
6
|
-
import { useRedirect } from 'react-admin';
|
|
7
|
-
|
|
8
|
-
import { TopToolbar } from 'react-admin';
|
|
9
|
-
import { EditButton } from 'react-admin';
|
|
10
|
-
import { CustomRoutes } from 'react-admin';
|
|
11
|
-
import { Route } from 'react-router';
|
|
12
|
-
import { useListContext } from 'react-admin';
|
|
13
|
-
import { useState } from 'react';
|
|
14
|
-
import { useRefresh } from 'react-admin';
|
|
15
|
-
import { useUnselectAll } from 'react-admin';
|
|
16
|
-
import { initAxios } from '../../hooks/axios';
|
|
17
|
-
import { Button } from 'react-admin';
|
|
18
|
-
import { Confirm } from 'react-admin';
|
|
19
|
-
|
|
20
|
-
import ApplicationLayout from '../../layout/ApplicationLayout';
|
|
21
|
-
import { DashAutoList } from 'dash-auto-admin';
|
|
22
|
-
import { useDialog } from 'dash-dialog';
|
|
23
|
-
|
|
24
|
-
const TrashTemplate = (resourceConfig: IAppResourceConfig) => {
|
|
25
|
-
const TrashBulkActions = () => {
|
|
26
|
-
const axios = initAxios();
|
|
27
|
-
const dialog = useDialog();
|
|
28
|
-
|
|
29
|
-
const { selectedIds } = useListContext();
|
|
30
|
-
|
|
31
|
-
const refresh = useRefresh();
|
|
32
|
-
const unselectAll = useUnselectAll(trashResourceConfig.model);
|
|
33
|
-
|
|
34
|
-
// RestoreMany
|
|
35
|
-
const [isRestoringLoading, setIsRestoringLoading] =
|
|
36
|
-
useState<boolean>(false);
|
|
37
|
-
const [restoreConfirmDialogOpen, setRestoreConfirmDialogOpen] =
|
|
38
|
-
useState(false);
|
|
39
|
-
const handleRestoreManyClick = () => setRestoreConfirmDialogOpen(true);
|
|
40
|
-
const handleRestoreManyDialogClose = () =>
|
|
41
|
-
setRestoreConfirmDialogOpen(false);
|
|
42
|
-
const handleRestoreManyConfirm = () => {
|
|
43
|
-
restoreMany();
|
|
44
|
-
setRestoreConfirmDialogOpen(false);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
// DeleteMany
|
|
48
|
-
const [isDeletingLoading, setIsDeletingLoading] = useState<boolean>(false);
|
|
49
|
-
const [pemanentDeleteConfirmDialogOpen, setPermanentDeleteDialogOpen] =
|
|
50
|
-
useState(false);
|
|
51
|
-
const handleDeleteManyClick = () => setPermanentDeleteDialogOpen(true);
|
|
52
|
-
const handleDeleteManyDialogClose = () =>
|
|
53
|
-
setPermanentDeleteDialogOpen(false);
|
|
54
|
-
const handleDeleteManyConfirm = () => {
|
|
55
|
-
deleteMany();
|
|
56
|
-
setPermanentDeleteDialogOpen(false);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const restoreMany = async () => {
|
|
60
|
-
setIsRestoringLoading(true);
|
|
61
|
-
try {
|
|
62
|
-
await axios.post(`${trashResourceConfig.model}/updateMany`, {
|
|
63
|
-
ids: selectedIds,
|
|
64
|
-
});
|
|
65
|
-
setIsRestoringLoading(false);
|
|
66
|
-
refresh();
|
|
67
|
-
unselectAll();
|
|
68
|
-
dialog({
|
|
69
|
-
variant: 'info',
|
|
70
|
-
title: 'Restauración Realizada',
|
|
71
|
-
content: 'Se han restaurado los elementos seleccionados',
|
|
72
|
-
onConfirm: () => {},
|
|
73
|
-
onClose: () => {},
|
|
74
|
-
});
|
|
75
|
-
} catch (error) {
|
|
76
|
-
setIsRestoringLoading(false);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
const deleteMany = async () => {
|
|
81
|
-
setIsRestoringLoading(true);
|
|
82
|
-
try {
|
|
83
|
-
await axios.post(`${trashResourceConfig.model}/deleteMany`, {
|
|
84
|
-
ids: selectedIds,
|
|
85
|
-
});
|
|
86
|
-
setIsRestoringLoading(false);
|
|
87
|
-
refresh();
|
|
88
|
-
unselectAll();
|
|
89
|
-
dialog({
|
|
90
|
-
variant: 'info',
|
|
91
|
-
title: 'Eliminación permanente realizada',
|
|
92
|
-
content:
|
|
93
|
-
'Se han eliminado permanentemente los elementos seleccionados',
|
|
94
|
-
onConfirm: () => {},
|
|
95
|
-
onClose: () => {},
|
|
96
|
-
});
|
|
97
|
-
} catch (error) {
|
|
98
|
-
setIsRestoringLoading(false);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
return (
|
|
103
|
-
<>
|
|
104
|
-
<Button label='Restaurar' onClick={handleRestoreManyClick} />
|
|
105
|
-
<Confirm
|
|
106
|
-
isOpen={restoreConfirmDialogOpen}
|
|
107
|
-
loading={isRestoringLoading}
|
|
108
|
-
title='Restaurar'
|
|
109
|
-
content='¿Está seguro de restaurar los elementos seleccionados?'
|
|
110
|
-
onConfirm={handleRestoreManyConfirm}
|
|
111
|
-
onClose={handleRestoreManyDialogClose}
|
|
112
|
-
/>
|
|
113
|
-
<Button label='Eliminar' onClick={handleDeleteManyClick} />
|
|
114
|
-
<Confirm
|
|
115
|
-
isOpen={pemanentDeleteConfirmDialogOpen}
|
|
116
|
-
loading={isDeletingLoading}
|
|
117
|
-
title='Eliminar'
|
|
118
|
-
content='¿Está seguro de eliminar permanentemente los elementos seleccionados?'
|
|
119
|
-
onConfirm={handleDeleteManyConfirm}
|
|
120
|
-
onClose={handleDeleteManyDialogClose}
|
|
121
|
-
/>
|
|
122
|
-
</>
|
|
123
|
-
);
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
const trashResourceConfig: IAppResourceConfig = {
|
|
127
|
-
...resourceConfig,
|
|
128
|
-
model: 'trash/' + resourceConfig.model,
|
|
129
|
-
listDeleteButton: {
|
|
130
|
-
enabled: true,
|
|
131
|
-
props: { label: 'Eliminar definitivamente' },
|
|
132
|
-
},
|
|
133
|
-
listEditButton: { enabled: false },
|
|
134
|
-
listViewButton: { enabled: false },
|
|
135
|
-
customListButtons: null,
|
|
136
|
-
dataGridProps: {
|
|
137
|
-
bulkActionButtons: <TrashBulkActions/>,
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
return (
|
|
143
|
-
<Route
|
|
144
|
-
path={'trash/' + resourceConfig.model}
|
|
145
|
-
element={
|
|
146
|
-
<Resource
|
|
147
|
-
options={{
|
|
148
|
-
label: trashResourceConfig.label,
|
|
149
|
-
group: trashResourceConfig.group,
|
|
150
|
-
}}
|
|
151
|
-
name={trashResourceConfig.model}
|
|
152
|
-
list={() => {
|
|
153
|
-
return (
|
|
154
|
-
<ApplicationLayout
|
|
155
|
-
/*icon={trashResourceConfig.icon}
|
|
156
|
-
title={trashResourceConfig.label} menu={trashResourceConfig.menu}
|
|
157
|
-
mainAction={trashResourceConfig.mainAction} */
|
|
158
|
-
resourceConfig={resourceConfig}
|
|
159
|
-
>
|
|
160
|
-
<DashAutoList
|
|
161
|
-
/*sx={{
|
|
162
|
-
flexGrow: 1
|
|
163
|
-
}}*/
|
|
164
|
-
|
|
165
|
-
/*search={trashResourceConfig.search} schema={trashResourceConfig.listSchema ? trashResourceConfig.listSchema : trashResourceConfig.schema}
|
|
166
|
-
BulkActions={trashResourceConfig.BulkActions}
|
|
167
|
-
create={trashResourceConfig.create} */
|
|
168
|
-
resourceConfig={trashResourceConfig}
|
|
169
|
-
/>
|
|
170
|
-
</ApplicationLayout>
|
|
171
|
-
);
|
|
172
|
-
}}
|
|
173
|
-
/* @ts-ignore */
|
|
174
|
-
icon={trashResourceConfig.icon}
|
|
175
|
-
/>
|
|
176
|
-
}
|
|
177
|
-
/>
|
|
178
|
-
);
|
|
179
|
-
};
|
|
180
|
-
export default TrashTemplate;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { IDashAutoAdminCustomFieldComponent } from 'dash-auto-admin';
|
|
3
|
-
import { useRecordContext } from 'react-admin';
|
|
4
|
-
import { SingleImageUploader } from 'dash-components';
|
|
5
|
-
import { useFormContext } from 'react-hook-form';
|
|
6
|
-
|
|
7
|
-
export type AvatarComponent = IDashAutoAdminCustomFieldComponent;
|
|
8
|
-
|
|
9
|
-
export const AvatarHandler: React.FC<AvatarComponent> = (props) => {
|
|
10
|
-
const { method, attribute } = props;
|
|
11
|
-
const record = useRecordContext();
|
|
12
|
-
const {
|
|
13
|
-
setValue,
|
|
14
|
-
formState: { errors },
|
|
15
|
-
} = useFormContext();
|
|
16
|
-
|
|
17
|
-
const onChange = (file: File) => {
|
|
18
|
-
setValue(attribute.attribute, file, { shouldDirty: true });
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<>
|
|
23
|
-
<SingleImageUploader
|
|
24
|
-
classNamePrefix='dash-profile'
|
|
25
|
-
{...method === "edit" && { currentUrl: `${record.image_path}`} }
|
|
26
|
-
onChange={onChange}
|
|
27
|
-
/>
|
|
28
|
-
{errors[attribute.attribute] && (
|
|
29
|
-
<span style={{ color: 'red' }}>
|
|
30
|
-
{errors[attribute.attribute]?.message?.toString() || 'Error'}
|
|
31
|
-
</span>
|
|
32
|
-
)}
|
|
33
|
-
</>
|
|
34
|
-
);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Generic user-avatar upload field for the shared user resource schema.
|
|
39
|
-
*
|
|
40
|
-
* Moved from kt-ecommerce (components/User/Avatar.tsx) - purely generic
|
|
41
|
-
* (dash-auto-admin/dash-components/react-hook-form only, no kitchntabs- or
|
|
42
|
-
* vanexa-specific logic), so it belongs alongside userSchema.tsx here rather
|
|
43
|
-
* than duplicated per domain. Renamed from "Avatar" to avoid colliding with
|
|
44
|
-
* dash-admin's unrelated components/user/AvatarComponent.tsx (the topbar
|
|
45
|
-
* user-menu avatar widget - a different component for a different purpose).
|
|
46
|
-
*/
|
|
47
|
-
const AvatarUploadField = ({ method, attribute, resourceConfig }: IDashAutoAdminCustomFieldComponent) => {
|
|
48
|
-
switch (method) {
|
|
49
|
-
case 'edit':
|
|
50
|
-
return <AvatarHandler attribute={attribute} method={method} resourceConfig={resourceConfig} />;
|
|
51
|
-
case 'create':
|
|
52
|
-
return <AvatarHandler attribute={attribute} method={method} resourceConfig={resourceConfig} />;
|
|
53
|
-
case 'view':
|
|
54
|
-
return <></>;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
export default AvatarUploadField;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { IDashAutoAdminCustomFieldComponent } from 'dash-auto-admin';
|
|
3
|
-
import {
|
|
4
|
-
PasswordInput,
|
|
5
|
-
} from 'react-admin';
|
|
6
|
-
import { Box } from '@mui/material';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Generic password + confirm-password field pair for the shared user
|
|
10
|
-
* resource schema. Moved from kt-ecommerce (components/User/Password.tsx) -
|
|
11
|
-
* no kitchntabs- or vanexa-specific logic. Renamed from "Password" to avoid
|
|
12
|
-
* ambiguity with other password-related components in this package.
|
|
13
|
-
*/
|
|
14
|
-
export type PasswordComponent = IDashAutoAdminCustomFieldComponent;
|
|
15
|
-
export const PasswordShow: React.FC<PasswordComponent> = (_props) => {
|
|
16
|
-
return <></>;
|
|
17
|
-
};
|
|
18
|
-
export const PasswordEdit: React.FC<PasswordComponent> = (_props) => {
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<>
|
|
22
|
-
<Box>
|
|
23
|
-
<PasswordInput
|
|
24
|
-
sx={{ width: '100%' }}
|
|
25
|
-
autoComplete='off'
|
|
26
|
-
source='Contraseña'
|
|
27
|
-
name='password'
|
|
28
|
-
/>
|
|
29
|
-
</Box>
|
|
30
|
-
<Box>
|
|
31
|
-
<PasswordInput
|
|
32
|
-
sx={{ width: '100%' }}
|
|
33
|
-
autoComplete='off'
|
|
34
|
-
source='Confirmar Contraseña'
|
|
35
|
-
name='password_confirmation'
|
|
36
|
-
/>
|
|
37
|
-
</Box>
|
|
38
|
-
</>
|
|
39
|
-
);
|
|
40
|
-
};
|
|
41
|
-
export const PasswordCreate: React.FC<PasswordComponent> = (_props) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<>
|
|
46
|
-
<Box>
|
|
47
|
-
<PasswordInput
|
|
48
|
-
sx={{ width: '100%' }}
|
|
49
|
-
source='Contraseña'
|
|
50
|
-
name='password'
|
|
51
|
-
/>
|
|
52
|
-
</Box>
|
|
53
|
-
<Box>
|
|
54
|
-
<PasswordInput
|
|
55
|
-
sx={{ width: '100%' }}
|
|
56
|
-
source='Confirmar Contraseña'
|
|
57
|
-
name='password_confirmation'
|
|
58
|
-
/>
|
|
59
|
-
</Box>
|
|
60
|
-
</>
|
|
61
|
-
);
|
|
62
|
-
};
|
|
63
|
-
const PasswordFields = ({ method, attribute, resourceConfig }: IDashAutoAdminCustomFieldComponent) => {
|
|
64
|
-
switch (method) {
|
|
65
|
-
case 'edit':
|
|
66
|
-
return <PasswordEdit attribute={attribute} method={method} resourceConfig={resourceConfig} />;
|
|
67
|
-
case 'create':
|
|
68
|
-
return <PasswordCreate attribute={attribute} method={method} resourceConfig={resourceConfig} />;
|
|
69
|
-
case 'view':
|
|
70
|
-
return <PasswordShow attribute={attribute} method={method} resourceConfig={resourceConfig} />;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
export default PasswordFields;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Profile menu generator for user navigation.
|
|
3
|
-
*
|
|
4
|
-
* Moved here from kt-utils (getProfileMenu.ts) per the profile/user resource
|
|
5
|
-
* refactor - it is consumed by resources/User/profileResource.tsx, which now
|
|
6
|
-
* also lives in this package, and doesn't depend on anything kitchntabs- or
|
|
7
|
-
* vanexa-specific beyond the 'Cliente' role check below (kept verbatim - both
|
|
8
|
-
* domains currently use it identically; a domain that needs a different
|
|
9
|
-
* profile menu can still override profileResource.menu after importing it).
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { dashStorage } from 'dash-utils';
|
|
13
|
-
import type IApplicationLayoutMenuItem from 'dash-auto-admin/src/interfaces/IDashApplicationLayoutMenuItem';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Generates the profile menu based on user roles
|
|
17
|
-
*/
|
|
18
|
-
const getProfileMenu = (resourceConfig?: any): IApplicationLayoutMenuItem[] => {
|
|
19
|
-
const userStr = dashStorage.getItem('user');
|
|
20
|
-
const rolesStr = dashStorage.getItem('roles');
|
|
21
|
-
|
|
22
|
-
const user = userStr ? JSON.parse(userStr) : null;
|
|
23
|
-
const roles: any[] = rolesStr ? JSON.parse(rolesStr) : [];
|
|
24
|
-
|
|
25
|
-
const profileMenu: IApplicationLayoutMenuItem[] = [
|
|
26
|
-
{
|
|
27
|
-
title: 'Perfil',
|
|
28
|
-
redirect: '/profile',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const isCliente = roles
|
|
33
|
-
? roles.map((role) => role.name).includes('Cliente')
|
|
34
|
-
: false;
|
|
35
|
-
|
|
36
|
-
if (isCliente) {
|
|
37
|
-
profileMenu.push(
|
|
38
|
-
{
|
|
39
|
-
title: 'Comunas',
|
|
40
|
-
redirect: '/profile/commune',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
title: 'Centros Logísticos',
|
|
44
|
-
redirect: '/profile/logistic-center',
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
title: 'Notificaciones',
|
|
48
|
-
redirect: '/profile/notification',
|
|
49
|
-
},
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return profileMenu;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export default getProfileMenu;
|
|
57
|
-
export { getProfileMenu };
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { IDashAutoAdminResourceConfig } from 'dash-auto-admin';
|
|
2
|
-
import ResourceTemplate from '../../templates/ResourceTemplate';
|
|
3
|
-
import Dashboard from '@mui/icons-material/Dashboard';
|
|
4
|
-
import {DASHAdminSystemConstants} from 'dash-constants';
|
|
5
|
-
|
|
6
|
-
import getProfileMenu from './getProfileMenu';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Shared "/profile" resource shell.
|
|
10
|
-
*
|
|
11
|
-
* Moved here from kt-ecommerce (resources/user/profileResource.tsx) - the
|
|
12
|
-
* config itself is generic. `listComponent` is intentionally left unset: the
|
|
13
|
-
* kt-ecommerce original hardcoded kt-pages' CustomProfile page, which would
|
|
14
|
-
* have made this package depend on a kitchntabs-flavored consumer package
|
|
15
|
-
* (backwards - dash-admin is core, kt-pages/kt-ecommerce are domain layers
|
|
16
|
-
* built on top of it). Each app supplies its own profile page component by
|
|
17
|
-
* overriding `listComponent` after importing this base config, e.g.:
|
|
18
|
-
*
|
|
19
|
-
* import profileResource from 'dash-admin/src/resources/User/profileResource';
|
|
20
|
-
* import CustomProfile from 'kt-pages/src/pages/Account/CustomProfile';
|
|
21
|
-
*
|
|
22
|
-
* export default {
|
|
23
|
-
* ...profileResource,
|
|
24
|
-
* listComponent: (_resourceConfig) => <CustomProfile />,
|
|
25
|
-
* };
|
|
26
|
-
*/
|
|
27
|
-
const profileResource: IDashAutoAdminResourceConfig = {
|
|
28
|
-
filterWithSubmit: true,
|
|
29
|
-
roles: ["*"
|
|
30
|
-
/*
|
|
31
|
-
DASHAdminSystemConstants.system.DASH_SYSTEM_ROLE,
|
|
32
|
-
DASHAppConstants.system.TENANT_ROLE,
|
|
33
|
-
DASHAppConstants.system.USER_ROLE,
|
|
34
|
-
DASHAppConstants.system.CREATOR_ROLE,
|
|
35
|
-
DASHAppConstants.system.CLOSING_ROLE,
|
|
36
|
-
DASHAppConstants.system.GUNNER_ROLE,
|
|
37
|
-
DASHAppConstants.system.DRIVER_ROLE
|
|
38
|
-
*/
|
|
39
|
-
],
|
|
40
|
-
component: ResourceTemplate,
|
|
41
|
-
hidden: true,
|
|
42
|
-
model: 'profile',
|
|
43
|
-
group: 'Perfil',
|
|
44
|
-
label: 'Perfil',
|
|
45
|
-
icon: <Dashboard />,
|
|
46
|
-
schema: null,
|
|
47
|
-
menu: getProfileMenu,
|
|
48
|
-
listProps : { perPage: DASHAdminSystemConstants.system.DEFAULT_PER_PAGE || 50}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export default profileResource;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Box, Card, Grid } from '@mui/material';
|
|
2
|
-
|
|
3
|
-
const userLayout = (render) => {
|
|
4
|
-
return (
|
|
5
|
-
<Grid container spacing={1}>
|
|
6
|
-
<Grid size={{ xs: 12, md: 4 }}>
|
|
7
|
-
<Grid container>
|
|
8
|
-
<Grid size={12}>
|
|
9
|
-
<Card sx={{ mb: 1 }} className='dash-widget'>
|
|
10
|
-
<Box
|
|
11
|
-
sx={{ p: 1 }}
|
|
12
|
-
style={{ display: 'flex', alignItems: 'center' }}
|
|
13
|
-
>
|
|
14
|
-
<span className='card-title'>Avatar</span>
|
|
15
|
-
</Box>
|
|
16
|
-
<Box sx={{ p: 1 }}>{render('Avatar')}</Box>
|
|
17
|
-
</Card>
|
|
18
|
-
</Grid>
|
|
19
|
-
<Grid size={12}>
|
|
20
|
-
<Card sx={{ mb: 1 }} className='dash-widget'>
|
|
21
|
-
<Box
|
|
22
|
-
sx={{ p: 1 }}
|
|
23
|
-
style={{ display: 'flex', alignItems: 'center' }}
|
|
24
|
-
>
|
|
25
|
-
<span className='card-title'>Credenciales</span>
|
|
26
|
-
</Box>
|
|
27
|
-
<Box sx={{ p: 1 }}>{render('Credenciales')}</Box>
|
|
28
|
-
</Card>
|
|
29
|
-
</Grid>
|
|
30
|
-
</Grid>
|
|
31
|
-
</Grid>
|
|
32
|
-
<Grid size={{ xs: 12, md: 8 }}>
|
|
33
|
-
<Grid container >
|
|
34
|
-
<Grid size={12}>
|
|
35
|
-
<Card sx={{ mb: 1 }} className='dash-widget'>
|
|
36
|
-
<Box
|
|
37
|
-
sx={{ p: 1 }}
|
|
38
|
-
style={{ display: 'flex', alignItems: 'center' }}
|
|
39
|
-
>
|
|
40
|
-
<span className='card-title'>Datos del usuario</span>
|
|
41
|
-
</Box>
|
|
42
|
-
<Box sx={{ p: 1 }}>{render('Datos del usuario')}</Box>
|
|
43
|
-
</Card>
|
|
44
|
-
</Grid>
|
|
45
|
-
<Grid size={12}>
|
|
46
|
-
<Card sx={{ mb: 1 }} className='dash-widget'>
|
|
47
|
-
<Box
|
|
48
|
-
sx={{ p: 1 }}
|
|
49
|
-
style={{ display: 'flex', alignItems: 'center' }}
|
|
50
|
-
>
|
|
51
|
-
<span className='card-title'>Configuración</span>
|
|
52
|
-
</Box>
|
|
53
|
-
<Box sx={{ p: 1 }}>{render('Configuración')}</Box>
|
|
54
|
-
</Card>
|
|
55
|
-
</Grid>
|
|
56
|
-
</Grid>
|
|
57
|
-
</Grid>
|
|
58
|
-
</Grid>
|
|
59
|
-
|
|
60
|
-
);};
|
|
61
|
-
|
|
62
|
-
export default userLayout;
|