mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-20 06:18:56 +08:00
fix: 强制拉取镜像样式调整 (#1602)
This commit is contained in:
parent
b9227caaf8
commit
07bbf057d0
7 changed files with 35 additions and 12 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue