Services düzenlemesi ve vite.config sub domains
This commit is contained in:
parent
cb8c224a54
commit
00eb20d55f
130 changed files with 599 additions and 587 deletions
|
|
@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict';
|
||||||
"revision": "3ca0b8505b4bec776b69afdba2768812"
|
"revision": "3ca0b8505b4bec776b69afdba2768812"
|
||||||
}, {
|
}, {
|
||||||
"url": "index.html",
|
"url": "index.html",
|
||||||
"revision": "0.1u96j36821"
|
"revision": "0.4akve1tmvk"
|
||||||
}], {});
|
}], {});
|
||||||
workbox.cleanupOutdatedCaches();
|
workbox.cleanupOutdatedCaches();
|
||||||
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
|
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//import Side from './Side'
|
//import Side from './Side'
|
||||||
//import Cover from './Cover'
|
//import Cover from './Cover'
|
||||||
import Simple from './Simple'
|
import Simple from './Simple'
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { LAYOUT_TYPE_BLANK } from '@/constants/theme.constant'
|
import { LAYOUT_TYPE_BLANK } from '@/constants/theme.constant'
|
||||||
|
|
||||||
|
|
@ -13,9 +13,9 @@ const AuthLayout = () => {
|
||||||
{layoutType === LAYOUT_TYPE_BLANK ? (
|
{layoutType === LAYOUT_TYPE_BLANK ? (
|
||||||
<View />
|
<View />
|
||||||
) : (
|
) : (
|
||||||
<Simple>
|
<Simple>
|
||||||
<View />
|
<View />
|
||||||
</Simple>
|
</Simple>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import SidePanel from '@/components/template/SidePanel'
|
import SidePanel from '@/components/template/SidePanel'
|
||||||
import { useStoreState, useStoreActions } from '@/store'
|
import { useStoreState, useStoreActions } from '@/store'
|
||||||
import { HiOutlineCog } from 'react-icons/hi'
|
import { HiOutlineCog } from 'react-icons/hi'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import HeaderLogo from '@/components/template/HeaderLogo'
|
||||||
import SecondaryHeader from '@/components/template/SecondaryHeader'
|
import SecondaryHeader from '@/components/template/SecondaryHeader'
|
||||||
import Notification from '@/components/template/Notification'
|
import Notification from '@/components/template/Notification'
|
||||||
import MobileNav from '@/components/template/MobileNav'
|
import MobileNav from '@/components/template/MobileNav'
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import Search from '@/components/template/Search'
|
import Search from '@/components/template/Search'
|
||||||
import LanguageSelector from '../template/LanguageSelector'
|
import LanguageSelector from '../template/LanguageSelector'
|
||||||
import AiAssistant from '../template/AiAssistant'
|
import AiAssistant from '../template/AiAssistant'
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import SideNav from '@/components/template/SideNav'
|
||||||
import SideNavToggle from '@/components/template/SideNavToggle'
|
import SideNavToggle from '@/components/template/SideNavToggle'
|
||||||
import SidePanel from '@/components/template/SidePanel'
|
import SidePanel from '@/components/template/SidePanel'
|
||||||
import UserDropdown from '@/components/template/UserDropdown'
|
import UserDropdown from '@/components/template/UserDropdown'
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import LanguageSelector from '../template/LanguageSelector'
|
import LanguageSelector from '../template/LanguageSelector'
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import StackedSideNav from '../template/StackedSideNav'
|
import StackedSideNav from '../template/StackedSideNav'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import React, { useEffect, useState } from 'react'
|
import React, { useEffect, useState } from 'react'
|
||||||
import { useLocation, Link } from 'react-router-dom'
|
import { useLocation, Link } from 'react-router-dom'
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import UserDropdown from '@/components/template/UserDropdown'
|
||||||
import HeaderLogo from '@/components/template/HeaderLogo'
|
import HeaderLogo from '@/components/template/HeaderLogo'
|
||||||
import MobileNav from '@/components/template/MobileNav'
|
import MobileNav from '@/components/template/MobileNav'
|
||||||
import HorizontalNav from '@/components/template/HorizontalNav'
|
import HorizontalNav from '@/components/template/HorizontalNav'
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import Notification from '@/components/template/Notification'
|
import Notification from '@/components/template/Notification'
|
||||||
import Search from '@/components/template/Search'
|
import Search from '@/components/template/Search'
|
||||||
import LanguageSelector from '../template/LanguageSelector'
|
import LanguageSelector from '../template/LanguageSelector'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import SidePanel from '@/components/template/SidePanel'
|
||||||
import UserDropdown from '@/components/template/UserDropdown'
|
import UserDropdown from '@/components/template/UserDropdown'
|
||||||
import MobileNav from '@/components/template/MobileNav'
|
import MobileNav from '@/components/template/MobileNav'
|
||||||
import StackedSideNav from '@/components/template/StackedSideNav'
|
import StackedSideNav from '@/components/template/StackedSideNav'
|
||||||
import View from '@/views'
|
import View from '@/views/Views'
|
||||||
import Search from '@/components/template/Search'
|
import Search from '@/components/template/Search'
|
||||||
import Notification from '@/components/template/Notification'
|
import Notification from '@/components/template/Notification'
|
||||||
import LanguageSelector from '../template/LanguageSelector'
|
import LanguageSelector from '../template/LanguageSelector'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { getTenantByNameDetail } from '@/proxy/admin/tenant/tenant.service'
|
import { getTenantByNameDetail } from '@/services/tenant.service'
|
||||||
import { CustomTenantDto } from '@/proxy/config/models'
|
import { CustomTenantDto } from '@/proxy/config/models'
|
||||||
import {
|
import {
|
||||||
ArrowLeft,
|
ArrowLeft,
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,7 @@ import Tooltip from '@/components/ui/Tooltip'
|
||||||
import { AVATAR_URL } from '@/constants/app.constant'
|
import { AVATAR_URL } from '@/constants/app.constant'
|
||||||
import NotificationChannels from '@/constants/notification-channel.enum'
|
import NotificationChannels from '@/constants/notification-channel.enum'
|
||||||
import { ROUTES_ENUM } from '@/routes/route.constant'
|
import { ROUTES_ENUM } from '@/routes/route.constant'
|
||||||
import {
|
import { getList, updateRead, updateReadAll, updateSent } from '@/services/notification.service'
|
||||||
getList,
|
|
||||||
updateRead,
|
|
||||||
updateReadAll,
|
|
||||||
updateSent,
|
|
||||||
} from '@/proxy/notification/notification.service'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import withHeaderItem from '@/utils/hoc/withHeaderItem'
|
import withHeaderItem from '@/utils/hoc/withHeaderItem'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
import Button from '@/components/ui/Button'
|
import Button from '@/components/ui/Button'
|
||||||
import Dialog from '@/components/ui/Dialog'
|
import Dialog from '@/components/ui/Dialog'
|
||||||
import navigationIcon from '@/configs/navigation-icon.config'
|
|
||||||
import { GLOBAL_SEARCH } from '@/constants/permission.constant'
|
import { GLOBAL_SEARCH } from '@/constants/permission.constant'
|
||||||
import { getSearch, getSystems } from '@/proxy/global-search'
|
|
||||||
import withHeaderItem from '@/utils/hoc/withHeaderItem'
|
import withHeaderItem from '@/utils/hoc/withHeaderItem'
|
||||||
import useThemeClass from '@/utils/hooks/useThemeClass'
|
import useThemeClass from '@/utils/hooks/useThemeClass'
|
||||||
import classNames from 'classnames'
|
import classNames from 'classnames'
|
||||||
|
|
@ -13,6 +11,7 @@ import { Link } from 'react-router-dom'
|
||||||
import { PermissionCheck } from '../shared'
|
import { PermissionCheck } from '../shared'
|
||||||
import { Badge, Checkbox, Pagination } from '../ui'
|
import { Badge, Checkbox, Pagination } from '../ui'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
import { getSearch, getSystems } from '@/services/global-search.service'
|
||||||
|
|
||||||
type SearchData = {
|
type SearchData = {
|
||||||
title: string
|
title: string
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models';
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { SignInResponse } from '@/@types/auth'
|
|
||||||
import { ExtensibleObject } from '..'
|
import { ExtensibleObject } from '..'
|
||||||
|
import { SignInResponse } from '../../@types/auth'
|
||||||
|
|
||||||
export interface ProfileDto extends ExtensibleObject {
|
export interface ProfileDto extends ExtensibleObject {
|
||||||
email: string
|
email: string
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { PagedAndSortedResultRequestDto } from '@/proxy/abp'
|
import { PagedAndSortedResultRequestDto } from '../../abp'
|
||||||
|
|
||||||
export interface ListFormCustomizationRequestDto extends PagedAndSortedResultRequestDto {
|
export interface ListFormCustomizationRequestDto extends PagedAndSortedResultRequestDto {
|
||||||
listFormCode: string
|
listFormCode: string
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { PagedAndSortedResultRequestDto } from '@/proxy/abp'
|
import { PagedAndSortedResultRequestDto } from '../../abp'
|
||||||
import { ColumnFormatDto, SelectListItem } from '@/proxy/form'
|
import { ColumnFormatDto, SelectListItem } from '../../form/models'
|
||||||
|
|
||||||
export interface ListFormFieldRequestDto extends PagedAndSortedResultRequestDto {
|
export interface ListFormFieldRequestDto extends PagedAndSortedResultRequestDto {
|
||||||
listFormCode: string
|
listFormCode: string
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import {
|
||||||
FieldsDefaultValueDto,
|
FieldsDefaultValueDto,
|
||||||
SelectCommandTypeEnum,
|
SelectCommandTypeEnum,
|
||||||
SubFormDto,
|
SubFormDto,
|
||||||
} from '@/proxy/form'
|
} from '../../form/models'
|
||||||
|
|
||||||
export interface ListFormWizardDto {
|
export interface ListFormWizardDto {
|
||||||
listFormCode: string
|
listFormCode: string
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { ExtensibleObject } from '@/proxy/abp'
|
import { ExtensibleObject } from '../../abp'
|
||||||
import { ExtensibleFullAuditedEntityDto, IdentityRoleDto } from '../models'
|
import { ExtensibleFullAuditedEntityDto, IdentityRoleDto } from '../models'
|
||||||
|
|
||||||
export interface OrganizationUnitDto extends ExtensibleFullAuditedEntityDto<string> {
|
export interface OrganizationUnitDto extends ExtensibleFullAuditedEntityDto<string> {
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
export * from './ai.service'
|
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FullAuditedEntityDto } from '@/proxy/abp'
|
import { FullAuditedEntityDto } from '../abp'
|
||||||
|
|
||||||
export interface AiDto extends FullAuditedEntityDto<string> {
|
export interface AiDto extends FullAuditedEntityDto<string> {
|
||||||
botName: string
|
botName: string
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models'
|
|
||||||
|
|
@ -11,3 +11,11 @@ export interface DashboardWidgetsDto {
|
||||||
valuePrefix: string
|
valuePrefix: string
|
||||||
date: Date
|
date: Date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface WidgetsData {
|
||||||
|
label: string
|
||||||
|
datavalue: number
|
||||||
|
datagrowShrink: number
|
||||||
|
valuePrefix: string
|
||||||
|
date: Date
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import apiService from '@/services/api.service'
|
import apiService from '../../services/api.service'
|
||||||
import { DashboardWidgetsRequestDto, DashboardWidgetsDto } from './models'
|
import { DashboardWidgetsRequestDto, DashboardWidgetsDto } from './models'
|
||||||
|
|
||||||
export const getDashboardWidgetList = (input: DashboardWidgetsRequestDto) => {
|
export const getDashboardWidgetList = (input: DashboardWidgetsRequestDto) => {
|
||||||
|
|
@ -7,5 +7,3 @@ export const getDashboardWidgetList = (input: DashboardWidgetsRequestDto) => {
|
||||||
url: `/api/app/dashboard/widgets?Tarih1=${input.tarih1}&Tarih2=${input.tarih2}`,
|
url: `/api/app/dashboard/widgets?Tarih1=${input.tarih1}&Tarih2=${input.tarih2}`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import { EditorType2, RowMode } from '@/views/form/types'
|
|
||||||
import {
|
import {
|
||||||
HorizontalAlignment,
|
HorizontalAlignment,
|
||||||
ScrollMode,
|
ScrollMode,
|
||||||
|
|
@ -19,6 +18,7 @@ import {
|
||||||
} from 'devextreme/ui/data_grid_types'
|
} from 'devextreme/ui/data_grid_types'
|
||||||
import { FormItemComponent } from 'devextreme/ui/form'
|
import { FormItemComponent } from 'devextreme/ui/form'
|
||||||
import { AuditedEntityDto } from '../abp'
|
import { AuditedEntityDto } from '../abp'
|
||||||
|
import { EditorType2, RowMode } from '../../views/form/types'
|
||||||
|
|
||||||
//1
|
//1
|
||||||
export interface SelectListItem {
|
export interface SelectListItem {
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
export * from './global-search.service'
|
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { GridOptionsDto } from '../form'
|
import { GridOptionsDto } from '../form/models'
|
||||||
|
|
||||||
export interface ListFormImportDto {
|
export interface ListFormImportDto {
|
||||||
id: string
|
id: string
|
||||||
|
|
@ -13,7 +13,7 @@ export interface ListFormImportExecuteDto {
|
||||||
id: string
|
id: string
|
||||||
importId: string
|
importId: string
|
||||||
blobName: string
|
blobName: string
|
||||||
status: 'processing' | 'validating' | 'completed' | 'failed'
|
status: 'processing' | 'validating' | 'completed' | 'failed'
|
||||||
execRows: number
|
execRows: number
|
||||||
validRows: number
|
validRows: number
|
||||||
errorRows: number
|
errorRows: number
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models';
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export * from './models'
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
export * from './models';
|
|
||||||
export * from './setting-ui.service';
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Notification, toast } from '@/components/ui'
|
import { Notification, toast } from '@/components/ui'
|
||||||
import { generateBackgroundWorkers } from '@/proxy/background-worker/background-worker.service'
|
import { generateBackgroundWorkers } from '@/services/background-worker.service'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
||||||
export abstract class UiEvalService {
|
export abstract class UiEvalService {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import apiService from '@/services/api.service'
|
|
||||||
import {
|
import {
|
||||||
ApplicationConfigurationDto,
|
ApplicationConfigurationDto,
|
||||||
ApplicationLocalizationConfigurationDto,
|
ApplicationLocalizationConfigurationDto,
|
||||||
ApplicationLocalizationRequestDto,
|
ApplicationLocalizationRequestDto,
|
||||||
} from './models'
|
} from '../proxy/config/models'
|
||||||
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getAppConfig = (includeLocalizationResources: boolean) =>
|
export const getAppConfig = (includeLocalizationResources: boolean) =>
|
||||||
apiService.fetchData<ApplicationConfigurationDto>({
|
apiService.fetchData<ApplicationConfigurationDto>({
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import type { SignUpCredential, SignUpResponse } from '@/@types/auth'
|
|
||||||
import { ProfileDto, UpdateProfileDto } from '@/proxy/account'
|
|
||||||
import apiService from '@/services/api.service'
|
|
||||||
import { AxiosError } from 'axios'
|
import { AxiosError } from 'axios'
|
||||||
|
import { SignUpCredential, SignUpResponse } from '../@types/auth'
|
||||||
|
import apiService from './api.service'
|
||||||
|
import { ProfileDto, UpdateProfileDto } from '../proxy/account'
|
||||||
|
|
||||||
export const register = (data: SignUpCredential) =>
|
export const register = (data: SignUpCredential) =>
|
||||||
apiService.fetchData<SignUpResponse>({
|
apiService.fetchData<SignUpResponse>({
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { ListFormCustomizationDto } from '@/proxy/form'
|
import { ListResultDto } from '../../proxy'
|
||||||
import apiService from '@/services/api.service'
|
import { ListFormCustomizationRequestDto } from '../../proxy/admin/list-form-customization/models'
|
||||||
import { ListFormCustomizationRequestDto } from './models'
|
import { ListFormCustomizationDto } from '../../proxy/form'
|
||||||
import { ListResultDto } from '@/proxy/abp'
|
import apiService from '../api.service'
|
||||||
|
|
||||||
export const getListFormCustomizations = (input: ListFormCustomizationRequestDto) =>
|
export const getListFormCustomizations = (input: ListFormCustomizationRequestDto) =>
|
||||||
apiService.fetchData<ListResultDto<ListFormCustomizationDto>>({
|
apiService.fetchData<ListResultDto<ListFormCustomizationDto>>({
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
import { PagedResultDto } from '@/proxy/abp'
|
import { PagedResultDto } from '../../proxy'
|
||||||
import apiService from '@/services/api.service'
|
import {
|
||||||
import { ColumnFormatEditDto, CopyListFormFieldColumnDto, ListFormFieldRequestDto } from './models'
|
ColumnFormatEditDto,
|
||||||
|
CopyListFormFieldColumnDto,
|
||||||
|
ListFormFieldRequestDto,
|
||||||
|
} from '../../proxy/admin/list-form-field/models'
|
||||||
|
import apiService from '../api.service'
|
||||||
|
|
||||||
export const getListFormFields = (input: ListFormFieldRequestDto) =>
|
export const getListFormFields = (input: ListFormFieldRequestDto) =>
|
||||||
apiService.fetchData<PagedResultDto<ColumnFormatEditDto>>({
|
apiService.fetchData<PagedResultDto<ColumnFormatEditDto>>({
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { FieldsDefaultValueDto, GridOptionsEditDto } from '@/proxy/form'
|
import { ListFormJsonRowDto, ListFormWizardDto } from '../../proxy/admin/list-form/models'
|
||||||
import apiService from '@/services/api.service'
|
import { FieldsDefaultValueDto, GridOptionsEditDto } from '../../proxy/form'
|
||||||
import { ListFormJsonRowDto, ListFormWizardDto } from './models'
|
import apiService from '../api.service'
|
||||||
|
|
||||||
export const postListFormWizard = (input: ListFormWizardDto) =>
|
export const postListFormWizard = (input: ListFormWizardDto) =>
|
||||||
apiService.fetchData({
|
apiService.fetchData({
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import apiService, { Config } from '@/services/api.service'
|
import { PagedAndSortedResultRequestDto, PagedResultDto } from '../proxy'
|
||||||
import { AiDto } from './models'
|
import { AiDto } from '../proxy/ai'
|
||||||
import { PagedAndSortedResultRequestDto, PagedResultDto } from '../abp'
|
import apiService, { Config } from './api.service'
|
||||||
|
|
||||||
export class AiService {
|
export class AiService {
|
||||||
apiName = 'Default'
|
apiName = 'Default'
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import type {
|
import {
|
||||||
FailedRefreshResponse,
|
FailedRefreshResponse,
|
||||||
FailedSignInResponse,
|
FailedSignInResponse,
|
||||||
SignInCredential,
|
SignInCredential,
|
||||||
SignInResponse,
|
SignInResponse,
|
||||||
} from '@/@types/auth'
|
} from '../@types/auth'
|
||||||
import { AUTH_API_NAME } from '@/constants/app.constant'
|
import { AUTH_API_NAME } from '../constants/app.constant'
|
||||||
import apiService, { Config } from '@/services/api.service'
|
import apiService, { Config } from './api.service'
|
||||||
|
|
||||||
const authConfig: Config = {
|
const authConfig: Config = {
|
||||||
apiName: AUTH_API_NAME,
|
apiName: AUTH_API_NAME,
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import apiService from '@/services/api.service'
|
|
||||||
import { AxiosError } from 'axios'
|
import { AxiosError } from 'axios'
|
||||||
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const generateBackgroundWorkers = async () => {
|
export const generateBackgroundWorkers = async () => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import apiService from '@/services/api.service'
|
import { ChartDto, ChartEditDto, ChartJsonItemRowDto } from '../proxy/charts/models'
|
||||||
import { ChartDto, ChartEditDto, ChartJsonItemRowDto } from './models'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getChartByCode = (chartCode: string) =>
|
export const getChartByCode = (chartCode: string) =>
|
||||||
apiService.fetchData<ChartEditDto>({
|
apiService.fetchData<ChartEditDto>({
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import apiService from '@/services/api.service'
|
|
||||||
import { GridDto } from './models'
|
|
||||||
import { AxiosError, Method } from 'axios'
|
import { AxiosError, Method } from 'axios'
|
||||||
import { URLSearchParams } from 'url'
|
import { URLSearchParams } from 'url'
|
||||||
|
import { GridDto } from '../proxy/form'
|
||||||
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getList = (data: Record<string, string>) => {
|
export const getList = (data: Record<string, string>) => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import apiService from '@/services/api.service'
|
import { PagedResultDto } from '../proxy'
|
||||||
import { PagedResultDto } from '../abp'
|
import { GlobalSearchInputDto, GlobalSearchResultDto } from '../proxy/global-search/models'
|
||||||
import type { GlobalSearchInputDto, GlobalSearchResultDto } from './models'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getSystems = () =>
|
export const getSystems = () =>
|
||||||
apiService.fetchData<string[], void>({
|
apiService.fetchData<string[], void>({
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { ListResultDto } from '@/proxy'
|
import { ListResultDto } from '../proxy'
|
||||||
import {
|
import {
|
||||||
GetPermissionListResultDto,
|
GetPermissionListResultDto,
|
||||||
IdentityRoleDto,
|
IdentityRoleDto,
|
||||||
|
|
@ -7,9 +7,9 @@ import {
|
||||||
UpdatePermissionsDto,
|
UpdatePermissionsDto,
|
||||||
UserClaimModel,
|
UserClaimModel,
|
||||||
UserInfoViewModel,
|
UserInfoViewModel,
|
||||||
} from '@/proxy/admin'
|
} from '../proxy/admin'
|
||||||
import apiService from '@/services/api.service'
|
import { AuditLogDto } from '../proxy/auditLog/audit-log'
|
||||||
import { AuditLogDto } from '../auditLog/audit-log'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getRoles = (skipCount = 0, maxResultCount = 10) =>
|
export const getRoles = (skipCount = 0, maxResultCount = 10) =>
|
||||||
apiService.fetchData<ListResultDto<IdentityRoleDto>>({
|
apiService.fetchData<ListResultDto<IdentityRoleDto>>({
|
||||||
|
|
@ -2,8 +2,8 @@ import {
|
||||||
ListFormCustomizationDto,
|
ListFormCustomizationDto,
|
||||||
ListFormCustomizationForUserDto,
|
ListFormCustomizationForUserDto,
|
||||||
ListFormCustomizationTypeEnum,
|
ListFormCustomizationTypeEnum,
|
||||||
} from '@/proxy/form'
|
} from '../proxy/form'
|
||||||
import apiService from '@/services/api.service'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getListFormCustomization = (
|
export const getListFormCustomization = (
|
||||||
listFormCode: string,
|
listFormCode: string,
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import apiService from '@/services/api.service'
|
import { NotificationRuleDto } from '../proxy/notification/models'
|
||||||
import { NotificationRuleDto } from './models'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getMyNotificationTypes = () =>
|
export const getMyNotificationTypes = () =>
|
||||||
apiService.fetchData<string[]>({
|
apiService.fetchData<string[]>({
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import apiService, { Config } from '@/services/api.service'
|
import { PagedAndSortedResultRequestDto, PagedResultDto } from '../proxy'
|
||||||
import { PagedAndSortedResultRequestDto, PagedResultDto } from '../abp'
|
import { NotificationDto, NotificationFilterRequestDto } from '../proxy/notification/models'
|
||||||
import { NotificationDto, NotificationFilterRequestDto } from './models'
|
import apiService, { Config } from './api.service'
|
||||||
|
|
||||||
export const getList = (params: NotificationFilterRequestDto, config?: Partial<Config>) =>
|
export const getList = (params: NotificationFilterRequestDto, config?: Partial<Config>) =>
|
||||||
apiService.fetchData<PagedResultDto<NotificationDto>, PagedAndSortedResultRequestDto>(
|
apiService.fetchData<PagedResultDto<NotificationDto>, PagedAndSortedResultRequestDto>(
|
||||||
|
|
@ -36,12 +36,9 @@ export const updateSent = (notificationId: string, isSent: boolean) =>
|
||||||
params: { isSent },
|
params: { isSent },
|
||||||
})
|
})
|
||||||
|
|
||||||
export const postMyNotificationByNotificationRuleId = (data: {
|
export const postMyNotificationByNotificationRuleId = (data: { id: string; message: string }) =>
|
||||||
id: string
|
apiService.fetchData({
|
||||||
message: string
|
method: 'POST',
|
||||||
}) =>
|
url: `/api/app/notification/notification-by-notification-rule-id`,
|
||||||
apiService.fetchData({
|
data,
|
||||||
method: 'POST',
|
})
|
||||||
url: `/api/app/notification/notification-by-notification-rule-id`,
|
|
||||||
data,
|
|
||||||
})
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
import { ListResultDto, PagedResultDto } from '@/proxy'
|
import { ListResultDto, PagedResultDto } from '../proxy'
|
||||||
import apiService from '@/services/api.service'
|
import { IdentityRoleDto, IdentityUserDto } from '../proxy/admin'
|
||||||
import { IdentityRoleDto, IdentityUserDto } from '../models'
|
import {
|
||||||
import { CreateUpdateOrganizationUnitDto, OrganizationUnitDto } from './models'
|
CreateUpdateOrganizationUnitDto,
|
||||||
|
OrganizationUnitDto,
|
||||||
|
} from '../proxy/admin/organization-unit/models'
|
||||||
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const ouGet = (skipCount = 0, maxResultCount = 10) =>
|
export const ouGet = (skipCount = 0, maxResultCount = 10) =>
|
||||||
apiService.fetchData<PagedResultDto<OrganizationUnitDto>>({
|
apiService.fetchData<PagedResultDto<OrganizationUnitDto>>({
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import appConfig from '@/configs/app.config'
|
|
||||||
import { isLoginSuccess } from '@/proxy/account'
|
|
||||||
import { refreshToken } from '@/proxy/account/auth.service'
|
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { store } from '../store'
|
import { store } from '../store'
|
||||||
import { jwtDecode } from 'jwt-decode'
|
import { jwtDecode } from 'jwt-decode'
|
||||||
|
import appConfig from '../configs/app.config'
|
||||||
|
import { refreshToken } from './auth.service'
|
||||||
|
import { isLoginSuccess } from '../proxy/account/models'
|
||||||
|
|
||||||
const unauthorizedCode = [401]
|
const unauthorizedCode = [401]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import apiService from '@/services/api.service'
|
|
||||||
import type { MainGroupedSettingDto } from './models'
|
|
||||||
import { AxiosError } from 'axios'
|
import { AxiosError } from 'axios'
|
||||||
|
import { MainGroupedSettingDto } from '../proxy/settings'
|
||||||
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getList = () =>
|
export const getList = () =>
|
||||||
apiService.fetchData<MainGroupedSettingDto[]>({
|
apiService.fetchData<MainGroupedSettingDto[]>({
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { PagedResultDto } from '@/proxy'
|
import { PagedResultDto } from '../proxy'
|
||||||
import { CustomTenantDto, TenantDto } from '@/proxy/config/models'
|
import { SeedTenantDataInput } from '../proxy/admin/tenant/models'
|
||||||
import apiService from '@/services/api.service'
|
import { CustomTenantDto, TenantDto } from '../proxy/config/models'
|
||||||
import { SeedTenantDataInput } from './models'
|
import apiService from './api.service'
|
||||||
|
|
||||||
export const getTenants = (skipCount = 0, maxResultCount = 10) =>
|
export const getTenants = (skipCount = 0, maxResultCount = 10) =>
|
||||||
apiService.fetchData<PagedResultDto<TenantDto>>({
|
apiService.fetchData<PagedResultDto<TenantDto>>({
|
||||||
37
ui/src/services/tenants.ts
Normal file
37
ui/src/services/tenants.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
// scripts/tenant.ts
|
||||||
|
export type TenantDto = { name: string }
|
||||||
|
export type PagedResultDto<T> = { totalCount: number; items: T[] }
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function fetchTenantNames(apiUrl: string): Promise<string[]> {
|
||||||
|
try {
|
||||||
|
const url = `${apiUrl.replace(/\/$/, '')}/api/app/platform-tenant?skipCount=0&maxResultCount=1000`
|
||||||
|
|
||||||
|
const response = await fetch(url, {
|
||||||
|
headers: {
|
||||||
|
Accept: 'application/json',
|
||||||
|
'X-Requested-With': 'XMLHttpRequest',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
console.error('[vite] Tenant API hatası:', response.status, response.statusText)
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = (await response.json()) as PagedResultDto<TenantDto>
|
||||||
|
return (data.items ?? [])
|
||||||
|
.map((t) =>
|
||||||
|
String(t?.name || '')
|
||||||
|
.trim()
|
||||||
|
.toLowerCase(),
|
||||||
|
)
|
||||||
|
.filter(Boolean)
|
||||||
|
} catch (e) {
|
||||||
|
console.error('[vite] Tenant listesi alınamadı:', e)
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,22 +1,21 @@
|
||||||
import {
|
|
||||||
ColumnFormatDto,
|
|
||||||
EditingFormItemDto,
|
|
||||||
GridDto,
|
|
||||||
PlatformEditorTypes,
|
|
||||||
UiCommandButtonPositionTypeEnum,
|
|
||||||
UiLookupDataSourceTypeEnum,
|
|
||||||
} from '@/proxy/form'
|
|
||||||
import { dynamicFetch } from '@/proxy/form/form.service'
|
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
|
||||||
import { usePermission } from '@/utils/hooks/usePermission'
|
|
||||||
import { usePWA } from '@/utils/hooks/usePWA'
|
|
||||||
import { GridColumnData } from '@/views/list/GridColumnData'
|
|
||||||
import { addCss } from '@/views/list/Utils'
|
|
||||||
import { useDialogContext } from '@/views/shared/DialogContext'
|
|
||||||
import { DataGridTypes, IFormatProps } from 'devextreme-react/data-grid'
|
import { DataGridTypes, IFormatProps } from 'devextreme-react/data-grid'
|
||||||
import { DataType, HorizontalEdge, SortOrder, ValidationRule } from 'devextreme/common'
|
import { DataType, HorizontalEdge, SortOrder, ValidationRule } from 'devextreme/common'
|
||||||
import CustomStore from 'devextreme/data/custom_store'
|
import CustomStore from 'devextreme/data/custom_store'
|
||||||
import { SelectedFilterOperation } from 'devextreme/ui/data_grid'
|
import { SelectedFilterOperation } from 'devextreme/ui/data_grid'
|
||||||
|
import { dynamicFetch } from '../services/form.service'
|
||||||
|
import { useLocalization } from '../utils/hooks/useLocalization'
|
||||||
|
import { addCss } from '../views/list/Utils'
|
||||||
|
import { useDialogContext } from '../views/shared/DialogContext'
|
||||||
|
import { usePWA } from '../utils/hooks/usePWA'
|
||||||
|
import { usePermission } from '../utils/hooks/usePermission'
|
||||||
|
import { GridColumnData } from '../views/list/GridColumnData'
|
||||||
|
import {
|
||||||
|
ColumnFormatDto,
|
||||||
|
GridDto,
|
||||||
|
PlatformEditorTypes,
|
||||||
|
UiCommandButtonPositionTypeEnum,
|
||||||
|
UiLookupDataSourceTypeEnum,
|
||||||
|
} from '../proxy/form/models'
|
||||||
|
|
||||||
const cellTemplateMultiValue = (
|
const cellTemplateMultiValue = (
|
||||||
cellElement: HTMLElement,
|
cellElement: HTMLElement,
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import { MULTIVALUE_DELIMITER } from '@/constants/app.constant'
|
|
||||||
import { GridOptionsDto } from '@/proxy/form'
|
|
||||||
import { dynamicFetch } from '@/proxy/form/form.service'
|
|
||||||
import { GridColumnData } from '@/views/list/GridColumnData'
|
|
||||||
import { getLoadOptions, getServiceAddress, setGridPanelColor } from '@/views/list/Utils'
|
|
||||||
import DataGrid from 'devextreme-react/data-grid'
|
import DataGrid from 'devextreme-react/data-grid'
|
||||||
import PivotGrid from 'devextreme-react/pivot-grid'
|
import PivotGrid from 'devextreme-react/pivot-grid'
|
||||||
import CustomStore from 'devextreme/data/custom_store'
|
import CustomStore from 'devextreme/data/custom_store'
|
||||||
import { MutableRefObject, useCallback } from 'react'
|
import { MutableRefObject, useCallback } from 'react'
|
||||||
|
import { getLoadOptions, getServiceAddress, setGridPanelColor } from '../views/list/Utils'
|
||||||
|
import { GridOptionsDto } from '../proxy/form/models'
|
||||||
|
import { GridColumnData } from '../views/list/GridColumnData'
|
||||||
|
import { dynamicFetch } from '../services/form.service'
|
||||||
|
import { MULTIVALUE_DELIMITER } from '../constants/app.constant'
|
||||||
|
|
||||||
const filteredGridPanelColor = 'rgba(10, 200, 10, 0.5)' // kullanici tanimli filtre ile filtrelenmis gridin paneline ait renk
|
const filteredGridPanelColor = 'rgba(10, 200, 10, 0.5)' // kullanici tanimli filtre ile filtrelenmis gridin paneline ait renk
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
import { NavigationTree } from '@/@types/navigation'
|
|
||||||
import appConfig from '@/configs/app.config'
|
|
||||||
import {
|
|
||||||
ApplicationConfigurationDto,
|
|
||||||
ApplicationLocalizationRequestDto,
|
|
||||||
} from '@/proxy/config/models'
|
|
||||||
import { MenuDto } from '@/proxy/menus'
|
|
||||||
import getChildren from '@/utils/navigation'
|
|
||||||
import type { Action, Thunk } from 'easy-peasy'
|
import type { Action, Thunk } from 'easy-peasy'
|
||||||
import { action, thunk } from 'easy-peasy'
|
import { action, thunk } from 'easy-peasy'
|
||||||
import { Injections, StoreModel } from '.'
|
import { Injections, StoreModel } from '.'
|
||||||
import { getLocalization, setLocalization } from '../services/localization.service'
|
import { getLocalization, setLocalization } from '../services/localization.service'
|
||||||
|
import appConfig from '../configs/app.config'
|
||||||
|
import { NavigationTree } from '../@types/navigation'
|
||||||
|
import { MenuDto } from '../proxy/menus/models'
|
||||||
|
import getChildren from '../utils/navigation'
|
||||||
|
import {
|
||||||
|
ApplicationConfigurationDto,
|
||||||
|
ApplicationLocalizationRequestDto,
|
||||||
|
} from '../proxy/config/models'
|
||||||
|
|
||||||
export type Texts = Record<string, Record<string, string>>
|
export type Texts = Record<string, Record<string, string>>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { FieldsDefaultValueDto, GridOptionsEditDto } from '@/proxy/form'
|
|
||||||
import type { Action, Thunk } from 'easy-peasy'
|
import type { Action, Thunk } from 'easy-peasy'
|
||||||
import { action, thunk } from 'easy-peasy'
|
import { action, thunk } from 'easy-peasy'
|
||||||
import { Injections } from './store'
|
import { Injections } from './store'
|
||||||
import setNull from '@/utils/setNull'
|
import { FieldsDefaultValueDto, GridOptionsEditDto } from '../proxy/form/models'
|
||||||
|
import setNull from '../utils/setNull'
|
||||||
|
|
||||||
export interface AdminStoreModel {
|
export interface AdminStoreModel {
|
||||||
listFormValues: GridOptionsEditDto | undefined
|
listFormValues: GridOptionsEditDto | undefined
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { AVATAR_URL } from '@/constants/app.constant'
|
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import type { Action, ThunkOn } from 'easy-peasy'
|
import type { Action, ThunkOn } from 'easy-peasy'
|
||||||
import { action, thunkOn } from 'easy-peasy'
|
import { action, thunkOn } from 'easy-peasy'
|
||||||
import { Injections, StoreModel } from './store'
|
import { Injections, StoreModel } from './store'
|
||||||
|
import { AVATAR_URL } from '../constants/app.constant'
|
||||||
|
|
||||||
export interface AuthStoreModel {
|
export interface AuthStoreModel {
|
||||||
isRefreshing: boolean
|
isRefreshing: boolean
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
import { refreshToken } from '@/proxy/account/auth.service'
|
|
||||||
import { createStore, createTypedHooks, persist } from 'easy-peasy'
|
import { createStore, createTypedHooks, persist } from 'easy-peasy'
|
||||||
import {
|
import {
|
||||||
Config as ReduxStateSyncConfig,
|
Config as ReduxStateSyncConfig,
|
||||||
createStateSyncMiddleware,
|
createStateSyncMiddleware,
|
||||||
initMessageListener,
|
initMessageListener,
|
||||||
} from 'redux-state-sync'
|
} from 'redux-state-sync'
|
||||||
import * as abpConfigService from '../proxy/config/abpConfig.service'
|
import * as abpConfigService from '../services/abpConfig.service'
|
||||||
import * as listFormService from '../proxy/admin/list-form/list-form.service'
|
import * as listFormService from '../services/admin/list-form.service'
|
||||||
import { AbpConfigModel, abpConfigModel } from './abpConfig.model'
|
import { AbpConfigModel, abpConfigModel } from './abpConfig.model'
|
||||||
import { AdminModel, adminModel } from './admin.model'
|
import { AdminModel, adminModel } from './admin.model'
|
||||||
import { AuthModel, authModel } from './auth.model'
|
import { AuthModel, authModel } from './auth.model'
|
||||||
import { BaseModel, baseModel } from './base.model'
|
import { BaseModel, baseModel } from './base.model'
|
||||||
import { LocaleModel, localeModel } from './locale.model'
|
import { LocaleModel, localeModel } from './locale.model'
|
||||||
import { ThemeModel, themeModel } from './theme.model'
|
import { ThemeModel, themeModel } from './theme.model'
|
||||||
import { MenuService } from '@/services/menu.service'
|
import { refreshToken } from '../services/auth.service'
|
||||||
|
import { MenuService } from '../services/menu.service'
|
||||||
|
|
||||||
export interface StoreModel {
|
export interface StoreModel {
|
||||||
abpConfig: AbpConfigModel
|
abpConfig: AbpConfigModel
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import {
|
||||||
NAV_MODE_THEMED,
|
NAV_MODE_THEMED,
|
||||||
NAV_MODE_TRANSPARENT,
|
NAV_MODE_TRANSPARENT,
|
||||||
} from '../constants/theme.constant'
|
} from '../constants/theme.constant'
|
||||||
import { Direction, Mode, NavMode } from '@/@types/theme'
|
import { Direction, Mode, NavMode } from '../@types/theme'
|
||||||
|
|
||||||
export interface ThemeStoreModel {
|
export interface ThemeStoreModel {
|
||||||
themeColor: string
|
themeColor: string
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
|
import { useState } from 'react'
|
||||||
|
import { useNavigate } from 'react-router-dom'
|
||||||
import {
|
import {
|
||||||
sendAccountConfirmationCode,
|
sendAccountConfirmationCode,
|
||||||
verifyAccountConfirmationCode,
|
verifyAccountConfirmationCode,
|
||||||
} from '@/proxy/account/account.service'
|
} from '../../services/account.service'
|
||||||
import { useState } from 'react'
|
|
||||||
import { useNavigate } from 'react-router-dom'
|
|
||||||
|
|
||||||
function useAccount() {
|
function useAccount() {
|
||||||
const [message, setMessage] = useState('')
|
const [message, setMessage] = useState('')
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
import type {
|
import { jwtDecode } from 'jwt-decode'
|
||||||
|
import { useNavigate } from 'react-router-dom'
|
||||||
|
import useQuery from './useQuery'
|
||||||
|
import { useStoreActions, useStoreState } from '../../store/store'
|
||||||
|
import {
|
||||||
FailedSignInResponse,
|
FailedSignInResponse,
|
||||||
SignInCredential,
|
SignInCredential,
|
||||||
SignInResponse,
|
SignInResponse,
|
||||||
SignUpCredential,
|
SignUpCredential,
|
||||||
} from '@/@types/auth'
|
} from '../../@types/auth'
|
||||||
import appConfig from '@/configs/app.config'
|
import { signIn, signOut } from '../../services/auth.service'
|
||||||
import { REDIRECT_URL_KEY } from '@/constants/app.constant'
|
import { isLoginSuccess } from '../../proxy/account/models'
|
||||||
import { isLoginSuccess } from '@/proxy/account'
|
import { REDIRECT_URL_KEY } from '../../constants/app.constant'
|
||||||
import { register } from '@/proxy/account/account.service'
|
import appConfig from '../../configs/app.config'
|
||||||
import { signIn, signOut } from '@/proxy/account/auth.service'
|
import { register } from '../../services/account.service'
|
||||||
import { useStoreActions, useStoreState } from '@/store'
|
|
||||||
import { jwtDecode } from 'jwt-decode'
|
|
||||||
import { useNavigate } from 'react-router-dom'
|
|
||||||
import useQuery from './useQuery'
|
|
||||||
|
|
||||||
type Status = 'success' | 'failed' | 'error'
|
type Status = 'success' | 'failed' | 'error'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import AdaptableCard from '@/components/shared/AdaptableCard'
|
||||||
import Container from '@/components/shared/Container'
|
import Container from '@/components/shared/Container'
|
||||||
import NotificationChannels from '@/constants/notification-channel.enum'
|
import NotificationChannels from '@/constants/notification-channel.enum'
|
||||||
import { NotificationDto } from '@/proxy/notification/models'
|
import { NotificationDto } from '@/proxy/notification/models'
|
||||||
import { getList } from '@/proxy/notification/notification.service'
|
import { getList } from '@/services/notification.service'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import { Dictionary } from 'lodash'
|
import { Dictionary } from 'lodash'
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import { Tabs } from '@/components/ui'
|
import { Tabs } from '@/components/ui'
|
||||||
import { AdaptableCard } from '@/components/shared'
|
import { AdaptableCard } from '@/components/shared'
|
||||||
import { getAuditLogs } from '@/proxy/admin/identity.service'
|
|
||||||
import { AuditLogDto } from '@/proxy/auditLog/audit-log'
|
import { AuditLogDto } from '@/proxy/auditLog/audit-log'
|
||||||
|
import { getAuditLogs } from '@/services/identity.service'
|
||||||
|
|
||||||
function AuditLogs({
|
function AuditLogs({
|
||||||
open,
|
open,
|
||||||
|
|
|
||||||
|
|
@ -21,26 +21,15 @@ import Tr from '@/components/ui/Table/Tr'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin'
|
import { getRoles, getUsers } from '@/services/identity.service'
|
||||||
import { getRoles, getUsers } from '@/proxy/admin/identity.service'
|
|
||||||
import {
|
|
||||||
BreakDto,
|
|
||||||
ChartAnnotationDto,
|
|
||||||
ChartEditDto,
|
|
||||||
ChartPanesDto,
|
|
||||||
ChartSeriesDto,
|
|
||||||
ChartValueAxisDto,
|
|
||||||
} from '@/proxy/charts'
|
|
||||||
import {
|
import {
|
||||||
deleteChartJsonItem,
|
deleteChartJsonItem,
|
||||||
getChartByCode,
|
getChartByCode,
|
||||||
putChartJsonItem,
|
putChartJsonItem,
|
||||||
putCharts,
|
putCharts,
|
||||||
} from '@/proxy/charts/chart.service'
|
} from '@/services/chart.service'
|
||||||
import { LanguageInfo } from '@/proxy/config/models'
|
import { LanguageInfo } from '@/proxy/config/models'
|
||||||
import { getDataSources } from '@/proxy/data-source'
|
import { getDataSources } from '@/proxy/data-source'
|
||||||
import { DataSourceTypeEnum } from '@/proxy/form'
|
|
||||||
import { MenuDto } from '@/proxy/menus'
|
|
||||||
import { themeOptions, tooltipFormatListOptions } from '@/shared/options'
|
import { themeOptions, tooltipFormatListOptions } from '@/shared/options'
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
|
|
@ -81,6 +70,17 @@ import {
|
||||||
chartZoomAndPanKeyOptions,
|
chartZoomAndPanKeyOptions,
|
||||||
} from './options'
|
} from './options'
|
||||||
import { ChartDialogType, ChartOperation } from './types'
|
import { ChartDialogType, ChartOperation } from './types'
|
||||||
|
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
|
||||||
|
import { MenuDto } from '@/proxy/menus/models'
|
||||||
|
import { DataSourceTypeEnum } from '@/proxy/form/models'
|
||||||
|
import {
|
||||||
|
BreakDto,
|
||||||
|
ChartAnnotationDto,
|
||||||
|
ChartEditDto,
|
||||||
|
ChartPanesDto,
|
||||||
|
ChartSeriesDto,
|
||||||
|
ChartValueAxisDto,
|
||||||
|
} from '@/proxy/charts/models'
|
||||||
|
|
||||||
const chartPanesValidationSchema = object().shape({
|
const chartPanesValidationSchema = object().shape({
|
||||||
name: string().required(),
|
name: string().required(),
|
||||||
|
|
@ -293,9 +293,7 @@ function ChartEdit() {
|
||||||
<div className="lg:flex items-center justify-between mb-4 gap-3">
|
<div className="lg:flex items-center justify-between mb-4 gap-3">
|
||||||
<div className="mb-4 lg:mb-0">
|
<div className="mb-4 lg:mb-0">
|
||||||
<h4>
|
<h4>
|
||||||
<Link to={`/chart/${chartCode}`}>
|
<Link to={`/chart/${chartCode}`}>🔙 {chartCode}</Link>
|
||||||
🔙 {chartCode}
|
|
||||||
</Link>
|
|
||||||
</h4>
|
</h4>
|
||||||
{chartValues.isTenant && (
|
{chartValues.isTenant && (
|
||||||
<Alert showIcon className="mb-4" type="warning">
|
<Alert showIcon className="mb-4" type="warning">
|
||||||
|
|
@ -389,7 +387,6 @@ function ChartEdit() {
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
</TabContent>
|
</TabContent>
|
||||||
|
|
||||||
<TabContent value="database">
|
<TabContent value="database">
|
||||||
|
|
@ -3439,10 +3436,10 @@ function ChartEdit() {
|
||||||
width: 2,
|
width: 2,
|
||||||
label: {
|
label: {
|
||||||
visible: false,
|
visible: false,
|
||||||
backgroundColor: "#f05b41",
|
backgroundColor: '#f05b41',
|
||||||
customizeText: '',
|
customizeText: '',
|
||||||
format: '',
|
format: '',
|
||||||
font: null
|
font: null,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3652,32 +3649,20 @@ function ChartEdit() {
|
||||||
|
|
||||||
<Card className="my-2" header="Label">
|
<Card className="my-2" header="Label">
|
||||||
<FormItem label="Label Visible">
|
<FormItem label="Label Visible">
|
||||||
<Field
|
<Field name="label.visible" component={Checkbox} />
|
||||||
name="label.visible"
|
|
||||||
component={Checkbox}
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label="Background Color"
|
label="Background Color"
|
||||||
invalid={
|
invalid={errors.label?.backgroundColor && touched.label?.backgroundColor}
|
||||||
errors.label?.backgroundColor &&
|
|
||||||
touched.label?.backgroundColor
|
|
||||||
}
|
|
||||||
errorMessage={errors.label?.backgroundColor}
|
errorMessage={errors.label?.backgroundColor}
|
||||||
>
|
>
|
||||||
<Field
|
<Field type="text" name="label.backgroundColor" component={Input} />
|
||||||
type="text"
|
|
||||||
name="label.backgroundColor"
|
|
||||||
component={Input}
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label="Format"
|
label="Format"
|
||||||
invalid={
|
invalid={errors.label?.format && touched.label?.format}
|
||||||
errors.label?.format && touched.label?.format
|
|
||||||
}
|
|
||||||
errorMessage={errors.label?.format}
|
errorMessage={errors.label?.format}
|
||||||
>
|
>
|
||||||
<Field type="text" name="label.format">
|
<Field type="text" name="label.format">
|
||||||
|
|
@ -3698,16 +3683,10 @@ function ChartEdit() {
|
||||||
|
|
||||||
<FormItem
|
<FormItem
|
||||||
label="Customize Text"
|
label="Customize Text"
|
||||||
invalid={
|
invalid={errors.label?.customizeText && touched.label?.customizeText}
|
||||||
errors.label?.customizeText && touched.label?.customizeText
|
|
||||||
}
|
|
||||||
errorMessage={errors.label?.customizeText}
|
errorMessage={errors.label?.customizeText}
|
||||||
>
|
>
|
||||||
<Field
|
<Field type="text" name="label.customizeText" component={Input} />
|
||||||
type="text"
|
|
||||||
name="label.customizeText"
|
|
||||||
component={Input}
|
|
||||||
/>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,8 @@ import {
|
||||||
toast,
|
toast,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import { ROUTES_ENUM } from '@/routes/route.constant'
|
import { ROUTES_ENUM } from '@/routes/route.constant'
|
||||||
import { getPermissions } from '@/proxy/admin/identity.service'
|
|
||||||
import { postListFormWizard } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormWizardDto } from '@/proxy/admin/list-form/models'
|
import { ListFormWizardDto } from '@/proxy/admin/list-form/models'
|
||||||
import { getDataSources } from '@/proxy/data-source'
|
import { getDataSources } from '@/proxy/data-source'
|
||||||
import { DbTypeEnum, SelectCommandTypeEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
|
@ -24,6 +21,9 @@ import CreatableSelect from 'react-select/creatable'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { dbSourceTypeOptions, selectCommandTypeOptions } from './edit/options'
|
import { dbSourceTypeOptions, selectCommandTypeOptions } from './edit/options'
|
||||||
import { getMenus } from '@/services/menu.service'
|
import { getMenus } from '@/services/menu.service'
|
||||||
|
import { getPermissions } from '@/services/identity.service'
|
||||||
|
import { DbTypeEnum, SelectCommandTypeEnum } from '@/proxy/form/models'
|
||||||
|
import { postListFormWizard } from '@/services/admin/list-form.service'
|
||||||
|
|
||||||
const initialValues: ListFormWizardDto = {
|
const initialValues: ListFormWizardDto = {
|
||||||
listFormCode: '',
|
listFormCode: '',
|
||||||
|
|
@ -77,7 +77,7 @@ const Wizard = () => {
|
||||||
const response = await getDataSources()
|
const response = await getDataSources()
|
||||||
if (response.data?.items) {
|
if (response.data?.items) {
|
||||||
setDataSourceList(
|
setDataSourceList(
|
||||||
response.data.items.map((item) => ({
|
response.data.items.map((item: any) => ({
|
||||||
value: item.code,
|
value: item.code,
|
||||||
label: item.code,
|
label: item.code,
|
||||||
})),
|
})),
|
||||||
|
|
@ -94,7 +94,7 @@ const Wizard = () => {
|
||||||
const response = await getMenus()
|
const response = await getMenus()
|
||||||
if (response.data?.items) {
|
if (response.data?.items) {
|
||||||
setMenuList(
|
setMenuList(
|
||||||
response.data.items.map((item) => ({
|
response.data.items.map((item: any) => ({
|
||||||
value: item.code,
|
value: item.code,
|
||||||
label: item.displayName,
|
label: item.displayName,
|
||||||
})),
|
})),
|
||||||
|
|
@ -111,7 +111,7 @@ const Wizard = () => {
|
||||||
const response = await getPermissions('R', '')
|
const response = await getPermissions('R', '')
|
||||||
if (response.data?.groups) {
|
if (response.data?.groups) {
|
||||||
setPermissionGroupList(
|
setPermissionGroupList(
|
||||||
response.data.groups.map((item) => ({
|
response.data.groups.map((item: any) => ({
|
||||||
value: item.name,
|
value: item.name,
|
||||||
label: item.displayName,
|
label: item.displayName,
|
||||||
})),
|
})),
|
||||||
|
|
@ -204,10 +204,10 @@ const Wizard = () => {
|
||||||
options={permissionGroupList}
|
options={permissionGroupList}
|
||||||
value={
|
value={
|
||||||
values.permissionGroupName
|
values.permissionGroupName
|
||||||
? menuList?.find((o) => o.value === values.permissionGroupName) ?? {
|
? (menuList?.find((o) => o.value === values.permissionGroupName) ?? {
|
||||||
label: values.permissionGroupName,
|
label: values.permissionGroupName,
|
||||||
value: values.permissionGroupName,
|
value: values.permissionGroupName,
|
||||||
}
|
})
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
onChange={(option) => {
|
onChange={(option) => {
|
||||||
|
|
@ -239,10 +239,10 @@ const Wizard = () => {
|
||||||
options={menuList}
|
options={menuList}
|
||||||
value={
|
value={
|
||||||
values.menuParentCode
|
values.menuParentCode
|
||||||
? menuList?.find((o) => o.value === values.menuParentCode) ?? {
|
? (menuList?.find((o) => o.value === values.menuParentCode) ?? {
|
||||||
label: values.menuParentCode,
|
label: values.menuParentCode,
|
||||||
value: values.menuParentCode,
|
value: values.menuParentCode,
|
||||||
}
|
})
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
onChange={(option) => {
|
onChange={(option) => {
|
||||||
|
|
@ -329,12 +329,12 @@ const Wizard = () => {
|
||||||
options={dataSourceList}
|
options={dataSourceList}
|
||||||
value={
|
value={
|
||||||
values.dataSourceCode
|
values.dataSourceCode
|
||||||
? dataSourceList?.find(
|
? (dataSourceList?.find(
|
||||||
(o) => o.value === values.dataSourceCode,
|
(o) => o.value === values.dataSourceCode,
|
||||||
) ?? {
|
) ?? {
|
||||||
label: values.dataSourceCode,
|
label: values.dataSourceCode,
|
||||||
value: values.dataSourceCode,
|
value: values.dataSourceCode,
|
||||||
}
|
})
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
onChange={(option) => {
|
onChange={(option) => {
|
||||||
|
|
@ -385,7 +385,9 @@ const Wizard = () => {
|
||||||
field={field}
|
field={field}
|
||||||
form={form}
|
form={form}
|
||||||
options={selectCommandTypeOptions}
|
options={selectCommandTypeOptions}
|
||||||
value={selectCommandTypeOptions.find((o) => o.value === field.value)}
|
value={selectCommandTypeOptions.find(
|
||||||
|
(o: any) => o.value === field.value,
|
||||||
|
)}
|
||||||
onChange={(o) => form.setFieldValue(field.name, o?.value)}
|
onChange={(o) => form.setFieldValue(field.name, o?.value)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
@ -440,7 +442,7 @@ const Wizard = () => {
|
||||||
form={form}
|
form={form}
|
||||||
options={dbSourceTypeOptions}
|
options={dbSourceTypeOptions}
|
||||||
value={dbSourceTypeOptions?.filter(
|
value={dbSourceTypeOptions?.filter(
|
||||||
(o) => o.value === values.keyFieldDbSourceType,
|
(o: any) => o.value === values.keyFieldDbSourceType,
|
||||||
)}
|
)}
|
||||||
onChange={(o) => form.setFieldValue(field.name, o?.value)}
|
onChange={(o) => form.setFieldValue(field.name, o?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,12 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin'
|
|
||||||
import {
|
import {
|
||||||
deleteListFormCustomization,
|
deleteListFormCustomization,
|
||||||
getListFormCustomizationById,
|
getListFormCustomizationById,
|
||||||
postListFormCustomization,
|
postListFormCustomization,
|
||||||
putListFormCustomization,
|
putListFormCustomization,
|
||||||
} from '@/proxy/admin/list-form-customization/list-form-customization.service'
|
} from '@/services/admin/list-form-customization.service'
|
||||||
import { ListFormCustomizationDto, ListFormCustomizationTypeEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
|
@ -31,6 +29,8 @@ import { HiOutlineDocumentAdd } from 'react-icons/hi'
|
||||||
import { MdDelete } from 'react-icons/md'
|
import { MdDelete } from 'react-icons/md'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { listFormCustomizationOptions } from './options'
|
import { listFormCustomizationOptions } from './options'
|
||||||
|
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
|
||||||
|
import { ListFormCustomizationDto, ListFormCustomizationTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const customizationFormValidationSchema = Yup.object().shape({
|
const customizationFormValidationSchema = Yup.object().shape({
|
||||||
roleId: Yup.string().notRequired(),
|
roleId: Yup.string().notRequired(),
|
||||||
|
|
@ -119,7 +119,10 @@ function FormCustomization({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>
|
<Td>
|
||||||
{listFormCustomizationOptions.find((a) => a.value === row.customizationType)?.label}
|
{
|
||||||
|
listFormCustomizationOptions.find((a: any) => a.value === row.customizationType)
|
||||||
|
?.label
|
||||||
|
}
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.filterName}</Td>
|
<Td>{row.filterName}</Td>
|
||||||
<Td>{roleList.find((a) => a.value === row.roleId)?.label}</Td>
|
<Td>{roleList.find((a) => a.value === row.roleId)?.label}</Td>
|
||||||
|
|
@ -207,7 +210,7 @@ function FormCustomization({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={listFormCustomizationOptions}
|
options={listFormCustomizationOptions}
|
||||||
value={listFormCustomizationOptions.filter(
|
value={listFormCustomizationOptions.filter(
|
||||||
(option) => option.value === values.customizationType,
|
(option: any) => option.value === values.customizationType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,7 @@ import { Alert, Notification, Tabs, toast } from '@/components/ui'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import { IdentityRoleDto, IdentityUserDto, PermissionDefinitionRecord } from '@/proxy/admin'
|
|
||||||
import {
|
|
||||||
getRoles,
|
|
||||||
getUsers,
|
|
||||||
} from '@/proxy/admin/identity.service'
|
|
||||||
import { getListFormCustomizations } from '@/proxy/admin/list-form-customization/list-form-customization.service'
|
|
||||||
import { putListForms } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { LanguageInfo } from '@/proxy/config/models'
|
import { LanguageInfo } from '@/proxy/config/models'
|
||||||
import { GridOptionsEditDto, ListFormCustomizationDto } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreActions, useStoreState } from '@/store'
|
import { useStoreActions, useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -33,6 +25,11 @@ import FormTabSelect from './FormTabSelect'
|
||||||
import FormTabState from './FormTabState'
|
import FormTabState from './FormTabState'
|
||||||
import FormTabSubForm from './FormTabSubForm'
|
import FormTabSubForm from './FormTabSubForm'
|
||||||
import FormFields from './form-fields/FormFields'
|
import FormFields from './form-fields/FormFields'
|
||||||
|
import { putListForms } from '@/services/admin/list-form.service'
|
||||||
|
import { getRoles, getUsers } from '@/services/identity.service'
|
||||||
|
import { GridOptionsEditDto, ListFormCustomizationDto } from '@/proxy/form/models'
|
||||||
|
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
|
||||||
|
import { getListFormCustomizations } from '@/services/admin/list-form-customization.service'
|
||||||
|
|
||||||
export interface FormEditProps {
|
export interface FormEditProps {
|
||||||
onSubmit: (
|
onSubmit: (
|
||||||
|
|
@ -156,7 +153,7 @@ const FormEdit = () => {
|
||||||
<div className="mb-4 lg:mb-0">
|
<div className="mb-4 lg:mb-0">
|
||||||
<h4>
|
<h4>
|
||||||
<Link to={`/admin/list/${listFormCode}`}>
|
<Link to={`/admin/list/${listFormCode}`}>
|
||||||
🔙 {listFormCode} - {translate(`::${listFormValues.title}`)}
|
🔙 {listFormCode} - {translate(`::${listFormValues.title}`)}
|
||||||
</Link>
|
</Link>
|
||||||
</h4>
|
</h4>
|
||||||
{listFormValues.isTenant && (
|
{listFormValues.isTenant && (
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { UiCommandButtonPositionTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { useState } from 'react'
|
import { useState } from 'react'
|
||||||
|
|
@ -15,6 +14,7 @@ import { HiOutlineDocumentAdd } from 'react-icons/hi'
|
||||||
import { MdDelete } from 'react-icons/md'
|
import { MdDelete } from 'react-icons/md'
|
||||||
import JsonRowOpDialogCommand from './json-row-operations/JsonRowOpDialogCommand'
|
import JsonRowOpDialogCommand from './json-row-operations/JsonRowOpDialogCommand'
|
||||||
import { JsonRowDialogData } from './json-row-operations/types'
|
import { JsonRowDialogData } from './json-row-operations/types'
|
||||||
|
import { UiCommandButtonPositionTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
function FormTabCommands() {
|
function FormTabCommands() {
|
||||||
const [isJsonRowOpDialogOpen, setIsJsonRowOpDialogOpen] = useState(false)
|
const [isJsonRowOpDialogOpen, setIsJsonRowOpDialogOpen] = useState(false)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ import { Container } from '@/components/shared'
|
||||||
import { Button, Card, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
import { Button, Card, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { getDataSources } from '@/proxy/data-source'
|
import { getDataSources } from '@/proxy/data-source'
|
||||||
import { DataSourceTypeEnum, SelectCommandTypeEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -11,6 +10,7 @@ import { useEffect, useState } from 'react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { dbSourceTypeOptions, selectCommandTypeOptions } from './options'
|
import { dbSourceTypeOptions, selectCommandTypeOptions } from './options'
|
||||||
|
import { DataSourceTypeEnum, SelectCommandTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = Yup.object().shape({
|
const schema = Yup.object().shape({
|
||||||
isOrganizationUnit: Yup.bool(),
|
isOrganizationUnit: Yup.bool(),
|
||||||
|
|
@ -30,7 +30,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
|
||||||
const response = await getDataSources()
|
const response = await getDataSources()
|
||||||
if (response.data?.items) {
|
if (response.data?.items) {
|
||||||
setDataSourceList(
|
setDataSourceList(
|
||||||
response.data.items.map((a) => ({
|
response.data.items.map((a: any) => ({
|
||||||
value: a.code,
|
value: a.code,
|
||||||
label: a.code,
|
label: a.code,
|
||||||
})),
|
})),
|
||||||
|
|
@ -141,7 +141,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={selectCommandTypeOptions}
|
options={selectCommandTypeOptions}
|
||||||
value={selectCommandTypeOptions?.filter(
|
value={selectCommandTypeOptions?.filter(
|
||||||
(option) => option.value === values.selectCommandType,
|
(option: any) => option.value === values.selectCommandType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -213,7 +213,7 @@ function FormTabDatabaseDataSource(props: FormEditProps) {
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={dbSourceTypeOptions}
|
options={dbSourceTypeOptions}
|
||||||
value={dbSourceTypeOptions?.filter(
|
value={dbSourceTypeOptions?.filter(
|
||||||
(option) => option.value === values.keyFieldDbSourceType,
|
(option: any) => option.value === values.keyFieldDbSourceType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormDataQueryByCode } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { FieldCustomValueTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, Form, Formik } from 'formik'
|
import { Field, Form, Formik } from 'formik'
|
||||||
|
|
@ -19,6 +17,8 @@ import { object, string } from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { JsonRowDialogData } from './json-row-operations/types'
|
import { JsonRowDialogData } from './json-row-operations/types'
|
||||||
import { dbSourceTypeOptions } from './options'
|
import { dbSourceTypeOptions } from './options'
|
||||||
|
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
|
||||||
|
import { getListFormDataQueryByCode } from '@/services/admin/list-form.service'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
deleteServiceAddress: string(),
|
deleteServiceAddress: string(),
|
||||||
|
|
@ -158,7 +158,7 @@ function FormTabDatabaseDelete({
|
||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{initialValues.deleteFieldsDefaultValueDto.map((row, index) => (
|
{initialValues.deleteFieldsDefaultValueDto.map((row: any, index: number) => (
|
||||||
<Tr key={row.fieldName}>
|
<Tr key={row.fieldName}>
|
||||||
<Td>
|
<Td>
|
||||||
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
||||||
|
|
@ -202,7 +202,7 @@ function FormTabDatabaseDelete({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.fieldName}</Td>
|
<Td>{row.fieldName}</Td>
|
||||||
<Td>{dbSourceTypeOptions.find((a) => a.value === row.fieldDbType)?.label}</Td>
|
<Td>{dbSourceTypeOptions.find((a: any) => a.value === row.fieldDbType)?.label}</Td>
|
||||||
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
||||||
<Td>{row.value}</Td>
|
<Td>{row.value}</Td>
|
||||||
<Td className="break-all">{row.sqlQuery}</Td>
|
<Td className="break-all">{row.sqlQuery}</Td>
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormDataQueryByCode } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { FieldCustomValueTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, Form, Formik } from 'formik'
|
import { Field, Form, Formik } from 'formik'
|
||||||
|
|
@ -19,6 +17,8 @@ import { object, string } from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { JsonRowDialogData } from './json-row-operations/types'
|
import { JsonRowDialogData } from './json-row-operations/types'
|
||||||
import { dbSourceTypeOptions } from './options'
|
import { dbSourceTypeOptions } from './options'
|
||||||
|
import { getListFormDataQueryByCode } from '@/services/admin/list-form.service'
|
||||||
|
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
insertServiceAddress: string(),
|
insertServiceAddress: string(),
|
||||||
|
|
@ -158,7 +158,7 @@ function FormTabDatabaseInsert({
|
||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{initialValues.insertFieldsDefaultValueDto.map((row, index) => (
|
{initialValues.insertFieldsDefaultValueDto.map((row: any, index: number) => (
|
||||||
<Tr key={row.fieldName}>
|
<Tr key={row.fieldName}>
|
||||||
<Td>
|
<Td>
|
||||||
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
||||||
|
|
@ -202,7 +202,7 @@ function FormTabDatabaseInsert({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.fieldName}</Td>
|
<Td>{row.fieldName}</Td>
|
||||||
<Td>{dbSourceTypeOptions.find((a) => a.value === row.fieldDbType)?.label}</Td>
|
<Td>{dbSourceTypeOptions.find((a: any) => a.value === row.fieldDbType)?.label}</Td>
|
||||||
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
||||||
<Td>{row.value}</Td>
|
<Td>{row.value}</Td>
|
||||||
<Td className="break-all">{row.sqlQuery}</Td>
|
<Td className="break-all">{row.sqlQuery}</Td>
|
||||||
|
|
@ -268,7 +268,7 @@ function FormTabDatabaseInsert({
|
||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{initialValues.formFieldsDefaultValueDto.map((row, index) => (
|
{initialValues.formFieldsDefaultValueDto.map((row: any, index: number) => (
|
||||||
<Tr key={row.fieldName}>
|
<Tr key={row.fieldName}>
|
||||||
<Td>
|
<Td>
|
||||||
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
||||||
|
|
@ -310,7 +310,7 @@ function FormTabDatabaseInsert({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.fieldName}</Td>
|
<Td>{row.fieldName}</Td>
|
||||||
<Td>{dbSourceTypeOptions.find((a) => a.value === row.fieldDbType)?.label}</Td>
|
<Td>{dbSourceTypeOptions.find((a: any) => a.value === row.fieldDbType)?.label}</Td>
|
||||||
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
||||||
<Td>{row.value}</Td>
|
<Td>{row.value}</Td>
|
||||||
<Td className="break-all">{row.sqlQuery}</Td>
|
<Td className="break-all">{row.sqlQuery}</Td>
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormSelectQueryByCode } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { FieldCustomValueTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, Form, Formik } from 'formik'
|
import { Field, Form, Formik } from 'formik'
|
||||||
|
|
@ -19,6 +17,8 @@ import { object, string } from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { JsonRowDialogData } from './json-row-operations/types'
|
import { JsonRowDialogData } from './json-row-operations/types'
|
||||||
import { dbSourceTypeOptions } from './options'
|
import { dbSourceTypeOptions } from './options'
|
||||||
|
import { getListFormSelectQueryByCode } from '@/services/admin/list-form.service'
|
||||||
|
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
sortMode: string(),
|
sortMode: string(),
|
||||||
|
|
@ -151,7 +151,7 @@ function FormTabDatabaseSelect({
|
||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{initialValues.selectFieldsDefaultValueDto.map((row, index) => (
|
{initialValues.selectFieldsDefaultValueDto.map((row: any, index: number) => (
|
||||||
<Tr key={row.fieldName}>
|
<Tr key={row.fieldName}>
|
||||||
<Td>
|
<Td>
|
||||||
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
||||||
|
|
@ -195,7 +195,7 @@ function FormTabDatabaseSelect({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.fieldName}</Td>
|
<Td>{row.fieldName}</Td>
|
||||||
<Td>{dbSourceTypeOptions.find((a) => a.value === row.fieldDbType)?.label}</Td>
|
<Td>{dbSourceTypeOptions.find((a: any) => a.value === row.fieldDbType)?.label}</Td>
|
||||||
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
||||||
<Td>{row.value}</Td>
|
<Td>{row.value}</Td>
|
||||||
<Td className="break-all">{row.sqlQuery}</Td>
|
<Td className="break-all">{row.sqlQuery}</Td>
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormDataQueryByCode } from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { FieldCustomValueTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, Form, Formik } from 'formik'
|
import { Field, Form, Formik } from 'formik'
|
||||||
|
|
@ -19,6 +17,8 @@ import { object, string } from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { JsonRowDialogData } from './json-row-operations/types'
|
import { JsonRowDialogData } from './json-row-operations/types'
|
||||||
import { dbSourceTypeOptions } from './options'
|
import { dbSourceTypeOptions } from './options'
|
||||||
|
import { getListFormDataQueryByCode } from '@/services/admin/list-form.service'
|
||||||
|
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
updateServiceAddress: string(),
|
updateServiceAddress: string(),
|
||||||
|
|
@ -158,7 +158,7 @@ function FormTabDatabaseUpdate({
|
||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{initialValues.updateFieldsDefaultValueDto.map((row, index) => (
|
{initialValues.updateFieldsDefaultValueDto.map((row: any, index: number) => (
|
||||||
<Tr key={row.fieldName}>
|
<Tr key={row.fieldName}>
|
||||||
<Td>
|
<Td>
|
||||||
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
<div className="flex-wrap inline-flex xl:flex items-center gap-2">
|
||||||
|
|
@ -202,7 +202,7 @@ function FormTabDatabaseUpdate({
|
||||||
</div>
|
</div>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>{row.fieldName}</Td>
|
<Td>{row.fieldName}</Td>
|
||||||
<Td>{dbSourceTypeOptions.find((a) => a.value === row.fieldDbType)?.label}</Td>
|
<Td>{dbSourceTypeOptions.find((a: any) => a.value === row.fieldDbType)?.label}</Td>
|
||||||
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
<Td>{FieldCustomValueTypeEnum[row.customValueType]}</Td>
|
||||||
<Td>{row.value}</Td>
|
<Td>{row.value}</Td>
|
||||||
<Td className="break-all">{row.sqlQuery}</Td>
|
<Td className="break-all">{row.sqlQuery}</Td>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import {
|
||||||
Tabs,
|
Tabs,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/models'
|
||||||
import { GridOptionsSortModeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { ApplyFilterMode } from 'devextreme/common/grids'
|
import { ApplyFilterMode } from 'devextreme/common/grids'
|
||||||
|
|
@ -21,6 +20,7 @@ import { applyFilterOptions, sortModeOptions } from './options'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
|
import { GridOptionsSortModeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({})
|
const validationSchema = Yup.object().shape({})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { object, string } from 'yup'
|
import { object, string } from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { getPermissionsList } from '@/proxy/admin/identity.service'
|
|
||||||
import { PermissionDefinitionRecord } from '@/proxy/admin/models'
|
import { PermissionDefinitionRecord } from '@/proxy/admin/models'
|
||||||
|
import { getPermissionsList } from '@/services/identity.service'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
c: string(),
|
c: string(),
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ function FormTabSelect(props: FormEditProps) {
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={selectionModeOptions}
|
options={selectionModeOptions}
|
||||||
value={selectionModeOptions?.filter(
|
value={selectionModeOptions?.filter(
|
||||||
(option) => option.value === values.selectionDto.mode,
|
(option: any) => option.value === values.selectionDto.mode,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,8 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormFieldById } from '@/proxy/admin/list-form-field/list-form-field.service'
|
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import {
|
|
||||||
ColumnRowTypeListOptions,
|
|
||||||
ColumnStylingDto,
|
|
||||||
ColumnValidationComparisonTypeEnum,
|
|
||||||
} from '@/proxy/form'
|
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import setNull from '@/utils/setNull'
|
import setNull from '@/utils/setNull'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
|
@ -33,6 +28,12 @@ import { MdCheck, MdDelete } from 'react-icons/md'
|
||||||
import { object, string } from 'yup'
|
import { object, string } from 'yup'
|
||||||
import { columnRowTypeListOptions, columnValidationComparisonTypeListOptions } from '../options'
|
import { columnRowTypeListOptions, columnValidationComparisonTypeListOptions } from '../options'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import { getListFormFieldById } from '@/services/admin/list-form-field.service'
|
||||||
|
import {
|
||||||
|
ColumnRowTypeListOptions,
|
||||||
|
ColumnStylingDto,
|
||||||
|
ColumnValidationComparisonTypeEnum,
|
||||||
|
} from '@/proxy/form/models'
|
||||||
|
|
||||||
const NewItem: ColumnStylingDto = {
|
const NewItem: ColumnStylingDto = {
|
||||||
rowType: ColumnRowTypeListOptions.Data,
|
rowType: ColumnRowTypeListOptions.Data,
|
||||||
|
|
@ -233,7 +234,7 @@ function FormFieldTabConditionalFormatting({
|
||||||
form={form}
|
form={form}
|
||||||
options={columnRowTypeListOptions}
|
options={columnRowTypeListOptions}
|
||||||
value={columnRowTypeListOptions.filter(
|
value={columnRowTypeListOptions.filter(
|
||||||
(option) => option.value === values.rowType,
|
(option: any) => option.value === values.rowType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -263,7 +264,7 @@ function FormFieldTabConditionalFormatting({
|
||||||
form={form}
|
form={form}
|
||||||
options={columnValidationComparisonTypeListOptions}
|
options={columnValidationComparisonTypeListOptions}
|
||||||
value={columnValidationComparisonTypeListOptions.filter(
|
value={columnValidationComparisonTypeListOptions.filter(
|
||||||
(option) => option.value === values.condition,
|
(option: any) => option.value === values.condition,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
import { Container } from '@/components/shared'
|
import { Container } from '@/components/shared'
|
||||||
import { Button, Checkbox, FormContainer, FormItem, Select } from '@/components/ui'
|
import { Button, Checkbox, FormContainer, FormItem, Select } from '@/components/ui'
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import { FixedPositionEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import { bool, object, string } from 'yup'
|
import { bool, object, string } from 'yup'
|
||||||
import { fixedPositionOptions } from '../options'
|
import { fixedPositionOptions } from '../options'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import { FixedPositionEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
columnCustomizationDto: object()
|
columnCustomizationDto: object()
|
||||||
|
|
@ -61,7 +61,8 @@ function FormFieldTabCustomization({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={fixedPositionOptions}
|
options={fixedPositionOptions}
|
||||||
value={fixedPositionOptions.filter(
|
value={fixedPositionOptions.filter(
|
||||||
(option) => option.value === values?.columnCustomizationDto?.fixedPosition,
|
(option: any) =>
|
||||||
|
option.value === values?.columnCustomizationDto?.fixedPosition,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ function FormFieldTabDetails({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={dbSourceTypeOptions}
|
options={dbSourceTypeOptions}
|
||||||
value={dbSourceTypeOptions.filter(
|
value={dbSourceTypeOptions.filter(
|
||||||
(option) => option.value === values.sourceDbType,
|
(option: any) => option.value === values.sourceDbType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
import { Container } from '@/components/shared'
|
import { Container } from '@/components/shared'
|
||||||
import { Button, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
import { Button, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import { ColumnCascadeFilterOperatorEnum, UiLookupDataSourceTypeEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import { bool, number, object, string } from 'yup'
|
import { number, object, string } from 'yup'
|
||||||
import { cascadeFilterOperator, columnLookupDataSourceTypeListOptions } from '../options'
|
import { cascadeFilterOperator, columnLookupDataSourceTypeListOptions } from '../options'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import { ColumnCascadeFilterOperatorEnum, UiLookupDataSourceTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
lookupDto: object()
|
lookupDto: object()
|
||||||
|
|
@ -67,7 +67,7 @@ function FormFieldTabLookup({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={columnLookupDataSourceTypeListOptions}
|
options={columnLookupDataSourceTypeListOptions}
|
||||||
value={columnLookupDataSourceTypeListOptions.filter(
|
value={columnLookupDataSourceTypeListOptions.filter(
|
||||||
(option) => option.value === values.lookupDto?.dataSourceType,
|
(option: any) => option.value === values.lookupDto?.dataSourceType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -159,7 +159,7 @@ function FormFieldTabLookup({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={cascadeFilterOperator}
|
options={cascadeFilterOperator}
|
||||||
value={cascadeFilterOperator.filter(
|
value={cascadeFilterOperator.filter(
|
||||||
(option) => option.value === values.lookupDto?.cascadeFilterOperator,
|
(option: any) => option.value === values.lookupDto?.cascadeFilterOperator,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
import { Container } from '@/components/shared'
|
import { Container } from '@/components/shared'
|
||||||
import { Button, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
import { Button, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import { SortDirectionEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import { bool, number, object, string } from 'yup'
|
import { bool, number, object, string } from 'yup'
|
||||||
import { sortDirectionOptions } from '../options'
|
import { sortDirectionOptions } from '../options'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import { SortDirectionEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
listOrderNo: number(),
|
listOrderNo: number(),
|
||||||
|
|
@ -74,7 +74,7 @@ function FormFieldTabOptions({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={sortDirectionOptions}
|
options={sortDirectionOptions}
|
||||||
value={sortDirectionOptions.filter(
|
value={sortDirectionOptions.filter(
|
||||||
(option) => option.value === values.sortDirection,
|
(option: any) => option.value === values.sortDirection,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { Container } from '@/components/shared'
|
import { Container } from '@/components/shared'
|
||||||
import { Button, Checkbox, FormContainer, FormItem, Select } from '@/components/ui'
|
import { Button, Checkbox, FormContainer, FormItem, Select } from '@/components/ui'
|
||||||
import { getPermissions } from '@/proxy/admin/identity.service'
|
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -8,6 +7,7 @@ import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { bool, object, string } from 'yup'
|
import { bool, object, string } from 'yup'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import { getPermissions } from '@/services/identity.service'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
permissionDto: object().shape({
|
permissionDto: object().shape({
|
||||||
|
|
@ -34,8 +34,8 @@ function FormFieldTabPermissions({
|
||||||
const response = await getPermissions('R')
|
const response = await getPermissions('R')
|
||||||
if (response.data) {
|
if (response.data) {
|
||||||
setPermissionOptions(
|
setPermissionOptions(
|
||||||
response.data.groups.flatMap((group) =>
|
response.data.groups.flatMap((group: any) =>
|
||||||
group.permissions.map((permission) => ({
|
group.permissions.map((permission: any) => ({
|
||||||
value: permission.name,
|
value: permission.name,
|
||||||
label: permission.name,
|
label: permission.name,
|
||||||
})),
|
})),
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ function FormFieldTabPivotSetting({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={pivotSettingsAreaOptions}
|
options={pivotSettingsAreaOptions}
|
||||||
value={pivotSettingsAreaOptions.filter(
|
value={pivotSettingsAreaOptions.filter(
|
||||||
(option) => option.value === values.pivotSettingsDto?.area,
|
(option: any) => option.value === values.pivotSettingsDto?.area,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -132,7 +132,7 @@ function FormFieldTabPivotSetting({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={columnSummaryTypeListOptions}
|
options={columnSummaryTypeListOptions}
|
||||||
value={columnSummaryTypeListOptions.filter(
|
value={columnSummaryTypeListOptions.filter(
|
||||||
(option) => option.value === values.pivotSettingsDto?.summaryType,
|
(option: any) => option.value === values.pivotSettingsDto?.summaryType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -160,7 +160,7 @@ function FormFieldTabPivotSetting({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={pivotSettingsGroupIntervalOptions}
|
options={pivotSettingsGroupIntervalOptions}
|
||||||
value={pivotSettingsGroupIntervalOptions.filter(
|
value={pivotSettingsGroupIntervalOptions.filter(
|
||||||
(option) => option.value === values.pivotSettingsDto?.groupInterval,
|
(option: any) => option.value === values.pivotSettingsDto?.groupInterval,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -186,7 +186,7 @@ function FormFieldTabPivotSetting({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={pivotSortDirectionOptions}
|
options={pivotSortDirectionOptions}
|
||||||
value={pivotSortDirectionOptions.filter(
|
value={pivotSortDirectionOptions.filter(
|
||||||
(option) => option.value === values.pivotSettingsDto?.sortOrder,
|
(option: any) => option.value === values.pivotSettingsDto?.sortOrder,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,9 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { getListFormFieldById } from '@/proxy/admin/list-form-field/list-form-field.service'
|
import { getListFormFieldById } from '@/services/admin/list-form-field.service'
|
||||||
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
import { ColumnFormatEditDto, ListFormFieldEditTabs } from '@/proxy/admin/list-form-field/models'
|
||||||
import {
|
|
||||||
ColumnValidationComparisonTypeEnum,
|
|
||||||
ColumnValidationTypeListEnum,
|
|
||||||
ValidationRuleDto,
|
|
||||||
} from '@/proxy/form'
|
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import setNull from '@/utils/setNull'
|
import setNull from '@/utils/setNull'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
|
@ -36,6 +32,11 @@ import {
|
||||||
columnValidationTypeListOptions,
|
columnValidationTypeListOptions,
|
||||||
} from '../options'
|
} from '../options'
|
||||||
import { FormFieldEditProps } from './FormFields'
|
import { FormFieldEditProps } from './FormFields'
|
||||||
|
import {
|
||||||
|
ColumnValidationComparisonTypeEnum,
|
||||||
|
ColumnValidationTypeListEnum,
|
||||||
|
ValidationRuleDto,
|
||||||
|
} from '@/proxy/form/models'
|
||||||
|
|
||||||
const NewItem: ValidationRuleDto = {
|
const NewItem: ValidationRuleDto = {
|
||||||
type: ColumnValidationTypeListEnum.None,
|
type: ColumnValidationTypeListEnum.None,
|
||||||
|
|
@ -244,7 +245,7 @@ function FormFieldTabValidationRules({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={columnValidationTypeListOptions}
|
options={columnValidationTypeListOptions}
|
||||||
value={columnValidationTypeListOptions.filter(
|
value={columnValidationTypeListOptions.filter(
|
||||||
(option) => option.value === values.type,
|
(option: any) => option.value === values.type,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -304,7 +305,7 @@ function FormFieldTabValidationRules({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={columnValidationComparisonTypeListOptions}
|
options={columnValidationComparisonTypeListOptions}
|
||||||
value={columnValidationComparisonTypeListOptions.filter(
|
value={columnValidationComparisonTypeListOptions.filter(
|
||||||
(option) => option.value === values.comparisonType,
|
(option: any) => option.value === values.comparisonType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,13 @@ import THead from '@/components/ui/Table/THead'
|
||||||
import Td from '@/components/ui/Table/Td'
|
import Td from '@/components/ui/Table/Td'
|
||||||
import Th from '@/components/ui/Table/Th'
|
import Th from '@/components/ui/Table/Th'
|
||||||
import Tr from '@/components/ui/Table/Tr'
|
import Tr from '@/components/ui/Table/Tr'
|
||||||
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin'
|
|
||||||
import {
|
import {
|
||||||
deleteListFormField,
|
deleteListFormField,
|
||||||
getListFormFields,
|
getListFormFields,
|
||||||
postListFormField,
|
postListFormField,
|
||||||
postListFormFieldCopy,
|
postListFormFieldCopy,
|
||||||
putListFormField,
|
putListFormField,
|
||||||
} from '@/proxy/admin/list-form-field/list-form-field.service'
|
} from '@/services/admin/list-form-field.service'
|
||||||
import {
|
import {
|
||||||
ColumnFormatEditDto,
|
ColumnFormatEditDto,
|
||||||
CopyListFormFieldColumnDto,
|
CopyListFormFieldColumnDto,
|
||||||
|
|
@ -43,6 +42,7 @@ import { MdDelete } from 'react-icons/md'
|
||||||
import { number, object, string } from 'yup'
|
import { number, object, string } from 'yup'
|
||||||
import FormFieldEdit from './FormFieldEdit'
|
import FormFieldEdit from './FormFieldEdit'
|
||||||
import { dbSourceTypeOptions } from '../options'
|
import { dbSourceTypeOptions } from '../options'
|
||||||
|
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
|
||||||
|
|
||||||
export interface FormFieldEditProps {
|
export interface FormFieldEditProps {
|
||||||
onSubmit: (
|
onSubmit: (
|
||||||
|
|
@ -470,7 +470,7 @@ function FormFields({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={dbSourceTypeOptions}
|
options={dbSourceTypeOptions}
|
||||||
value={dbSourceTypeOptions.filter(
|
value={dbSourceTypeOptions.filter(
|
||||||
(option) => option.value === values.sourceDbType,
|
(option: any) => option.value === values.sourceDbType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,7 @@ import {
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import {
|
|
||||||
deleteListFormJsonRow,
|
|
||||||
getListFormJsonRow,
|
|
||||||
postListFormJsonRow,
|
|
||||||
putListFormJsonRow,
|
|
||||||
} from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
||||||
import { UiCommandButtonPositionTypeEnum } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreActions, useStoreState } from '@/store'
|
import { useStoreActions, useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -28,6 +21,13 @@ import { Dispatch, SetStateAction, useEffect, useState } from 'react'
|
||||||
import { number, object, string } from 'yup'
|
import { number, object, string } from 'yup'
|
||||||
import { commandButtonPositionTypeOptions, urlOptions } from '../options'
|
import { commandButtonPositionTypeOptions, urlOptions } from '../options'
|
||||||
import { JsonRowDialogData } from './types'
|
import { JsonRowDialogData } from './types'
|
||||||
|
import {
|
||||||
|
deleteListFormJsonRow,
|
||||||
|
getListFormJsonRow,
|
||||||
|
postListFormJsonRow,
|
||||||
|
putListFormJsonRow,
|
||||||
|
} from '@/services/admin/list-form.service'
|
||||||
|
import { UiCommandButtonPositionTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
buttonPosition: number().required('Button Position Required'),
|
buttonPosition: number().required('Button Position Required'),
|
||||||
|
|
@ -174,7 +174,7 @@ function JsonRowOpDialogCommand({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={commandButtonPositionTypeOptions}
|
options={commandButtonPositionTypeOptions}
|
||||||
value={commandButtonPositionTypeOptions?.filter(
|
value={commandButtonPositionTypeOptions?.filter(
|
||||||
(option) => option.value === values.buttonPosition,
|
(option: any) => option.value === values.buttonPosition,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,7 @@ import {
|
||||||
Select,
|
Select,
|
||||||
toast,
|
toast,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import {
|
|
||||||
deleteListFormJsonRow,
|
|
||||||
getListFormJsonRow,
|
|
||||||
postListFormJsonRow,
|
|
||||||
putListFormJsonRow,
|
|
||||||
} from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormEditTabs, ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
import { ListFormEditTabs, ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
||||||
import { FieldCustomValueTypeEnum } from '@/proxy/form'
|
|
||||||
import { useStoreActions } from '@/store'
|
import { useStoreActions } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
|
@ -23,6 +16,13 @@ import { Dispatch, SetStateAction } from 'react'
|
||||||
import { object, string } from 'yup'
|
import { object, string } from 'yup'
|
||||||
import { customValueTypeOptions, dbSourceTypeOptions } from '../options'
|
import { customValueTypeOptions, dbSourceTypeOptions } from '../options'
|
||||||
import { JsonRowDialogData } from './types'
|
import { JsonRowDialogData } from './types'
|
||||||
|
import {
|
||||||
|
deleteListFormJsonRow,
|
||||||
|
getListFormJsonRow,
|
||||||
|
postListFormJsonRow,
|
||||||
|
putListFormJsonRow,
|
||||||
|
} from '@/services/admin/list-form.service'
|
||||||
|
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
fieldName: string().required('Field Name Required'),
|
fieldName: string().required('Field Name Required'),
|
||||||
|
|
@ -193,7 +193,7 @@ function JsonRowOpDialogDatabase({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={dbSourceTypeOptions}
|
options={dbSourceTypeOptions}
|
||||||
value={dbSourceTypeOptions?.filter(
|
value={dbSourceTypeOptions?.filter(
|
||||||
(option) => option.value === values.fieldDbType,
|
(option: any) => option.value === values.fieldDbType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -10,15 +10,8 @@ import {
|
||||||
Select,
|
Select,
|
||||||
toast,
|
toast,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import { getListFormFields } from '@/proxy/admin/list-form-field/list-form-field.service'
|
|
||||||
import {
|
|
||||||
deleteListFormJsonRow,
|
|
||||||
getListFormJsonRow,
|
|
||||||
postListFormJsonRow,
|
|
||||||
putListFormJsonRow,
|
|
||||||
} from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
||||||
import { EditingFormItemDto, PlatformEditorTypes } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreActions } from '@/store'
|
import { useStoreActions } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -40,6 +33,14 @@ import {
|
||||||
} from '../options'
|
} from '../options'
|
||||||
import { JsonRowDialogData } from './types'
|
import { JsonRowDialogData } from './types'
|
||||||
import CreatableSelect from 'react-select/creatable'
|
import CreatableSelect from 'react-select/creatable'
|
||||||
|
import { getListFormFields } from '@/services/admin/list-form-field.service'
|
||||||
|
import {
|
||||||
|
deleteListFormJsonRow,
|
||||||
|
getListFormJsonRow,
|
||||||
|
postListFormJsonRow,
|
||||||
|
putListFormJsonRow,
|
||||||
|
} from '@/services/admin/list-form.service'
|
||||||
|
import { EditingFormItemDto, PlatformEditorTypes } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
itemType: string().required('Item Type Required'),
|
itemType: string().required('Item Type Required'),
|
||||||
|
|
@ -291,7 +292,7 @@ function JsonRowOpDialogEditForm({
|
||||||
<div className="w-1/12"></div>
|
<div className="w-1/12"></div>
|
||||||
</div>
|
</div>
|
||||||
{values.items && values.items.length > 0 ? (
|
{values.items && values.items.length > 0 ? (
|
||||||
values.items.map((item: EditingFormItemDto, index) => (
|
values.items.map((item: EditingFormItemDto, index: number) => (
|
||||||
<div key={`items-${index}`} className="flex m-1">
|
<div key={`items-${index}`} className="flex m-1">
|
||||||
<div className="w-1/12">
|
<div className="w-1/12">
|
||||||
<Field
|
<Field
|
||||||
|
|
@ -316,10 +317,15 @@ function JsonRowOpDialogEditForm({
|
||||||
form={form}
|
form={form}
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={fieldList}
|
options={fieldList}
|
||||||
value={values.items?.at(index)?.dataField
|
value={
|
||||||
? fieldList.find((option) =>
|
values.items?.at(index)?.dataField
|
||||||
option.value === values.items?.at(index)?.dataField,
|
? fieldList.find(
|
||||||
) : null}
|
(option) =>
|
||||||
|
option.value ===
|
||||||
|
values.items?.at(index)?.dataField,
|
||||||
|
)
|
||||||
|
: null
|
||||||
|
}
|
||||||
onChange={(option) =>
|
onChange={(option) =>
|
||||||
form.setFieldValue(field.name, option?.value)
|
form.setFieldValue(field.name, option?.value)
|
||||||
}
|
}
|
||||||
|
|
@ -493,7 +499,7 @@ function JsonRowOpDialogEditForm({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={selectionModeOptions}
|
options={selectionModeOptions}
|
||||||
value={selectionModeOptions.filter(
|
value={selectionModeOptions.filter(
|
||||||
(option) =>
|
(option: any) =>
|
||||||
option.value ===
|
option.value ===
|
||||||
values.items?.at(index)?.gridBoxOptions
|
values.items?.at(index)?.gridBoxOptions
|
||||||
?.selectionMode,
|
?.selectionMode,
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,7 @@ import {
|
||||||
Select,
|
Select,
|
||||||
toast,
|
toast,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import {
|
|
||||||
deleteListFormJsonRow,
|
|
||||||
getListFormJsonRow,
|
|
||||||
postListFormJsonRow,
|
|
||||||
putListFormJsonRow,
|
|
||||||
} from '@/proxy/admin/list-form/list-form.service'
|
|
||||||
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
import { ListFormJsonRowDto } from '@/proxy/admin/list-form/models'
|
||||||
import { SubFormDto, SubFormRelationDto } from '@/proxy/form'
|
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useStoreActions } from '@/store'
|
import { useStoreActions } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -25,6 +18,13 @@ import { HiOutlineDocumentAdd, HiOutlineDocumentRemove } from 'react-icons/hi'
|
||||||
import { object, string } from 'yup'
|
import { object, string } from 'yup'
|
||||||
import { tabTypeOptions } from '../options'
|
import { tabTypeOptions } from '../options'
|
||||||
import { JsonRowDialogData } from './types'
|
import { JsonRowDialogData } from './types'
|
||||||
|
import {
|
||||||
|
deleteListFormJsonRow,
|
||||||
|
getListFormJsonRow,
|
||||||
|
postListFormJsonRow,
|
||||||
|
putListFormJsonRow,
|
||||||
|
} from '@/services/admin/list-form.service'
|
||||||
|
import { SubFormDto, SubFormRelationDto } from '@/proxy/form/models'
|
||||||
|
|
||||||
const schema = object().shape({
|
const schema = object().shape({
|
||||||
tabTitle: string().required('Tab Title Required'),
|
tabTitle: string().required('Tab Title Required'),
|
||||||
|
|
@ -150,7 +150,7 @@ function JsonRowOpDialogSubForm({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={tabTypeOptions}
|
options={tabTypeOptions}
|
||||||
value={tabTypeOptions?.filter(
|
value={tabTypeOptions?.filter(
|
||||||
(option) => option.value === values.tabType,
|
(option: any) => option.value === values.tabType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -182,7 +182,7 @@ function JsonRowOpDialogSubForm({
|
||||||
<div className="w-4/12">Child Field Name</div>
|
<div className="w-4/12">Child Field Name</div>
|
||||||
</div>
|
</div>
|
||||||
{values.relation && values.relation.length > 0 ? (
|
{values.relation && values.relation.length > 0 ? (
|
||||||
values.relation.map((item: SubFormRelationDto, index) => (
|
values.relation.map((item: SubFormRelationDto, index: any) => (
|
||||||
<div key={index} className="flex m-1">
|
<div key={index} className="flex m-1">
|
||||||
<div className="w-4/12 ml-2">
|
<div className="w-4/12 ml-2">
|
||||||
<Field
|
<Field
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,3 @@
|
||||||
import {
|
|
||||||
GridColumnJoinConditionEnum,
|
|
||||||
GridColumnJoinTypeListEnum,
|
|
||||||
} from '@/proxy/admin/list-form-field/models'
|
|
||||||
import {
|
import {
|
||||||
AuthorizationTypeEnum,
|
AuthorizationTypeEnum,
|
||||||
ColumnCascadeFilterOperatorEnum,
|
ColumnCascadeFilterOperatorEnum,
|
||||||
|
|
@ -23,8 +19,12 @@ import {
|
||||||
SummaryTypeEnum,
|
SummaryTypeEnum,
|
||||||
UiCommandButtonPositionTypeEnum,
|
UiCommandButtonPositionTypeEnum,
|
||||||
UiLookupDataSourceTypeEnum,
|
UiLookupDataSourceTypeEnum,
|
||||||
} from '@/proxy/form'
|
} from '../../../../proxy/form/models'
|
||||||
import { enumToList } from '@/utils/enumUtils'
|
import {
|
||||||
|
GridColumnJoinConditionEnum,
|
||||||
|
GridColumnJoinTypeListEnum,
|
||||||
|
} from '../../../../proxy/admin/list-form-field/models'
|
||||||
|
import { enumToList } from '../../../../utils/enumUtils'
|
||||||
|
|
||||||
export const sortModeOptions = [
|
export const sortModeOptions = [
|
||||||
{ value: 'none', label: 'None' },
|
{ value: 'none', label: 'None' },
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@ import {
|
||||||
Notification,
|
Notification,
|
||||||
toast,
|
toast,
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import { postMyNotificationByNotificationRuleId } from '@/proxy/notification/notification.service'
|
import { postMyNotificationByNotificationRuleId } from '@/services/notification.service'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, Form, Formik, FormikHelpers } from 'formik'
|
import { Field, Form, Formik, FormikHelpers } from 'formik'
|
||||||
import { useState } from 'react'
|
import { useState } from 'react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
export interface NotificationDto {
|
export interface NotificationDto {
|
||||||
|
|
@ -47,7 +47,7 @@ function CreateNotification({
|
||||||
setSubmitting(true)
|
setSubmitting(true)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await postMyNotificationByNotificationRuleId({id, message: values.message})
|
await postMyNotificationByNotificationRuleId({ id, message: values.message })
|
||||||
toast.push(
|
toast.push(
|
||||||
<Notification type="success" duration={2000}>
|
<Notification type="success" duration={2000}>
|
||||||
{translate('::Kaydet')}
|
{translate('::Kaydet')}
|
||||||
|
|
@ -75,42 +75,38 @@ function CreateNotification({
|
||||||
return (
|
return (
|
||||||
<Dialog isOpen={open} onClose={onDialogClose} onRequestClose={onDialogClose}>
|
<Dialog isOpen={open} onClose={onDialogClose} onRequestClose={onDialogClose}>
|
||||||
<h5 className="mb-4">{id}</h5>
|
<h5 className="mb-4">{id}</h5>
|
||||||
<Formik
|
<Formik initialValues={{ id, message: '' }} validationSchema={scheme} onSubmit={handleSubmit}>
|
||||||
initialValues={ { id, message:''}}
|
{({ touched, errors, values, isSubmitting }) => {
|
||||||
validationSchema={scheme}
|
return (
|
||||||
onSubmit={handleSubmit}
|
<Form>
|
||||||
>
|
<FormContainer size="sm">
|
||||||
{({ touched, errors, values, isSubmitting }) => {
|
<FormItem
|
||||||
return (
|
label="Message"
|
||||||
<Form>
|
invalid={errors.message && touched.message}
|
||||||
<FormContainer size="sm">
|
errorMessage={errors.message}
|
||||||
<FormItem
|
>
|
||||||
label="Message"
|
<Field
|
||||||
invalid={errors.message && touched.message}
|
textArea="true"
|
||||||
errorMessage={errors.message}
|
type="text"
|
||||||
>
|
autoComplete="off"
|
||||||
<Field
|
name="message"
|
||||||
textArea="true"
|
component={Input}
|
||||||
type="text"
|
/>
|
||||||
autoComplete="off"
|
</FormItem>
|
||||||
name="message"
|
|
||||||
component={Input}
|
|
||||||
/>
|
|
||||||
</FormItem>
|
|
||||||
|
|
||||||
<div className="mt-6 flex flex-row justify-end gap-3">
|
<div className="mt-6 flex flex-row justify-end gap-3">
|
||||||
<Button variant="solid" loading={isSubmitting} type="submit">
|
<Button variant="solid" loading={isSubmitting} type="submit">
|
||||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="button" variant="plain" onClick={onDialogClose}>
|
<Button type="button" variant="plain" onClick={onDialogClose}>
|
||||||
{translate('::Cancel')}
|
{translate('::Cancel')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</FormContainer>
|
</FormContainer>
|
||||||
</Form>
|
</Form>
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</Formik>
|
</Formik>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import Tr from '@/components/ui/Table/Tr'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin'
|
import { getRoles, getUsers } from '@/services/identity.service'
|
||||||
import { getRoles, getUsers } from '@/proxy/admin/identity.service'
|
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
|
||||||
import {
|
import {
|
||||||
CreateUpdateOrganizationUnitDto,
|
CreateUpdateOrganizationUnitDto,
|
||||||
OrganizationUnitDto,
|
OrganizationUnitDto,
|
||||||
|
|
@ -41,7 +41,7 @@ import {
|
||||||
ouPutMembers,
|
ouPutMembers,
|
||||||
ouPutMove,
|
ouPutMove,
|
||||||
ouPutRoles,
|
ouPutRoles,
|
||||||
} from '@/proxy/admin/organization-unit/organization-unit.service'
|
} from '@/services/organization-unit.service'
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import TableNoRecords from '@/views/shared/TableNoRecords'
|
import TableNoRecords from '@/views/shared/TableNoRecords'
|
||||||
|
|
@ -424,15 +424,21 @@ const OrganizationUnits = () => {
|
||||||
|
|
||||||
<div className="file-actions">
|
<div className="file-actions">
|
||||||
<div className="flex gap-1 folderFileActions">
|
<div className="flex gap-1 folderFileActions">
|
||||||
<button onClick={() => setIsMoveAllUsersOpen(true)} title={ translate('::Abp.Identity.OrganizationUnit.MoveAllUsers')}>
|
<button
|
||||||
|
onClick={() => setIsMoveAllUsersOpen(true)}
|
||||||
|
title={translate('::Abp.Identity.OrganizationUnit.MoveAllUsers')}
|
||||||
|
>
|
||||||
<MdSupervisedUserCircle size="20" color="#2d6da3" />
|
<MdSupervisedUserCircle size="20" color="#2d6da3" />
|
||||||
</button>
|
</button>
|
||||||
<button onClick={() => node.edit()} title={ translate('::Abp.Identity.OrganizationUnit.Rename')}>
|
<button
|
||||||
|
onClick={() => node.edit()}
|
||||||
|
title={translate('::Abp.Identity.OrganizationUnit.Rename')}
|
||||||
|
>
|
||||||
<MdEdit size="20" className="text-teal-900" />
|
<MdEdit size="20" className="text-teal-900" />
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={() => setDeleteRow({ id: node.data.id, name: 'Organization Unit' })}
|
onClick={() => setDeleteRow({ id: node.data.id, name: 'Organization Unit' })}
|
||||||
title={ translate('::Delete')}
|
title={translate('::Delete')}
|
||||||
>
|
>
|
||||||
<MdDelete size="20" className="text-red-500" />
|
<MdDelete size="20" className="text-red-500" />
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -594,7 +600,9 @@ const OrganizationUnits = () => {
|
||||||
</Table>
|
</Table>
|
||||||
</AdaptableCard>
|
</AdaptableCard>
|
||||||
) : (
|
) : (
|
||||||
<div className="p-3">{ translate('::Abp.Identity.OrganizationUnit.Users.Description')}</div>
|
<div className="p-3">
|
||||||
|
{translate('::Abp.Identity.OrganizationUnit.Users.Description')}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="roles">
|
<TabContent value="roles">
|
||||||
|
|
@ -650,7 +658,9 @@ const OrganizationUnits = () => {
|
||||||
</Table>
|
</Table>
|
||||||
</AdaptableCard>
|
</AdaptableCard>
|
||||||
) : (
|
) : (
|
||||||
<div className="p-3">{ translate('::Abp.Identity.OrganizationUnit.Roles.Description')}</div>
|
<div className="p-3">
|
||||||
|
{translate('::Abp.Identity.OrganizationUnit.Roles.Description')}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</TabContent>
|
</TabContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
@ -724,7 +734,7 @@ const OrganizationUnits = () => {
|
||||||
onClose={() => setUserSelectionList([])}
|
onClose={() => setUserSelectionList([])}
|
||||||
onRequestClose={() => setUserSelectionList([])}
|
onRequestClose={() => setUserSelectionList([])}
|
||||||
>
|
>
|
||||||
<h5 className="mb-4">{ translate('::Abp.Identity.OrganizationUnit.SelectMembers')}</h5>
|
<h5 className="mb-4">{translate('::Abp.Identity.OrganizationUnit.SelectMembers')}</h5>
|
||||||
|
|
||||||
<DataTable<IdentityUserDto>
|
<DataTable<IdentityUserDto>
|
||||||
selectable
|
selectable
|
||||||
|
|
@ -795,7 +805,7 @@ const OrganizationUnits = () => {
|
||||||
onClose={() => setRoleSelectionList([])}
|
onClose={() => setRoleSelectionList([])}
|
||||||
onRequestClose={() => setRoleSelectionList([])}
|
onRequestClose={() => setRoleSelectionList([])}
|
||||||
>
|
>
|
||||||
<h5 className="mb-4">{ translate('::Abp.Identity.OrganizationUnit.SelectRoles')}</h5>
|
<h5 className="mb-4">{translate('::Abp.Identity.OrganizationUnit.SelectRoles')}</h5>
|
||||||
|
|
||||||
<DataTable<IdentityRoleDto>
|
<DataTable<IdentityRoleDto>
|
||||||
selectable
|
selectable
|
||||||
|
|
@ -866,9 +876,9 @@ const OrganizationUnits = () => {
|
||||||
onClose={() => setDeleteRow(null)}
|
onClose={() => setDeleteRow(null)}
|
||||||
onRequestClose={() => setDeleteRow(null)}
|
onRequestClose={() => setDeleteRow(null)}
|
||||||
>
|
>
|
||||||
<h5 className="mb-4">{ translate('::Delete')}</h5>
|
<h5 className="mb-4">{translate('::Delete')}</h5>
|
||||||
|
|
||||||
<p>{ translate('::DeleteConfirmation')}</p>
|
<p>{translate('::DeleteConfirmation')}</p>
|
||||||
|
|
||||||
<div className="text-right mt-6">
|
<div className="text-right mt-6">
|
||||||
<Button
|
<Button
|
||||||
|
|
@ -878,7 +888,7 @@ const OrganizationUnits = () => {
|
||||||
setDeleteRow(null)
|
setDeleteRow(null)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{ translate('::Cancel')}
|
{translate('::Cancel')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
|
@ -933,7 +943,7 @@ const OrganizationUnits = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{ translate('::Delete')}
|
{translate('::Delete')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,6 @@ import { FormContainer } from '@/components/ui/Form'
|
||||||
import Notification from '@/components/ui/Notification'
|
import Notification from '@/components/ui/Notification'
|
||||||
import toast from '@/components/ui/toast'
|
import toast from '@/components/ui/toast'
|
||||||
import { AVATAR_URL } from '@/constants/app.constant'
|
import { AVATAR_URL } from '@/constants/app.constant'
|
||||||
import { ProfileDto, UpdateProfileDto } from '@/proxy/account'
|
|
||||||
import { getProfile, updateProfile } from '@/proxy/account/account.service'
|
|
||||||
import { useStoreActions, useStoreState } from '@/store'
|
import { useStoreActions, useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
|
@ -27,6 +25,8 @@ import * as Yup from 'yup'
|
||||||
import isEmpty from 'lodash/isEmpty'
|
import isEmpty from 'lodash/isEmpty'
|
||||||
import FormRow from '@/views/shared/FormRow'
|
import FormRow from '@/views/shared/FormRow'
|
||||||
import FormDesription from '@/views/shared/FormDesription'
|
import FormDesription from '@/views/shared/FormDesription'
|
||||||
|
import { ProfileDto, UpdateProfileDto } from '@/proxy/account/models'
|
||||||
|
import { getProfile, updateProfile } from '@/services/account.service'
|
||||||
|
|
||||||
const schema = Yup.object().shape({
|
const schema = Yup.object().shape({
|
||||||
name: Yup.string().min(3).max(50).required(),
|
name: Yup.string().min(3).max(50).required(),
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import {
|
||||||
getMyNotificationRules,
|
getMyNotificationRules,
|
||||||
getMyNotificationTypes,
|
getMyNotificationTypes,
|
||||||
postMyNotificationRule,
|
postMyNotificationRule,
|
||||||
} from '@/proxy/notification/notification-rule.service'
|
} from '@/services/notification-rule.service'
|
||||||
import classNames from 'classnames'
|
import classNames from 'classnames'
|
||||||
import isEmpty from 'lodash/isEmpty'
|
import isEmpty from 'lodash/isEmpty'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { FormContainer } from '@/components/ui/Form'
|
||||||
import Input from '@/components/ui/Input'
|
import Input from '@/components/ui/Input'
|
||||||
import Notification from '@/components/ui/Notification'
|
import Notification from '@/components/ui/Notification'
|
||||||
import toast from '@/components/ui/toast'
|
import toast from '@/components/ui/toast'
|
||||||
import { changePassword } from '@/proxy/account/account.service'
|
import { changePassword } from '@/services/account.service'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import FormDesription from '@/views/shared/FormDesription'
|
import FormDesription from '@/views/shared/FormDesription'
|
||||||
import FormRow from '@/views/shared/FormRow'
|
import FormRow from '@/views/shared/FormRow'
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
import AdaptableCard from '@/components/shared/AdaptableCard'
|
import AdaptableCard from '@/components/shared/AdaptableCard'
|
||||||
import Container from '@/components/shared/Container'
|
import Container from '@/components/shared/Container'
|
||||||
import { Button, Table, toast } from '@/components/ui'
|
import { Button, Table, toast } from '@/components/ui'
|
||||||
import { IdentityRoleDto } from '@/proxy/admin'
|
|
||||||
import { getRoles } from '@/proxy/admin/identity.service'
|
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import useThemeClass from '@/utils/hooks/useThemeClass'
|
import useThemeClass from '@/utils/hooks/useThemeClass'
|
||||||
import isEmpty from 'lodash/isEmpty'
|
import isEmpty from 'lodash/isEmpty'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { Helmet } from 'react-helmet'
|
import { Helmet } from 'react-helmet'
|
||||||
import RolesPermission from './RolesPermission'
|
import RolesPermission from './RolesPermission'
|
||||||
|
import { IdentityRoleDto } from '@/proxy/admin/models'
|
||||||
|
import { getRoles } from '@/services/identity.service'
|
||||||
|
|
||||||
const { Tr, Th, Td, THead, TBody } = Table
|
const { Tr, Th, Td, THead, TBody } = Table
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ import {
|
||||||
PermissionWithGroupName,
|
PermissionWithGroupName,
|
||||||
PermissionWithStyle,
|
PermissionWithStyle,
|
||||||
UpdatePermissionDto,
|
UpdatePermissionDto,
|
||||||
} from '@/proxy/admin'
|
} from '@/proxy/admin/models'
|
||||||
import { getPermissions, updatePermissions } from '@/proxy/admin/identity.service'
|
import { getPermissions, updatePermissions } from '@/services/identity.service'
|
||||||
import { useStoreActions, useStoreState } from '@/store'
|
import { useStoreActions, useStoreState } from '@/store'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { ChangeEvent, useEffect, useMemo, useState } from 'react'
|
import { ChangeEvent, useEffect, useMemo, useState } from 'react'
|
||||||
|
|
@ -51,7 +51,7 @@ function RolesPermission({
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeGroup = (groupName?: string) => {
|
const changeGroup = (groupName?: string) => {
|
||||||
const group = permissionList?.groups.find((a) => a.name === groupName)
|
const group = permissionList?.groups.find((a: any) => a.name === groupName)
|
||||||
|
|
||||||
if (!group) {
|
if (!group) {
|
||||||
setSelectedGroup(undefined)
|
setSelectedGroup(undefined)
|
||||||
|
|
@ -62,7 +62,7 @@ function RolesPermission({
|
||||||
setSelectedGroup(group)
|
setSelectedGroup(group)
|
||||||
|
|
||||||
const selectedGroupPerm = group.permissions.map(
|
const selectedGroupPerm = group.permissions.map(
|
||||||
(permission) =>
|
(permission: any) =>
|
||||||
({
|
({
|
||||||
...permission,
|
...permission,
|
||||||
class: className + findMargin(group.permissions, permission) * 4,
|
class: className + findMargin(group.permissions, permission) * 4,
|
||||||
|
|
@ -99,7 +99,6 @@ function RolesPermission({
|
||||||
setIsLoading(false)
|
setIsLoading(false)
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
|
||||||
|
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
getConfig(true)
|
getConfig(true)
|
||||||
}, 2000)
|
}, 2000)
|
||||||
|
|
@ -109,7 +108,7 @@ function RolesPermission({
|
||||||
return groups.reduce(
|
return groups.reduce(
|
||||||
(acc, val) => [
|
(acc, val) => [
|
||||||
...acc,
|
...acc,
|
||||||
...val.permissions.map<PermissionWithGroupName>((p) => ({
|
...val.permissions.map<PermissionWithGroupName>((p: any) => ({
|
||||||
...p,
|
...p,
|
||||||
groupName: val.name || '',
|
groupName: val.name || '',
|
||||||
})),
|
})),
|
||||||
|
|
@ -133,8 +132,8 @@ function RolesPermission({
|
||||||
|
|
||||||
const isAllSelected = useMemo(
|
const isAllSelected = useMemo(
|
||||||
() =>
|
() =>
|
||||||
permissionList?.groups.every((group) =>
|
permissionList?.groups.every((group: any) =>
|
||||||
group.permissions.every((permission) => permission.isGranted),
|
group.permissions.every((permission: any) => permission.isGranted),
|
||||||
),
|
),
|
||||||
[permissionList],
|
[permissionList],
|
||||||
)
|
)
|
||||||
|
|
@ -155,13 +154,13 @@ function RolesPermission({
|
||||||
|
|
||||||
if (e.target.name === 'group') {
|
if (e.target.name === 'group') {
|
||||||
permissionList?.groups
|
permissionList?.groups
|
||||||
.find((group) => group.name === selectedGroup?.name)
|
.find((group: any) => group.name === selectedGroup?.name)
|
||||||
?.permissions.forEach((permission) => {
|
?.permissions.forEach((permission: any) => {
|
||||||
permission.isGranted = value
|
permission.isGranted = value
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
permissionList?.groups.forEach((group) => {
|
permissionList?.groups.forEach((group: any) => {
|
||||||
group.permissions.forEach((permission) => {
|
group.permissions.forEach((permission: any) => {
|
||||||
permission.isGranted = value
|
permission.isGranted = value
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -188,7 +187,7 @@ function RolesPermission({
|
||||||
return per
|
return per
|
||||||
})
|
})
|
||||||
|
|
||||||
const permGroup = permissionList?.groups.find((a) => a.name === selectedGroup?.name)
|
const permGroup = permissionList?.groups.find((a: any) => a.name === selectedGroup?.name)
|
||||||
if (permGroup) {
|
if (permGroup) {
|
||||||
permGroup.permissions = groupPerm
|
permGroup.permissions = groupPerm
|
||||||
}
|
}
|
||||||
|
|
@ -221,7 +220,7 @@ function RolesPermission({
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
<hr className="mt-2 mb-2"></hr>
|
<hr className="mt-2 mb-2"></hr>
|
||||||
<Menu variant={mode} defaultActiveKeys={[selectedGroup?.displayName ?? '']}>
|
<Menu variant={mode} defaultActiveKeys={[selectedGroup?.displayName ?? '']}>
|
||||||
{permissionList?.groups.map((group) => (
|
{permissionList?.groups.map((group: any) => (
|
||||||
<Menu.MenuItem
|
<Menu.MenuItem
|
||||||
key={group.name}
|
key={group.name}
|
||||||
className="break-all whitespace-normal"
|
className="break-all whitespace-normal"
|
||||||
|
|
@ -229,7 +228,7 @@ function RolesPermission({
|
||||||
onSelect={changeGroup}
|
onSelect={changeGroup}
|
||||||
>
|
>
|
||||||
{translate('::' + group.displayName)} (
|
{translate('::' + group.displayName)} (
|
||||||
{group.permissions.filter((a) => a.isGranted).length})
|
{group.permissions.filter((a: any) => a.isGranted).length})
|
||||||
</Menu.MenuItem>
|
</Menu.MenuItem>
|
||||||
))}
|
))}
|
||||||
</Menu>
|
</Menu>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ import { Loading } from '@/components/shared'
|
||||||
import AdaptableCard from '@/components/shared/AdaptableCard'
|
import AdaptableCard from '@/components/shared/AdaptableCard'
|
||||||
import Container from '@/components/shared/Container'
|
import Container from '@/components/shared/Container'
|
||||||
import { Table } from '@/components/ui'
|
import { Table } from '@/components/ui'
|
||||||
import { getTenants } from '@/proxy/admin/tenant/tenant.service'
|
|
||||||
import { TenantDto } from '@/proxy/config/models'
|
import { TenantDto } from '@/proxy/config/models'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import useThemeClass from '@/utils/hooks/useThemeClass'
|
import useThemeClass from '@/utils/hooks/useThemeClass'
|
||||||
|
|
@ -10,6 +9,7 @@ import isEmpty from 'lodash/isEmpty'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { Helmet } from 'react-helmet'
|
import { Helmet } from 'react-helmet'
|
||||||
import TenantsConnectionString from './TenantsConnectionString'
|
import TenantsConnectionString from './TenantsConnectionString'
|
||||||
|
import { getTenants } from '@/services/tenant.service'
|
||||||
|
|
||||||
const { Tr, Th, Td, THead, TBody } = Table
|
const { Tr, Th, Td, THead, TBody } = Table
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,13 @@ import {
|
||||||
getTenantDefaultConnectionString,
|
getTenantDefaultConnectionString,
|
||||||
postSeedTenantData,
|
postSeedTenantData,
|
||||||
putTenantDefaultConnectionString,
|
putTenantDefaultConnectionString,
|
||||||
} from '@/proxy/admin/tenant/tenant.service'
|
} from '@/services/tenant.service'
|
||||||
import { DataSourceTypeEnum } from '@/proxy/form'
|
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import { Field, FieldProps, Form, Formik, FormikHelpers } from 'formik'
|
import { Field, FieldProps, Form, Formik, FormikHelpers } from 'formik'
|
||||||
import { Suspense, useEffect, useRef, useState } from 'react'
|
import { Suspense, useEffect, useRef, useState } from 'react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { dataSourceTypeOptions } from '../listForm/edit/options'
|
import { dataSourceTypeOptions } from '../listForm/edit/options'
|
||||||
|
import { DataSourceTypeEnum } from '@/proxy/form/models'
|
||||||
|
|
||||||
export interface ConnectionStringDto {
|
export interface ConnectionStringDto {
|
||||||
id: string
|
id: string
|
||||||
|
|
@ -268,7 +268,7 @@ function TenantConnectionString({
|
||||||
isClearable={true}
|
isClearable={true}
|
||||||
options={dataSourceTypeOptions}
|
options={dataSourceTypeOptions}
|
||||||
value={dataSourceTypeOptions?.filter(
|
value={dataSourceTypeOptions?.filter(
|
||||||
(option) => option.value === values.dataSourceType,
|
(option: any) => option.value === values.dataSourceType,
|
||||||
)}
|
)}
|
||||||
onChange={(option) => {
|
onChange={(option) => {
|
||||||
form.setFieldValue(field.name, option?.value)
|
form.setFieldValue(field.name, option?.value)
|
||||||
|
|
|
||||||
|
|
@ -21,14 +21,13 @@ import Tr from '@/components/ui/Table/Tr'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import { AssignedClaimViewModel, UserInfoViewModel } from '@/proxy/admin'
|
|
||||||
import {
|
import {
|
||||||
deleteClaimUser,
|
deleteClaimUser,
|
||||||
getUserDetail,
|
getUserDetail,
|
||||||
postClaimUser,
|
postClaimUser,
|
||||||
putUserDetail,
|
putUserDetail,
|
||||||
putUserLookout,
|
putUserLookout,
|
||||||
} from '@/proxy/admin/identity.service'
|
} from '@/services/identity.service'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import { Field, FieldArray, FieldProps, Form, Formik, FormikHelpers } from 'formik'
|
import { Field, FieldArray, FieldProps, Form, Formik, FormikHelpers } from 'formik'
|
||||||
|
|
@ -40,6 +39,7 @@ import { useParams } from 'react-router-dom'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { SelectBoxOption } from '@/shared/types'
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
import { ConfirmDialog } from '@/components/shared'
|
import { ConfirmDialog } from '@/components/shared'
|
||||||
|
import { AssignedClaimViewModel, UserInfoViewModel } from '@/proxy/admin/models'
|
||||||
|
|
||||||
export interface ClaimTypeDto {
|
export interface ClaimTypeDto {
|
||||||
claimType: string
|
claimType: string
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue