|
@ -2,22 +2,39 @@ |
|
|
<main v-if="data"> |
|
|
<main v-if="data"> |
|
|
<FormElement @submit.prevent="submit"> |
|
|
<FormElement @submit.prevent="submit"> |
|
|
<FormGroup> |
|
|
<FormGroup> |
|
|
<FormHeading>Interface Settings</FormHeading> |
|
|
<FormNumberField |
|
|
<FormNumberField id="mtu" v-model="data.mtu" label="MTU" /> |
|
|
id="mtu" |
|
|
<FormNumberField id="port" v-model="data.port" label="Port" /> |
|
|
v-model="data.mtu" |
|
|
<FormTextField id="device" v-model="data.device" label="Device" /> |
|
|
:label="$t('admin.generic.mtu')" |
|
|
|
|
|
:description="$t('admin.interface.mtuDesc')" |
|
|
|
|
|
/> |
|
|
|
|
|
<FormNumberField |
|
|
|
|
|
id="port" |
|
|
|
|
|
v-model="data.port" |
|
|
|
|
|
:label="$t('admin.generic.port')" |
|
|
|
|
|
:description="$t('admin.interface.portDesc')" |
|
|
|
|
|
/> |
|
|
|
|
|
<FormTextField |
|
|
|
|
|
id="device" |
|
|
|
|
|
v-model="data.device" |
|
|
|
|
|
:label="$t('admin.interface.device')" |
|
|
|
|
|
:description="$t('admin.interface.deviceDesc')" |
|
|
|
|
|
/> |
|
|
</FormGroup> |
|
|
</FormGroup> |
|
|
<FormGroup> |
|
|
<FormGroup> |
|
|
<FormHeading>Actions</FormHeading> |
|
|
<FormHeading>{{ $t('form.actions') }}</FormHeading> |
|
|
<FormActionField type="submit" label="Save" /> |
|
|
<FormActionField type="submit" :label="$t('form.save')" /> |
|
|
<FormActionField label="Revert" @click="revert" /> |
|
|
<FormActionField :label="$t('form.revert')" @click="revert" /> |
|
|
<AdminCidrDialog |
|
|
<AdminCidrDialog |
|
|
trigger-class="col-span-2" |
|
|
trigger-class="col-span-2" |
|
|
:ipv4-cidr="data.ipv4Cidr" |
|
|
:ipv4-cidr="data.ipv4Cidr" |
|
|
:ipv6-cidr="data.ipv6Cidr" |
|
|
:ipv6-cidr="data.ipv6Cidr" |
|
|
@change="changeCidr" |
|
|
@change="changeCidr" |
|
|
> |
|
|
> |
|
|
<FormActionField label="Change CIDR" class="w-full" /> |
|
|
<FormActionField |
|
|
|
|
|
:label="$t('admin.interface.changeCidr')" |
|
|
|
|
|
class="w-full" |
|
|
|
|
|
/> |
|
|
</AdminCidrDialog> |
|
|
</AdminCidrDialog> |
|
|
</FormGroup> |
|
|
</FormGroup> |
|
|
</FormElement> |
|
|
</FormElement> |
|
@ -25,7 +42,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
<script setup lang="ts"> |
|
|
const toast = useToast(); |
|
|
const { t } = useI18n(); |
|
|
|
|
|
|
|
|
const { data: _data, refresh } = await useFetch(`/api/admin/interface`, { |
|
|
const { data: _data, refresh } = await useFetch(`/api/admin/interface`, { |
|
|
method: 'get', |
|
|
method: 'get', |
|
@ -33,31 +50,14 @@ const { data: _data, refresh } = await useFetch(`/api/admin/interface`, { |
|
|
|
|
|
|
|
|
const data = toRef(_data.value); |
|
|
const data = toRef(_data.value); |
|
|
|
|
|
|
|
|
async function submit() { |
|
|
const submit = useSubmit( |
|
|
try { |
|
|
`/api/admin/interface`, |
|
|
const res = await $fetch(`/api/admin/interface`, { |
|
|
{ |
|
|
method: 'post', |
|
|
method: 'post', |
|
|
body: data.value, |
|
|
body: data.value, |
|
|
}); |
|
|
}, |
|
|
toast.showToast({ |
|
|
revert |
|
|
type: 'success', |
|
|
); |
|
|
title: 'Success', |
|
|
|
|
|
message: 'Saved', |
|
|
|
|
|
}); |
|
|
|
|
|
if (!res.success) { |
|
|
|
|
|
throw new Error('Failed to save'); |
|
|
|
|
|
} |
|
|
|
|
|
await refreshNuxtData(); |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
if (e instanceof Error) { |
|
|
|
|
|
toast.showToast({ |
|
|
|
|
|
type: 'error', |
|
|
|
|
|
title: 'Error', |
|
|
|
|
|
message: e.message, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
async function revert() { |
|
|
async function revert() { |
|
|
await refresh(); |
|
|
await refresh(); |
|
@ -65,28 +65,16 @@ async function revert() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
async function changeCidr(ipv4Cidr: string, ipv6Cidr: string) { |
|
|
async function changeCidr(ipv4Cidr: string, ipv6Cidr: string) { |
|
|
try { |
|
|
const _changeCidr = useSubmit( |
|
|
const res = await $fetch(`/api/admin/interface/cidr`, { |
|
|
`/api/admin/interface/cidr`, |
|
|
|
|
|
{ |
|
|
method: 'post', |
|
|
method: 'post', |
|
|
body: { ipv4Cidr, ipv6Cidr }, |
|
|
body: { ipv4Cidr, ipv6Cidr }, |
|
|
}); |
|
|
}, |
|
|
toast.showToast({ |
|
|
revert, |
|
|
type: 'success', |
|
|
t('admin.interface.cidrSuccess'), |
|
|
title: 'Success', |
|
|
t('admin.interface.cidrError') |
|
|
message: 'Changed CIDR', |
|
|
); |
|
|
}); |
|
|
await _changeCidr(); |
|
|
if (!res.success) { |
|
|
|
|
|
throw new Error('Failed to change CIDR'); |
|
|
|
|
|
} |
|
|
|
|
|
await refreshNuxtData(); |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
if (e instanceof Error) { |
|
|
|
|
|
toast.showToast({ |
|
|
|
|
|
type: 'error', |
|
|
|
|
|
title: 'Error', |
|
|
|
|
|
message: e.message, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|