18f580f03c4b47b6a1e010617c7c7726eccdfbb5
[ppastats.git] / themes / default / js / ppastats.js
1 function ppastats_chart(ddts) {
2         var data_chart = [];
3         var max_date = null;
4         var min_date = null;
5
6         $.each(ddts, function(i, item) {
7                 var tm = item["time"];
8                 var d = new Date(tm[0], tm[1]-1, tm[2]);
9                 var entry = [d, item["value"]];
10                 data_chart.push(entry);
11
12                 if (max_date == null || max_date < d) {
13                         max_date = d;
14                 }
15
16                 if (min_date == null || min_date > d) {
17                         min_date = d;
18                 }
19         });
20
21         var plot1 = $.jqplot ('chart', [data_chart], {
22                 title: 'Daily Download Count',
23                 axes: {
24                         xaxis: {
25                                 renderer:$.jqplot.DateAxisRenderer,
26                                 tickOptions:{formatString:'%Y/%m/%d'},
27                                 min: min_date,
28                                 max: max_date
29                         },
30                         yaxis: {
31                                 min: 0
32                         }
33                 },
34                 series: [{lineWidth:1,showMarker:false}]
35         });
36 }
37
38 function ppastats_distros(distros) {
39         var data_chart = [];
40         var max_date = null;
41         var min_date = null;
42         var series_opt = [];
43
44         $.each(distros, function(i, distro) {
45                 var arr = [];
46
47                 $.each(distro["ddts"], function(j, item) {
48                         var tm = item["time"];
49                         var d = new Date(tm[0], tm[1]-1, tm[2]);
50                         var entry = [d, item["value"]];
51                         arr.push(entry);
52
53                         if (max_date == null || max_date < d) {
54                                 max_date = d;
55                         }
56
57                         if (min_date == null || min_date > d) {
58                                 min_date = d;
59                         }
60                 });
61                 data_chart[i] = arr;
62                 series_opt[i] = {label: distro["name"]};
63         });
64
65         var plot1 = $.jqplot ('chart_distro', data_chart, {
66                 title: 'Daily Download Count by Ubuntu Distribution',
67                 axes: {
68                         xaxis: {
69                                 renderer:$.jqplot.DateAxisRenderer,
70                                 tickOptions:{formatString:'%Y/%m/%d'},
71                                 min: min_date,
72                                 max: max_date
73                         },
74                         yaxis: {
75                                 min: 0
76                         }
77                 },
78                 seriesDefaults: {
79                         lineWidth:1,
80                         showMarker:false
81                 },
82                 legend: {
83                         show: true
84                 },
85                 series: series_opt
86         });
87 }
88
89 function ppastats_pkg(json_url) {
90         $(document).ready(function() {
91                 $.getJSON(json_url, function(data) {
92                         $("#ppa_owner").html(data["ppa_owner"]);
93                         $("#ppa_name").html(data["ppa_name"]);
94                         $("#pkg_name").html(data["name"]);
95
96                         $("#versions").append("<ul>");
97                         $.each(data["versions"], function(i, v) {
98                                 var v_url = data["name"]+"_"+v+".html";
99
100                                 $("#versions ul").append("<li><a href='"+v_url+"'>"+v+"</a></li>");
101                         });
102
103                         $("#distros").append("<ul>");
104                         $.each(data["distros"], function(i, d) {
105                                 $("#distros ul").append("<li>"+d["name"]+": "+d["count"]+"</li>");
106                         });
107
108                         ppastats_chart(data["ddts"]);
109                         ppastats_distros(data["distros"]);
110                 });
111         });
112 }
113
114 function ppastats_ver() {
115         $(document).ready(function() {
116                 var pkg_url = data["pkg_name"]+".html";
117
118                 $("#ppa_owner").html(data["ppa_owner"]);
119                 $("#ppa_name").html(data["ppa_name"]);
120                 $("#pkg_name").html("<a href='"+pkg_url+"'>"+data["pkg_name"]+"</a>");
121                 $("#version").append(" "+data["name"]);
122
123                 $("#distros").append("<ul>");
124                 $.each(data["distros"], function(i, distro) {
125                         $.each(distro["archs"], function(i, arch) {
126                                 $("#distros ul").append("<li>"+distro["name"]+"_"+arch["name"]+": "+arch["count"]+"</li");
127                         });
128                 });
129
130                 ppastats_chart(data["ddts"]);
131
132                 $("#date_created").append(data["date_created"]);
133         });
134 }
135
136 function ppastats_ppa() {
137     $(document).ready(function() {
138         var max_date = null;
139         var min_date = null;
140         var pkg_url;
141
142         $.getJSON("index.json", function(data) {
143             pkg_url = data["pkg_name"]+".html";
144
145             $("#ppa_name").html(data["ppa_owner"]+"/"+data["ppa_name"]);
146
147             $.each(data["packages"], function(i, item) {
148                 var url = item["name"]+".html";
149                 $("#pkgs").append("<li><a href='"+url+"'>"+item["name"]+"</a>: "+item["count"]+"</li>");
150             });
151
152             ppastats_chart(data["ddts"]);
153         });
154     });
155 }