/*
* @package XenCentral Feedback System
* @author DNF Technology
* @copyright Drnoyan & Nalyan LDA, Portugal, EU
* @license http://dnf.technology/terms/
* @link http://customers.dnf.technology
* @version 2.0.0 Beta 10
* @revision 12
*/
$(function() {
$('a.disableLink').click(function(evt) {
evt.preventDefault();
});
$('div#feedbackTypeFilterPopup ul li a').click(function(evt) {
evt.preventDefault();
evt.stopPropagation();
if ($(this).hasClass('checked')) {
$(this).removeClass('checked');
} else {
$(this).addClass('checked');
}
var hasClass = false;
$('div#feedbackTypeFilterPopup ul li a').each(function(index, el) {
if ($(el).hasClass('checked')) {
hasClass = true;
}
});
if (hasClass) {
$('a.feedbackTypeFilterPopup').addClass('active');
} else {
$('a.feedbackTypeFilterPopup').removeClass('active');
}
});
// handle date shortcut links
$('.dateShortcut a').click(function(evt){
evt.preventDefault();
$("input[name=generateFeedbackGraph]", $(this).parents('ul')).trigger('click', $(this).attr('data-date'));
});
$("input[name=generateFeedbackGraph]").click(function(evt, dateInteval) {
var $buttonElem = $(this);
var $graphContainer = $buttonElem.parents(".graphContainer");
var $graphImageContainer = $('.graphImageContainer', $graphContainer);
var dataId = $buttonElem.attr('data-id');
var dataUrl = $buttonElem.attr('data-url');
var functionName = $buttonElem.attr('data-function');
$graphImageContainer.html('').removeClass('empty');
if (!$graphImageContainer.hasClass('progress')) {
$graphImageContainer.addClass('progress');
}
if (dataId) {
var filter = [];
$('div#' + dataId + ' ul li a.checked').each(function(index, el) {
filter[filter.length] = $(el).attr('data-filter');
});
if (filter.length == 0) {
$graphImageContainer.removeClass('progress').addClass('empty').html($buttonElem.attr('data-error'));
return;
}
}
var from = $('input[name=from]', $graphContainer).val();
var to = $('input[name=to]', $graphContainer).val();
var disableFlash = $('input[name=disableFlash]', $graphContainer).is(':checked');
$.ajax({
url:dataUrl,
'success':function(response) {
$graphImageContainer.removeClass('progress');
if (response.error) {
$graphImageContainer.addClass('empty').html(response.error);
return;
}
if(dateInteval) {
if(response.data.from) {
$('input[name=from]', $graphContainer).val(response.data.from);
}
if (response.data.to) {
$('input[name=to]', $graphContainer).val(response.data.to);
}
}
window[functionName]($graphImageContainer, response.data, disableFlash);
},
complete:function(response, status) {
$graphImageContainer.removeClass('progress');
if (status != 'success' && status != 'notmodified') {
try {
var data = $.parseJSON(response.responseText);
try {
$graphImageContainer.html(data.error);
} catch($ex1) {
$graphImageContainer.html(data);
}
} catch ($ex2) {
$graphImageContainer.html(response.responseText);
}
}
},
data:{
'from':from,
'to':to,
'filter':filter,
'dateInterval':dateInteval,
_xfResponseType: 'json',
_xfToken: XF.config.csrf
},
type:'GET',
dataType:'json'
});
});
$('input.button.autoSubmit').click();
});
function XenCentral_Feedback_Draw_Line($container, data, disableFlash) {
var dataTable = new google.visualization.DataTable();
var columnIndexMap = {};
var rowIndexCounter = {};
var colCount = 0;
for (var columnIndex in data.columns) {
var column = data.columns[columnIndex];
dataTable.addColumn(column.type, column.label)
columnIndexMap[columnIndex] = colCount;
rowIndexCounter[columnIndex] = 0;
colCount++;
}
// convert first argument from unix timestamp to date object
var rowIndex = 0;
dataTable.addRows(data.dataCount);
for (var dateline in data.rows) {
var row = data.rows[dateline];
for (var colIndex in row) {
var dataCount = row[colIndex];
dataTable.setValue(rowIndexCounter[colIndex], 0, new Date(dateline * 1000));
dataTable.setValue(rowIndexCounter[colIndex], columnIndexMap[colIndex], dataCount);
rowIndexCounter[colIndex]++;
}
}
if (disableFlash) {
var chart = new google.visualization.LineChart($container.get(0));
} else {
var chart = new google.visualization.AnnotatedTimeLine($container.get(0));
}
chart.draw(dataTable, {width: 750, height: 300, title: data.title, enableInteractivity:true, 'wmode':'transparent'});
}
function XenCentral_Feedback_Draw_Pie($container, data)
{
var dataTable = new google.visualization.DataTable();
for (var columnIndex in data.columns)
{
var column = data.columns[columnIndex];
dataTable.addColumn(column.type, column.label)
}
dataTable.addRows(data.rows);
// empty the container and create to elements
$container.html('');
var $pieChartContainer=$('<div class="statsCol"></div>').appendTo($container);
var $tableChartContainer = $('<div class="statsCol"></div>').appendTo($container);
var containerWidth= $container.width();
var chart = new google.visualization.PieChart($pieChartContainer.get(0));
chart.draw(dataTable, {width:containerWidth/2, height:300, title:data.title, enableInteractivity:true});
var tableDataTable = jQuery.extend(true, {}, dataTable);
tableDataTable.addRow([data.total_phrase, data.total]);
var table = new google.visualization.Table($tableChartContainer.get(0));
table.draw(tableDataTable, {width:containerWidth / 2, height:300, title:data.title, enableInteractivity:true});
}