181 lines
5.4 KiB
JavaScript
Vendored
181 lines
5.4 KiB
JavaScript
Vendored
/**
|
|
* First we will load all of this project's JavaScript dependencies which
|
|
* includes Vue and other libraries. It is a great starting point when
|
|
* building robust, powerful web applications using Vue and Laravel.
|
|
*/
|
|
|
|
require('./../../bootstrap');
|
|
|
|
import Vue from 'vue';
|
|
|
|
import DashboardPlugin from './../../plugins/dashboard-plugin';
|
|
|
|
import Global from './../../mixins/global';
|
|
|
|
import Form from './../../plugins/form';
|
|
import BulkAction from './../../plugins/bulk-action';
|
|
|
|
// plugin setup
|
|
Vue.use(DashboardPlugin);
|
|
|
|
const app = new Vue({
|
|
el: '#app',
|
|
|
|
mixins: [
|
|
Global
|
|
],
|
|
|
|
data: function () {
|
|
return {
|
|
form: new Form('setting'),
|
|
bulk_action: new BulkAction('settings'),
|
|
email: {
|
|
sendmailPath:true,
|
|
smtpHost:true,
|
|
smtpPort:true,
|
|
smtpUsername:true,
|
|
smtpPassword:true,
|
|
smtpEncryption:true,
|
|
},
|
|
tags: null,
|
|
template_title: '',
|
|
|
|
invoice_form: new Form('template'),
|
|
template: {
|
|
modal: false,
|
|
title: '',
|
|
message: '',
|
|
html: '',
|
|
errors: new Error()
|
|
},
|
|
item_name_input: false,
|
|
price_name_input: false,
|
|
quantity_name_input: false,
|
|
}
|
|
},
|
|
|
|
methods:{
|
|
onChangeProtocol(protocol) {
|
|
switch(protocol) {
|
|
case "smtp":
|
|
this.email.sendmailPath = true;
|
|
this.email.smtpHost = false;
|
|
this.email.smtpPort = false;
|
|
this.email.smtpUsername = false;
|
|
this.email.smtpPassword = false;
|
|
this.email.smtpEncryption = false;
|
|
break;
|
|
|
|
case "sendmail":
|
|
this.email.sendmailPath = false;
|
|
this.email.smtpHost = true;
|
|
this.email.smtpPort = true;
|
|
this.email.smtpUsername = true;
|
|
this.email.smtpPassword = true;
|
|
this.email.smtpEncryption = true;
|
|
break;
|
|
|
|
default:
|
|
this.email.sendmailPath = true;
|
|
this.email.smtpHost = true;
|
|
this.email.smtpPort = true;
|
|
this.email.smtpUsername = true;
|
|
this.email.smtpPassword = true;
|
|
this.email.smtpEncryption = true;
|
|
break;
|
|
}
|
|
},
|
|
|
|
onTemplate() {
|
|
this.template.modal = true;
|
|
|
|
this.invoice_form = new Form('template');
|
|
|
|
let skips = [
|
|
'_method', '_prefix', '_token', 'action', 'errors', 'loading', 'method', 'response'
|
|
];
|
|
|
|
for (const [key, value] of Object.entries(this.form)) {
|
|
if (!skips.includes(key)) {
|
|
this.invoice_form[key] = value;
|
|
}
|
|
}
|
|
|
|
this.invoice_form.template = this.invoice_form._template;
|
|
},
|
|
|
|
addTemplate() {
|
|
if (this.invoice_form.template != 1) {
|
|
|
|
this.invoice_form.submit();
|
|
|
|
this.template.errors = this.invoice_form.errors;
|
|
}
|
|
|
|
this.form.loading = true;
|
|
|
|
this.$emit("confirm");
|
|
},
|
|
|
|
closeTemplate() {
|
|
this.template = {
|
|
modal: false,
|
|
title: '',
|
|
message: '',
|
|
errors: this.invoice_form.errors
|
|
};
|
|
},
|
|
|
|
onEditEmailTemplate(template_id) {
|
|
axios.get(url + '/settings/email-templates/get', {
|
|
params: {
|
|
id: template_id
|
|
}
|
|
})
|
|
.then(response => {
|
|
this.template_title = response.data.data.title;
|
|
this.form.subject = response.data.data.subject;
|
|
this.form.body = response.data.data.body;
|
|
this.form.id = response.data.data.id;
|
|
this.tags = response.data.data.tags;
|
|
});
|
|
},
|
|
|
|
// Change currency get money override because remove form currency_code and currency_rate column
|
|
onChangeCurrency(currency_code) {
|
|
if (! currency_code) {
|
|
return;
|
|
}
|
|
|
|
if (! this.all_currencies.length) {
|
|
let currency_promise = Promise.resolve(window.axios.get((url + '/settings/currencies')));
|
|
|
|
currency_promise.then(response => {
|
|
if (response.data.success) {
|
|
this.all_currencies = response.data.data;
|
|
}
|
|
|
|
this.all_currencies.forEach(function (currency, index) {
|
|
if (currency_code == currency.code) {
|
|
this.currency = currency;
|
|
|
|
this.form.currency = currency.code;
|
|
}
|
|
}, this);
|
|
})
|
|
.catch(error => {
|
|
this.onChangeCurrency(currency_code);
|
|
});
|
|
} else {
|
|
this.all_currencies.forEach(function (currency, index) {
|
|
if (currency_code == currency.code) {
|
|
this.currency = currency;
|
|
|
|
this.form.currency = currency.code;
|
|
}
|
|
}, this);
|
|
}
|
|
},
|
|
}
|
|
});
|