sarga/packages/Webkul/Admin/src/Resources/assets/js/app.js

118 lines
3.2 KiB
JavaScript
Executable File

import Vue from 'vue';
import VeeValidate, { Validator } from 'vee-validate';
import de from 'vee-validate/dist/locale/de';
import ar from 'vee-validate/dist/locale/ar';
import './bootstrap';
window.Vue = Vue;
window.VeeValidate = VeeValidate;
Vue.use(VeeValidate, {
dictionary: {
ar: ar,
de: de,
},
events: 'input|change|blur',
});
Vue.prototype.$http = axios
Vue.component('nav-slide-button', require('./components/navigation/nav-slide-button').default);
Vue.component('required-if', require('./components/validators/required-if').default);
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();
this.$validator.localize(document.documentElement.lang);
},
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);
eventBus.$emit('onFormError')
}
});
},
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() {
if (typeof flashMessages == 'undefined') {
return;
};
const flashes = this.$refs.flashes;
flashMessages.forEach(function(flash) {
flashes.addFlash(flash);
}, this);
},
showModal(id) {
this.$set(this.modalIds, id, true);
}
}
});
});