AzuraCast/frontend/vue/components/Stations/Webhooks/Form/Common/RateLimitFields.vue

79 lines
1.8 KiB
Vue

<template>
<b-wrapped-form-group
id="form_config_rate_limit"
class="col-md-12"
:field="form.config.rate_limit"
>
<template #label>
{{ $gettext('Only Post Once Every...') }}
</template>
<template #default="slotProps">
<b-form-select
:id="slotProps.id"
v-model="slotProps.field.$model"
:options="rateLimitOptions"
/>
</template>
</b-wrapped-form-group>
</template>
<script setup>
import BWrappedFormGroup from "~/components/Form/BWrappedFormGroup";
import {useTranslate} from "~/vendor/gettext";
const props = defineProps({
form: {
type: Object,
required: true
}
});
const {$gettext, interpolate} = useTranslate();
const langSeconds = $gettext('%{ seconds } seconds');
const langMinutes = $gettext('%{ minutes } minutes');
const rateLimitOptions = [
{
text: $gettext('No Limit'),
value: 0,
},
{
text: interpolate(langSeconds, {seconds: 15}),
value: 15,
},
{
text: interpolate(langSeconds, {seconds: 30}),
value: 30,
},
{
text: interpolate(langSeconds, {seconds: 60}),
value: 60,
},
{
text: interpolate(langMinutes, {minutes: 2}),
value: 120,
},
{
text: interpolate(langMinutes, {minutes: 5}),
value: 300,
},
{
text: interpolate(langMinutes, {minutes: 10}),
value: 600,
},
{
text: interpolate(langMinutes, {minutes: 15}),
value: 900,
},
{
text: interpolate(langMinutes, {minutes: 30}),
value: 1800,
},
{
text: interpolate(langMinutes, {minutes: 60}),
value: 3600,
}
];
</script>