Quellcode durchsuchen

fix(gui): improve handling of Record-wide errors, see #423

Peter Thomassen vor 5 Jahren
Ursprung
Commit
a5d671269a

+ 5 - 0
webapp/src/components/Field/RRSet.vue

@@ -5,6 +5,7 @@
             v-for="(item, index) in valueMap"
             :key="item.id"
             :content="item.content"
+            :error-messages="errorMessages[index] ? errorMessages[index].content : []"
             :hide-label="index > 0"
             :append-icon="value.length > 1 ? 'mdi-close' : ''"
             ref="inputFields"
@@ -46,6 +47,10 @@ export default {
     RecordTXT,
   },
   props: {
+    errorMessages: {
+      type: Array,
+      default: () => [],
+    },
     value: {
       type: Array,
       required: true,

+ 6 - 1
webapp/src/components/Field/Record.vue

@@ -11,7 +11,7 @@
         :label="hideLabel ? '' : field.label"
         :class="hideLabel ? 'pt-0' : ''"
         placeholder=" "
-        :hide-details="!content.length || (!$v.fields.$each[index].$invalid && !$v.fields[index].$invalid)"
+        :hide-details="!content.length || !($v.fields.$each[index].$invalid || $v.fields[index].$invalid)"
         :error="$v.fields.$each[index].$invalid || $v.fields[index].$invalid"
         :error-messages="fieldErrorMessages(index)"
         :style="{ width: fieldWidth(index) }"
@@ -33,6 +33,7 @@
         aria-hidden="true"
         style="opacity: 0; position: absolute; width: auto; white-space: pre; z-index: -1"
       />
+      {{ errorMessages.join(' ') }}
     </div>
   </v-layout>
 </template>
@@ -49,6 +50,10 @@ export default {
       type: String,
       required: true,
     },
+    errorMessages: {
+      type: Array,
+      default: () => [],
+    },
     hideLabel: {
       type: Boolean,
       default: false,

+ 1 - 0
webapp/src/views/CrudList.vue

@@ -101,6 +101,7 @@
                       <v-alert
                               :value="createDialogError"
                               type="error"
+                              style="overflow: auto"
                       >
                         {{ errors[errors.length - 1] }}
                       </v-alert>