2020-01-07 17:15:00 +03:00

130 lines
3.3 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';
import {getQueryVariable} from './../../plugins/functions';
import AkauntingWidget from './../../components/AkauntingWidget';
import {DatePicker, Tooltip} from 'element-ui';
Vue.use(DatePicker, Tooltip);
// plugin setup
Vue.use(DashboardPlugin);
const dashboard = new Vue({
el: '#main-body',
components: {
[DatePicker.name]: DatePicker,
[Tooltip.name]: Tooltip,
AkauntingWidget
},
mixins: [
Global
],
data: function () {
return {
widget_modal: false,
widgets: {},
widget: {
id: 0,
name: '',
class: '',
width: '',
action: 'create',
sort: 0,
},
filter_date: [],
form: new Form('dashboard'),
bulk_action: new BulkAction('dashboards')
};
},
mounted() {
let start_date = getQueryVariable('start_date');
if (start_date) {
let end_date = getQueryVariable('end_date');
this.filter_date.push(start_date);
this.filter_date.push(end_date);
}
this.getWidgets();
},
methods:{
// Get All Widgets
getWidgets() {
var self = this;
axios.get(url + '/common/widgets')
.then(function (response) {
self.widgets = response.data;
})
.catch(function (error) {
});
},
// Add new widget on dashboard
onCreateWidget() {
this.widget_modal = true;
},
// Edit Dashboard selected widget setting.
onEditWidget(widget_id) {
var self = this;
axios.get(url + '/common/widgets/' + widget_id + '/edit')
.then(function (response) {
self.widget.id = widget_id;
self.widget.name = response.data.name;
self.widget.class = response.data.class;
self.widget.width = response.data.settings.width;
self.widget.action = 'edit';
self.widget.sort = response.data.sort;
self.widget_modal = true;
})
.catch(function (error) {
self.widget_modal = false;
});
},
onCancel() {
this.widget_modal = false;
this.widget.id = 0;
this.widget.name = '';
this.widget.class = '';
this.widget.width = '';
this.widget.action = 'create';
this.widget.sort = 0;
},
onChangeFilterDate() {
if (this.filter_date) {
window.location.href = url + '?start_date=' + this.filter_date[0] + '&end_date=' + this.filter_date[1];
} else {
window.location.href = url;
}
},
}
});