diff --git a/frontend/src/global/form-rules.ts b/frontend/src/global/form-rules.ts
index c6749924e..be3886e49 100644
--- a/frontend/src/global/form-rules.ts
+++ b/frontend/src/global/form-rules.ts
@@ -236,6 +236,19 @@ const checkIntegerNumber = (rule: any, value: any, callback: any) => {
}
};
+const checkIntegerNumberWith0 = (rule: any, value: any, callback: any) => {
+ if (value === '' || typeof value === 'undefined' || value == null) {
+ callback(new Error(i18n.global.t('commons.rule.integer')));
+ } else {
+ const reg = /^[0-9]*$/;
+ if (!reg.test(value) && value !== '') {
+ callback(new Error(i18n.global.t('commons.rule.integer')));
+ } else {
+ callback();
+ }
+ }
+};
+
const checkFloatNumber = (rule: any, value: any, callback: any) => {
if (value === '' || typeof value === 'undefined' || value == null) {
callback(new Error(i18n.global.t('commons.rule.integer')));
@@ -413,6 +426,7 @@ interface CommonRule {
email: FormItemRule;
number: FormItemRule;
integerNumber: FormItemRule;
+ integerNumberWith0: FormItemRule;
floatNumber: FormItemRule;
ip: FormItemRule;
ipV4V6: FormItemRule;
@@ -515,6 +529,11 @@ export const Rules: CommonRule = {
validator: checkIntegerNumber,
trigger: 'blur',
},
+ integerNumberWith0: {
+ required: true,
+ validator: checkIntegerNumberWith0,
+ trigger: 'blur',
+ },
floatNumber: {
required: true,
validator: checkFloatNumber,
diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts
index bdb38cf82..c57e08afc 100644
--- a/frontend/src/lang/modules/en.ts
+++ b/frontend/src/lang/modules/en.ts
@@ -504,7 +504,8 @@ const message = {
appHelper:
'This container is sourced from the application store. Upgrading it may cause the service to be unavailable. Do you want to continue?',
- forcePull: 'Pull the latest image',
+ forcePull: 'forced image pull ',
+ forcePullHelper: 'Ignore existing images on the server and pull again.',
server: 'Host',
serverExample: 'e.g. 80, 80-88, ip:80 or ip:80-88',
containerExample: 'e.g. 80 or 80-88',
diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts
index bb77659de..0f2e1779d 100644
--- a/frontend/src/lang/modules/tw.ts
+++ b/frontend/src/lang/modules/tw.ts
@@ -493,7 +493,8 @@ const message = {
targetImageHelper: '請輸入目標鏡像版本',
appHelper: '該容器來源於應用商店,升級可能導致該服務不可用,是否繼續?',
- forcePull: '拉取最新鏡像',
+ forcePull: '強製拉取鏡像',
+ forcePullHelper: '忽略服務器已存在的鏡像,重新拉取一次',
server: '服務器',
serverExample: '例: 80, 80-88, ip:80 或者 ip:80-88',
containerExample: '例: 80 或者 80-88',
diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts
index 835ed9501..5d4d476e2 100644
--- a/frontend/src/lang/modules/zh.ts
+++ b/frontend/src/lang/modules/zh.ts
@@ -493,7 +493,8 @@ const message = {
targetImageHelper: '请输入目标镜像版本',
appHelper: '该容器来源于应用商店,升级可能导致该服务不可用,是否继续?',
- forcePull: '拉取最新镜像',
+ forcePull: '强制拉取镜像',
+ forcePullHelper: '忽略服务器已存在的镜像,重新拉取一次',
server: '服务器',
serverExample: '例: 80, 80-88, ip:80 或者 ip:80-88',
containerExample: '例: 80 或者 80-88',
diff --git a/frontend/src/views/container/container/index.vue b/frontend/src/views/container/container/index.vue
index 4e4c76e00..4a08502ed 100644
--- a/frontend/src/views/container/container/index.vue
+++ b/frontend/src/views/container/container/index.vue
@@ -453,6 +453,12 @@ const buttons = [
dialogContainerLogRef.value!.acceptParams({ containerID: row.containerID, container: row.name });
},
},
+ {
+ label: i18n.global.t('commons.button.upgrade'),
+ click: (row: Container.ContainerInfo) => {
+ dialogUpgradeRef.value!.acceptParams({ container: row.name, image: row.imageName, fromApp: row.isFromApp });
+ },
+ },
{
label: i18n.global.t('container.monitor'),
disabled: (row: Container.ContainerInfo) => {
@@ -462,12 +468,6 @@ const buttons = [
onMonitor(row);
},
},
- {
- label: i18n.global.t('commons.button.upgrade'),
- click: (row: Container.ContainerInfo) => {
- dialogUpgradeRef.value!.acceptParams({ container: row.name, image: row.imageName, fromApp: row.isFromApp });
- },
- },
{
label: i18n.global.t('container.rename'),
click: (row: Container.ContainerInfo) => {
diff --git a/frontend/src/views/container/container/operate/index.vue b/frontend/src/views/container/container/operate/index.vue
index 20fa3fea6..5ee09a383 100644
--- a/frontend/src/views/container/container/operate/index.vue
+++ b/frontend/src/views/container/container/operate/index.vue
@@ -30,6 +30,7 @@
{{ $t('container.forcePull') }}
+ {{ $t('container.forcePullHelper') }}
@@ -302,7 +303,7 @@ const rules = reactive({
name: [Rules.requiredInput, Rules.volumeName],
image: [Rules.requiredSelect],
network: [Rules.requiredSelect],
- cpuShares: [Rules.floatNumber, checkNumberRange(0, 262144)],
+ cpuShares: [Rules.integerNumberWith0, checkNumberRange(0, 262144)],
nanoCPUs: [Rules.floatNumber],
memory: [Rules.floatNumber],
});
@@ -385,7 +386,6 @@ const onSubmit = async (formEl: FormInstance | undefined) => {
return;
}
dialogData.value.rowData!.memory = Number(dialogData.value.rowData!.memory);
- dialogData.value.rowData!.cpuShares = Number(dialogData.value.rowData!.cpuShares);
dialogData.value.rowData!.nanoCPUs = Number(dialogData.value.rowData!.nanoCPUs);
loading.value = true;
diff --git a/frontend/src/views/container/container/upgrade/index.vue b/frontend/src/views/container/container/upgrade/index.vue
index 85dbae877..9ce9d77c2 100644
--- a/frontend/src/views/container/container/upgrade/index.vue
+++ b/frontend/src/views/container/container/upgrade/index.vue
@@ -1,5 +1,5 @@
-
+
@@ -42,6 +42,7 @@
{{ $t('container.forcePull') }}
+ {{ $t('container.forcePullHelper') }}