fix: 强制拉取镜像样式调整 (#1602)

This commit is contained in:
ssongliu 2023-07-11 10:59:13 +08:00 committed by GitHub
parent b9227caaf8
commit 07bbf057d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 35 additions and 12 deletions

View file

@ -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) => { const checkFloatNumber = (rule: any, value: any, callback: any) => {
if (value === '' || typeof value === 'undefined' || value == null) { if (value === '' || typeof value === 'undefined' || value == null) {
callback(new Error(i18n.global.t('commons.rule.integer'))); callback(new Error(i18n.global.t('commons.rule.integer')));
@ -413,6 +426,7 @@ interface CommonRule {
email: FormItemRule; email: FormItemRule;
number: FormItemRule; number: FormItemRule;
integerNumber: FormItemRule; integerNumber: FormItemRule;
integerNumberWith0: FormItemRule;
floatNumber: FormItemRule; floatNumber: FormItemRule;
ip: FormItemRule; ip: FormItemRule;
ipV4V6: FormItemRule; ipV4V6: FormItemRule;
@ -515,6 +529,11 @@ export const Rules: CommonRule = {
validator: checkIntegerNumber, validator: checkIntegerNumber,
trigger: 'blur', trigger: 'blur',
}, },
integerNumberWith0: {
required: true,
validator: checkIntegerNumberWith0,
trigger: 'blur',
},
floatNumber: { floatNumber: {
required: true, required: true,
validator: checkFloatNumber, validator: checkFloatNumber,

View file

@ -504,7 +504,8 @@ const message = {
appHelper: appHelper:
'This container is sourced from the application store. Upgrading it may cause the service to be unavailable. Do you want to continue?', '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', server: 'Host',
serverExample: 'e.g. 80, 80-88, ip:80 or ip:80-88', serverExample: 'e.g. 80, 80-88, ip:80 or ip:80-88',
containerExample: 'e.g. 80 or 80-88', containerExample: 'e.g. 80 or 80-88',

View file

@ -493,7 +493,8 @@ const message = {
targetImageHelper: '請輸入目標鏡像版本', targetImageHelper: '請輸入目標鏡像版本',
appHelper: '該容器來源於應用商店升級可能導致該服務不可用是否繼續', appHelper: '該容器來源於應用商店升級可能導致該服務不可用是否繼續',
forcePull: '拉取最新鏡像', forcePull: '強製拉取鏡像',
forcePullHelper: '忽略服務器已存在的鏡像重新拉取一次',
server: '服務器', server: '服務器',
serverExample: ' 80, 80-88, ip:80 或者 ip:80-88', serverExample: ' 80, 80-88, ip:80 或者 ip:80-88',
containerExample: ' 80 或者 80-88', containerExample: ' 80 或者 80-88',

View file

@ -493,7 +493,8 @@ const message = {
targetImageHelper: '请输入目标镜像版本', targetImageHelper: '请输入目标镜像版本',
appHelper: '该容器来源于应用商店升级可能导致该服务不可用是否继续', appHelper: '该容器来源于应用商店升级可能导致该服务不可用是否继续',
forcePull: '拉取最新镜像', forcePull: '强制拉取镜像',
forcePullHelper: '忽略服务器已存在的镜像重新拉取一次',
server: '服务器', server: '服务器',
serverExample: ' 80, 80-88, ip:80 或者 ip:80-88', serverExample: ' 80, 80-88, ip:80 或者 ip:80-88',
containerExample: ' 80 或者 80-88', containerExample: ' 80 或者 80-88',

View file

@ -453,6 +453,12 @@ const buttons = [
dialogContainerLogRef.value!.acceptParams({ containerID: row.containerID, container: row.name }); 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'), label: i18n.global.t('container.monitor'),
disabled: (row: Container.ContainerInfo) => { disabled: (row: Container.ContainerInfo) => {
@ -462,12 +468,6 @@ const buttons = [
onMonitor(row); 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'), label: i18n.global.t('container.rename'),
click: (row: Container.ContainerInfo) => { click: (row: Container.ContainerInfo) => {

View file

@ -30,6 +30,7 @@
<el-checkbox v-model="dialogData.rowData!.forcePull"> <el-checkbox v-model="dialogData.rowData!.forcePull">
{{ $t('container.forcePull') }} {{ $t('container.forcePull') }}
</el-checkbox> </el-checkbox>
<span class="input-help">{{ $t('container.forcePullHelper') }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('commons.table.port')"> <el-form-item :label="$t('commons.table.port')">
<el-radio-group v-model="dialogData.rowData!.publishAllPorts" class="ml-4"> <el-radio-group v-model="dialogData.rowData!.publishAllPorts" class="ml-4">
@ -302,7 +303,7 @@ const rules = reactive({
name: [Rules.requiredInput, Rules.volumeName], name: [Rules.requiredInput, Rules.volumeName],
image: [Rules.requiredSelect], image: [Rules.requiredSelect],
network: [Rules.requiredSelect], network: [Rules.requiredSelect],
cpuShares: [Rules.floatNumber, checkNumberRange(0, 262144)], cpuShares: [Rules.integerNumberWith0, checkNumberRange(0, 262144)],
nanoCPUs: [Rules.floatNumber], nanoCPUs: [Rules.floatNumber],
memory: [Rules.floatNumber], memory: [Rules.floatNumber],
}); });
@ -385,7 +386,6 @@ const onSubmit = async (formEl: FormInstance | undefined) => {
return; return;
} }
dialogData.value.rowData!.memory = Number(dialogData.value.rowData!.memory); 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); dialogData.value.rowData!.nanoCPUs = Number(dialogData.value.rowData!.nanoCPUs);
loading.value = true; loading.value = true;

View file

@ -1,5 +1,5 @@
<template> <template>
<el-drawer v-model="drawerVisiable" :destroy-on-close="true" :close-on-click-modal="false" size="30%"> <el-drawer v-model="drawerVisiable" :destroy-on-close="true" :close-on-click-modal="false" size="50%">
<template #header> <template #header>
<DrawerHeader :header="$t('commons.button.upgrade')" :resource="form.name" :back="handleClose" /> <DrawerHeader :header="$t('commons.button.upgrade')" :resource="form.name" :back="handleClose" />
</template> </template>
@ -42,6 +42,7 @@
<el-checkbox v-model="form.forcePull"> <el-checkbox v-model="form.forcePull">
{{ $t('container.forcePull') }} {{ $t('container.forcePull') }}
</el-checkbox> </el-checkbox>
<span class="input-help">{{ $t('container.forcePullHelper') }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>