diff --git a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx index 2106d8d3d..89f32f495 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx +++ b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx @@ -27,7 +27,7 @@ import UserGroupsTab from "./components/UserGroupsTab"; import EnvironmentHeader from "./components/EnvironmentHeader"; import ModernBreadcrumbs from "./components/ModernBreadcrumbs"; import { getEnvironmentTagColor } from "./utils/environmentUtils"; -const { Title, Text } = Typography; +import ErrorComponent from './components/ErrorComponent'; const { TabPane } = Tabs; /** @@ -80,50 +80,18 @@ const EnvironmentDetail: React.FC = () => { if (isLoading) { return (
- +
); } if (error || !environment) { - const errorItems = [ - { - key: 'environments', - title: ( - - Environments - - ), - onClick: () => history.push("/setting/environments") - }, - { - key: 'notFound', - title: 'Not Found' - } - ]; - return ( -
- - - -
- - Environment Not Found - - - {error || "The environment you're looking for doesn't exist or you don't have permission to view it."} - - -
-
-
+ ); } diff --git a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx index 613ed47a2..cc7a9dc00 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx +++ b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx @@ -139,10 +139,7 @@ const EnvironmentsList: React.FC = () => { borderRadius: '12px', boxShadow: '0 2px 8px rgba(0,0,0,0.05)' }} - headStyle={{ - borderBottom: '1px solid #f0f0f0', - padding: '16px 24px' - }} + styles={{ header: { borderBottom: '1px solid #f0f0f0', padding: '16px 24px' } }} bodyStyle={{ padding: '24px' }} > @@ -191,10 +188,7 @@ const EnvironmentsList: React.FC = () => { borderRadius: '12px', boxShadow: '0 2px 8px rgba(0,0,0,0.05)', }} - headStyle={{ - borderBottom: '1px solid #f0f0f0', - padding: '16px 24px' - }} + styles={{ header: { borderBottom: '1px solid #f0f0f0', padding: '16px 24px' } }} bodyStyle={{ padding: '24px' }} extra={ { const { workspace, isLoading, error, toggleManagedStatus } = useWorkspaceContext(); const { openDeployModal } = useDeployModal(); - console.log("workspace render", workspace); const [isToggling, setIsToggling] = useState(false); @@ -58,18 +58,18 @@ const WorkspaceDetail: React.FC = () => { if (isLoading) { return (
- +
); } if (error || !environment || !workspace) { return ( -
- - {error || "Workspace not found"} - -
+ ); } diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx new file mode 100644 index 000000000..2f4d5fbac --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { Card, Button, Typography } from 'antd'; +import { HomeOutlined } from '@ant-design/icons'; +import history from '@lowcoder-ee/util/history'; + +const { Title, Text } = Typography; + +interface ErrorComponentProps { + errorMessage: string; + returnPath: string; + returnLabel: string; +} + +const ErrorComponent: React.FC = ({ errorMessage, returnPath, returnLabel }) => { + return ( +
+ +
+ + {errorMessage} + + + The item you're looking for doesn't exist or you don't have permission to view it. + + +
+
+
+ ); +}; + +export default ErrorComponent; diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx index 1a09691c2..b2459abb7 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx +++ b/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx @@ -50,6 +50,7 @@ export const appsConfig: DeployableItemConfig = { publishOnTarget: values.publishOnTarget, publicToAll: values.publicToAll, publicToMarketplace: values.publicToMarketplace, + applicationGid: item.applicationGid, }; }, execute: (params: any) => deployApp(params) diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx index 11e9e54fc..3ae507dd8 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx +++ b/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx @@ -23,7 +23,8 @@ export const dataSourcesConfig: DeployableItemConfig = { envId: sourceEnv.environmentId, targetEnvId: targetEnv.environmentId, datasourceId: item.id, - updateDependenciesIfNeeded: values.updateDependenciesIfNeeded + updateDependenciesIfNeeded: values.updateDependenciesIfNeeded, + datasourceGid: item.gid }; }, execute: (params: any) => deployDataSource(params) diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx index 5396bd877..35189c8c9 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx +++ b/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx @@ -24,7 +24,8 @@ export const queryConfig: DeployableItemConfig = { envId: sourceEnv.environmentId, targetEnvId: targetEnv.environmentId, queryId: item.id, - updateDependenciesIfNeeded: values.updateDependenciesIfNeeded + updateDependenciesIfNeeded: values.updateDependenciesIfNeeded, + queryGid: item.gid, }; }, execute: (params: any) => deployQuery(params) diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts index bfd7ae348..8accb9db1 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts @@ -18,6 +18,7 @@ export interface DeployAppParams { envId: string; targetEnvId: string; applicationId: string; + applicationGid: string; updateDependenciesIfNeeded?: boolean; publishOnTarget?: boolean; publicToAll?: boolean; @@ -79,7 +80,7 @@ export async function getMergedWorkspaceApps( // Fetch managed objects instead of managed apps let managedObjects: ManagedObject[] = []; try { - managedObjects = await getManagedObjects(environmentId); + managedObjects = await getManagedObjects(environmentId, ManagedObjectType.APP); } catch (error) { console.error("Failed to fetch managed objects:", error); // Continue with empty managed list @@ -125,7 +126,7 @@ export const deployApp = async (params: DeployAppParams): Promise => { if (response.status === 200) { await transferManagedObject( - params.applicationId, + params.applicationGid, params.envId, params.targetEnvId, ManagedObjectType.APP diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts index 694c28dd1..cca28176d 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts @@ -20,7 +20,9 @@ export interface DeployDataSourceParams { envId: string; targetEnvId: string; datasourceId: string; + datasourceGid: string; updateDependenciesIfNeeded?: boolean; + } // Get data sources for a workspace - using your correct implementation export async function getWorkspaceDataSources( @@ -54,7 +56,6 @@ export async function getWorkspaceDataSources( orgId: workspaceId } }); - console.log("data source response",response); // Check if response is valid if (!response.data) { @@ -157,12 +158,12 @@ export async function deployDataSource(params: DeployDataSourceParams): Promise< envId: params.envId, targetEnvId: params.targetEnvId, datasourceId: params.datasourceId, - updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false + updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false, } }); if (response.status === 200) { await transferManagedObject( - params.datasourceId, + params.datasourceGid, params.envId, params.targetEnvId, ManagedObjectType.DATASOURCE diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts index 1448e0bae..f0f9f1939 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts @@ -204,7 +204,6 @@ export async function getManagedQueries(environmentId: string): Promise environmentId } }); - console.log("Managed queries response function:", response.data); if (!response.data.data || !Array.isArray(response.data.data)) { return []; diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts index af1268918..e34c168b3 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts @@ -195,7 +195,6 @@ export async function getEnvironmentUserGroups( // Make the API request to get user groups const response = await axios.get(`${apiServiceUrl}/api/groups/list`, { headers }); - console.log(response); // Check if response is valid if (!response.data) { @@ -359,8 +358,7 @@ export async function getWorkspaceDataSources( orgId: workspaceId } }); - console.log("data source response",response); - + // Check if response is valid if (!response.data) { return []; @@ -434,7 +432,7 @@ export async function getWorkspaceQueries( if (!response.data) { return { queries: [], total: 0 }; } - console.log("RESPONSE DATA QUERIES",response.data.data); + // Map the response to include id field required by DeployableItem const queries = response.data.data.map(query => ({ ...query, @@ -444,8 +442,6 @@ export async function getWorkspaceQueries( managed: false // Default to unmanaged })); - console.log("queries",queries); - return { queries, total: response.data.total diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts index 6801097be..4cf7a29be 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts @@ -15,6 +15,7 @@ export interface MergedQueriesResult { targetEnvId: string; queryId: string; updateDependenciesIfNeeded?: boolean; + queryGid: string; } @@ -28,19 +29,15 @@ export interface MergedQueriesResult { // Fetch regular queries const regularQueries = await getWorkspaceQueries(workspaceId, apiKey, apiServiceUrl); - console.log("Regular queries response:", regularQueries); const managedObjects = await getManagedObjects(environmentId, ManagedObjectType.QUERY); - console.log("Managed queries response:", managedObjects); // Create a set of managed query GIDs for quick lookup const managedQueryGids = new Set(managedObjects.map(obj => obj.objGid)); - console.log("Managed query GIDs:", Array.from(managedQueryGids)); // Mark regular queries as managed if they exist in managed queries const mergedQueries = regularQueries.queries.map((query: Query) => { const isManaged = managedQueryGids.has(query.gid); - console.log(`Query ${query.name} (gid: ${query.gid}) is ${isManaged ? "managed" : "not managed"}`); return { ...query, @@ -51,11 +48,6 @@ export interface MergedQueriesResult { // Calculate stats const total = mergedQueries.length; const managed = mergedQueries.filter(query => query.managed).length; - console.log("Generated stats:", { - total, - managed, - unmanaged: total - managed - }); return { queries: mergedQueries, @@ -84,7 +76,7 @@ export interface MergedQueriesResult { }); if (response.status === 200) { await transferManagedObject( - params.queryId, + params.queryGid, params.envId, params.targetEnvId, ManagedObjectType.QUERY diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts index 4f7978f3b..871c0e036 100644 --- a/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts +++ b/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts @@ -99,7 +99,7 @@ export async function deployWorkspace(params: { // After successful deployment, set the managed object in target environment if (response.status === 200) { await transferManagedObject( - params.workspaceId, + params.workspaceId, // first param has to be GID params.envId, params.targetEnvId, ManagedObjectType.ORG pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy