Services düzenlemesi ve vite.config sub domains

This commit is contained in:
Sedat ÖZTÜRK 2025-08-12 11:39:06 +03:00
parent cb8c224a54
commit 00eb20d55f
130 changed files with 599 additions and 587 deletions

View file

@ -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"), {

View file

@ -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'

View file

@ -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'

View file

@ -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'

View file

@ -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'

View file

@ -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 {

View file

@ -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'

View file

@ -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'

View file

@ -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,

View file

@ -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'

View file

@ -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

View file

@ -1 +0,0 @@
export * from './models';

View file

@ -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

View file

@ -1 +0,0 @@
export * from './models'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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> {

View file

@ -1,2 +0,0 @@
export * from './ai.service'
export * from './models'

View file

@ -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

View file

@ -1 +0,0 @@
export * from './models'

View file

@ -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
}

View file

@ -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}`,
}) })
} }

View file

@ -1 +0,0 @@
export * from './models'

View file

@ -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 {

View file

@ -1,2 +0,0 @@
export * from './global-search.service'
export * from './models'

View file

@ -1,4 +1,4 @@
import { GridOptionsDto } from '../form' import { GridOptionsDto } from '../form/models'
export interface ListFormImportDto { export interface ListFormImportDto {
id: string id: string

View file

@ -1 +0,0 @@
export * from './models'

View file

@ -1 +0,0 @@
export * from './models';

View file

@ -1 +0,0 @@
export * from './models'

View file

@ -1,2 +0,0 @@
export * from './models';
export * from './setting-ui.service';

View file

@ -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 {

View file

@ -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>({

View file

@ -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>({

View file

@ -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>>({

View file

@ -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>>({

View file

@ -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({

View file

@ -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'

View file

@ -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,

View file

@ -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 {

View file

@ -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>({

View file

@ -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 {

View file

@ -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>({

View file

@ -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>>({

View file

@ -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,

View file

@ -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[]>({

View file

@ -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,10 +36,7 @@ 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
message: string
}) =>
apiService.fetchData({ apiService.fetchData({
method: 'POST', method: 'POST',
url: `/api/app/notification/notification-by-notification-rule-id`, url: `/api/app/notification/notification-by-notification-rule-id`,

View file

@ -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>>({

View file

@ -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]

View file

@ -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[]>({

View file

@ -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>>({

View 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 []
}
}

View file

@ -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,

View file

@ -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

View file

@ -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>>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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('')

View file

@ -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'

View file

@ -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'

View file

@ -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,

View file

@ -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>

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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: (

View file

@ -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)

View file

@ -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)}
/> />

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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({})

View file

@ -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(),

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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,
})), })),

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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)}
/> />

View file

@ -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,

View file

@ -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

View file

@ -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' },

View file

@ -7,7 +7,7 @@ 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'
@ -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,11 +75,7 @@ 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:''}}
validationSchema={scheme}
onSubmit={handleSubmit}
>
{({ touched, errors, values, isSubmitting }) => { {({ touched, errors, values, isSubmitting }) => {
return ( return (
<Form> <Form>

View file

@ -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>

View file

@ -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(),

View file

@ -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'

View file

@ -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'

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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)

View file

@ -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