56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
|
import Vue from "vue";
|
||
|
import VariationMixin from "./mixins/VariationMixin";
|
||
|
import { toaster } from "@admin/js/Toaster";
|
||
|
|
||
|
new Vue({
|
||
|
el: "#app",
|
||
|
|
||
|
mixins: [VariationMixin],
|
||
|
|
||
|
created() {
|
||
|
this.form = this.prepareFormData(FleetCart.data["variation"]);
|
||
|
},
|
||
|
|
||
|
mounted() {
|
||
|
this.initColorPicker();
|
||
|
},
|
||
|
|
||
|
methods: {
|
||
|
prepareFormData(formData) {
|
||
|
formData.uid = this.uid();
|
||
|
|
||
|
formData.values.forEach((value) => {
|
||
|
value.uid = this.uid();
|
||
|
});
|
||
|
|
||
|
return formData;
|
||
|
},
|
||
|
|
||
|
submit() {
|
||
|
this.formSubmitting = true;
|
||
|
|
||
|
$.ajax({
|
||
|
type: "PUT",
|
||
|
url: route("admin.variations.update", this.form.id),
|
||
|
data: this.transformData(this.form),
|
||
|
dataType: "json",
|
||
|
success: (response) => {
|
||
|
toaster(response.message, {
|
||
|
type: "success",
|
||
|
});
|
||
|
|
||
|
this.errors.reset();
|
||
|
},
|
||
|
})
|
||
|
.catch((error) => {
|
||
|
this.errors.reset();
|
||
|
this.errors.record(error.responseJSON.errors);
|
||
|
this.scrollToFirstErrorField(this.$refs.form.elements);
|
||
|
})
|
||
|
.always(() => {
|
||
|
this.formSubmitting = false;
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
});
|