You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by hb...@apache.org on 2015/05/14 19:11:17 UTC
svn commit: r1679406 - /comdev/projects.apache.org/site/js/projects.js
Author: hboutemy
Date: Thu May 14 17:11:17 2015
New Revision: 1679406
URL: http://svn.apache.org/r1679406
Log:
reworked code for simplification and consistency
Modified:
comdev/projects.apache.org/site/js/projects.js
Modified: comdev/projects.apache.org/site/js/projects.js
URL: http://svn.apache.org/viewvc/comdev/projects.apache.org/site/js/projects.js?rev=1679406&r1=1679405&r2=1679406&view=diff
==============================================================================
--- comdev/projects.apache.org/site/js/projects.js (original)
+++ comdev/projects.apache.org/site/js/projects.js Thu May 14 17:11:17 2015
@@ -255,43 +255,64 @@ function appendLiInnerHTML(ul,html) {
appendElementWithInnerHTML(ul,'li',html);
}
-function renderProjectPage(json, state) {
+function renderProjectPage(project, projectId) {
+ if ((!project || !project.name) && projects[projectId]) {
+ project = projects[projectId];
+ }
+ if (!project || !project.name) {
+ obj.innerHTML = "<h2>Sorry, I don't have any information available about this project</h2>";
+ return;
+ }
+
+ var isIncubating = project.podling || project.name.match(/incubating/i);
+
+ // Rerig the unix name and tlp
+ var unixgroup = projectId.split("-")[0];
+ // special case: empire-db
+ if (unixgroup == "empire") unixgroup = "empire-db";
+ var tlpId = unixgroup;
+ if (!tlps[unixgroup]) {
+ // one TLP has a unix group that is different from TLP id: webservices (group=ws), see parsecommittees.py#group_ids
+ for (p in tlps) {
+ if (tlps[p].group == unixgroup) {
+ tlpId = p;
+ break;
+ }
+ }
+ }
+ if (isIncubating) {
+ tlpId = 'incubator'
+ project.pmc = tlpId;
+ }
+ var tlp = tlps[tlpId];
var obj = document.getElementById('contents');
var isTLP = false;
- var isIncubating = false;
- if ((!json || !json.name) && projects[state]) {
- json = projects[state];
- }
- if (!json || !json.name) {
- obj.innerHTML = "<h2>Sorry, I don't have any information available about this project</h2>";
- return;
- }
// Start by splitting the name, thus fetching the root name of the project, and not the sub-project.
- if (!json.description || json.description.length == 0) {
- json.description = (json.shortdesc && json.shortdesc.length > 0 ) ? json.shortdesc : "No description available"
+ if (!project.description || project.description.length == 0) {
+ project.description = (project.shortdesc && project.shortdesc.length > 0 ) ? project.shortdesc : "No description available"
}
// Title + description
var pt = "Top Level Project";
- if ((!tlpsByName[json.name] && tlps[json.pmc]) || json.name.match("Incubating", "i")) {
- pt = (json.pmc == "attic") ? "in the Attic" : "Sub-project"
+ if (isIncubating) {
+ pt = "Incubating";
+ } else if (!tlpsByName[project.name] && tlps[project.pmc]) {
+ pt = (project.pmc == "attic") ? "in the Attic" : "Sub-project"
} else {
isTLP = true
}
- obj.innerHTML = "<h1>" + json.name + " (" + pt + "):</h1>";
-
- // Rerig the unix name and pmc
- state = state.split("-")[0];
- if (json.name.match("incubating", "i")) {
- json.pmc = 'incubator'
+ var name = project.name;
+ if (!name.match(/incubating/i)) {
+ name += " (" + pt + ")";
}
+ obj.innerHTML = "<h1>" + name + "</h1>";
var p = document.createElement('p');
p.style.fontFamily = '"Times New Roman", Times, serif';
- p.innerHTML = json.description.replace(/([^\r\n]+)\r?\n\r?\n/g,function(a) { return "<p>"+a+"</p>"});
+ p.innerHTML = project.description.replace(/([^\r\n]+)\r?\n\r?\n/g,function(a) { return "<p>"+a+"</p>"});
obj.appendChild(p);
@@ -301,8 +322,8 @@ function renderProjectPage(json, state)
var ul = document.createElement('ul');
// Categories
- if (json['category']) {
- var arr = json['category'].split(/,\s*/);
+ if (project['category']) {
+ var arr = project['category'].split(/,\s*/);
var pls = "";
for (i in arr) {
var cat = arr[i];
@@ -312,49 +333,47 @@ function renderProjectPage(json, state)
}
// Website
- if (json.homepage) {
- appendLiInnerHTML(ul, "<b>Website:</b> <a href='" + json.homepage + "' target='_blank'>" + json.homepage + "</a>");
+ if (project.homepage) {
+ appendLiInnerHTML(ul, "<b>Website:</b> <a href='" + project.homepage + "' target='_blank'>" + project.homepage + "</a>");
}
- if (unixgroups[state]) {
+ if (isIncubating) {
+ appendLiInnerHTML(ul, "<b>Project status:</b> <span class='ppodling'>Incubating</span>");
+ } else if (unixgroups[unixgroup]) {
appendLiInnerHTML(ul, "<b>Project status:</b> <span class='pactive'>Active</span>");
} else {
- appendLiInnerHTML(ul, "<b>Project status:</b> <span class='pretired'>Retired(?)</span>");
- }
- if (json.podling || json.name.match(/incubating/i)) {
- appendLiInnerHTML(ul, "<b>Project status:</b> <span class='ppodling'>Incubating</span>");
- isIncubating = true;
+ appendLiInnerHTML(ul, "<b>Project status:</b> <span class='pretired'>Retired</span>");
}
- if (tlpsByName[json.name]) {
- appendLiInnerHTML(ul, "<b>Project established:</b> " + tlpsByName[json.name].established);
+ if (tlpsByName[project.name]) {
+ appendLiInnerHTML(ul, "<b>Project established:</b> " + tlpsByName[project.name].established);
}
// TLP Owner?
- if (json.pmc) {
- if (json.pmc.match(/http:\/\/([a-z0-9]+)/i)) {
- json.pmc = json.pmc.match(/http:\/\/([a-z0-9]+)/i)[1];
+ if (project.pmc) {
+ if (project.pmc.match(/http:\/\/([a-z0-9]+)/i)) {
+ project.pmc = project.pmc.match(/http:\/\/([a-z0-9]+)/i)[1];
}
} else {
- json.pmc = state;
+ project.pmc = tlpId;
}
- if (!tlpsByName[json.name] && tlps[json.pmc]) {
- appendLiInnerHTML(ul, "<b>Sub-project of:</b> <a href='/project.html?" + json.pmc + "'>" + tlps[json.pmc].name + "</a>");
+ if (!tlpsByName[project.name] && tlps[project.pmc]) {
+ appendLiInnerHTML(ul, "<b>Sub-project of:</b> <a href='/project.html?" + project.pmc + "'>" + tlps[project.pmc].name + "</a>");
}
if (isTLP) {
- var tlp = tlps[json.pmc];
+ var tlp = tlps[project.pmc];
// VP
appendLiInnerHTML(ul, "<b>PMC Chair:</b> " + people[tlp.chair]);
// Reporting cycle
var cycles = [ "every month", "January, April, July, October", "February, May, August, November", "March, June, September, December" ];
- appendLiInnerHTML(ul, "<b>Reporting cycle:</b> " + cycles[tlp.reporting] + ", see <a href='https://whimsy.apache.org/board/minutes/" + camelCase(json.pmc) + ".html'>minutes</a>");
+ appendLiInnerHTML(ul, "<b>Reporting cycle:</b> " + cycles[tlp.reporting] + ", see <a href='https://whimsy.apache.org/board/minutes/" + camelCase(project.pmc) + ".html'>minutes</a>");
// PMC
- if (unixgroups[state+"-pmc"]) {
+ if (unixgroups[unixgroup+"-pmc"]) {
var pmcl = [];
- var pmcgroup = unixgroups[state+"-pmc"];
+ var pmcgroup = unixgroups[unixgroup+"-pmc"];
for (i in pmcgroup) {
pmcl.push(linkCommitterIndex(pmcgroup[i]));
}
@@ -363,9 +382,9 @@ function renderProjectPage(json, state)
}
// Committers
- if (unixgroups[state] && (isTLP || isIncubating)) {
+ if (unixgroups[unixgroup] && (isTLP || isIncubating)) {
var commitl = [];
- var commitgroup = unixgroups[state];
+ var commitgroup = unixgroups[unixgroup];
for (i in commitgroup) {
commitl.push(linkCommitterIndex(commitgroup[i]));
}
@@ -373,13 +392,13 @@ function renderProjectPage(json, state)
}
// maintainer
- if (json.maintainer && json.maintainer.Person && json.maintainer.Person.mbox) {
- var mt = json.maintainer.Person.mbox;
+ if (project.maintainer && project.maintainer.Person && project.maintainer.Person.mbox) {
+ var mt = project.maintainer.Person.mbox;
appendLiInnerHTML(ul, "<b>Project data maintainer:</b> <a href='" + mt + "'>" + mt.substr(mt.indexOf(":") + 1) + "</a>");
}
// doap/rdf
- if (json.doap) {
- appendLiInnerHTML(ul, "<b>Project data file:</b> <a href='" + json.doap + "' target='_blank'>RDF Source</a>");
+ if (project.doap) {
+ appendLiInnerHTML(ul, "<b>Project data file:</b> <a href='" + project.doap + "' target='_blank'>RDF Source</a>");
}
obj.appendChild(ul);
@@ -388,8 +407,8 @@ function renderProjectPage(json, state)
appendElementWithInnerHTML(obj,'h4',"Development:");
ul = document.createElement('ul');
- if (json['programming-language']) {
- pl = json['programming-language'];
+ if (project['programming-language']) {
+ pl = project['programming-language'];
var arr = pl.split(/,\s*/);
pls = "";
for (i in arr) {
@@ -398,13 +417,13 @@ function renderProjectPage(json, state)
appendLiInnerHTML(ul, "<b>Programming language:</b> " + pls);
}
- if (json['bug-database']) {
- var bd = json['bug-database'];
+ if (project['bug-database']) {
+ var bd = project['bug-database'];
appendLiInnerHTML(ul, "<b>Bug-tracking:</b> <a href='" + bd + "'>" + bd + "</a>");
}
- if (json['mailing-list']) {
- bd = json['mailing-list'];
+ if (project['mailing-list']) {
+ bd = project['mailing-list'];
var xbd = bd;
// email instead of link?
if (bd.match(/@/)) {
@@ -418,19 +437,19 @@ function renderProjectPage(json, state)
// repositories
appendElementWithInnerHTML(obj,'h4',"Repositories:");
ul = document.createElement('ul');
- if (json.SVNRepository&& json.SVNRepository.length > 0) {
- appendLiInnerHTML(ul, "<b>Subversion:</b> <a target=*_blank' href='" + json.SVNRepository + "'>" + json.SVNRepository + "</a>");
+ if (project.SVNRepository&& project.SVNRepository.length > 0) {
+ appendLiInnerHTML(ul, "<b>Subversion:</b> <a target=*_blank' href='" + project.SVNRepository + "'>" + project.SVNRepository + "</a>");
}
- if (json.GitRepository && json.GitRepository.length > 0) {
- appendLiInnerHTML(ul, "<b>Git:</b> <a target=*_blank' href='" + json.GitRepository + "'>" + json.GitRepository + "</a>");
+ if (project.GitRepository && project.GitRepository.length > 0) {
+ appendLiInnerHTML(ul, "<b>Git:</b> <a target=*_blank' href='" + project.GitRepository + "'>" + project.GitRepository + "</a>");
}
obj.appendChild(ul);
}
function buildProjectPage() {
- var project = document.location.search.substr(1);
- GetAsyncJSON("/json/projects/" + project + ".json?" + Math.random(), project, renderProjectPage)
+ var projectId = document.location.search.substr(1);
+ GetAsyncJSON("/json/projects/" + projectId + ".json?" + Math.random(), projectId, renderProjectPage)
}
@@ -450,7 +469,13 @@ function projectIcon(name) {
function projectLink(id) {
project = projects[id];
- return "<a href='/project.html?" + id + "'>" + project.name + ( ( project.pmc == "attic" ) ? " (in the Attic)" : "" ) + "</a>"
+ var name = project.name;
+ if (project.pmc == "attic") {
+ name += " (in the Attic)";
+ } else if ((project.pmc == "incubator") && !name.match(/incubating/i)) {
+ name += " (Incubating)";
+ }
+ return "<a href='/project.html?" + id + "'>" + name + "</a>";
}
function isMember(id) {