From aa3a3c768439d180cf960c84b549d88848257c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96zt=C3=BCrk?= Date: Tue, 2 Dec 2025 23:20:47 +0300 Subject: [PATCH] =?UTF-8?q?Gantt=20ve=20Scheduler=20d=C3=BCzenlemeleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/views/list/GanttView.tsx | 21 +++++++----- ui/src/views/list/SchedulerView.tsx | 50 +++++++++++++++++++++++++++-- 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/ui/src/views/list/GanttView.tsx b/ui/src/views/list/GanttView.tsx index 0c70e325..0d35eae8 100644 --- a/ui/src/views/list/GanttView.tsx +++ b/ui/src/views/list/GanttView.tsx @@ -29,6 +29,7 @@ import { useListFormColumns } from './useListFormColumns' import CustomStore from 'devextreme/data/custom_store' import { GridColumnData } from './GridColumnData' import { Loading } from '@/components/shared' +import { usePermission } from '@/utils/hooks/usePermission' interface GanttViewProps { listFormCode: string @@ -47,6 +48,7 @@ const GanttView = (props: GanttViewProps) => { const gridRef = useRef() const refListFormCode = useRef('') const widgetGroupRef = useRef(null) + const { checkPermission } = usePermission() const [ganttDataSource, setGanttDataSource] = useState>() const [columnData, setColumnData] = useState() @@ -242,15 +244,16 @@ const GanttView = (props: GanttViewProps) => { /> - {/* */} - {/* */} - {/* */} + + + + {gridDto.gridOptions.editingOptionDto?.allowAdding && } + {gridDto.gridOptions.editingOptionDto?.allowDeleting && ( + + )} - {/* */} - {/* */} - {/* */} @@ -276,7 +279,9 @@ const GanttView = (props: GanttViewProps) => { }} /> - + {checkPermission(gridDto?.gridOptions.permissionDto.u) && ( + + )} { allowResourceAdding={false} allowResourceDeleting={false} /> - + diff --git a/ui/src/views/list/SchedulerView.tsx b/ui/src/views/list/SchedulerView.tsx index 6b5bf988..5e5f67b4 100644 --- a/ui/src/views/list/SchedulerView.tsx +++ b/ui/src/views/list/SchedulerView.tsx @@ -2,7 +2,14 @@ import Container from '@/components/shared/Container' import { DX_CLASSNAMES } from '@/constants/app.constant' import { GridDto } from '@/proxy/form/models' import { useLocalization } from '@/utils/hooks/useLocalization' -import Scheduler, { Editing, Resource, SchedulerRef, View } from 'devextreme-react/scheduler' +import Scheduler, { + Editing, + Item, + Resource, + SchedulerRef, + Toolbar, + View, +} from 'devextreme-react/scheduler' import { useCallback, useEffect, useRef, useState } from 'react' import { Helmet } from 'react-helmet' import { getList } from '@/services/form.service' @@ -14,6 +21,7 @@ import { ROUTES_ENUM } from '@/routes/route.constant' import { usePWA } from '@/utils/hooks/usePWA' import CustomStore from 'devextreme/data/custom_store' import { Loading } from '@/components/shared' +import { usePermission } from '@/utils/hooks/usePermission' interface SchedulerViewProps { listFormCode: string @@ -32,6 +40,7 @@ const SchedulerView = (props: SchedulerViewProps) => { const schedulerRef = useRef() const refListFormCode = useRef('') const widgetGroupRef = useRef(null) + const { checkPermission } = usePermission() const [schedulerDataSource, setSchedulerDataSource] = useState>() const [gridDto, setGridDto] = useState() @@ -134,6 +143,16 @@ const SchedulerView = (props: SchedulerViewProps) => { ) }, [listFormCode, isPwaMode]) + const handleRefresh = useCallback(() => { + const instance = schedulerRef.current?.instance() + if (instance) { + const dataSource = instance.getDataSource() + if (dataSource) { + dataSource.reload() + } + } + }, []) + const onCurrentViewChange = useCallback((value: string) => { setCurrentView(value) }, []) @@ -154,8 +173,7 @@ const SchedulerView = (props: SchedulerViewProps) => { titleTemplate="%s | Erp Platform" title={translate('::' + gridDto?.gridOptions.title)} defaultTitle="Erp Platform" - > - + > )} {!gridDto && (
@@ -212,6 +230,32 @@ const SchedulerView = (props: SchedulerViewProps) => { } adaptivityEnabled={true} > + + + + + + {checkPermission(gridDto?.gridOptions.permissionDto.u) && ( + + )} + +