From 99d64e95f1cab9c0b8ac442f6a5a99ecf3bd044f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Tue, 12 May 2026 15:32:40 +0300 Subject: [PATCH] =?UTF-8?q?Button=20d=C3=B6n=C3=BC=C5=9F=C3=BCmleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Seeds/TenantData.json | 2 +- ui/src/components/template/Search.tsx | 4 +- ui/src/views/NotFound.tsx | 2 +- ui/src/views/Views.tsx | 12 +- .../admin/files/components/Breadcrumb.tsx | 12 +- .../admin/listForm/wizard/WizardStep1.tsx | 4 +- .../organization-unit/OrganizationUnits.tsx | 45 +++---- .../components/NotificationSettings.tsx | 1 - ui/src/views/admin/videoroom/RoomList.tsx | 12 +- ui/src/views/form/notes/NoteList.tsx | 16 +-- ui/src/views/form/notes/NoteModal.tsx | 13 +- ui/src/views/form/notes/NotePanel.tsx | 10 +- .../views/forum/admin/CategoryManagement.tsx | 50 +++---- ui/src/views/forum/admin/PostManagement.tsx | 23 ++-- ui/src/views/forum/admin/TopicManagement.tsx | 57 ++++---- ui/src/views/forum/forum/ForumView.tsx | 19 ++- ui/src/views/list/Chart.tsx | 122 ++++++++++-------- ui/src/views/list/ChartDrawer.tsx | 32 +++-- ui/src/views/list/List.tsx | 12 +- ui/src/views/list/Pivot.tsx | 2 +- ui/src/views/public/NotFound.tsx | 2 +- ui/src/views/setup/DatabaseSetup.tsx | 5 +- 22 files changed, 243 insertions(+), 214 deletions(-) diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantData.json b/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantData.json index 3c4d3ef..def8cee 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantData.json +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantData.json @@ -349,7 +349,7 @@ "CustomComponents": [ { "name": "DynamicEntityComponent", - "code": "import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\n\ninterface DynamicEntityComponentProps {\n title: string;\n}\n\nconst api = axios.create({\n baseURL: \"https://localhost:44344\", // defaults'ı her seferinde set etme\n});\n\nconst DynamicEntityComponent: React.FC = ({ title }) => {\n const [data, setData] = useState>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n const fetchData = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const res = await api.get(`/api/app/crudendpoint/${title}`);\n const raw = Array.isArray(res.data) ? res.data : res.data?.items ?? [];\n\n const filtered = raw.map((item: any) => ({\n id: item.Id ?? item.id,\n name: item.Name ?? item.name,\n }));\n\n setData(filtered);\n } catch (err: any) {\n setError(err.message || \"Failed to fetch data\");\n } finally {\n setLoading(false);\n }\n };\n\n if (title) fetchData();\n }, [title]);\n\n if (loading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data.length) return
No records found
;\n\n const headers = [\"id\", \"name\", \"actions\"];\n\n return (\n
\n \n \n \n {headers.map((key) => (\n \n {key === \"actions\" ? \"Actions\" : key}\n \n ))}\n \n \n \n {data.map((item, rowIndex) => (\n \n \n \n \n \n ))}\n \n
\n {item.id}\n \n {item.name}\n \n alert(item.name)}\n className=\"bg-blue-600 hover:bg-blue-700 text-white text-sm px-3 py-1 rounded-lg shadow-sm transition\"\n >\n Show Name\n \n
\n
\n );\n};\n\nexport default DynamicEntityComponent;", + "code": "import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\n\ninterface DynamicEntityComponentProps {\n title: string;\n}\n\nconst api = axios.create({\n baseURL: \"https://localhost:44344\", // defaults'ı her seferinde set etme\n});\n\nconst DynamicEntityComponent: React.FC = ({ title }) => {\n const [data, setData] = useState>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n const fetchData = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const res = await api.get(`/api/app/crudendpoint/${title}`);\n const raw = Array.isArray(res.data) ? res.data : res.data?.items ?? [];\n\n const filtered = raw.map((item: any) => ({\n id: item.Id ?? item.id,\n name: item.Name ?? item.name,\n }));\n\n setData(filtered);\n } catch (err: any) {\n setError(err.message || \"Failed to fetch data\");\n } finally {\n setLoading(false);\n }\n };\n\n if (title) fetchData();\n }, [title]);\n\n if (loading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data.length) return
No records found
;\n\n const headers = [\"id\", \"name\", \"actions\"];\n\n return (\n
\n \n \n \n {headers.map((key) => (\n \n {key === \"actions\" ? \"Actions\" : key}\n \n ))}\n \n \n \n {data.map((item, rowIndex) => (\n \n \n \n \n \n ))}\n \n
\n {item.id}\n \n {item.name}\n \n alert(item.name)}\n className=\"bg-blue-600 hover:bg-blue-700 text-white text-sm px-3 py-1 rounded-lg shadow-sm transition\"\n >\n Show Name\n \n
\n
\n );\n};\n\nexport default DynamicEntityComponent;", "props": null, "description": null, "isActive": true, diff --git a/ui/src/components/template/Search.tsx b/ui/src/components/template/Search.tsx index 043a57d..7785b88 100644 --- a/ui/src/components/template/Search.tsx +++ b/ui/src/components/template/Search.tsx @@ -197,9 +197,7 @@ const _Search = ({ className }: { className?: string }) => { onKeyDown={(e) => e.key === 'Enter' && handleSearch()} /> - +
diff --git a/ui/src/views/NotFound.tsx b/ui/src/views/NotFound.tsx index bb191bd..2091629 100644 --- a/ui/src/views/NotFound.tsx +++ b/ui/src/views/NotFound.tsx @@ -33,7 +33,7 @@ const NotFoundPage = () => { onClick={() => navigate(isAdminPath ? ROUTES_ENUM.protected.dashboard : ROUTES_ENUM.public.home) } - className="px-6 py-3 bg-blue-500 rounded-xl shadow hover:bg-blue-600 transition" + className="bg-blue-500 rounded-xl shadow hover:bg-blue-600 transition" > {translate('::Public.notFound.button')} diff --git a/ui/src/views/Views.tsx b/ui/src/views/Views.tsx index af517ca..f69e63b 100644 --- a/ui/src/views/Views.tsx +++ b/ui/src/views/Views.tsx @@ -4,7 +4,7 @@ import { Alert, Button } from '@/components/ui' import { store, useStoreState } from '@/store' import { Suspense, useEffect } from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { FaArrowLeft } from 'react-icons/fa'; +import { FaArrowLeft } from 'react-icons/fa' import { Navigate, useLocation } from 'react-router-dom' import DialogProvider from './shared/DialogContext' import DialogShowComponent from './shared/DialogContext/DialogShowComponent' @@ -22,9 +22,13 @@ function fallbackRender({ error, resetErrorBoundary }: { error: Error; resetErro
{error.name ?? 'Hata!'}
{error.message}
- +
) } diff --git a/ui/src/views/admin/files/components/Breadcrumb.tsx b/ui/src/views/admin/files/components/Breadcrumb.tsx index 2260b20..eef0892 100644 --- a/ui/src/views/admin/files/components/Breadcrumb.tsx +++ b/ui/src/views/admin/files/components/Breadcrumb.tsx @@ -20,6 +20,13 @@ const Breadcrumb = forwardRef((props, ref) => { {index > 0 && }
diff --git a/ui/src/views/admin/listForm/wizard/WizardStep1.tsx b/ui/src/views/admin/listForm/wizard/WizardStep1.tsx index 98ddaa3..e61607b 100644 --- a/ui/src/views/admin/listForm/wizard/WizardStep1.tsx +++ b/ui/src/views/admin/listForm/wizard/WizardStep1.tsx @@ -28,6 +28,7 @@ export interface MenuTreeNode { displayName: string icon?: string url?: string + order?: number children: MenuTreeNode[] } @@ -42,6 +43,7 @@ export function buildMenuTree(items: MenuItem[]): MenuTreeNode[] { displayName: item.displayName ?? item.code!, icon: item.icon ?? undefined, url: item.url ?? undefined, + order: item.order ?? undefined, children: [], }) }) @@ -175,7 +177,7 @@ function TreeNode({ className={`text-xs shrink-0 ${isSelected ? 'text-indigo-200' : 'text-gray-400'}`} onClick={() => !isEditing && onSelect(node.code)} > - {translate('::' + node.displayName)} + {translate('::' + node.displayName)} ({node.order}) {isEditing ? ( diff --git a/ui/src/views/admin/organization-unit/OrganizationUnits.tsx b/ui/src/views/admin/organization-unit/OrganizationUnits.tsx index d26e907..6757e8f 100644 --- a/ui/src/views/admin/organization-unit/OrganizationUnits.tsx +++ b/ui/src/views/admin/organization-unit/OrganizationUnits.tsx @@ -431,23 +431,20 @@ const OrganizationUnits = () => {
+ > + > + >
@@ -472,6 +469,7 @@ const OrganizationUnits = () => { + > + > } > @@ -548,14 +543,13 @@ const OrganizationUnits = () => { + > } > @@ -576,6 +570,7 @@ const OrganizationUnits = () => { + >
{ + > } > @@ -648,15 +640,14 @@ const OrganizationUnits = () => { className="mr-auto" type="button" size="sm" + icon={} onClick={() => { setDeleteRow({ id: role.id ?? '', name: 'Role', }) }} - > - - + > diff --git a/ui/src/views/admin/profile/components/NotificationSettings.tsx b/ui/src/views/admin/profile/components/NotificationSettings.tsx index f965259..df4501a 100644 --- a/ui/src/views/admin/profile/components/NotificationSettings.tsx +++ b/ui/src/views/admin/profile/components/NotificationSettings.tsx @@ -117,7 +117,6 @@ const NotificationSettings = () => { checked={list[m][n].isActive} onChange={(e) => onClickCheckbox(e, list[m][n])} color={list[m][n].isCustomized ? 'red-500' : undefined} - title={list[m][n].id} > ))} diff --git a/ui/src/views/admin/videoroom/RoomList.tsx b/ui/src/views/admin/videoroom/RoomList.tsx index 926dbee..f47d79c 100644 --- a/ui/src/views/admin/videoroom/RoomList.tsx +++ b/ui/src/views/admin/videoroom/RoomList.tsx @@ -296,11 +296,11 @@ const RoomList: React.FC = () => { {user.role === 'teacher' && ( )} @@ -419,12 +419,12 @@ const RoomList: React.FC = () => { size="sm" variant="solid" color="red-600" + icon={} className="flex items-center gap-1" onClick={() => handlePlanningClass(classSession)} disabled={!!classSession.actualStartTime} title={translate('::App.Videoroom.Planning') || 'Planning'} > - {translate('::App.Videoroom.Planning') || 'Planning'} @@ -434,12 +434,12 @@ const RoomList: React.FC = () => { size="sm" variant="solid" color="orange-600" + icon={} className="flex items-center gap-1" onClick={() => openEditModal(classSession)} disabled={!!classSession.actualStartTime} title={translate('::App.Platform.Edit')} > - {translate('::App.Platform.Edit')} @@ -449,12 +449,13 @@ const RoomList: React.FC = () => { size="sm" variant="solid" color="sky-800" + icon={} className="flex items-center gap-1" onClick={() => openDeleteModal(classSession)} disabled={!!classSession.actualStartTime} title={translate('::App.Platform.Delete')} > - + {translate('::App.Platform.Delete')} @@ -465,12 +466,13 @@ const RoomList: React.FC = () => { diff --git a/ui/src/views/form/notes/NoteList.tsx b/ui/src/views/form/notes/NoteList.tsx index e8607ed..ecaebcd 100644 --- a/ui/src/views/form/notes/NoteList.tsx +++ b/ui/src/views/form/notes/NoteList.tsx @@ -346,12 +346,13 @@ export const NoteList: React.FC = ({ @@ -401,12 +402,11 @@ export const NoteList: React.FC = ({ + > )} @@ -431,12 +431,11 @@ export const NoteList: React.FC = ({ + > ))} @@ -455,11 +454,12 @@ export const NoteList: React.FC = ({ size="sm" variant="default" type="button" + icon={} onClick={loadAuditLogs} disabled={auditLoading} className="flex items-center" > - {translate('::ListForms.ListForm.Refresh')} + {translate('::ListForms.ListForm.Refresh')} diff --git a/ui/src/views/form/notes/NoteModal.tsx b/ui/src/views/form/notes/NoteModal.tsx index c85e38c..2a62df8 100644 --- a/ui/src/views/form/notes/NoteModal.tsx +++ b/ui/src/views/form/notes/NoteModal.tsx @@ -70,7 +70,8 @@ export const NoteModal: React.FC = ({ const beforeUpload = (files: FileList | null) => { if (!files) return true for (const f of Array.from(files)) { - if (f.size > 2 * 1024 * 1024) return translate('::ListForms.ListForm.NoteModal.Upload.MaxSize2Mb') + if (f.size > 2 * 1024 * 1024) + return translate('::ListForms.ListForm.NoteModal.Upload.MaxSize2Mb') } return true } @@ -101,10 +102,7 @@ export const NoteModal: React.FC = ({
{/* NOT TİPİ */} - +
{types.map((t) => (
))} diff --git a/ui/src/views/form/notes/NotePanel.tsx b/ui/src/views/form/notes/NotePanel.tsx index 8c94ed5..b136e54 100644 --- a/ui/src/views/form/notes/NotePanel.tsx +++ b/ui/src/views/form/notes/NotePanel.tsx @@ -164,9 +164,13 @@ export const NotePanel: React.FC = ({
- +
diff --git a/ui/src/views/forum/admin/CategoryManagement.tsx b/ui/src/views/forum/admin/CategoryManagement.tsx index 6fe4938..02b6c03 100644 --- a/ui/src/views/forum/admin/CategoryManagement.tsx +++ b/ui/src/views/forum/admin/CategoryManagement.tsx @@ -167,11 +167,11 @@ export function CategoryManagement({ @@ -369,7 +369,14 @@ export function CategoryManagement({
+ > + icon={ + category.isLocked ? ( + + ) : ( + + ) + } + > + icon={} + > + icon={} + >
diff --git a/ui/src/views/forum/admin/PostManagement.tsx b/ui/src/views/forum/admin/PostManagement.tsx index fc80653..1b77234 100644 --- a/ui/src/views/forum/admin/PostManagement.tsx +++ b/ui/src/views/forum/admin/PostManagement.tsx @@ -165,12 +165,12 @@ export function PostManagement({ {translate('::App.Forum.PostManagement.Title')} @@ -399,6 +399,13 @@ export function PostManagement({
+ >
diff --git a/ui/src/views/forum/admin/TopicManagement.tsx b/ui/src/views/forum/admin/TopicManagement.tsx index 39e4714..de41056 100644 --- a/ui/src/views/forum/admin/TopicManagement.tsx +++ b/ui/src/views/forum/admin/TopicManagement.tsx @@ -208,11 +208,11 @@ export function TopicManagement({ @@ -400,6 +400,13 @@ export function TopicManagement({
+ > + > + > + > + >
diff --git a/ui/src/views/forum/forum/ForumView.tsx b/ui/src/views/forum/forum/ForumView.tsx index 8cee359..bfcf13f 100644 --- a/ui/src/views/forum/forum/ForumView.tsx +++ b/ui/src/views/forum/forum/ForumView.tsx @@ -354,44 +354,43 @@ export function ForumView({
{viewState === 'topics' && selectedCategory && !selectedCategory.isLocked && ( )} {viewState === 'posts' && selectedTopic && !selectedTopic.isLocked && ( )} {/* Search */} + >
diff --git a/ui/src/views/list/Chart.tsx b/ui/src/views/list/Chart.tsx index c37637c..0d39163 100644 --- a/ui/src/views/list/Chart.tsx +++ b/ui/src/views/list/Chart.tsx @@ -60,10 +60,10 @@ const Chart = (props: ChartProps) => { const [openDrawer, setOpenDrawer] = useState(false) const [fieldList, setFieldList] = useState([]) - + // Ana state - Chart bu state'e göre render edilir const [currentSeries, setCurrentSeries] = useState([]) - + // Veritabanından gelen orijinal seriler (kaydetme işlemi için) const [savedSeries, setSavedSeries] = useState([]) @@ -81,10 +81,10 @@ const Chart = (props: ChartProps) => { const userSeriesData = initialSeries.filter((s) => s.userId === userName) setAllSeries(initialSeries) - + // Kullanıcının serisi varsa onu kullan, yoksa tüm serileri kullan const seriesToUse = userSeriesData.length > 0 ? userSeriesData : initialSeries - + // Sadece ilk yüklemede VEYA refresh sonrası güncelle if (!initialized) { setCurrentSeries(seriesToUse) @@ -128,9 +128,9 @@ const Chart = (props: ChartProps) => { title: gridDto.gridOptions.titleDto, size: gridDto.gridOptions.sizeDto?.useSize ? { width: gridDto.gridOptions.sizeDto.width, height: gridDto.gridOptions.sizeDto.height } - : { - width: openDrawer ? window.innerWidth - 550 : '100%', - height: window.innerHeight - 210 + : { + width: openDrawer ? window.innerWidth - 550 : '100%', + height: window.innerHeight - 210, }, legend: gridDto.gridOptions.legendDto || { visible: true, @@ -167,7 +167,15 @@ const Chart = (props: ChartProps) => { enabled: true, }, } - }, [gridDto, currentSeries, initialized, createSelectDataSource, listFormCode, urlSearchParams, openDrawer]) + }, [ + gridDto, + currentSeries, + initialized, + createSelectDataSource, + listFormCode, + urlSearchParams, + openDrawer, + ]) useEffect(() => { if (memoizedChartOptions) { @@ -231,13 +239,15 @@ const Chart = (props: ChartProps) => { }) if (resp.data?.items) { const fieldNames = groupBy(resp?.data?.items, 'fieldName') - setFieldList(Object.keys(fieldNames).map((fieldName) => { - const firstItem = fieldNames[fieldName][0] - const label = firstItem.captionName - ? translate('::' + firstItem.captionName) - : fieldName - return { value: fieldName, label } - })) + setFieldList( + Object.keys(fieldNames).map((fieldName) => { + const firstItem = fieldNames[fieldName][0] + const label = firstItem.captionName + ? translate('::' + firstItem.captionName) + : fieldName + return { value: fieldName, label } + }), + ) } } catch (error: any) { toast.push( @@ -264,43 +274,48 @@ const Chart = (props: ChartProps) => { setCurrentSeries(savedSeries) }, [savedSeries]) - const onSave = useCallback(async (newSeries: ChartSeriesDto[]) => { - // 1. Silinecek serileri bul (savedSeries var ama newSeries yok) - const toDelete = savedSeries.filter((old: ChartSeriesDto) => !newSeries.some((s) => s.index === old.index)) + const onSave = useCallback( + async (newSeries: ChartSeriesDto[]) => { + // 1. Silinecek serileri bul (savedSeries var ama newSeries yok) + const toDelete = savedSeries.filter( + (old: ChartSeriesDto) => !newSeries.some((s) => s.index === old.index), + ) - // Index kaymasını önlemek için büyükten küçüğe sırala - toDelete.sort((a: ChartSeriesDto, b: ChartSeriesDto) => b.index - a.index) + // Index kaymasını önlemek için büyükten küçüğe sırala + toDelete.sort((a: ChartSeriesDto, b: ChartSeriesDto) => b.index - a.index) - for (const old of toDelete) { - await deleteListFormJsonRow(id, ListFormEditTabs.ChartSeries.GeneralJsonRow, old.index) - } - - // 2. Yeni veya güncellenen serileri kaydet - for (const series of newSeries) { - const input: ListFormJsonRowDto = { - index: series.index, - fieldName: ListFormEditTabs.ChartSeries.GeneralJsonRow, - itemChartSeries: series, + for (const old of toDelete) { + await deleteListFormJsonRow(id, ListFormEditTabs.ChartSeries.GeneralJsonRow, old.index) } - if (series.index === -1) { - await postListFormJsonRow(id, input) + // 2. Yeni veya güncellenen serileri kaydet + for (const series of newSeries) { + const input: ListFormJsonRowDto = { + index: series.index, + fieldName: ListFormEditTabs.ChartSeries.GeneralJsonRow, + itemChartSeries: series, + } + + if (series.index === -1) { + await postListFormJsonRow(id, input) + } else { + await putListFormJsonRow(id, input) + } + } + + // 3. Yeniden yükle (veritabanından fresh data) + if (props.refreshGridDto) { + setInitialized(false) + await props.refreshGridDto() + // refreshGridDto tamamlandıktan sonra yeni state'ler otomatik setlenecek } else { - await putListFormJsonRow(id, input) + // refreshGridDto yoksa manuel güncelle + setSavedSeries(newSeries) + setCurrentSeries(newSeries) } - } - - // 3. Yeniden yükle (veritabanından fresh data) - if (props.refreshGridDto) { - setInitialized(false) - await props.refreshGridDto() - // refreshGridDto tamamlandıktan sonra yeni state'ler otomatik setlenecek - } else { - // refreshGridDto yoksa manuel güncelle - setSavedSeries(newSeries) - setCurrentSeries(newSeries) - } - }, [savedSeries, id, props]) + }, + [savedSeries, id, props], + ) return ( @@ -343,28 +358,31 @@ const Chart = (props: ChartProps) => { {checkPermission(gridDto?.gridOptions.permissionDto.u) && ( + > )} -
diff --git a/ui/src/views/list/ChartDrawer.tsx b/ui/src/views/list/ChartDrawer.tsx index e8971a4..1844cee 100644 --- a/ui/src/views/list/ChartDrawer.tsx +++ b/ui/src/views/list/ChartDrawer.tsx @@ -2,7 +2,10 @@ import { Button, FormContainer, Input, Notification, Select, toast } from '@/com import { Field, FieldArray, Form, Formik, FieldProps } from 'formik' import { FaMinus, FaPlus, FaTimes, FaSave } from 'react-icons/fa' import { SelectBoxOption } from '@/types/shared' -import { chartSeriesTypeOptions, columnSummaryTypeListOptions } from '../admin/listForm/edit/options' +import { + chartSeriesTypeOptions, + columnSummaryTypeListOptions, +} from '../admin/listForm/edit/options' import { ChartSeriesDto } from '@/proxy/admin/charts/models' import { useLocalization } from '@/utils/hooks/useLocalization' import { useStoreState } from '@/store/store' @@ -144,12 +147,11 @@ const ChartDrawer = ({ {translate('::App.Platform.ChartDrawer.ChartSeries')} + >
@@ -159,13 +161,14 @@ const ChartDrawer = ({ variant="solid" type="button" size="sm" + icon={} onClick={() => { setFieldValue('series', [...values.series, newSeriesValue()]) }} className="w-full" >
- {translate('::App.Platform.ChartDrawer.AddNewSeries')} + {translate('::App.Platform.ChartDrawer.AddNewSeries')}
@@ -215,12 +218,14 @@ const ChartDrawer = ({ className="w-full px-3 py-2 text-left border rounded hover:bg-white flex items-center gap-2 transition-colors" > - {chartSeriesTypeOptions.find((t) => t.label === field.value) - ?.icon || '📊'} + {chartSeriesTypeOptions.find( + (t) => t.label === field.value, + )?.icon || '📊'} - {chartSeriesTypeOptions.find((t) => t.label === field.value) - ?.label || field.value} + {chartSeriesTypeOptions.find( + (t) => t.label === field.value, + )?.label || field.value} {selectedSeriesIndex === index && ( @@ -354,9 +359,14 @@ const ChartDrawer = ({ - )} @@ -174,11 +174,11 @@ const List: React.FC = () => { gridDto?.gridOptions?.ganttOptionDto?.titleExpr && ( )} @@ -186,42 +186,42 @@ const List: React.FC = () => { gridDto?.gridOptions?.treeOptionDto?.parentIdExpr && ( )} {gridDto.gridOptions.layoutDto.pivot && ( )} {gridDto.gridOptions.layoutDto.chart && ( )} diff --git a/ui/src/views/list/Pivot.tsx b/ui/src/views/list/Pivot.tsx index 941884e..6649696 100644 --- a/ui/src/views/list/Pivot.tsx +++ b/ui/src/views/list/Pivot.tsx @@ -434,6 +434,7 @@ const Pivot = (props: PivotProps) => { } > diff --git a/ui/src/views/public/NotFound.tsx b/ui/src/views/public/NotFound.tsx index c5a8ed5..ebf49f2 100644 --- a/ui/src/views/public/NotFound.tsx +++ b/ui/src/views/public/NotFound.tsx @@ -13,7 +13,7 @@ const NotFound: React.FC = () => {

{/* Metin rengi, margin ve max-width güncellendi */} {translate('::Public.notFound.message')}

- {/* Buton stili güncellendi */} + {/* Buton stili güncellendi */} {translate('::Public.notFound.button')} diff --git a/ui/src/views/setup/DatabaseSetup.tsx b/ui/src/views/setup/DatabaseSetup.tsx index afcf5c6..5aa8c97 100644 --- a/ui/src/views/setup/DatabaseSetup.tsx +++ b/ui/src/views/setup/DatabaseSetup.tsx @@ -2,6 +2,7 @@ import { useEffect, useRef, useState } from 'react' import { APP_NAME } from '@/constants/app.constant' import { getMigrateUrl, getSetupStatus } from '@/services/setup.service' import { applicationConfigurationUrl } from '@/services/abpConfig.service' +import { Button } from '@/components/ui' interface LogLine { level: 'info' | 'warn' | 'error' | 'success' | 'restart' | 'done' @@ -248,12 +249,12 @@ const DatabaseSetup = () => {
{(status === 'idle' || status === 'error') && !dbExists && ( - + )} {status === 'restarting' && (
{role.name}