validators as a plugin

This commit is contained in:
les
2020-09-05 01:21:47 +02:00
parent a0c462a3f7
commit f28347a227
17 changed files with 88 additions and 160 deletions

View File

@@ -1,13 +0,0 @@
const linkify = require('linkifyjs')
export const validators = {
required (fieldName) {
return value => !!value || `validators.required.${fieldName}`
},
email: [
v => !!v || 'validators.required.email',
v => (v && !!linkify.test(v, 'email')) || 'validators.valid.email'
],
password: [
v => !!v || 'validators.required.password'
]
}

19
plugins/validators.js Normal file
View File

@@ -0,0 +1,19 @@
const linkify = require('linkifyjs')
export default ({ app }, inject) => {
const $t = app.i18n.t.bind(app.i18n)
const validators = {
required (fieldName) {
return value => !!value || $t('validators.required', { fieldName })
},
email: [
v => !!v || $t('validators.required', { fieldName: $t('common.email') }),
v => (v && !!linkify.test(v, 'email')) || $t('validators.email')
],
password: [
v => !!v || $t('validators.required', { fieldName: $t('common.password') })
]
}
inject('validators', validators)
}

View File

@@ -1,59 +1,6 @@
import Vue from 'vue'
// https://fontawesome.com/icons?d=gallery
// //
// import 'vue-awesome/icons/lock'
// import 'vue-awesome/icons/user'
// import 'vue-awesome/icons/plus'
// import 'vue-awesome/icons/cog'
// import 'vue-awesome/icons/tools'
// import 'vue-awesome/icons/file-export'
// import 'vue-awesome/icons/sign-out-alt'
// import 'vue-awesome/icons/clock'
// import 'vue-awesome/icons/map-marker-alt'
// import 'vue-awesome/icons/file-alt'
// import 'vue-awesome/icons/image'
// import 'vue-awesome/icons/tag'
// import 'vue-awesome/icons/users'
// import 'vue-awesome/icons/calendar'
// import 'vue-awesome/icons/edit'
// import 'vue-awesome/icons/envelope-open-text'
// import 'vue-awesome/icons/user-secret'
// import 'vue-awesome/icons/question-circle'
// import 'vue-awesome/icons/share'
// import 'vue-awesome/icons/comment'
// import 'vue-awesome/icons/comments'
// import 'vue-awesome/icons/tags'
// import 'vue-awesome/icons/chevron-right'
// import 'vue-awesome/icons/chevron-left'
// import 'vue-awesome/icons/search'
// import 'vue-awesome/icons/times'
// import 'vue-awesome/icons/envelope'
// import 'vue-awesome/icons/calendar-day'
// import 'vue-awesome/icons/calendar-week'
// import 'vue-awesome/icons/calendar-alt'
// import 'vue-awesome/icons/network-wired'
// import 'vue-awesome/icons/rss'
// import 'vue-awesome/icons/bold'
// import 'vue-awesome/icons/italic'
// import 'vue-awesome/icons/strikethrough'
// import 'vue-awesome/icons/quote-right'
// import 'vue-awesome/icons/underline'
// import 'vue-awesome/icons/code'
// import 'vue-awesome/icons/paragraph'
// import 'vue-awesome/icons/list-ul'
// import 'vue-awesome/icons/list-ol'
// import 'vue-awesome/icons/heading'
// import 'vue-awesome/icons/link'
// import 'vue-awesome/icons/hands-helping'
// import 'vue-awesome/icons/question'
// import 'vue-awesome/icons/vector-square'
// import 'vue-awesome/icons/bullhorn'
// import Icon from 'vue-awesome/components/Icon'
import VueClipboard from 'vue-clipboard2'
export default () => {
// Vue.component('v-icon', Icon)
Vue.use(VueClipboard)
}