112 lines
3.8 KiB
JavaScript
Executable File
112 lines
3.8 KiB
JavaScript
Executable File
(function (Gravity_Flow_Reports, $) {
|
|
|
|
"use strict";
|
|
|
|
var stepVars;
|
|
|
|
$(document).ready(function () {
|
|
|
|
stepVars = gravityflowFilterVars.config;
|
|
var selectedVars = gravityflowFilterVars.selected;
|
|
|
|
var formId = selectedVars.formId;
|
|
|
|
$('#gravityflow-reports-category').toggle(formId ? true : false);
|
|
|
|
if ( formId ) {
|
|
var category = selectedVars.category;
|
|
if ( category == 'step' ) {
|
|
$('#gravityflow-reports-steps').html(getStepOptions(formId));
|
|
var stepId = selectedVars.stepId;
|
|
$('#gravityflow-reports-steps').val(stepId);
|
|
$('#gravityflow-reports-steps').show();
|
|
|
|
if ( stepId ) {
|
|
var assigneeVars = stepVars[formId][stepId].assignees;
|
|
|
|
$('#gravityflow-reports-assignees').html(getAssigneeOptions( assigneeVars ) );
|
|
|
|
$('#gravityflow-reports-assignees').val(selectedVars.assignee);
|
|
$('#gravityflow-reports-assignees').show();
|
|
}
|
|
}
|
|
}
|
|
|
|
$('#gravityflow-form-drop-down').change(function(){
|
|
$('#gravityflow-reports-category').toggle( this.value ? true : false);
|
|
});
|
|
$('#gravityflow-reports-category').change(function(){
|
|
var formId = $('#gravityflow-form-drop-down').val();
|
|
if ( this.value == 'step' ) {
|
|
$('#gravityflow-reports-steps').html(getStepOptions(formId));
|
|
$('#gravityflow-reports-steps').show();
|
|
} else {
|
|
$('#gravityflow-reports-assignees').hide();
|
|
$('#gravityflow-reports-steps').hide();
|
|
}
|
|
});
|
|
$('#gravityflow-reports-steps').change( function(){
|
|
if ( this.value ) {
|
|
var formId = $('#gravityflow-form-drop-down').val();
|
|
var assigneeVars = stepVars[formId][this.value].assignees;
|
|
$('#gravityflow-reports-assignees').html(getAssigneeOptions( assigneeVars ) );
|
|
$('#gravityflow-reports-assignees').show();
|
|
} else {
|
|
$('#gravityflow-reports-assignees').hide();
|
|
}
|
|
});
|
|
|
|
|
|
});
|
|
|
|
function getStepOptions( formId ){
|
|
var m = [];
|
|
m.push( '<option value="">{0}</option>'.format( 'All Steps' ) );
|
|
var steps = stepVars[formId];
|
|
$.each( steps, function ( i, step ){
|
|
m.push( '<option value="{0}">{1}</option>'.format(step.id, step.name ) );
|
|
});
|
|
return m.join('');
|
|
}
|
|
|
|
function getAssigneeOptions( assigneeVars ){
|
|
var m = [];
|
|
m.push( '<option value="">{0}</option>'.format( 'All Assignees' ) );
|
|
for(var i=0; i < assigneeVars.length; i++) {
|
|
m.push( '<option value="{0}">{1}</option>'.format(assigneeVars[i].key, assigneeVars[i].name ) );
|
|
}
|
|
return m.join('');
|
|
}
|
|
|
|
Gravity_Flow_Reports.drawCharts = function() {
|
|
|
|
$('.gravityflow_chart').each(function () {
|
|
var $this = $(this);
|
|
var dataTable = $this.data('table');
|
|
var data = google.visualization.arrayToDataTable(dataTable);
|
|
|
|
var options = $this.data('options');
|
|
|
|
var chartType = $this.data('type');
|
|
|
|
var chart = new google.charts[chartType]( this );
|
|
|
|
chart.draw(data, options);
|
|
})
|
|
}
|
|
|
|
String.prototype.format = function () {
|
|
var args = arguments;
|
|
return this.replace(/{(\d+)}/g, function (match, number) {
|
|
return typeof args[number] != 'undefined'
|
|
? args[number]
|
|
: match
|
|
;
|
|
});
|
|
};
|
|
|
|
}(window.Gravity_Flow_Reports = window.Gravity_Flow_Reports || {}, jQuery));
|
|
|
|
|
|
google.load("visualization", "1.1", {packages:["bar"]});
|
|
google.setOnLoadCallback(Gravity_Flow_Reports.drawCharts); |