Files
mixtape/zero.Backoffice.UI/old_app/pages/settings/application-features.vue
T
2021-12-07 01:11:18 +01:00

58 lines
1.2 KiB
Vue

<template>
<div class="application-features">
<ui-property v-for="feature in features" :key="feature.alias" :label="feature.name" :description="feature.description" :vertical="false">
<ui-toggle :value="value.indexOf(feature.alias) > -1" @input="onFeatureToggle($event, feature)" :disabled="disabled" />
</ui-property>
</div>
</template>
<script>
import ApplicationsApi from 'zero/api/applications.js';
export default {
props: {
value: {
type: Array,
default: () => []
},
config: Object,
disabled: {
type: Boolean,
default: false
},
},
data: () => ({
features: []
}),
created()
{
ApplicationsApi.getAllFeatures().then(items => this.features = items);
},
methods: {
onFeatureToggle(isOn, feature)
{
const alias = feature.alias;
const index = this.value.indexOf(alias);
if (!isOn && index > -1)
{
this.value.splice(index, 1);
}
else if (isOn && index === -1)
{
this.value.push(alias);
}
this.$emit('input', this.value);
}
}
}
</script>