diff --git a/frontend/.dockerignore b/frontend/.dockerignore index b49257678..c6560b62e 100644 --- a/frontend/.dockerignore +++ b/frontend/.dockerignore @@ -12,3 +12,5 @@ **/dist/ **/yalc.lock **/.gitignore +**/providers/template/templates/ +**/providers/template/templates.json diff --git a/frontend/desktop/src/services/enable.ts b/frontend/desktop/src/services/enable.ts index e3f6383b1..ee720c142 100644 --- a/frontend/desktop/src/services/enable.ts +++ b/frontend/desktop/src/services/enable.ts @@ -11,7 +11,8 @@ export const enableApi = () => global.AppConfig.common.apiEnabled || false; export const enableOAuth2 = () => global.AppConfig.desktop.auth.idp.oauth2?.enabled || false; export const getTeamLimit = () => global.AppConfig.desktop.teamManagement?.maxTeamCount || 50; -export const getTeamInviteLimit = () => global.AppConfig.desktop.teamManagement?.maxTeamMemberCount || 50; +export const getTeamInviteLimit = () => + global.AppConfig.desktop.teamManagement?.maxTeamMemberCount || 50; export const getRegionUid = () => global.AppConfig.cloud.regionUID; diff --git a/frontend/providers/applaunchpad/src/components/AppStatusTag/index.tsx b/frontend/providers/applaunchpad/src/components/AppStatusTag/index.tsx index d300ebbc0..42434cdbd 100644 --- a/frontend/providers/applaunchpad/src/components/AppStatusTag/index.tsx +++ b/frontend/providers/applaunchpad/src/components/AppStatusTag/index.tsx @@ -27,10 +27,16 @@ const AppStatusTag = ({ fontSize={'xs'} fontWeight={'bold'} alignItems={'center'} - w={'68px'} + minW={'68px'} gap={'4px'} > - + {t(statusMap.label)} ); diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/ConfigMapDetailModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/ConfigMapDetailModal.tsx index 0b9887c2c..427b99f8d 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/ConfigMapDetailModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/ConfigMapDetailModal.tsx @@ -20,7 +20,7 @@ const ConfigMapDetailModal = ({ onClose: () => void; }) => { return ( - + {mountPath} diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/DelModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/DelModal.tsx index d0e07daf9..4ca89a74a 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/DelModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/DelModal.tsx @@ -53,7 +53,7 @@ const DelModal = ({ }, [appName, toast, t, onSuccess, onClose]); return ( - + {t('Deletion warning')} diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/LogsModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/LogsModal.tsx index e0e823760..f32c54c23 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/LogsModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/LogsModal.tsx @@ -108,7 +108,7 @@ const LogsModal = ({ }, [appName, podName]); return ( - + diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/MonitorModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/MonitorModal.tsx index 656be317e..896473745 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/MonitorModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/MonitorModal.tsx @@ -30,7 +30,7 @@ const MonitorModal = ({ onClose, isOpen }: { isOpen: boolean; onClose: () => voi const theme = useTheme(); return ( - + {t('Real-time Monitoring')} diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/PodDetailModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/PodDetailModal.tsx index 08ba839a6..b544e3ed6 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/PodDetailModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/PodDetailModal.tsx @@ -153,7 +153,7 @@ const Logs = ({ }, [events, onCloseAnalysesModel, onEndAnalyses, onOpenAnalyses, onStartAnalyses, toast]); return ( - + @@ -314,7 +314,7 @@ const Logs = ({ {/* analyses modal */} - + Pod {t('Intelligent Analysis')} diff --git a/frontend/providers/applaunchpad/src/pages/app/detail/components/PodFileModal.tsx b/frontend/providers/applaunchpad/src/pages/app/detail/components/PodFileModal.tsx index c015b42c8..c36b73de0 100644 --- a/frontend/providers/applaunchpad/src/pages/app/detail/components/PodFileModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/detail/components/PodFileModal.tsx @@ -303,7 +303,7 @@ const PodFile = ({ return ( <> - + @@ -551,7 +551,7 @@ const PodFile = ({ - + diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/components/ConfigmapModal.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/components/ConfigmapModal.tsx index 9c1646c21..c5ede83d5 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/components/ConfigmapModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/components/ConfigmapModal.tsx @@ -57,7 +57,7 @@ const ConfigmapModal = ({ return ( <> - + diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/components/CustomAccessModal.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/components/CustomAccessModal.tsx index e8e4b3d45..98886794e 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/components/CustomAccessModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/components/CustomAccessModal.tsx @@ -61,7 +61,7 @@ const CustomAccessModal = ({ return ( <> - + {t('Custom Domain')} diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/components/EditEnvs.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/components/EditEnvs.tsx index f7bb12248..5529ed0ce 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/components/EditEnvs.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/components/EditEnvs.tsx @@ -67,7 +67,7 @@ const EditEnvs = ({ }, [defaultEnv, inputVal, onClose, successCb]); return ( - + {t('Edit Environment Variables')} diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/components/ErrorModal.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/components/ErrorModal.tsx index 9498ed8c1..ee9348e97 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/components/ErrorModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/components/ErrorModal.tsx @@ -20,7 +20,7 @@ const ErrorModal = ({ onClose: () => void; }) => { return ( - + diff --git a/frontend/providers/applaunchpad/src/pages/app/edit/components/StoreModal.tsx b/frontend/providers/applaunchpad/src/pages/app/edit/components/StoreModal.tsx index 48cce97ca..53a07a897 100644 --- a/frontend/providers/applaunchpad/src/pages/app/edit/components/StoreModal.tsx +++ b/frontend/providers/applaunchpad/src/pages/app/edit/components/StoreModal.tsx @@ -72,7 +72,7 @@ const StoreModal = ({ return ( <> - + {textMap[type].title} diff --git a/frontend/providers/template/src/pages/deploy/index.tsx b/frontend/providers/template/src/pages/deploy/index.tsx index b418a488a..09ac5df00 100644 --- a/frontend/providers/template/src/pages/deploy/index.tsx +++ b/frontend/providers/template/src/pages/deploy/index.tsx @@ -11,7 +11,7 @@ import type { QueryType, YamlItemType } from '@/types'; import { ApplicationType, TemplateSourceType } from '@/types/app'; import { serviceSideProps } from '@/utils/i18n'; import { generateYamlList, parseTemplateString } from '@/utils/json-yaml'; -import { deepSearch, useCopyData } from '@/utils/tools'; +import { compareFirstLanguages, deepSearch, useCopyData } from '@/utils/tools'; import { Box, Flex, Icon, Text } from '@chakra-ui/react'; import { useQuery } from '@tanstack/react-query'; import JSYAML from 'js-yaml'; @@ -350,6 +350,15 @@ export default function EditApp({ appName }: { appName?: string }) { } export async function getServerSideProps(content: any) { + const local = + content?.req?.cookies?.NEXT_LOCALE || + compareFirstLanguages(content?.req?.headers?.['accept-language'] || 'zh'); + + content?.res.setHeader( + 'Set-Cookie', + `NEXT_LOCALE=${local}; Max-Age=2592000; Secure; SameSite=None` + ); + const appName = content?.query?.templateName || ''; return { diff --git a/frontend/providers/workorder/public/locales/en/common.json b/frontend/providers/workorder/public/locales/en/common.json index 1811debd7..023d72763 100644 --- a/frontend/providers/workorder/public/locales/en/common.json +++ b/frontend/providers/workorder/public/locales/en/common.json @@ -60,5 +60,6 @@ "Copy": "Copy", "api is error": "api is error", "region": "region", - "userId": "userId" -} + "userId": "userId", + "other": "other" +} \ No newline at end of file diff --git a/frontend/providers/workorder/public/locales/zh/common.json b/frontend/providers/workorder/public/locales/zh/common.json index f59b5f71c..e3f582018 100644 --- a/frontend/providers/workorder/public/locales/zh/common.json +++ b/frontend/providers/workorder/public/locales/zh/common.json @@ -60,5 +60,6 @@ "Copy": "复制", "api is error": "api is error", "region": "可用区", - "userId": "用户ID" -} + "userId": "用户ID", + "other": "其他" +} \ No newline at end of file diff --git a/frontend/providers/workorder/src/constants/workorder.ts b/frontend/providers/workorder/src/constants/workorder.ts index 581a58a4d..25cb92531 100644 --- a/frontend/providers/workorder/src/constants/workorder.ts +++ b/frontend/providers/workorder/src/constants/workorder.ts @@ -35,6 +35,10 @@ export const OrderTypeList: { { id: WorkOrderType.FunctionServer, label: 'functionserver' + }, + { + id: WorkOrderType.Other, + label: 'other' } ]; diff --git a/frontend/providers/workorder/src/pages/api/ai/fastgpt.ts b/frontend/providers/workorder/src/pages/api/ai/fastgpt.ts index 913a6581a..f686c905e 100644 --- a/frontend/providers/workorder/src/pages/api/ai/fastgpt.ts +++ b/frontend/providers/workorder/src/pages/api/ai/fastgpt.ts @@ -82,6 +82,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) res.write(value); } } catch (error) { + console.log(error); res.end(); } } diff --git a/frontend/providers/workorder/src/pages/api/platform/feishu.ts b/frontend/providers/workorder/src/pages/api/platform/feishu.ts index 91a23c28b..4e38d2330 100644 --- a/frontend/providers/workorder/src/pages/api/platform/feishu.ts +++ b/frontend/providers/workorder/src/pages/api/platform/feishu.ts @@ -1,5 +1,6 @@ import { verifyAccessToken } from '@/services/backend/auth'; import { jsonRes } from '@/services/backend/response'; +import { getRegionById } from '@/services/db/region'; import { updateOrder } from '@/services/db/workorder'; import { ApiResp } from '@/services/kubernet'; import { WorkOrderType } from '@/types/workorder'; @@ -28,6 +29,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< message: "'token is invaild'" }); } + const regionInfo = await getRegionById(payload.regionUid || ''); const feishuUrl = process.env.ADMIN_FEISHU_URL; const feishuCallBackUrl = process.env.ADMIN_FEISHU_CALLBACK_URL; const title = switchToManual ? `工单:${orderId},请求人工处理` : '有新的工单,请立即查看'; @@ -48,7 +50,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< elements: [ { tag: 'markdown', - content: `**用户ID:** ${payload.userId}\n**可用区ID:** ${payload.regionUid}\n所属分类: ${type}\n描述信息: ${description}` + content: `**用户ID:** ${payload.userId}\n**可用区ID:** ${ + regionInfo?.sealosRegionUid ? regionInfo.sealosRegionDomain : payload.regionUid + }\n所属分类: ${type}\n描述信息: ${description}` }, { tag: 'action', diff --git a/frontend/providers/workorder/src/pages/workorder/detail/components/AppBaseInfo.tsx b/frontend/providers/workorder/src/pages/workorder/detail/components/AppBaseInfo.tsx index fa1be8575..ede9d8888 100644 --- a/frontend/providers/workorder/src/pages/workorder/detail/components/AppBaseInfo.tsx +++ b/frontend/providers/workorder/src/pages/workorder/detail/components/AppBaseInfo.tsx @@ -82,14 +82,16 @@ const AppBaseInfo = ({ app }: { app: WorkOrderDB }) => { mt="12px" gap="12px" py="16px" - pl="16px" + px="16px" borderRadius={'4px'} bg="#F8FAFB" > {appendixs?.map((item) => ( {item.fileIcon} - {item.fileName} + + {item.fileName} +