in site/js/projects.js [1008:1050]
function renderFrontPage() {
var numcommittees = 0;
var i;
for (i in committees) numcommittees++;
var curPodlings = 0;
for (i in podlings) curPodlings++;
// The projects list contains 1 entry for each podling, as well as 1 entry for each DOAP.
// Each podling relates to a single project, but a PMC may have one or more projects.
// However not all projects may have registered DOAPs.
// In order to find these missing projects, we need to find projects that have not registered DOAPs
var projectsWithDoaps = {}; // ids of projects which have registered DOAPS
var numProjects = 0; // total projects run by active PMCs
for (j in projects) {
i = projects[j];
projectsWithDoaps[i.pmc] = 1; // which projects have got DOAPs
if (i.pmc != 'attic' && i.pmc != 'incubator') {
numProjects++; // found a project run by an active PMC (not podling or retired)
}
}
var numprojectsWithDoaps = 0; // how many projects have registered DOAPs
for (i in projectsWithDoaps) numprojectsWithDoaps++;
numProjects += (numcommittees - numprojectsWithDoaps); // Add in projects without DOAPs
var initiatives = numProjects + curPodlings; // both PMC and podlings
initiatives -= initiatives % 50; // round down to nearest 50
var obj = document.getElementById('details');
obj.innerHTML = ""
if (urlErrors.length > 0) {
obj.innerHTML += "<p><span style='color: red'><b>Warning: could not load: "+urlErrors.join(', ')+"</b></span></p>"
}
obj.innerHTML
+= "<h3 style='text-align: center;'>There are currently <span style='color: #269;'>" + initiatives + "+</span> open source initiatives at the ASF:</h3>"
+ "<ul style='width: 400px; margin: 0 auto; font-size: 18px; color: #269; font-weight: bold;'>"
+ "<li>" + numcommittees + " committees managing " + numProjects + " projects</li>"
+ "<li>5 special committees*</li>"
+ "<li>" + curPodlings + " incubating podlings</li></ul>"
+ "<p><small>*Infrastructure, Travel Assistance, Security Team, Legal Affairs and Brand Management</small></p>";
renderCommitteeEvolution();
renderPodlingsEvolution();
renderLanguageChart();
}