aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorRasmus Fuhse <fuhse@data-quest.de>2023-08-31 11:48:31 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2023-08-31 11:48:31 +0000
commitbcf449c0e054adcdfeacc3ba098f6c3357a4e69d (patch)
tree810af30d22e8b48e8b2158f91b825e7c9ef3c1ba /resources
parent4d7526194dbe2c648c4b4b409c99dd7ed7332f24 (diff)
Resolve "Ankündigungen können über den Arbeitsplatz nicht gespeichert werden"
Closes #2365 Merge request studip/studip!1995
Diffstat (limited to 'resources')
-rw-r--r--resources/vue/components/EditableList.vue19
1 files changed, 17 insertions, 2 deletions
diff --git a/resources/vue/components/EditableList.vue b/resources/vue/components/EditableList.vue
index 3b30e5e..3199f71 100644
--- a/resources/vue/components/EditableList.vue
+++ b/resources/vue/components/EditableList.vue
@@ -1,13 +1,19 @@
<template>
<div>
+ <div hidden>
+ <label class="hiddeninput" v-if="required && sortedItems.length === 0">
+ <span class="textlabel">{{ label }}</span>
+ <input type="text" required value="">
+ </label>
+ </div>
<div class="formpart">
<ul class="clean editablelist">
<li v-for="item in sortedItems" :key="item.id" :data-type="item.type">
- <studip-icon v-if="item.icon" :shape="item.icon" role="info" size="20" class="text-bottom" alt=""></studip-icon>
+ <studip-icon v-if="item.icon" :shape="item.icon" role="info" :size="20" class="text-bottom" alt=""></studip-icon>
<input v-if="name" type="hidden" :name="name + '[]'" :value="item.value">
<span>{{item.name}}</span>
<button v-if="item.deletable" @click.prevent="deleteItem(item)" :title="$gettextInterpolate($gettext('%{ name } löschen'), {name: item.name})" class="undecorated">
- <studip-icon shape="trash" role="clickable" size="20" class="text-bottom"></studip-icon>
+ <studip-icon shape="trash" role="clickable" :size="20" class="text-bottom"></studip-icon>
</button>
</li>
</ul>
@@ -57,6 +63,15 @@ export default {
type: Array,
required: false,
default: () => [],
+ },
+ required: {
+ required: false,
+ type: Boolean,
+ default: false
+ },
+ label: {
+ type: String,
+ required: false
}
},
data () {