Added distro/arch information in package version page
[ppastats.git] / src / html.c
index 9a35c14..6ae462d 100644 (file)
@@ -98,6 +98,10 @@ enum file_copy_error {
           <span id=\"ppa_owner\">N/A</span>/<span id=\"ppa_name\">N/A</span>\n\
        </a></p>\n\
     <div id=\"chart\"></div>\n\
+    <div class=\"distros\">\n\
+       <em>Distros</em>:\n\
+       <ul id=\"distros\"></ul>\n\
+    </div>\n\
   </body>\n\
 </html>"
 
@@ -255,8 +259,10 @@ static char *version_to_json(struct ppa_stats *ppa,
                             struct package_stats *pkg,
                             struct version_stats *ver)
 {
-       json_object *json;
        char *ret;
+       struct distro_stats **distros, *distro;
+       json_object *json, *json_distros, *json_distro, *json_archs, *json_arch;
+       struct arch_stats **archs;
 
        json = json_object_new_object();
 
@@ -274,6 +280,42 @@ static char *version_to_json(struct ppa_stats *ppa,
 
        json_add_ddts(json, ver->daily_download_totals);
 
+       distros = ver->distros;
+       json_distros = json_object_new_array();
+       json_object_object_add(json, "distros", json_distros);
+       while (*distros) {
+               distro = *distros;
+               json_distro = json_object_new_object();
+
+               json_object_array_add(json_distros, json_distro);
+
+               json_object_object_add(json_distro,
+                                      "name",
+                                      json_object_new_string(distro->name));
+
+               archs = distro->archs;
+               json_archs = json_object_new_array();
+               json_object_object_add(json_distro, "archs", json_archs);
+               while (*archs) {
+                       json_arch = json_object_new_object();
+
+                       json_object_object_add
+                               (json_arch,
+                                "name",
+                                json_object_new_string((*archs)->name));
+
+                       json_object_object_add
+                               (json_arch,
+                                "count",
+                                json_object_new_int((*archs)->download_count));
+
+                       json_object_array_add(json_archs, json_arch);
+                       archs++;
+               }
+
+               distros++;
+       }
+
        ret = strdup(json_object_to_json_string(json));
 
        json_object_put(json);