|
1 | 1 | <script setup> |
2 | 2 | import { ref, watch, onMounted, computed } from 'vue' |
| 3 | +import slugify from 'slugify' |
3 | 4 | import Constants from '../../constants.js' |
4 | 5 | import FileUploader from './FileUploader.vue' |
5 | 6 | import SocialFields from './SocialFields.vue' |
@@ -31,6 +32,7 @@ const emptyData = { |
31 | 32 | enabled: false, |
32 | 33 | logo: null, |
33 | 34 | name: "", |
| 35 | + slug: "", |
34 | 36 | description: "", |
35 | 37 | status: 0, |
36 | 38 | website: "", |
@@ -76,7 +78,7 @@ const rules = { |
76 | 78 | message: "Website is required", |
77 | 79 | trigger: ['input', 'blur'], |
78 | 80 | validator: (rule, value)=>{ |
79 | | - return form.value[0].social.website.length > 0; |
| 81 | + return form.value[0]?.social?.website?.length > 0; |
80 | 82 | } |
81 | 83 | }, |
82 | 84 | logo: { |
@@ -118,6 +120,15 @@ const submit = async () => { |
118 | 120 | delete formValue.status; |
119 | 121 | delete formValue.website; |
120 | 122 |
|
| 123 | + if (!form.value[0].slug) |
| 124 | + { |
| 125 | + formValue.slug = slug.value; |
| 126 | + } |
| 127 | + else |
| 128 | + { |
| 129 | + delete formValue.slug; |
| 130 | + } |
| 131 | +
|
121 | 132 | if (tempLogo.value == null) |
122 | 133 | { |
123 | 134 | delete formValue.logo |
@@ -171,6 +182,10 @@ const logoButtonText = computed(()=>{ |
171 | 182 | return logo.value !== null ? "Upload new" : "Upload Logo" |
172 | 183 | }) |
173 | 184 |
|
| 185 | +const slug = computed(()=>{ |
| 186 | + return form.value[0].slug ? form.value[0].slug : slugify (form.value[0].name ?? "", { lower: true, strict: true}); |
| 187 | +}) |
| 188 | +
|
174 | 189 | </script> |
175 | 190 |
|
176 | 191 | <template> |
@@ -218,6 +233,7 @@ const logoButtonText = computed(()=>{ |
218 | 233 | <StatusTag :value="form[0].status"/> |
219 | 234 |
|
220 | 235 | <InputField path="name" v-if="!eduExists" type="edu" v-model="form[0].name"/> |
| 236 | + <InputField path="slug" type="edu" v-model="slug" :disabled="true"/> |
221 | 237 |
|
222 | 238 | <FormItem path="description" type="edu"> |
223 | 239 | <template #content> |
|
0 commit comments