123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <!--
- Copyright 2019 Hackware SpA <human@hackware.cl>
- This file is part of "Hackware Userland" and licensed under the terms
- of the GNU Affero General Public License version 3, or (at your option)
- a later version. You should have received a copy of this license along
- with the software. If not, see <https://www.gnu.org/licenses/>.
- -->
- <template>
- <div class="schema-form">
- <div
- v-for="(propertyObject, propertyName) in jsonSchema.properties"
- :key="propertyName"
- class="form-group"
- >
- <label :for="propertyName">
- {{ propertyObject.title }}
- {{ isRequired(propertyName) ? '*' : '' }}
- </label>
- <SchemaFormWidget
- :id="propertyName"
- :name="propertyName"
- :property="propertyObject"
- :required="isRequired"
- />
- </div>
- </div>
- </template>
- <script>
- import SchemaFormWidget from './SchemaFormWidget.vue';
- export default {
- name: 'SchemaForm',
- components: {
- SchemaFormWidget,
- },
- props: {
- jsonSchema: {
- type: Object,
- required: true,
- },
- },
- methods: {
- isRequired(propertyName) {
- return ('required' in this.jsonSchema) && this.jsonSchema.required.includes(propertyName);
- },
- },
- };
- </script>
|