function renderFrontPage()

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();
}