blob: d0f5f7c0f7d319924829776fec39b72fbfb4642a [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 205, 2011 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Denis Roy (Eclipse Foundation)- initial API and implementation
* Wayne Beaton (Eclipse Foundation) - Bug 359782
*******************************************************************************/
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App = new App();
$Nav = new Nav();
$Menu = new Menu();
include($App->getProjectCommon());
$pageTitle = "Eclipse Foundation Councils";
$pageKeywords = "foundation, legal, councils, emo";
$pageAuthor = "Mike Milinkovich, Nov. 22, 2005";
# Lookup the relations and return the list
function find_relations($relations_array, $include_year = false) {
global $App;
$relations = "'" . implode( "','", $relations_array ) . "'";
/*
* people and chairs are arrays of
* "Last, First" => array(
* the html for the row in the table
* <td>name</td><td>employer</td><td>reason</td>
* , PersonID )
* each code section overwrites the results of the previous ones
* if they have a result for the same person. Thus if a person is
* both a PMC member and a company member, then whichever query
* was *last* determines what shows for that person.
*/
$people = array();
$chairs = array();
/*
* chairs
*/
$rel = 'NONE';
foreach( $relations_array as $r ) {
if( $r == 'PZ' || $r == 'AZ' || $r == 'RZ' ) {
$rel = $r;
}
}
$result = $App->foundation_sql("SELECT PersonID
FROM PeopleRelations
WHERE Relation = '$rel'
");
while($row = mysql_fetch_assoc($result)) {
$chairs[$row['PersonID']] = 1;
}
/*
* appointed members with company relationships
*/
$result = $App->foundation_sql("SELECT distinct(People.PersonID), FName, LName, Name1, year(EntryDate) as year
FROM PeopleRelations, People, Organizations,
OrganizationContacts
WHERE PeopleRelations.Relation IN ($relations)
AND People.PersonID = PeopleRelations.PersonID
AND OrganizationContacts.PersonID =
People.PersonID
AND Organizations.OrganizationID =
OrganizationContacts.OrganizationID");
while($row = mysql_fetch_assoc($result)) {
$people[ucwords($row['LName'].', '.$row['FName'])] = array(
'<td>' .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '<b>' : '') .
ucwords($row['FName']) .
' ' . ucwords($row['LName']) .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '*</b>' : '') .
'</td><td>' . $row['Name1'] .
'</td><td>appointed' .
($include_year ? (' (' . $row['year'] . ')') : '') .
'</td>', $row['PersonID'] );
}
/*
* appointed members without company relationships
*/
$result = $App->foundation_sql("SELECT distinct(People.PersonID), FName, LName, year(EntryDate) as year
FROM PeopleRelations, People
WHERE PeopleRelations.Relation IN ($relations)
AND People.PersonID = PeopleRelations.PersonID
");
while($row = mysql_fetch_assoc($result)) {
if( !isset($people[ucwords($row['LName'].', '.$row['FName'])]) ) {
$people[ucwords($row['LName'].', '.$row['FName'])] = array(
'<td>' .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '<b>' : '') .
ucwords($row['FName']) .
' ' . ucwords($row['LName']) .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '*</b>' : '') .
'</td><td>' . '&nbsp;' . '</td><td>appointed' .
($include_year ? (' (' . $row['year'] . ')') : '') .
'</td>', $row['PersonID'] );
}
}
/*
* company members
*/
$result = $App->foundation_sql("SELECT distinct(People.PersonID),
Name1, FName, LName
FROM OrganizationContacts, Organizations, People
WHERE OrganizationContacts.Relation IN ($relations)
AND OrganizationContacts.OrganizationID =
Organizations.OrganizationID
AND OrganizationContacts.PersonID =
People.PersonID");
while($row = mysql_fetch_assoc($result)) {
$people[ucwords($row['LName'].', '.$row['FName'])] = array(
'<td>' .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '<b>' : '') .
ucwords($row['FName']) .
' ' . ucwords($row['LName']) .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '*</b>' : '') .
'</td><td>' . $row['Name1'] . '</td><td>Strategic Developer</td>', $row['PersonID'] );
}
/*
* project members with company relationships
*/
$result = $App->foundation_sql("SELECT distinct(People.PersonID),
ProjectID, FName, LName, Name1
FROM PeopleProjects, People, OrganizationContacts,
Organizations
WHERE PeopleProjects.Relation IN ($relations)
AND PeopleProjects.PersonID =
People.PersonID
AND InactiveDate IS NULL
AND OrganizationContacts.PersonID =
People.PersonID
AND OrganizationContacts.Relation =
'CC'
AND Organizations.OrganizationID =
OrganizationContacts.OrganizationID");
while($row = mysql_fetch_assoc($result)) {
$people[ucwords($row['LName'].', '.$row['FName'])] = array(
'<td>' .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '<b>' : '') .
ucwords($row['FName']) .
' ' . ucwords($row['LName']) .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '*</b>' : '') .
'</td><td>' . $row['Name1'] . "</td><td>" .
ucfirst($row['ProjectID']) . " PMC</td>", $row['PersonID'] );
}
/*
* project members without company relationships
*/
$result = $App->foundation_sql("SELECT distinct(People.PersonID),
ProjectID, FName, LName
FROM PeopleProjects, People
WHERE PeopleProjects.Relation IN ($relations)
AND PeopleProjects.PersonID =
People.PersonID
AND InactiveDate IS NULL
");
while($row = mysql_fetch_assoc($result)) {
if( !isset($people[ucwords($row['LName'].', '.$row['FName'])]) ) {
$people[ucwords($row['LName'].', '.$row['FName'])] = array(
'<td>' .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '<b>' : '') .
ucwords($row['FName']) .
' ' . ucwords($row['LName']) .
((isset($chairs[$row['PersonID']]) && $chairs[$row['PersonID']] == 1) ? '*</b>' : '') .
'</td><td>' . '&nbsp;' . "</td><td>" .
ucfirst($row['ProjectID']) . " PMC</td>", $row['PersonID'] );
}
}
return $people;
}
ob_start();
?>
<div id="midcolumn">
<h1><?= $pageTitle ?></h1>
<p>As defined by the <a href="/projects/dev_process/development_process.php">Eclipse Development Process</a>,
the open source projects in Eclipse are guided and co-ordinated by two Councils:</p>
<ul class="midlist">
<li><strong><a href="#planning">Planning</a></strong>: The Planning Council
is responsible for establishing a coordinated Platform Release Plan
that supports the Roadmap, and balances the many competing requirements.
The Platform Release Plan describes the themes and priorities that focus
these Releases, and orchestrates the dependencies among Project Plans.
</li>
<li><strong><a href="#architecture">Architecture</a></strong>: The Architecture
Council is responsible for (i) monitoring, guiding, and influencing the software
architectures used by Projects, (ii) new project mentoring, and (iii) maintaining
and revising the Eclipse Development Process subject to the approval of the Board.
More explanation of the Architecture Council
can be found in the <a href="/projects/dev_process/development_process.php#4_5_Councils">Eclipse Development Process</a> and in
the <a href="http://wiki.eclipse.org/Architecture_Council">guidelines and checklists</a>
for the Architecture Council.</li>
</ul>
<div class="homeitem3col">
<h3><a name="planning"></a>Planning council</h3>
<table class="table table-bordered table-hover">
<?php
// Planning Council
$planning_relations = array( 'EP', 'PC', 'RP', 'PZ' );
$people = find_relations($planning_relations);
ksort($people);
foreach($people as $name=>$value) {
echo " <tr>" . $value[0] . "</tr>\n";
}
?>
</table>
<ul>
<li><a href="http://wiki.eclipse.org/Planning_Council">Planning Council's wiki page and meeting minutes</a>.
</ul>
</div>
<div class="homeitem3col">
<h3><a name="architecture"></a>Architecture council</h3>
<p align=right><em>Architecture Council members and the projects they are mentoring.</em>
<p/>
<table class="table table-bordered table-hover">
<?php
// Architecture Council
$architecture_relations = array( 'AC', 'RA', 'EA', 'AZ' );
$people = find_relations($architecture_relations, true);
ksort($people);
$mentors = array();
$result = $App->foundation_sql("
SELECT
PP.PersonID, PP.ProjectID, P.UrlIndex, P.ProjectPhase
FROM PeopleProjects PP
INNER JOIN Projects P ON PP.ProjectId = P.ProjectID
WHERE
P.IsActive
and P.ProjectPhase like 'Incubation%'
and Relation = 'ME'
and InactiveDate is null
");
while($obj = mysql_fetch_object($result)) {
if( !isset($mentors[$obj->PersonID]) ) $mentors[$obj->PersonID] = array();
// WTB While we're here... set the link to go to the project info page.
$mentors[$obj->PersonID][] = "<a href=\"/projects/project.php?id=$obj->ProjectID\">$obj->ProjectID</a>";
}
foreach($people as $name => $value) {
echo " <tr>" . $value[0] . "</tr>\n";
if( isset($mentors[$value[1]]) ) {
echo "<tr class=\"info\"><td colspan=\"3\" class=\"small\">Mentor for: " . implode(', ', $mentors[$value[1]] ) . "</td></tr>\n";
}
}
?>
</table>
<ul>
<li><a href="http://wiki.eclipse.org/Architecture_Council">Architecture Council's wiki page and meeting minutes</a>.
</ul>
</div>
<p><em>* chair</em></p>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>