diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json index ef11c71..cbe5a4f 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json @@ -3078,6 +3078,12 @@ "en": "An error occurred during database migration.", "tr": "Veritabanı geçişi sırasında bir hata oluştu." }, + { + "resourceName": "Platform", + "key": "App.DbMigrate.ConfirmMessage", + "en": "Are you sure you want to start database migration? Please make sure you have a backup before proceeding.", + "tr": "Veritabanı geçişini başlatmak istediğinizden emin misiniz? Lütfen devam etmeden önce bir yedekleme yaptığınızdan emin olun." + }, { "resourceName": "Platform", "key": "App.ClearRedisCache.Message", diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs b/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs index 279910e..e9464b8 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs @@ -131,14 +131,6 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency DialogParameters = JsonSerializer.Serialize(new { name = "@Name", id = "@Id" }), IsVisible = true, }, - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "ListForms.ListForm.DbMigrate", - Text = "ListForms.ListForm.DbMigrate", - AuthName = listFormName, - OnClick = "UiEvalService.ApiDbMigrate();", - IsVisible = true, - }, }), InsertServiceAddress = "list-form-dynamic-api/tenant-insert", UpdateServiceAddress = "list-form-dynamic-api/tenant-update", diff --git a/ui/src/services/platformApi.service.ts b/ui/src/services/platformApi.service.ts index 39bf216..2ab5520 100644 --- a/ui/src/services/platformApi.service.ts +++ b/ui/src/services/platformApi.service.ts @@ -57,9 +57,6 @@ platformApiService.interceptors.response.use( hasTenantHeader && responseText.includes('tenant') - console.log('Found', isTenantNotFound) - console.log('Error', error.response?.data?.error?.code) - if (isTenantNotFound && !error.config._tenantRetried) { store.getActions().locale.setTenantName(undefined) error.config._tenantRetried = true diff --git a/ui/src/utils/codeParser.ts b/ui/src/utils/codeParser.ts index d731c3f..18c52e7 100644 --- a/ui/src/utils/codeParser.ts +++ b/ui/src/utils/codeParser.ts @@ -434,7 +434,6 @@ export const updateComponentProp = ( ); if (idAttr) { - console.log("🎯 Found component with ID:", componentId); // Find existing prop or add new one const existingPropIndex = element.openingElement.attributes.findIndex( @@ -616,8 +615,6 @@ const cleanupDuplicateImports = (code: string): string => { const reactImports = code.match(reactImportRegex); if (reactImports && reactImports.length > 1) { - console.log("🔧 Found duplicate React imports:", reactImports.length); - // Collect all hooks from all imports const allHooks = new Set(); reactImports.forEach((importLine) => { diff --git a/ui/src/views/developerKit/SqlQueryManager.tsx b/ui/src/views/developerKit/SqlQueryManager.tsx index 85703ad..b86db9e 100644 --- a/ui/src/views/developerKit/SqlQueryManager.tsx +++ b/ui/src/views/developerKit/SqlQueryManager.tsx @@ -1,11 +1,12 @@ import { useState, useCallback, useEffect, useRef } from 'react' import { Button, Dialog, Notification, toast } from '@/components/ui' import Container from '@/components/shared/Container' +import ConfirmDialog from '@/components/shared/ConfirmDialog' import { getDataSources } from '@/services/data-source.service' import type { DataSourceDto } from '@/proxy/data-source' import type { SqlQueryExecutionResultDto } from '@/proxy/sql-query-manager/models' import { sqlObjectManagerService } from '@/services/sql-query-manager.service' -import { FaDatabase, FaPlay, FaFileAlt } from 'react-icons/fa' +import { FaDatabase, FaPlay, FaFileAlt, FaCopy } from 'react-icons/fa' import { FaCheckCircle } from 'react-icons/fa' import { useLocalization } from '@/utils/hooks/useLocalization' import SqlObjectExplorer, { type SqlExplorerSelectedObject } from './SqlObjectExplorer' @@ -16,6 +17,8 @@ import { Splitter } from '@/components/codeLayout/Splitter' import { Helmet } from 'react-helmet' import { useStoreState } from '@/store/store' import { APP_NAME } from '@/constants/app.constant' +import { UiEvalService } from '@/services/UiEvalService' +import { FcAcceptDatabase } from 'react-icons/fc' interface SqlManagerState { dataSources: DataSourceDto[] @@ -66,6 +69,7 @@ const SqlQueryManager = () => { const [selectedExplorerObjects, setSelectedExplorerObjects] = useState< SqlExplorerSelectedObject[] >([]) + const [showDbMigrateConfirmDialog, setShowDbMigrateConfirmDialog] = useState(false) const [showCopyDialog, setShowCopyDialog] = useState(false) const [copyTargetDataSources, setCopyTargetDataSources] = useState([]) const [overwriteIfExists, setOverwriteIfExists] = useState(false) @@ -876,12 +880,23 @@ GO`, ))} +
+ {/* DB Migrate Confirmation Dialog */} + setShowDbMigrateConfirmDialog(false)} + onClose={() => setShowDbMigrateConfirmDialog(false)} + onConfirm={() => { + setShowDbMigrateConfirmDialog(false) + UiEvalService.ApiDbMigrate() + }} + > +

+ {translate('::App.DbMigrate.ConfirmMessage') || 'Veritabanı migration işlemini başlatmak istediğinize emin misiniz?'} +

+
+ {/* Template Confirmation Dialog */}