Author: humbedooh
Date: Sat Mar 7 15:04:36 2015
New Revision: 1664861
URL: http://svn.apache.org/r1664861
Log:
- re-render the report when JIRA release versions are added, instead of
requiring user to refresh
- allow members to add release data for arbitrary projects
Modified:
comdev/reporter.apache.org/site/jiraversions.py
comdev/reporter.apache.org/site/render.js
Modified: comdev/reporter.apache.org/site/jiraversions.py
URL:
http://svn.apache.org/viewvc/comdev/reporter.apache.org/site/jiraversions.py?rev=1664861&r1=1664860&r2=1664861&view=diff
==============================================================================
--- comdev/reporter.apache.org/site/jiraversions.py (original)
+++ comdev/reporter.apache.org/site/jiraversions.py Sat Mar 7 15:04:36 2015
@@ -29,13 +29,24 @@ def getReleaseData(project):
return {}
+def isMember(uid):
+ members = []
+ ldapdata = subprocess.check_output(['ldapsearch', '-x', '-LLL', '-b',
'cn=member,ou=groups,dc=apache,dc=org'])
+ for match in re.finditer(r"memberUid: ([-a-z0-9_.]+)", ldapdata):
+ group = match.group(1)
+ members.append(group)
+ if uid in members:
+ return True
+ return False
+
+
jirapass = ""
with open("/var/www/reporter.apache.org/data/jirapass.txt", "r") as f:
jirapass = f.read().strip()
f.close()
groups = getPMCs(user)
-if project in groups and jiraname:
+if (isMember(user) or project in groups) and jiraname:
jiraname = jiraname.upper()
base64string = base64.encodestring('%s:%s' % ('githubbot',
jirapass))[:-1]
rdata = getReleaseData(project)
@@ -55,7 +66,8 @@ if project in groups and jiraname:
f.write(json.dumps(rdata))
f.close()
- print("Content-Type: application/json\r\n\r\n{\"status\":
\"Fetched\"}\r\n")
+ print("Content-Type: application/json\r\n\r\n")
+ print(json.dumps({'status': 'Fetched', 'versions': rdata}))
else:
print("Content-Type: application/json\r\n\r\n{\"status\": \"Data
missing\"}\r\n")
Modified: comdev/reporter.apache.org/site/render.js
URL:
http://svn.apache.org/viewvc/comdev/reporter.apache.org/site/render.js?rev=1664861&r1=1664860&r2=1664861&view=diff
==============================================================================
--- comdev/reporter.apache.org/site/render.js (original)
+++ comdev/reporter.apache.org/site/render.js Sat Mar 7 15:04:36 2015
@@ -6,6 +6,7 @@ var map = {
}
var templates = {}
+var nproject = null;
// Function for async fetching of a single JSON file with JS callback
function GetAsyncJSON(theUrl, xstate, callback) {
@@ -520,7 +521,7 @@ function renderFrontPage(json) {
}
});
- var project = document.location.search.substr(1);
+ var project = nproject ? nproject : document.location.search.substr(1);
if (project && project.length > 0) {
$("#tabcontents #tab_" + project).fadeIn();
@@ -660,8 +661,15 @@ function renderChart(json, name, contain
function renderReleaseChart(releases, name, container) {
- var chartDiv = document.createElement('div')
- chartDiv.setAttribute("id", name + "_releasechart")
+
+ var chartDiv;
+ if (document.getElementById(name + "_releasechart")) {
+ chartDiv = document.getElementById(name + "_releasechart")
+ } else {
+ chartDiv = document.createElement('div')
+ chartDiv.setAttribute("id", name + "_releasechart")
+ }
+
var narr = []
var maxLen = 1;
for (version in releases) {
@@ -713,7 +721,20 @@ function renderReleaseChart(releases, na
function fetchJIRA(pmc, project, prepend ) {
if (project && project.length > 1) {
- GetAsyncJSON("/jiraversions.py?project=" + pmc + "&jiraname=" +
project + "&prepend=" + prepend, null, function() { alert("Information has been
fetched, please reload this page!"); })
+ GetAsyncJSON("/jiraversions.py?project=" + pmc + "&jiraname=" +
project + "&prepend=" + prepend, null,
+ function(json) {
+ if (json && json.versions) {
+ for (version in json.versions) {
+ jsdata.releases[pmc][version] =
json.versions[version]
+ }
+ $('#dialog_' + pmc).dialog("close")
+ var nproject = pmc
+ renderFrontPage(jsdata)
+
+ } else {
+ alert("Couldn't find any release data :(")
+ }
+ })
}
}
\ No newline at end of file