Initial commit
This commit is contained in:
55
resources/js/mixins/forms/input.js
vendored
Normal file
55
resources/js/mixins/forms/input.js
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
import { themes } from '~/config/form-themes'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
id: { type: String, default: null },
|
||||
name: { type: String, required: true },
|
||||
label: { type: String, required: false },
|
||||
form: { type: Object, required: false },
|
||||
value: { required: false },
|
||||
required: { type: Boolean, default: false },
|
||||
disabled: { type: Boolean, default: false },
|
||||
placeholder: { type: String, default: null },
|
||||
uppercaseLabels: { type: Boolean, default: true },
|
||||
help: { type: String, default: null }, // Show help or bot
|
||||
theme: { type: Object, default: () => themes.default },
|
||||
color: { type: String, default: '#3B82F6' },
|
||||
wrapperClass: { type: String, default: 'relative mb-3' }
|
||||
},
|
||||
|
||||
data () {
|
||||
return {
|
||||
content: this.value
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
inputStyle () {
|
||||
return {
|
||||
'--tw-ring-color': this.color
|
||||
}
|
||||
},
|
||||
hasValidation () {
|
||||
return this.form !== null && this.form !== undefined && this.form.hasOwnProperty('errors')
|
||||
},
|
||||
compVal: {
|
||||
set (val) {
|
||||
if (this.form) {
|
||||
this.$set(this.form, this.name, val)
|
||||
} else {
|
||||
this.content = val
|
||||
}
|
||||
if (this.hasValidation) {
|
||||
this.form.errors.clear(this.name)
|
||||
}
|
||||
this.$emit('input', this.compVal)
|
||||
},
|
||||
get () {
|
||||
if (this.form) {
|
||||
return this.form[this.name]
|
||||
}
|
||||
return this.content
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
resources/js/mixins/forms/saveUpdateAlert.js
vendored
Normal file
20
resources/js/mixins/forms/saveUpdateAlert.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
export default {
|
||||
methods: {
|
||||
displayFormModificationAlert(responseData) {
|
||||
if (responseData.form_cleaning && Object.keys(responseData.form_cleaning).length > 0) {
|
||||
let message = responseData.message + '<br/>'
|
||||
Object.keys(responseData.form_cleaning).forEach((key) => {
|
||||
const fieldName = key.charAt(0).toUpperCase() + key.slice(1)
|
||||
let fieldInfo = "<br/>" + fieldName + "<br/><ul class='list-disc list-inside'>"
|
||||
responseData.form_cleaning[key].forEach((msg) => {
|
||||
fieldInfo = fieldInfo + "<li>" + msg +"</li>"
|
||||
})
|
||||
message = message + fieldInfo + "<ul/>"
|
||||
})
|
||||
this.alertWarning(message)
|
||||
} else {
|
||||
this.alertSuccess(responseData.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user