You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
454 lines
12 KiB
454 lines
12 KiB
3 years ago
|
/* ------------------------------------------------------------------------------
|
||
|
*
|
||
|
* # User profile
|
||
|
*
|
||
|
* Specific JS code additions for User profile pages set
|
||
|
*
|
||
|
* Version: 1.0
|
||
|
* Latest update: Aug 1, 2015
|
||
|
*
|
||
|
* ---------------------------------------------------------------------------- */
|
||
|
|
||
|
$(function() {
|
||
|
|
||
|
|
||
|
// Charts
|
||
|
// ------------------------------
|
||
|
|
||
|
// Set paths
|
||
|
require.config({
|
||
|
paths: {
|
||
|
echarts: 'assets/js/plugins/visualization/echarts'
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
// Configuration
|
||
|
require(
|
||
|
[
|
||
|
'echarts',
|
||
|
'echarts/theme/limitless',
|
||
|
'echarts/chart/line', // load-on-demand, don't forget the Magic switch type.
|
||
|
'echarts/chart/bar'
|
||
|
],
|
||
|
|
||
|
|
||
|
// Charts setup
|
||
|
function (ec, limitless) {
|
||
|
|
||
|
// Init
|
||
|
var sales = ec.init(document.getElementById('sales'), limitless);
|
||
|
var visits = ec.init(document.getElementById('visits'), limitless);
|
||
|
var plans = ec.init(document.getElementById('plans'), limitless);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Sales chart options
|
||
|
//
|
||
|
|
||
|
sales_options = {
|
||
|
|
||
|
// Setup grid
|
||
|
grid: {
|
||
|
x: 35,
|
||
|
x2: 15,
|
||
|
y: 35,
|
||
|
y2: 25
|
||
|
},
|
||
|
|
||
|
// Add tooltip
|
||
|
tooltip: {
|
||
|
trigger: 'axis',
|
||
|
axisPointer: {
|
||
|
type: 'shadow'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Add legend
|
||
|
legend: {
|
||
|
data:['Profit', 'Expenses', 'Income']
|
||
|
},
|
||
|
|
||
|
// Enable drag recalculate
|
||
|
calculable: true,
|
||
|
|
||
|
// Horizontal axis
|
||
|
xAxis: [{
|
||
|
type: 'value'
|
||
|
}],
|
||
|
|
||
|
// Vertical axis
|
||
|
yAxis: [{
|
||
|
type: 'category',
|
||
|
axisTick: {
|
||
|
show: false
|
||
|
},
|
||
|
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||
|
}],
|
||
|
|
||
|
// Add series
|
||
|
series: [
|
||
|
{
|
||
|
name: 'Profit',
|
||
|
type: 'bar',
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
label: {
|
||
|
show: true,
|
||
|
position: 'inside'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
data: [200, 170, 240, 244, 200, 220, 210]
|
||
|
},
|
||
|
{
|
||
|
name: 'Income',
|
||
|
type: 'bar',
|
||
|
stack: 'Total',
|
||
|
barWidth: 5,
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
label: {
|
||
|
show: true
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
data: [320, 302, 341, 374, 390, 450, 420]
|
||
|
},
|
||
|
{
|
||
|
name: 'Expenses',
|
||
|
type: 'bar',
|
||
|
stack: 'Total',
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
label: {
|
||
|
show: true,
|
||
|
position: 'left'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
data: [-120, -132, -101, -134, -190, -230, -210]
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// Plans chart options
|
||
|
//
|
||
|
|
||
|
// Text label options
|
||
|
var labelRight = {normal: {color: '#FF7043', label: {position: 'right'}}};
|
||
|
|
||
|
// Options
|
||
|
visits_options = {
|
||
|
|
||
|
// Setup grid
|
||
|
grid: {
|
||
|
x: 15,
|
||
|
x2: 15,
|
||
|
y: 0,
|
||
|
y2: 25,
|
||
|
borderWidth: 0
|
||
|
},
|
||
|
|
||
|
// Add tooltip
|
||
|
tooltip: {
|
||
|
trigger: 'axis',
|
||
|
axisPointer: {
|
||
|
type: 'shadow'
|
||
|
},
|
||
|
formatter: function(params) {
|
||
|
return params[0].seriesName + ': ' + params[0].value + ' €';
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Horizontal axis
|
||
|
xAxis: [{
|
||
|
type: 'value',
|
||
|
axisLine: {show: false},
|
||
|
splitLine: {show: false},
|
||
|
axisTick: {show: false}
|
||
|
}],
|
||
|
|
||
|
// Vertical axis
|
||
|
yAxis: [{
|
||
|
type: 'category',
|
||
|
axisLine: {show: false},
|
||
|
axisLabel: {show: false},
|
||
|
axisTick: {show: false},
|
||
|
splitLine: {
|
||
|
lineStyle:{
|
||
|
type:'dashed',
|
||
|
color: '#e5e5e5'
|
||
|
}
|
||
|
},
|
||
|
data : ['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday']
|
||
|
}],
|
||
|
|
||
|
// Add series
|
||
|
series: [
|
||
|
{
|
||
|
name: 'Balance',
|
||
|
type: 'bar',
|
||
|
stack: 'Total',
|
||
|
barWidth: 20,
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
color: '#66BB6A',
|
||
|
barBorderRadius: 3,
|
||
|
label: {
|
||
|
show: true,
|
||
|
position: 'left',
|
||
|
formatter: '{b}',
|
||
|
textStyle: {
|
||
|
color: '#777'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
emphasis: {
|
||
|
barBorderRadius: 3
|
||
|
}
|
||
|
},
|
||
|
data: [
|
||
|
{value: -680, itemStyle: labelRight},
|
||
|
{value: -300, itemStyle: labelRight},
|
||
|
690,
|
||
|
900,
|
||
|
{value: -390, itemStyle: labelRight},
|
||
|
600,
|
||
|
{value: -120, itemStyle: labelRight}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// Available time chart options
|
||
|
//
|
||
|
|
||
|
plans_options = {
|
||
|
|
||
|
// Setup grid
|
||
|
grid: {
|
||
|
x: 30,
|
||
|
x2: 10,
|
||
|
y: 35,
|
||
|
y2: 25
|
||
|
},
|
||
|
|
||
|
// Add tooltip
|
||
|
tooltip: {
|
||
|
trigger: 'axis',
|
||
|
axisPointer: {
|
||
|
type: 'shadow'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Add legend
|
||
|
legend: {
|
||
|
data:['Booked hours', 'Available hours']
|
||
|
},
|
||
|
|
||
|
// Enable drag recalculate
|
||
|
calculable: true,
|
||
|
|
||
|
// Horizontal axis
|
||
|
xAxis: [{
|
||
|
type: 'category',
|
||
|
data : ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
|
||
|
}],
|
||
|
|
||
|
// Vertical axis
|
||
|
yAxis: [{
|
||
|
type: 'value'
|
||
|
}],
|
||
|
|
||
|
// Add series
|
||
|
series: [
|
||
|
{
|
||
|
name: 'Booked hours',
|
||
|
type: 'bar',
|
||
|
data: [4, 8, 6, 4, 7, 5, 9],
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
color: '#B0BEC5',
|
||
|
label: {
|
||
|
show: true,
|
||
|
textStyle: {
|
||
|
fontWeight: 500
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
name: 'Available hours',
|
||
|
type: 'bar',
|
||
|
data: [6, 2, 4, 6, 3, 5, 1],
|
||
|
itemStyle: {
|
||
|
normal: {
|
||
|
color: '#29B6F6',
|
||
|
label: {
|
||
|
show: true,
|
||
|
textStyle: {
|
||
|
fontWeight: 500
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// Apply options
|
||
|
//
|
||
|
|
||
|
sales.setOption(sales_options);
|
||
|
visits.setOption(visits_options);
|
||
|
plans.setOption(plans_options);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Resize chart
|
||
|
//
|
||
|
|
||
|
window.onresize = function () {
|
||
|
setTimeout(function (){
|
||
|
sales.resize();
|
||
|
visits.resize();
|
||
|
plans.resize();
|
||
|
}, 200);
|
||
|
}
|
||
|
|
||
|
|
||
|
// Resize in tabs
|
||
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||
|
sales.resize();
|
||
|
visits.resize();
|
||
|
plans.resize();
|
||
|
});
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
// Form components
|
||
|
// ------------------------------
|
||
|
|
||
|
// Select2 selects
|
||
|
$('.select').select2({
|
||
|
minimumResultsForSearch: Infinity
|
||
|
});
|
||
|
|
||
|
|
||
|
// Styled file input
|
||
|
$(".file-styled").uniform({
|
||
|
fileButtonClass: 'action btn bg-warning'
|
||
|
});
|
||
|
|
||
|
|
||
|
// Styled checkboxes, radios
|
||
|
$(".styled").uniform({
|
||
|
radioClass: 'choice'
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
// Schedule
|
||
|
// ------------------------------
|
||
|
|
||
|
// Add events
|
||
|
var eventsColors = [
|
||
|
{
|
||
|
title: 'All Day Event',
|
||
|
start: '2014-11-01',
|
||
|
color: '#EF5350'
|
||
|
},
|
||
|
{
|
||
|
title: 'Long Event',
|
||
|
start: '2014-11-07',
|
||
|
end: '2014-11-10',
|
||
|
color: '#26A69A'
|
||
|
},
|
||
|
{
|
||
|
id: 999,
|
||
|
title: 'Repeating Event',
|
||
|
start: '2014-11-09T16:00:00',
|
||
|
color: '#26A69A'
|
||
|
},
|
||
|
{
|
||
|
id: 999,
|
||
|
title: 'Repeating Event',
|
||
|
start: '2014-11-16T16:00:00',
|
||
|
color: '#5C6BC0'
|
||
|
},
|
||
|
{
|
||
|
title: 'Conference',
|
||
|
start: '2014-11-11',
|
||
|
end: '2014-11-13',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Meeting',
|
||
|
start: '2014-11-12T10:30:00',
|
||
|
end: '2014-11-12T12:30:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Lunch',
|
||
|
start: '2014-11-12T12:00:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Meeting',
|
||
|
start: '2014-11-12T14:30:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Happy Hour',
|
||
|
start: '2014-11-12T17:30:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Dinner',
|
||
|
start: '2014-11-12T20:00:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Birthday Party',
|
||
|
start: '2014-11-13T07:00:00',
|
||
|
color: '#546E7A'
|
||
|
},
|
||
|
{
|
||
|
title: 'Click for Google',
|
||
|
url: 'http://google.com/',
|
||
|
start: '2014-11-28',
|
||
|
color: '#FF7043'
|
||
|
}
|
||
|
];
|
||
|
|
||
|
|
||
|
// Initialize calendar with options
|
||
|
$('.schedule').fullCalendar({
|
||
|
header: {
|
||
|
left: 'prev,next today',
|
||
|
center: 'title',
|
||
|
right: 'month,agendaWeek,agendaDay'
|
||
|
},
|
||
|
defaultDate: '2014-11-12',
|
||
|
editable: true,
|
||
|
events: eventsColors
|
||
|
});
|
||
|
|
||
|
|
||
|
// Render in hidden elements
|
||
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||
|
$('.schedule').fullCalendar('render');
|
||
|
});
|
||
|
|
||
|
});
|