web/app/assets/javascripts/charts.js
author Marcel Hlopko <marcel.hlopko@gmail.com>
Thu, 20 Jun 2013 23:31:53 +0200
changeset 63 33ab7e8188d0
child 91 d430a8ac253d
permissions -rw-r--r--
fake graph for root page
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     1
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     2
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     3
 * global variables
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     4
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     5
var globalDayNames = ['Ned\u011ble', 'Pond\u011blí', 'Úterý', 'St\u0159eda', '\u010ctvrtek', 'Pátek', 'Sobota'];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     6
var globalDayNamesShort = ['Ne', 'Po', 'Út', 'St', '\u010ct', 'Pá', 'So'];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     7
var globalMonthNames = ['Leden', 'Únor', 'B\u0159ezen', 'Duben', 'Kv\u011bten', '\u010cerven', '\u010cervenec',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     8
'Srpen', 'Zá\u0159í', '\u0158íjen', 'Listopad', 'Prosinec'];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     9
var globalMonthNamesShort = ['Led', 'Úno', 'B\u0159e', 'Dub', 'Kv\u011b', '\u010cern', '\u010cerc',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    10
'Srp', 'Zá\u0159', '\u0158íj', 'Lis', 'Pro'];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    11
var ua = {};
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    12
//array with objects {plot: flot, data: data}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    13
ua.flots = new Array();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    14
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    15
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    16
 * Display charts by Piety plug-in
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    17
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    18
function pietyCharts() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    19
    $(".piety.pie-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    20
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    21
        if(processMultipleCall(chart)){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    22
            chart.peity("pie",{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    23
                diameter: chart.width(),
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    24
                colours: ["#fff4dd", "#ff9900","#ADCCDA","#CCAA00"]
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    25
            }); 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    26
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    27
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    28
    $(".piety.line-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    29
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    30
        if(processMultipleCall(chart)){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    31
            chart.peity("line",{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    32
                width: chart.width()
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    33
            }); 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    34
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    35
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    36
    $(".piety.bar-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    37
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    38
        if(processMultipleCall(chart)){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    39
            chart.peity("bar",{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    40
                width: chart.width()
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    41
            }); 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    42
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    43
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    44
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    45
    /**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    46
 * find out whether chart was already generated. If no or is empty, generates new one
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    47
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    48
    function processMultipleCall(object) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    49
        if(!object.children("canvas").exists() || parseInt(object.children("canvas").attr("width"))==0){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    50
            if(object.children("canvas").exists()){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    51
                object.children("canvas").remove();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    52
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    53
            return true;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    54
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    55
        else{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    56
            return false;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    57
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    58
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    59
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    60
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    61
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    62
 * Display charts by Flot plug-in
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    63
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    64
function flotCharts() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    65
    //render pie chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    66
    $(".flot.pie-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    67
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    68
        chart.css("min-height",(chart.width()*.75)+"px");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    69
        var showValues = chart.attr("data-show-values") != undefined ? true : false;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    70
        var dataArray = loadData(chart);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    71
        var options = {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    72
            series: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    73
                pie: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    74
                    show: true
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    75
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    76
            },
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    77
            grid: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    78
                hoverable: showValues
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    79
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    80
        };
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    81
        $.plot(chart, dataArray,options);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    82
        //whether we want to show values -> add value placeholder and bind it
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    83
        showChartValues(chart);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    84
        ua.flots.push({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    85
            placeholder: chart,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    86
            data:dataArray,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    87
            options:options
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    88
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    89
        
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    90
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    91
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    92
    //rendre line chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    93
    $(".flot.line-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    94
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    95
        //        if(chart.height() == 0){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    96
        chart.css("min-height",(chart.width()*1/2)+"px");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    97
        //        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    98
        var dataArray = loadData(chart);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    99
        var options = {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   100
            xaxis: {},
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   101
            grid: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   102
                hoverable: true
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   103
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   104
        };
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   105
        if(chart.hasClass("time-chart")){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   106
            options.xaxis.mode = "time";
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   107
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   108
        $.plot(chart, dataArray,options);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   109
        var previousPoint = null;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   110
        chart.on("plothover", function(event, pos, obj){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   111
            if (obj) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   112
                if (previousPoint != obj.dataIndex) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   113
                    previousPoint = obj.dataIndex;                    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   114
                    $("#js-chart-tooltip").remove();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   115
                    showTooltip(obj.pageX, obj.pageY,obj.series.data[obj.dataIndex][1]);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   116
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   117
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   118
            else {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   119
                $("#js-chart-tooltip").remove();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   120
                previousPoint = null;            
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   121
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   122
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   123
        ua.flots.push({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   124
            placeholder: chart,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   125
            data:dataArray,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   126
            options:options
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   127
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   128
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   129
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   130
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   131
    //rendre line chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   132
    $(".flot.bar-chart").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   133
        var chart = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   134
        //        if(chart.height() == 0){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   135
        chart.css("min-height",(chart.width()*1/2)+"px");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   136
        //        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   137
        var dataArray = loadData(chart);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   138
        var plot,options = {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   139
            series:{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   140
                bars: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   141
                    barWidth: .9,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   142
                    align: "center"
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   143
                },
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   144
                stack: true
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   145
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   146
        };
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   147
        if(chart.attr("data-stack").bool()){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   148
            options.series.stack = true;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   149
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   150
        $.plot(chart, dataArray,options);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   151
        ua.flots.push({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   152
            placeholder: chart,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   153
            data:dataArray,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   154
            options:options
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   155
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   156
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   157
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   158
    /*
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   159
     *loads data from DOM object. Data can be in data- attributes or in table
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   160
     */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   161
    function loadData(object){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   162
        var labels, data, types;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   163
        //data in table
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   164
        if(object.children("table").exists()){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   165
            var table = object.children("table");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   166
            //load labels
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   167
            labels = [];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   168
            data = new Array();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   169
            types = new Array();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   170
            //choose all colums except first one -> not describing data
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   171
            table.find("thead th").not(":first-child").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   172
                labels.push($(this).text());
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   173
                data.push(new Array());
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   174
                //whether lines or bars (set by data-type)
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   175
                //default is according chart type
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   176
                var def = "lines";
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   177
                if (object.hasClass("line-chart")) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   178
                    def = "lines";
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   179
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   180
                else if(object.hasClass("bar-chart")){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   181
                    def = "bars";
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   182
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   183
                types.push($(this).attr("data-type") != undefined ? $(this).attr("data-type"): def);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   184
            });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   185
            var row,index;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   186
            //load data
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   187
            var isTime = object.hasClass("time-chart");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   188
            table.find("tbody tr").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   189
                row = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   190
                if(isTime){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   191
                    index = parseInt(row.children("th").attr("data-timestamp"))*1000; //*1000 because timestamp in JS is in ms
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   192
                }else{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   193
                    index = parseInt(row.children("th").text());
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   194
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   195
                var j = 0;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   196
                row.children("td").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   197
                    data[j].push([index,parseInt($(this).text())]);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   198
                    j++;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   199
                });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   200
            }); 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   201
            var resultData = new Array();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   202
            var showLines, showBars;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   203
            for(var i = 0;i<labels.length;i++){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   204
                showBars = types[i] == "bars" ? true : false;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   205
                showLines = types[i] == "lines" ? true : false;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   206
                resultData.push({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   207
                    label: labels[i],
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   208
                    data: data[i],
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   209
                    lines: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   210
                        show: showLines
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   211
                    },
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   212
                    bars: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   213
                        show: showBars
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   214
                    },
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   215
                    points: {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   216
                        show: showLines //points only on-lines
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   217
                    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   218
                    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   219
                });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   220
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   221
            return resultData;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   222
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   223
        //data in data- attrs
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   224
        else{
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   225
            labels = object.attr("data-labels").split(";");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   226
            data = object.attr("data-values").split(";");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   227
            if(labels.length != data.length){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   228
                console.log("Jiný počet prvků v poli popisků a v poli dat");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   229
                return [];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   230
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   231
            var dataArray = [];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   232
            for( var i = 0; i<labels.length; i++){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   233
                dataArray[i] = {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   234
                    label: labels[i], 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   235
                    data: parseInt(data[i])
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   236
                }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   237
            }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   238
            return dataArray;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   239
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   240
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   241
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   242
    /**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   243
 *shows chart point tooltip
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   244
 *from: http://people.iola.dk/olau/flot/examples/interacting.html
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   245
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   246
    function showTooltip(x, y, contents) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   247
        $('<div id="js-chart-tooltip">' + contents + '</div>').css( {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   248
            position: 'absolute',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   249
            display: 'none',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   250
            top: y + 5,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   251
            left: x + 5,
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   252
            border: '1px solid #fdd',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   253
            padding: '2px',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   254
            'background-color': '#fee',
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   255
            opacity: 0.80
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   256
        }).appendTo("body").fadeIn(200);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   257
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   258
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   259
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   260
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   261
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   262
 * shows values on pie chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   263
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   264
function showChartValues(chart) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   265
    chart.append($("<div class='value-placeholder'> </div>"));
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   266
    chart.on("plothover", function(event, pos, obj){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   267
        if (!obj){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   268
            return;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   269
        }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   270
        var percent = parseFloat(obj.series.percent).toFixed(2);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   271
        //this == chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   272
        $(this).find(".value-placeholder").html(obj.series.data[0][1] + ' <small>('+percent+'%)</small>').fadeIn();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   273
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   274
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   275
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   276
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   277
 * refresh flot chart
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   278
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   279
function refreshCharts() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   280
    var flot;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   281
    for(var i = 0; i<ua.flots.length;i++){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   282
        flot = ua.flots[i];
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   283
        $.plot(flot.placeholder, flot.data,flot.options);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   284
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   285
    //bind showing values again
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   286
    $(".pie-chart.flot[data-show-values='true']").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   287
        showChartValues($(this));
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   288
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   289
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   290
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   291
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   292
 * Manage remove prompts
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   293
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   294
function removePrompt() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   295
    $("body").on("click",".js-remove-prompt",function(e){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   296
        e.preventDefault();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   297
        var prompt = $("<div class='ua-prompt ua-remove-prompt'>"+
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   298
            "<a href='" + $(this).attr("data-target") + "' class='btn btn-danger btn-mini icon-trash'>Smazat</a>"+
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   299
            "<a href='#close' class='btn btn-link btn-mini'>Zrušit</a>"+
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   300
            "</div>");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   301
        prompt.find("a[href='#close']").one("click",function(e){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   302
            e.preventDefault();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   303
            hidePrompt(prompt);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   304
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   305
        prompt.find("a[href='"+$(this).attr("data-target")+"']").one("click",function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   306
            //cannot use the same method as for #close button - propagation is needed here
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   307
            hidePrompt(prompt);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   308
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   309
        prompt.appendTo("body");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   310
        var x, y;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   311
        x = $(this).offset().left + $(this).width() - prompt.width();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   312
        y = $(this).offset().top-5; //to make it nicier
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   313
        prompt.css({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   314
            left: x+"px", 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   315
            top:y+"px"
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   316
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   317
        prompt.show("slide", {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   318
            direction:"right"
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   319
        },300);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   320
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   321
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   322
    /**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   323
     * hide prompt and remove it from DOM
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   324
     */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   325
    function hidePrompt(prompt) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   326
        prompt.hide("slide", {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   327
            direction:"right"
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   328
        },500,function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   329
            prompt.remove();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   330
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   331
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   332
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   333
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   334
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   335
 * Functions which changes running time
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   336
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   337
function runningTime() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   338
    var currentTime = new Date().getTime();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   339
    var time;
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   340
    $(".ua-time-running[data-start]").each(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   341
        time = new Date(currentTime - parseInt($(this).attr("data-start")) - 3600000); //-1h = 60*60*1000
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   342
        $(this).html(time.toLocaleTimeString());
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   343
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   344
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   345
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   346
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   347
 * Bootstrap pop-over handlers
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   348
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   349
function popovers() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   350
    $("body").on("click",".popover-link",function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   351
        var clicked = $(this);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   352
        clicked.popover({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   353
            html:true
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   354
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   355
        clicked.popover("show");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   356
        //any click will close the popover
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   357
        $("body").one("click",function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   358
            clicked.popover("hide");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   359
        });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   360
    });
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   361
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   362
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   363
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   364
 * Extend default Bootstrap tabs behavior
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   365
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   366
function tabs() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   367
    //re-run piety charts init when tab is shown
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   368
    $('.shows-charts[data-toggle="tab"]').on('shown', function (e) {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   369
        pietyCharts();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   370
    })
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   371
    
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   372
    //if there's a tab with id from url, show it
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   373
    if($("a[href='"+window.location.hash+"']")){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   374
        $("a[href='"+window.location.hash+"']").tab("show");
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   375
    }
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   376
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   377
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   378
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   379
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   380
 * Calls all methods which shoul be called after screen si resized
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   381
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   382
function viewportResized() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   383
    refreshCharts();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   384
    convertMenu();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   385
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   386
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   387
/**
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   388
 * Bind jQuery chosen plug-in
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   389
 */
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   390
function chosen() {
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   391
    //pokud bude vic polozek jak 10, zobrazi i vyhledavani
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   392
    $("select.js-chosen:visible").chosen({
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   393
        disable_search_threshold: 10
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   394
    }); 
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   395
}
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   396
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   397
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   398
$(document).ready(function(){
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   399
    pietyCharts();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   400
    flotCharts();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   401
    setInterval("runningTime()",1000);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   402
    removePrompt();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   403
    popovers();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   404
    tabs();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   405
    viewportResized();
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   406
    $(window).on("debouncedresize", viewportResized);
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   407
});
33ab7e8188d0 fake graph for root page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
   408