Author: humbedooh
Date: Sun Mar  8 20:01:58 2015
New Revision: 1665071

URL: http://svn.apache.org/r1665071
Log:
Allow for members to do a drop-in addition of a project in their view instead 
of having to reload everything.

Modified:
    comdev/reporter.apache.org/site/getjson.py
    comdev/reporter.apache.org/site/render.js

Modified: comdev/reporter.apache.org/site/getjson.py
URL: 
http://svn.apache.org/viewvc/comdev/reporter.apache.org/site/getjson.py?rev=1665071&r1=1665070&r2=1665071&view=diff
==============================================================================
--- comdev/reporter.apache.org/site/getjson.py (original)
+++ comdev/reporter.apache.org/site/getjson.py Sun Mar  8 20:01:58 2015
@@ -1,6 +1,10 @@
 #!/usr/bin/env python
 import os, sys, re, json, subprocess, urllib, time
-import base64, urllib2
+import base64, urllib2, cgi
+
+form = cgi.FieldStorage();
+oproject = form['only'].value if ('only' in form and len(form['only'].value) > 
0) else None
+
 
 jmap = {
     'trafficserver': ['TS'],
@@ -186,6 +190,8 @@ if m:
     include = os.environ['QUERY_STRING'] if 'QUERY_STRING' in os.environ else 
None
     if include and isMember(uid) and not include in groups and len(include) > 
1:
         groups.append(include)
+    if oproject and len(oproject) > 0 and isMember(uid):
+        groups = [oproject]
     mlstats = {}
     with open("/var/www/reporter.apache.org/data/mailinglists.json", "r") as f:
         ml = json.loads(f.read())

Modified: comdev/reporter.apache.org/site/render.js
URL: 
http://svn.apache.org/viewvc/comdev/reporter.apache.org/site/render.js?rev=1665071&r1=1665070&r2=1665071&view=diff
==============================================================================
--- comdev/reporter.apache.org/site/render.js (original)
+++ comdev/reporter.apache.org/site/render.js Sun Mar  8 20:01:58 2015
@@ -571,12 +571,15 @@ function renderFrontPage(json) {
                btn.setAttribute("id", "btn_all")
                btn.setAttribute("class", "tab-title")
                json.all.sort()
-               json.all.unshift("-----------------------")
-               json.all.unshift("Members-only Quick-nav:")
+               if (json.all.indexOf("-----------------------") == -1) {
+                       json.all.unshift("-----------------------")
+                       json.all.unshift("Members-only Quick-nav:")
+               }
+               
                var sel = makeSelect("project", json.all, [])
                sel.setAttribute("style", "height: 32px !important; padding: 
0px !important; margin: 0px !important; margin-left: 32px !important;")
                sel.style = "break-before: never; break-after: never; float: 
left"
-               sel.setAttribute("onchange", "location.href = '/?' + 
this.value;")
+               sel.setAttribute("onchange", "GetAsyncJSON('/getjson.py?only='+ 
this.value, this.value, mergeData);")
                btn.appendChild(sel)
                panellist.appendChild(btn)
 
@@ -586,6 +589,25 @@ function renderFrontPage(json) {
 
 }
 
+function mergeData(json, pmc) {
+       if (nproject && nproject.length > 0) {
+               for (i in jsdata.pmcs) {
+                       if (jsdata.pmcs[i] == nproject) {
+                               jsdata.pmcs.splice(i,1);
+                               break
+                       }
+               }
+       }
+       var todo = new Array('count', 'mail', 'delivery', 'jira', 'changes', 
'pdata', 'releases', 'keys')
+       for (i in todo) {
+               var key = todo[i]
+               jsdata[key][pmc] = json[key][pmc];
+       }
+       jsdata.pmcs.push(pmc)
+       nproject = pmc
+       renderFrontPage(jsdata)
+}
+
 
 function renderJIRA(pmc) {
        var obj = buildPanel(pmc, "JIRA Statistics")


Reply via email to