浏览代码

feat(webapp): add subname validation

Peter Thomassen 4 年之前
父节点
当前提交
40f8b35c3f
共有 2 个文件被更改,包括 11 次插入1 次删除
  1. 5 1
      webapp/src/components/Field/GenericText.vue
  2. 6 0
      webapp/src/views/Domain/CrudDomain.vue

+ 5 - 1
webapp/src/components/Field/GenericText.vue

@@ -9,7 +9,7 @@
     :hint="hint"
     persistent-hint
     :required="required"
-    :rules="[v => !required || !!v || 'Required.']"
+    :rules="[v => !required || !!v || 'Required.'].concat(rules)"
     @input="changed('input', $event)"
     @input.native="$emit('dirty', $event)"
     @keyup="changed('keyup', $event)"
@@ -44,6 +44,10 @@ export default {
       type: Boolean,
       default: false,
     },
+    rules: {
+      type: Array,
+      default: () => [],
+    },
     value: {
       type: [String, Number],
       required: false,

+ 6 - 0
webapp/src/views/Domain/CrudDomain.vue

@@ -47,6 +47,12 @@ export default {
           value: 'subname',
           readonly: true,
           datatype: 'GenericText',
+          fieldProps: () => ({ rules: [
+              v => !(v.startsWith('.') || v.endsWith('.') || v.includes('..'))
+                  || 'Dots must be surrounded by other characters.',
+              v => (v.match(/^([*]|(([*][.])?([a-z0-9_-]{1,63}[.])*[a-z0-9_-]{1,63}))?$/))
+                  || 'Allowed characters: a-z, 0-9, and -_. May start with "*." or just be "*".',
+            ] }),
           searchable: true,
           writeOnCreate: true,
         },