diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 488991725..224b83f2e 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -913,6 +913,7 @@ const message = { driver: 'Driver', option: 'Option', attachable: 'Attachable', + parentNetworkCard: 'Parent Network Card', subnet: 'Subnet', scope: 'IP scope', gateway: 'Gateway', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 3e32ba47e..e22b92623 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -915,6 +915,7 @@ const message = { driver: 'Driver', option: 'Opción', attachable: 'Adjuntable', + parentNetworkCard: 'Tarjeta de Red Principal', subnet: 'Subred', scope: 'Rango de IP', gateway: 'Puerta de enlace', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index d588af3d2..dc3159baa 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -889,6 +889,7 @@ const message = { driver: 'ドライバ', option: 'オプション', attachable: '取り付け可能', + parentNetworkCard: '親ネットワークカード', subnet: 'サブネット', scope: 'IPスコープ', gateway: 'ゲートウェイ', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 7677fc9c6..87223c7d9 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -880,6 +880,7 @@ const message = { driver: '드라이버', option: '옵션', attachable: '연결 가능', + parentNetworkCard: '부모 네트워크 카드', subnet: '서브넷', scope: 'IP 범위', gateway: '게이트웨이', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 746fd2be9..d2aaae4bf 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -907,6 +907,7 @@ const message = { driver: 'Pemacu', option: 'Pilihan', attachable: 'Boleh dilampirkan', + parentNetworkCard: 'Kad Rangkaian Induk', subnet: 'Subnet', scope: 'Skop IP', gateway: 'Gerbang', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index e53fe3ace..c5fc7dfff 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -902,6 +902,7 @@ const message = { driver: 'Driver', option: 'Opção', attachable: 'Anexável', + parentNetworkCard: 'Placa de Rede Principal', subnet: 'Sub-rede', scope: 'Escopo IP', gateway: 'Gateway', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index f2298dd1b..b90c69577 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -905,6 +905,7 @@ const message = { driver: 'Драйвер', option: 'Опция', attachable: 'Подключаемая', + parentNetworkCard: 'Родительская Сетевая Карта', subnet: 'Подсеть', scope: 'Диапазон IP', gateway: 'Шлюз', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 3ff274dde..638b22a65 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -923,6 +923,7 @@ const message = { driver: 'Sürücü', option: 'Seçenek', attachable: 'Eklenebilir', + parentNetworkCard: 'Ana Ağ Kartı', subnet: 'Alt ağ', scope: 'IP kapsamı', gateway: 'Ağ geçidi', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 4a7082eba..c2350ac57 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -878,6 +878,7 @@ const message = { driver: '模式', option: '參數', attachable: '可用', + parentNetworkCard: '父網卡', subnet: '子網', scope: 'IP 範圍', gateway: '閘道器', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index c146c8f12..cbd4744d7 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -877,6 +877,7 @@ const message = { driver: '模式', option: '参数', attachable: '可用', + parentNetworkCard: '父网卡', subnet: '子网', scope: 'IP 范围', gateway: '网关', diff --git a/frontend/src/views/container/network/create/index.vue b/frontend/src/views/container/network/create/index.vue index 3313b2fef..997c56ee9 100644 --- a/frontend/src/views/container/network/create/index.vue +++ b/frontend/src/views/container/network/create/index.vue @@ -12,6 +12,17 @@ + + + + + + + IPv4
@@ -133,12 +144,14 @@ import { ElForm } from 'element-plus'; import { createNetwork } from '@/api/modules/container'; import { MsgSuccess } from '@/utils/message'; import { checkIp, checkIpV6 } from '@/utils/util'; +import { getNetworkOptions } from '@/api/modules/host'; const loading = ref(false); const drawerVisible = ref(false); const form = reactive({ name: '', + parentNetworkCard: '', labelStr: '', labels: [] as Array, optionStr: '', @@ -163,6 +176,7 @@ const acceptParams = (): void => { form.optionStr = ''; form.options = []; form.driver = 'bridge'; + form.parentNetworkCard = ''; form.ipv4 = true; form.subnet = ''; form.gateway = ''; @@ -174,6 +188,7 @@ const acceptParams = (): void => { form.ipRangeV6 = ''; form.auxAddressV6 = []; drawerVisible.value = true; + loadNetworkOptions(); }; const emit = defineEmits<{ (e: 'search'): void }>(); @@ -181,9 +196,12 @@ const handleClose = () => { drawerVisible.value = false; }; +const netOptions = ref(); + const rules = reactive({ name: [Rules.requiredInput], driver: [Rules.requiredSelect], + parentNetworkCard: [Rules.requiredSelect], subnet: [{ validator: checkCidr, trigger: 'blur' }, Rules.requiredInput], gateway: [{ validator: checkGateway, trigger: 'blur' }], ipRange: [{ validator: checkCidr, trigger: 'blur' }], @@ -263,6 +281,11 @@ const handleV6Delete = (index: number) => { form.auxAddressV6.splice(index, 1); }; +const loadNetworkOptions = async () => { + const res = await getNetworkOptions(); + netOptions.value = res.data; +}; + type FormInstance = InstanceType; const formRef = ref(); const onSubmit = async (formEl: FormInstance | undefined) => { @@ -276,6 +299,9 @@ const onSubmit = async (formEl: FormInstance | undefined) => { form.options = form.optionStr.split('\n'); } loading.value = true; + if (form.driver === 'macvlan') { + form.options.push('parent=' + form.parentNetworkCard); + } await createNetwork(form) .then(() => { loading.value = false; diff --git a/frontend/src/views/cronjob/library/index.vue b/frontend/src/views/cronjob/library/index.vue index beaccada0..57c121eb8 100644 --- a/frontend/src/views/cronjob/library/index.vue +++ b/frontend/src/views/cronjob/library/index.vue @@ -213,7 +213,7 @@ const onDelete = async (row: Cronjob.ScriptInfo | null) => { }; const onSync = async () => { - ElMessageBox.confirm(i18n.global.t('cronjob.library.syncHelper'), i18n.global.t('commons.button.syncNow'), { + ElMessageBox.confirm(i18n.global.t('cronjob.library.syncHelper'), i18n.global.t('cronjob.library.syncNow'), { confirmButtonText: i18n.global.t('commons.button.confirm'), cancelButtonText: i18n.global.t('commons.button.cancel'), type: 'info',