|  | <style type="text/css"> | 
|  | <!-- | 
|  | div.component{ | 
|  | vertical-align: top; | 
|  | text-align:right; | 
|  | } | 
|  | a.bugs { | 
|  | style="font-size: smaller"; | 
|  | } | 
|  | div.owner, div.expert { | 
|  | text-indent: 30px; | 
|  | } | 
|  | table#componentAreas td { | 
|  | padding-right: 20px; | 
|  | } | 
|  | table#componentAreas h3 { | 
|  | text-align: center; | 
|  | padding-left: 15px; | 
|  | } | 
|  | --> | 
|  | </style> | 
|  | <?php  																														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());    # All on the same line to unclutter the user's desktop' | 
|  |  | 
|  | ob_start(); | 
|  | $pageTitle = "Platform UI Component Areas"; | 
|  | $pageKeywords	= "platform ui component area"; | 
|  | $pageAuthor = "Platform UI Monkey"; | 
|  |  | 
|  | # Add page-specific Nav bars here | 
|  | # Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3) | 
|  | # $Nav->addNavSeparator("My Page Links", 	"downloads.php"); | 
|  | # $Nav->addCustomNav("My Link", "mypage.php", "_self", 3); | 
|  | # $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3); | 
|  |  | 
|  | # End: page-specific settings | 
|  | # | 
|  |  | 
|  |  | 
|  | ?> | 
|  | <script language="javascript"> | 
|  | <!-- | 
|  | function viewBugsWithSummary(desc) { | 
|  | window.location = "https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=anywordssubstr&short_desc=" + encodeURI(desc) + "&product=Platform&component=IDE&component=UI&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="; | 
|  | } | 
|  |  | 
|  | function viewBugsByUser(email) { | 
|  | window.location = "https://bugs.eclipse.org/bugs/buglist.cgi?classification=Eclipse;emailtype1=substring;emailassigned_to1=1;query_format=advanced;emailqa_contact1=1;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;email1="+email+";product=Platform"; | 
|  | } | 
|  |  | 
|  | var lastModified = "unknown"; | 
|  |  | 
|  | window.onload = function() { | 
|  |  | 
|  | var xmlHttp=null; | 
|  | try { | 
|  | // Firefox, Opera 8.0+, Safari, IE7+ | 
|  | xmlHttp = new XMLHttpRequest(); | 
|  | } catch (e) { | 
|  | // Internet Explorer | 
|  | try { | 
|  | xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); | 
|  | } catch (e) { | 
|  | xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); | 
|  | } | 
|  | } | 
|  | xmlHttp.onreadystatechange = function() { | 
|  | if (xmlHttp.readyState == 4){ | 
|  | if (xmlHttp.getResponseHeader) { | 
|  | lastModified = xmlHttp.getResponseHeader("Last-Modified"); | 
|  | } | 
|  | if (xmlHttp.status == 200) { | 
|  | buildTable(xmlHttp.responseText); | 
|  | //document.getElementById("ajax_output").innerHTML = xmlHttp.responseText; | 
|  | }else{ | 
|  | alert(xmlHttp.status); | 
|  | } | 
|  | } | 
|  | } | 
|  | xmlHttp.open("get","componentAreas.json?random=" + Math.random(), true); | 
|  | xmlHttp.setRequestHeader("Cache-Control","public, no-cache"); | 
|  | xmlHttp.setRequestHeader("pragma","no-cache"); | 
|  | xmlHttp.send(null); | 
|  |  | 
|  | } | 
|  | function buildTable(loadedJSON){ | 
|  | var container = eval('(' + loadedJSON + ')'); | 
|  | var assignments = container.assignments; | 
|  | var users = container.users; | 
|  |  | 
|  | table = document.getElementById('componentAreas'); | 
|  | var row = table.insertRow(0); | 
|  | var component = row.insertCell(0); | 
|  | var description = row.insertCell(1); | 
|  | var owner = row.insertCell(2); | 
|  | var expert = row.insertCell(3); | 
|  | component.innerHTML = '<h3>Component</h3>'; | 
|  | description.innerHTML = "<h3>Description</h3>"; | 
|  | owner.innerHTML = '<h3>Owner</h3>'; | 
|  | expert.innerHTML = '<h3>Expert</h3>'; | 
|  |  | 
|  | for (i = 0; i < assignments.length; i++){ | 
|  | row = table.insertRow(i+1); | 
|  | component = row.insertCell(0); | 
|  | description = row.insertCell(1); | 
|  | owner = row.insertCell(2); | 
|  | expert = row.insertCell(3); | 
|  | component.innerHTML = '<div id="component">[<a href="javascript:viewBugsWithSummary(\'[' + assignments[i].component + ']\')">' + assignments[i].component + '</a>]</div>'; | 
|  | description.innerHTML = assignments[i].description; | 
|  | owner.innerHTML = ''; | 
|  | expert.innerHTML = ''; | 
|  |  | 
|  | createOwners(users, assignments, owner); | 
|  | createExperts(users, assignments, expert); | 
|  | } | 
|  | document.getElementById("lastmodified-span").innerHTML = lastModified; | 
|  | } | 
|  | function replaceWithNbsps(text) { | 
|  | return text.replace(' ', ' '); | 
|  | } | 
|  | function createOwners(users, assignments, ownerPlaceholder) { | 
|  | for (j = 0; j < users.length; j++){ | 
|  | if (users[j].user == assignments[i].assignee){ | 
|  | ownerPlaceholder.innerHTML += '<div class="owner">' + replaceWithNbsps(users[j].name) + ' <a class="bugs"  href="javascript:viewBugsByUser(\''+users[j].email+'\')">[bugs]</a></div>'; | 
|  | } | 
|  | } | 
|  | if (ownerPlaceholder.innerHTML.length == 0) { | 
|  | ownerPlaceholder.innerHTML = ' '; | 
|  | } | 
|  | } | 
|  | function createExperts(users, assignments, expertPlaceholder) { | 
|  | for (j = 0; j < users.length; j++){ | 
|  | if (assignments[i].expert.indexOf(users[j].user) != -1) { | 
|  | expertPlaceholder.innerHTML += '<div class="expert">' + replaceWithNbsps(users[j].name) + '</div>'; | 
|  | } | 
|  | } | 
|  | if (expertPlaceholder.innerHTML.length == 0) { | 
|  | expertPlaceholder.innerHTML = ' '; | 
|  | } | 
|  | } | 
|  | //--> | 
|  | <!-- 'directories=0,height=480,location=0,resizable=1,scrollbars=1,toolbar=0,width=515' --> | 
|  | </script> | 
|  |  | 
|  | <div id="maincontent"> | 
|  | <div id="midcolumn"> | 
|  | <h1><?= $pageTitle ?></h1> | 
|  | Platform UI (and Platform IDE) are divided into the following functional areas. The tags in | 
|  | square brackets are used in bug report subject headings to indicate the | 
|  | affected area. The current owner of each functional area is indicated in | 
|  | parentheses. The queries here may not represent all bugs in a given | 
|  | component area if there are any that havn't been properly tagged. | 
|  | <p> | 
|  | <p>Last updated: <span id="lastmodified-span">waiting for server response...</span> | 
|  | <p> | 
|  | <table id="componentAreas" border="1"> | 
|  |  | 
|  | </table> | 
|  |  | 
|  | <p> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <? | 
|  | # Generate the web page | 
|  | $App->AddExtraHtmlHeader($script); | 
|  | $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, ob_get_clean()); | 
|  | ?> |