171 lines
4.9 KiB
JavaScript
Raw Normal View History

2019-11-16 10:21:14 +03:00
/**
* 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 Global from './../../mixins/global';
import AkauntingDashboard from './../../components/AkauntingDashboard';
import AkauntingWidget from './../../components/AkauntingWidget';
import {DatePicker} from 'element-ui';
2019-11-16 10:21:14 +03:00
Vue.use(DatePicker);
const dashboard = new Vue({
2019-11-16 10:21:14 +03:00
el: '#main-body',
components: {
[DatePicker.name]: DatePicker,
2019-11-16 10:21:14 +03:00
AkauntingDashboard,
AkauntingWidget
},
mixins: [
Global
],
data: function () {
return {
dashboard_modal: false,
dashboard: {
name: '',
enabled: 1,
type: 'create',
dashboard_id: 0
},
widget_modal: false,
widgets: {},
widget: {
name: '',
type: '',
width: '',
action: 'create',
sort: 0,
widget_id: 0
},
pickerOptions: {
shortcuts: [{
text: 'Last week',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: 'Last month',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: 'Last 3 months',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
value2: ''
2019-11-16 10:21:14 +03:00
};
},
mounted() {
this.getWidgets();
},
methods:{
// Create Dashboard form open
onCreateDashboard() {
this.dashboard_modal = true;
this.dashboard.name = '';
this.dashboard.enabled = 1;
this.dashboard.type = 'create';
this.dashboard.dashboard_id = 0;
},
// Edit Dashboard information
onEditDashboard(dashboard_id) {
var self = this;
axios.get(url + '/common/dashboards/' + dashboard_id + '/edit')
.then(function (response) {
self.dashboard.name = response.data.name;
self.dashboard.enabled = response.data.enabled;
self.dashboard.type = 'edit';
self.dashboard.dashboard_id = dashboard_id;
self.dashboard_modal = true;
})
.catch(function (error) {
self.dashboard_modal = false;
});
},
// 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.name = response.data.name;
self.widget.type = response.data.widget_id;
self.widget.width = response.data.settings.width;
self.widget.action = 'edit';
self.widget.sort = response.data.sort;
self.widget.widget_id = widget_id;
self.widget_modal = true;
})
.catch(function (error) {
self.widget_modal = false;
});
},
onCancel() {
this.dashboard_modal = false;
this.dashboard.name = '';
this.dashboard.enabled = 1;
this.dashboard.type = 'create';
this.dashboard.dashboard_id = 0;
this.widget_modal = false;
this.widget.name = '';
this.widget.type = '';
this.widget.width = '';
this.widget.action = 'create';
this.widget.sort = 0;
this.widget.widget_id = 0;
},
}
});