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")