PageSourceSearch

https://cdhcm.org.mx/wp-content/plugins/weblator-charts/public/assets/js/public.js

js cdhcm.org.mx collected 2026-10-02 10:26:10 UTC 8,313 bytes, 262 lines download raw bytes

1var ChartInt = function(id) {
2
3    var chart = this;
4
5    this.options = {
6
7        pollID : null,
8        chartTotals : null,
9        display : null,
10        chartType : null,
11        chartOptionsCount : 0
12
13    };
14
15
16    function init(id){
17
18        chart.options.pollID = id;
19
20        loadPoll();
21    }
22
23
24    function loadPoll(){
25
26        jQuery.post(ajaxurl, {action:"chart_data_chart", chart_id:chart.options.pollID}, function(response){
27
28            var json = jQuery.parseJSON(response), totalVotes = 0;
29
30            chart.options.chartType = json.chart_type;
31            chart.options.chartOptionsCount = json.totals.length;
32            //Make totals integers
33            for (var i=0; i < json.totals.length; i++)
34                json.totals[i] = parseFloat(json.totals[i]);
35
36
37            if (json.chart_type == 1 || json.chart_type == 4 || json.chart_type == 5){
38
39                var data = {
40
41                    labels : json.labels,
42                    datasets : [
43
44                        {
45                            fillColor : json.styles[0].fillColor,
46                            strokeColor : json.styles[0].strokeColor,
47                            pointColor : json.styles[0].pointColor,
48                            pointStrokeColor : json.styles[0].pointStrokeColor,
49                            data : json.totals
50
51                        }
52                    ]
53                }
54
55                for(var i = 0; i < data.datasets[0].data.length; i++)
56                    totalVotes += data.datasets[0].data[i];
57
58            }else {
59
60                var data = [];
61
62                for (var i = 0; i < json.totals.length; i++){
63
64                    totalVotes += parseFloat(json.totals[i]);
65
66                    data.push({
67                        value: parseFloat(json.totals[i]),
68                        color : json.option_colours[i],
69                        label : json.labels[i]
70                    });
71                }
72
73
74            }
75
76                chart.options.chartTotals = json.totals;
77                var override = overrideOptions();
78
79                json.options = jQuery.extend({}, override, json.options);
80
81            if (parseInt(json.maxWidth) == 0){
82
83                //if (parseInt(json.chartType != 7)){
84                    var width = jQuery("[data-chart-id='"+ chart.options.pollID +"'] #weblator-charts-chart-" + chart.options.pollID).parent().width();
85
86                    jQuery("[data-chart-id='"+ chart.options.pollID +"'] #weblator-charts-chart-" + chart.options.pollID).attr({width: width});
87                    jQuery("[data-chart-id='"+ chart.options.pollID +"'] #weblator-charts-chart-" + chart.options.pollID).attr({height: parseInt(width) / 2});
88
89                if (parseInt(json.chartType) == 5 || parseInt(json.chartType)){
90                    jQuery("[data-chart-id='"+ chart.options.pollID +"'] #weblator-charts-chart-" + chart.options.pollID).removeAttr("height");
91                }
92
93            }
94
95                var ctx = document.getElementById("weblator-charts-chart-" + chart.options.pollID).getContext("2d");
96
97                jQuery("[data-chart-id='"+ chart.options.pollID +"'] #weblator-charts-chart-" + chart.options.pollID).slideDown(function(){
98
99
100                    switch(parseInt(json.chart_type)){
101
102                        case 1:
103                            chart.options.display = new Chart(ctx).Bar(data, json.options);
104                            break;
105
106                        case 2:
107                            chart.options.display = new Chart(ctx).Pie(data,json.options);
108                            if (parseInt(json.showLegend))
109                                legend(document.getElementById("legend-" + chart.options.pollID), data);
110                            break;
111
112                        case 3:
113                            chart.options.display = new Chart(ctx).Doughnut(data,json.options);
114                            if (parseInt(json.showLegend))
115                                legend(document.getElementById("legend-" + chart.options.pollID), data);
116                            break;
117
118                        case 4:
119                            chart.options.display = new Chart(ctx).Line(data,json.options);
120                            break;
121
122                        case 5:
123                            chart.options.display = new Chart(ctx).Radar(data,json.options);
124                            break;
125
126                        case 6:
127                            chart.options.display = new Chart(ctx).PolarArea(data,json.options);
128                            if (parseInt(json.showLegend))
129                                legend(document.getElementById("legend-" + chart.options.pollID), data);
130                            break;
131
132                        case 7:
133                            createBootstrapChart(data, json.options, json.maxWidth, json.percentage);
134                            break;
135                    }
136
137
138                });
139
140
141        });
142
143
144    }
145
146
147    function overrideOptions(){
148
149        if (chart.options.chartType != 5 || chart.options.chartType != 6){
150            var min = Infinity, max = -Infinity, x;
151            for( x in chart.options.chartTotals) {
152                if( chart.options.chartTotals[x] < min) min = chart.options.chartTotals[x];
153                if( chart.options.chartTotals[x] > max) max = chart.options.chartTotals[x];
154            }
155
156            var scaleSteps = 20;
157            var scaleStepWidth = 1;
158            var scaleStart = 0;
159
160            if (max < 20){
161                scaleSteps = max;
162
163            }else {
164
165                scaleStepWidth = Math.ceil(max/scaleSteps);
166            }
167
168            if (chart.options.chartType == 5 || chart.options.chartType == 6){
169                scaleSteps = chart.options.chartOptionsCount;
170                scaleStart = 0;
171                scaleStepWidth = Math.ceil(max/scaleSteps);
172            }
173
174            var steps = new Number(max);
175            var stepWidth = new Number(1);
176            if (max > 10) {
177                stepWidth = Math.floor(max / 10);
178                steps = Math.ceil(max / stepWidth);
179            }
180
181            return options = {
182
183                scaleOverride : true,
184                scaleSteps : steps,
185                scaleStepWidth : stepWidth,
186                scaleStartValue : scaleStart
187            };
188        }
189
190    }
191
192    function createBootstrapChart(data, override, maxWidth, percentage){
193
194        jQuery("#weblator-charts-chart-" + chart.options.pollID).remove();
195
196        var total = 0;
197        for(var i=0; i < data.length; i++)
198            total = total + parseInt(data[i].value);
199
200
201
202        var bsChartContainer = jQuery('<div/>')
203            .attr("class", "bs-chart-container")
204            .css("display", "none");
205
206
207        for(var i = 0; i < data.length; i++){
208
209            var label = jQuery("<strong/>").html(data[i].label);
210
211            var progressContainer = jQuery('<div/>').attr("class", "progress");
212
213            if (!parseInt(percentage))
214                var p = (data[i].value / total) * 100
215            else
216                var p = data[i].value;
217
218            var progressBar = jQuery('<div/>')
219                .attr("class", "progress-bar")
220                .attr("role", "progressbar")
221                .attr("aria-valuenow", p)
222                .attr("aria-valuemin", 0)
223                .css({
224                    backgroundColor : data[i].color
225                });
226
227            if (override.bsBarStriped)
228                progressContainer.addClass("progress-striped");
229
230            var span = jQuery('<span/>')
231                .attr("class", "")
232                .html(data[i].value);
233
234            if (parseInt(percentage))
235                span.append("%");
236
237            if (p > 0)
238                progressBar.append(span);
239
240            progressContainer.append(progressBar);
241            bsChartContainer.append(label);
242            bsChartContainer.append(progressContainer);
243
244        }
245
246        jQuery("[data-chart-id='"+ chart.options.pollID +"']").after(bsChartContainer);
247
248        bsChartContainer.slideDown();
249
250        jQuery(".progress-bar").each(function(){
251
252            var value = jQuery(this).attr("aria-valuenow");
253
254            jQuery(this).animate({
255                width:value + "%"
256            }, 1000);
257
258        });
259    }
260
261    init(id);
262};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.