diff --git a/docs/website/src/pages/self-hosting/plan/index.tsx b/docs/website/src/pages/self-hosting/plan/index.tsx
index 137971cf465..6fbc995de77 100644
--- a/docs/website/src/pages/self-hosting/plan/index.tsx
+++ b/docs/website/src/pages/self-hosting/plan/index.tsx
@@ -34,6 +34,7 @@ export default function Plan() {
const [months, setMonths] = useState('3');
const [cpu, setCpu] = useState(8);
const [memory, setMemory] = useState(16);
+ const [isOpen, setIsOpen] = useState(false);
const price = useMemo(() => {
return calculatePrice({ cpu, memory, months });
@@ -295,41 +296,56 @@ export default function Plan() {
月数
-
diff --git a/frontend/desktop/src/components/task/useDriver.tsx b/frontend/desktop/src/components/task/useDriver.tsx
index b1896717941..1a1ddbca9a9 100644
--- a/frontend/desktop/src/components/task/useDriver.tsx
+++ b/frontend/desktop/src/components/task/useDriver.tsx
@@ -1,6 +1,7 @@
import { checkUserTask, getUserTasks, updateTask } from '@/api/platform';
import { AppStoreIcon, DBproviderIcon, DriverStarIcon, LaunchpadIcon } from '@/components/icons';
import useAppStore from '@/stores/app';
+import useCallbackStore from '@/stores/callback';
import { useConfigStore } from '@/stores/config';
import { useDesktopConfigStore } from '@/stores/desktopConfig';
import { UserTask } from '@/types/task';
@@ -22,6 +23,7 @@ export default function useDriver() {
const { taskComponentState, setTaskComponentState } = useDesktopConfigStore();
const { canShowGuide } = useDesktopConfigStore();
const { installedApps } = useAppStore();
+ const { workspaceInviteCode } = useCallbackStore();
useEffect(() => {
const fetchUserTasks = async () => {
@@ -51,13 +53,13 @@ export default function useDriver() {
}
};
- if (isPC && conf?.guideEnabled && canShowGuide) {
+ if (isPC && conf?.guideEnabled && canShowGuide && !workspaceInviteCode) {
handleUserGuide();
} else {
setDesktopGuide(false);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [conf?.guideEnabled, isPC, canShowGuide]);
+ }, [conf?.guideEnabled, isPC, canShowGuide, workspaceInviteCode]);
const completeGuide = async () => {
try {
diff --git a/frontend/providers/cronjob/src/utils/json2Yaml.ts b/frontend/providers/cronjob/src/utils/json2Yaml.ts
index 5191bc741a4..a8d085c3172 100644
--- a/frontend/providers/cronjob/src/utils/json2Yaml.ts
+++ b/frontend/providers/cronjob/src/utils/json2Yaml.ts
@@ -33,6 +33,7 @@ export const json2CronJob = (data: CronJobEditType) => {
if (data.jobType === 'url') {
data.imageName = 'curlimages/curl';
data.cmdParam = `["/bin/sh", "-c", "curl ${data.url}"]`;
+ data.runCMD = '';
}
if (data.jobType === 'launchpad') {
diff --git a/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx b/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx
index d62d61936b8..15e87783890 100644
--- a/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx
+++ b/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx
@@ -139,7 +139,7 @@ const AppBaseInfo = ({ db = defaultDBDetail }: { db: DBDetailType }) => {
const externalNetWork = useMemo(() => {
const host = `${SystemEnv?.domain}`;
const port = service?.spec?.ports?.[0]?.nodePort?.toString() || '';
- let connection = `${DBTypeSecretMap[db.dbType].connectKey}://${secret?.username}:${
+ let connection = `${DBTypeSecretMap[db.dbType]?.connectKey}://${secret?.username}:${
secret?.password
}@${host}:${port}`;
diff --git a/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx b/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx
index 5c9128ef9c3..a7033b2c71a 100644
--- a/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx
+++ b/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx
@@ -170,7 +170,8 @@ const DBList = ({
},
{
accessorKey: 'storage',
- header: () => t('storage')
+ header: () => t('storage'),
+ cell: ({ row }) => <>{row.original.storage}Gi>
},
{
id: 'actions',
diff --git a/frontend/providers/dbprovider/src/utils/adapt.ts b/frontend/providers/dbprovider/src/utils/adapt.ts
index 5a5e5397f62..eaaf3417f87 100644
--- a/frontend/providers/dbprovider/src/utils/adapt.ts
+++ b/frontend/providers/dbprovider/src/utils/adapt.ts
@@ -62,6 +62,17 @@ export const getDBSource = (
};
export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => {
+ let cpu = 0;
+ let memory = 0;
+ let storage = 0;
+ db.spec?.componentSpecs.forEach((comp) => {
+ cpu += cpuFormatToM(comp?.resources?.limits?.cpu || '0');
+ memory += memoryFormatToMi(comp?.resources?.limits?.memory || '0');
+ storage += storageFormatToNum(
+ comp?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage || '0'
+ );
+ });
+
// compute store amount
return {
id: db.metadata?.uid || ``,
@@ -72,11 +83,9 @@ export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => {
? dbStatusMap[db?.status?.phase]
: dbStatusMap.UnKnow,
createTime: dayjs(db.metadata?.creationTimestamp).format('YYYY/MM/DD HH:mm'),
- cpu: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources?.limits?.cpu),
- memory: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources?.limits?.memory),
- storage:
- db.spec?.componentSpecs?.[0]?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage ||
- '-',
+ cpu,
+ memory,
+ storage: storage.toString() || '-',
conditions: db?.status?.conditions || [],
isDiskSpaceOverflow: false,
labels: db.metadata.labels || {},
@@ -85,6 +94,17 @@ export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => {
};
export const adaptDBDetail = (db: KbPgClusterType): DBDetailType => {
+ let cpu = 0;
+ let memory = 0;
+ let storage = 0;
+ db.spec?.componentSpecs.forEach((comp) => {
+ cpu += cpuFormatToM(comp?.resources?.limits?.cpu || '0');
+ memory += memoryFormatToMi(comp?.resources?.limits?.memory || '0');
+ storage += storageFormatToNum(
+ comp?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage || '0'
+ );
+ });
+
return {
id: db.metadata?.uid || ``,
createTime: dayjs(db.metadata?.creationTimestamp).format('YYYY/MM/DD HH:mm'),
@@ -96,11 +116,9 @@ export const adaptDBDetail = (db: KbPgClusterType): DBDetailType => {
dbVersion: db?.metadata?.labels['clusterversion.kubeblocks.io/name'] || '',
dbName: db.metadata?.name || 'db name',
replicas: db.spec?.componentSpecs?.[0]?.replicas || 1,
- cpu: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources.limits.cpu),
- memory: memoryFormatToMi(db.spec?.componentSpecs?.[0]?.resources.limits.memory),
- storage: storageFormatToNum(
- db.spec?.componentSpecs?.[0]?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage
- ),
+ cpu,
+ memory,
+ storage,
conditions: db?.status?.conditions || [],
isDiskSpaceOverflow: false,
labels: db.metadata.labels || {},