add distros stats in each package
[ppastats.git] / src / html.c
index 29f9e37..3d6c630 100644 (file)
@@ -72,7 +72,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 id=\"versions\"><em>Versions:</em></div>\n\
+    <div id=\"details\">\n\
+      <div id=\"versions\"><em>Versions:</em></div>\n\
+      <div id=\"distros\"><em>Distros:</em></div>\n\
+    </div>\n\
 %s"
 
 #define HTML_VERSION_TEMPLATE \
@@ -103,9 +106,11 @@ 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 id=\"details\">\n\
+      <div class=\"distros\">\n\
+       <em>Distros</em>:\n\
+       <ul id=\"distros\"></ul>\n\
+      </div>\n\
     </div>\n\
 %s"
 
@@ -131,9 +136,11 @@ enum file_copy_error {
   </head>\n\
   <body>\n\
     <h1><span id=\"ppa_name\">N/A</span></h1>\n\
-    <div class=\"pkgs\">\n\
-       <em>Packages</em>:\n\
-       <ul id=\"pkgs\"></ul>\n\
+    <div id=\"details\">\n\
+      <div class=\"pkgs\">\n\
+       <em>Packages</em>:\n\
+       <ul id=\"pkgs\"></ul>\n\
+      </div>\n\
     </div>\n\
     <div id=\"chart\"></div>\n\
 %s"
@@ -253,9 +260,10 @@ static void json_add_ddts(json_object *json,
 
 static char *pkg_to_json(struct ppa_stats *ppa, struct package_stats *pkg)
 {
-       json_object *json, *json_versions;
+       json_object *json, *json_versions, *json_distros, *json_distro;
        char *ret;
        struct version_stats **versions;
+       struct distro_stats **distros, *distro;
 
        json = json_object_new_object();
 
@@ -279,6 +287,27 @@ static char *pkg_to_json(struct ppa_stats *ppa, struct package_stats *pkg)
                versions++;
        }
 
+       distros = pkg->distros;
+       if (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));
+                       json_object_object_add
+                               (json_distro,
+                                "count",
+                                json_object_new_int(distro->download_count));
+                       distros++;
+               }
+       }
+
        json_add_ddts(json, pkg->daily_download_totals);
 
        ret = strdup(json_object_to_json_string(json));