96 lines
2.6 KiB
JavaScript
Executable File
96 lines
2.6 KiB
JavaScript
Executable File
require("./bootstrap");
|
|
|
|
window.Vue = require("vue");
|
|
window.VeeValidate = require("vee-validate");
|
|
|
|
Vue.use(VeeValidate);
|
|
Vue.prototype.$http = axios
|
|
|
|
window.eventBus = new Vue();
|
|
|
|
$(document).ready(function () {
|
|
Vue.config.ignoredElements = [
|
|
'option-wrapper',
|
|
'group-form',
|
|
'group-list'
|
|
];
|
|
|
|
var app = new Vue({
|
|
el: "#app",
|
|
|
|
data: {
|
|
modalIds: {}
|
|
},
|
|
|
|
mounted() {
|
|
this.addServerErrors();
|
|
this.addFlashMessages();
|
|
},
|
|
|
|
methods: {
|
|
onSubmit: function (e) {
|
|
this.toggleButtonDisable(true);
|
|
|
|
if(typeof tinyMCE !== 'undefined')
|
|
tinyMCE.triggerSave();
|
|
|
|
this.$validator.validateAll().then(result => {
|
|
if (result) {
|
|
e.target.submit();
|
|
} else {
|
|
this.toggleButtonDisable(false);
|
|
}
|
|
});
|
|
},
|
|
|
|
toggleButtonDisable (value) {
|
|
var buttons = document.getElementsByTagName("button");
|
|
|
|
for (var i = 0; i < buttons.length; i++) {
|
|
buttons[i].disabled = value;
|
|
}
|
|
},
|
|
|
|
addServerErrors(scope = null) {
|
|
for (var key in serverErrors) {
|
|
var inputNames = [];
|
|
key.split('.').forEach(function(chunk, index) {
|
|
if(index) {
|
|
inputNames.push('[' + chunk + ']')
|
|
} else {
|
|
inputNames.push(chunk)
|
|
}
|
|
})
|
|
|
|
var inputName = inputNames.join('');
|
|
|
|
const field = this.$validator.fields.find({
|
|
name: inputName,
|
|
scope: scope
|
|
});
|
|
if (field) {
|
|
this.$validator.errors.add({
|
|
id: field.id,
|
|
field: inputName,
|
|
msg: serverErrors[key][0],
|
|
scope: scope
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
addFlashMessages() {
|
|
const flashes = this.$refs.flashes;
|
|
|
|
flashMessages.forEach(function(flash) {
|
|
flashes.addFlash(flash);
|
|
}, this);
|
|
},
|
|
|
|
showModal(id) {
|
|
this.$set(this.modalIds, id, true);
|
|
}
|
|
}
|
|
});
|
|
});
|