1. Making changes to house the draft integration of coauthor, sparkline & other person level vis's content in one place.

2. Made changes to the styling of some elements like publication data table etc.
This commit is contained in:
cdtank 2010-07-01 22:26:36 +00:00
parent 64ff99a222
commit 12a005ea96
5 changed files with 317 additions and 299 deletions

View file

@ -127,7 +127,8 @@ public class VisualizationRequestHandler {
prepareVisualizationQueryStandaloneResponse(egoURIParam, sparklineVO, request, response, vitroRequest); prepareVisualizationQueryStandaloneResponse(egoURIParam, sparklineVO, request, response, vitroRequest);
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp"); // requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
try { try {
requestDispatcher.forward(request, response); requestDispatcher.forward(request, response);
@ -187,17 +188,14 @@ public class VisualizationRequestHandler {
Portal portal = vreq.getPortal(); Portal portal = vreq.getPortal();
// request.setAttribute("visContentCode", visContentCode);
// request.setAttribute("visContextCode", visContextCode);
request.setAttribute("egoURIParam", egoURIParam); request.setAttribute("egoURIParam", egoURIParam);
request.setAttribute("sparklineVO", sparklineVO); request.setAttribute("sparklineVO", sparklineVO);
request.setAttribute("bodyJsp", "/templates/visualization/person_level.jsp"); request.setAttribute("title", "Person Level Visualization");
request.setAttribute("portalBean", portal); request.setAttribute("portalBean", portal);
// request.setAttribute("title", "Individual Publication Count Visualization"); request.setAttribute("scripts", "/templates/visualization/person_level_inject_head.jsp");
// request.setAttribute("scripts", "/templates/visualization/visualization_scripts.jsp");
request.setAttribute("bodyJsp", "/templates/visualization/person_level.jsp");
} }
private void handleMalformedParameters(String errorMessage) private void handleMalformedParameters(String errorMessage)

View file

@ -144,7 +144,7 @@ public class VisualizationCodeGenerator {
numOfYearsToBeRendered = currentYear - minPubYearConsidered + 1; numOfYearsToBeRendered = currentYear - minPubYearConsidered + 1;
visualizationCode.append("<style type='text/css'>" + visualizationCode.append("<style type='text/css'>" +
"." + visualizationStyleClass + " table{" + /*"." + visualizationStyleClass + " table{" +
" margin: 0;" + " margin: 0;" +
" padding: 0;" + " padding: 0;" +
" width: auto;" + " width: auto;" +
@ -158,7 +158,7 @@ public class VisualizationCodeGenerator {
"#sparkline_data_table tfoot {" + "#sparkline_data_table tfoot {" +
"color: red;" + "color: red;" +
"font-size:0.9em;" + "font-size:0.9em;" +
"}" + "}" +*/
".sparkline_text {" + ".sparkline_text {" +
"margin-left:72px;" + "margin-left:72px;" +
"position:absolute;" + "position:absolute;" +
@ -170,6 +170,9 @@ public class VisualizationCodeGenerator {
"}" + "}" +
"</style>\n"); "</style>\n");
visualizationCode.append("<script type=\"text/javascript\">\n" + visualizationCode.append("<script type=\"text/javascript\">\n" +
"function drawVisualization() {\n" + "function drawVisualization() {\n" +
"var data = new google.visualization.DataTable();\n" + "var data = new google.visualization.DataTable();\n" +

View file

@ -7,9 +7,11 @@ function getWellFormedURLs(given_uri, type) {
// $(document).ready(function() { // $(document).ready(function() {
var finalURL;
if (type == "coauthorship") { if (type == "coauthorship") {
var finalURL = $.ajax({ finalURL = $.ajax({
url: contextPath + "/admin/visQuery", url: contextPath + "/admin/visQuery",
data: ({vis: "utilities", vis_mode: "COAUTHORSHIP_URL", uri: given_uri}), data: ({vis: "utilities", vis_mode: "COAUTHORSHIP_URL", uri: given_uri}),
dataType: "text", dataType: "text",
@ -24,7 +26,7 @@ function getWellFormedURLs(given_uri, type) {
} else if (type == "profile") { } else if (type == "profile") {
var finalURL = $.ajax({ finalURL = $.ajax({
url: contextPath + "/admin/visQuery", url: contextPath + "/admin/visQuery",
data: ({vis: "utilities", vis_mode: "PROFILE_URL", uri: given_uri}), data: ({vis: "utilities", vis_mode: "PROFILE_URL", uri: given_uri}),
dataType: "text", dataType: "text",
@ -37,7 +39,7 @@ function getWellFormedURLs(given_uri, type) {
} else if (type == "image") { } else if (type == "image") {
var finalURL = $.ajax({ finalURL = $.ajax({
url: contextPath + "/admin/visQuery", url: contextPath + "/admin/visQuery",
data: ({vis: "utilities", vis_mode: "IMAGE_URL", uri: given_uri}), data: ({vis: "utilities", vis_mode: "IMAGE_URL", uri: given_uri}),
dataType: "text", dataType: "text",
@ -70,14 +72,14 @@ $.fn.image = function(src, successFunc, failureFunc){
return this.each(function(){ return this.each(function(){
var profileImage = new Image(); var profileImage = new Image();
profileImage.src = src; profileImage.src = src;
profileImage.width = 150; profileImage.width = 90;
profileImage.onerror = failureFunc; profileImage.onerror = failureFunc;
profileImage.onload = successFunc; profileImage.onload = successFunc;
return profileImage; return profileImage;
}); });
} };
function setProfileImage(imageContainerID, rawPath, contextPath) { function setProfileImage(imageContainerID, rawPath, contextPath) {
@ -94,8 +96,8 @@ function setProfileImage(imageContainerID, rawPath, contextPath) {
imageContainer.empty().append(this); imageContainer.empty().append(this);
}, },
function(){ function(){
//For performing any action on failure to // For performing any action on failure to
//find the image. // find the image.
imageContainer.empty(); imageContainer.empty();
} }
); );
@ -124,34 +126,34 @@ function setProfileName(nameContainerID, name) {
} }
function processProfileInformation(nameContainerID, function processProfileInformation(nameContainerID,
monikerContainerID, monikerContainerID,
imageContainerID, imageContainerID,
profileInfoJSON) { profileInfoJSON) {
var name, imageRawPath, imageContextPath, moniker; var name, imageRawPath, imageContextPath, moniker;
$.each(profileInfoJSON, function(key, set){ $.each(profileInfoJSON, function(key, set){
if (key.search(/imageThumb/i) > -1) { if (key.search(/imageThumb/i) > -1) {
imageRawPath = set[0]; imageRawPath = set[0];
} else if (key.search(/imageContextPath/i) > -1) { } else if (key.search(/imageContextPath/i) > -1) {
imageContextPath = set[0]; imageContextPath = set[0];
} else if (key.search(/moniker/i) > -1) { } else if (key.search(/moniker/i) > -1) {
moniker = set[0]; moniker = set[0];
} else if (key.search(/label/i) > -1) { } else if (key.search(/label/i) > -1) {
name = set[0]; name = set[0];
} }
}); });
setProfileName(nameContainerID, name); setProfileName(nameContainerID, name);
setProfileMoniker(monikerContainerID, moniker); setProfileMoniker(monikerContainerID, moniker);
@ -159,7 +161,68 @@ function processProfileInformation(nameContainerID,
} }
function visLoaded(nodes){
var jsonedNodes = jQuery.parseJSON(nodes);
$(document).ready(function() {
createTable("coauthorships_table", "coauth_table_container", jsonedNodes.slice(1));
});
}
function createTable(tableID, tableContainer, tableData) {
var table = $('<table>');
table.attr('id', tableID);
// var columns = {'Author', 'Count'};
table.append($('<caption>').html("Co-Authorships"));
var header = $('<thead>');
var row = $('<tr>');
// Loop thru our columns collection and add each one to the header row
// for (columnName in columns) {
// header.append($('<th>').html(columnName));
// }
row.append($('<th>').html("Author"));
row.append($('<th>').html("Count"));
header.append(row);
table.append(header);
$.each(tableData, function(i, item){
var row = $('<tr>');
// console.log(item.name + " - " +
// item.number_of_authored_works);
row.append($('<td>').html(item.name));
row.append($('<td>').html(item.number_of_authored_works));
table.append(row);
});
// var footer = $('<tr>');
// var addIcon = $('<img>').attr('src','path/to/add.gif').click(AddRow);
// footer.append($('<td>').append(addIcon));
// for (i in columns)
// footer.append($('<td>'));
// table.append(footer);
table.prependTo('#' + tableContainer);
// return false; // Return false so the link doesn't try to go anywhere
}
function nodeClickedJS(json){ function nodeClickedJS(json){
@ -176,9 +239,9 @@ function nodeClickedJS(json){
$("#profileUrl").attr("href", getWellFormedURLs(obj.url, "profile")); $("#profileUrl").attr("href", getWellFormedURLs(obj.url, "profile"));
$("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, "coauthorship")); $("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, "coauthorship"));
processProfileInformation("", processProfileInformation("",
"profileMoniker", "profileMoniker",
"profileImage", "profileImage",
jQuery.parseJSON(getWellFormedURLs(obj.url, "profile_info"))); jQuery.parseJSON(getWellFormedURLs(obj.url, "profile_info")));
} else{ } else{
$("#profileUrl").attr("href","#"); $("#profileUrl").attr("href","#");
@ -197,31 +260,31 @@ function nodeClickedJS(json){
function renderSparklineVisualization(visualizationURL) { function renderSparklineVisualization(visualizationURL) {
$(document).ready(function() { $(document).ready(function() {
//$("#ego_sparkline").empty().html('<img src="${loadingImageLink}" />'); // $("#ego_sparkline").empty().html('<img src="${loadingImageLink}" />');
$.ajax({ $.ajax({
url: visualizationURL, url: visualizationURL,
dataType: "html", dataType: "html",
success:function(data){ success:function(data){
$("#ego_sparkline").html(data); $("#ego_sparkline").html(data);
} }
}); });
}); });
} }
function renderCoAuthorshipVisualization() { function renderCoAuthorshipVisualization() {
//Version check for the Flash Player that has the ability to start Player // Version check for the Flash Player that has the ability to start Player
//Product Install (6.0r65) // Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65); var hasProductInstall = DetectFlashVer(6, 0, 65);
//Version check based upon the values defined in globals // Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision); var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if ( hasProductInstall && !hasRequestedVersion ) { if ( hasProductInstall && !hasRequestedVersion ) {

View file

@ -1,129 +1,49 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var="portalBean" value="${requestScope.portalBean}" /> <c:url var="visImageContextPath" value="/${themeDir}site_icons/visualization/" />
<c:set var="themeDir"><c:out value="${portalBean.themeDir}" /></c:set>
<c:set var="contextPath"><c:out value="${pageContext.request.contextPath}" /></c:set>
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
<c:url var="egoCoAuthorshipDataURL" value="/admin/visQuery"> <c:set var='sparkline' value='${requestScope.sparklineVO}' />
<c:param name="vis" value="coauthorship" />
<c:url var="egoSparklineDataURL" value="/admin/visQuery">
<c:param name="render_mode" value="data" />
<c:param name="vis" value="person_pub_count" />
<c:param name="uri" value="${requestScope.egoURIParam}" />
</c:url>
<c:url var="coAuthorshipDownloadFile" value="/admin/visQuery">
<c:param name="vis" value="person_level" />
<c:param name="render_mode" value="data" /> <c:param name="render_mode" value="data" />
<c:param name="uri" value="${requestScope.egoURIParam}" /> <c:param name="uri" value="${requestScope.egoURIParam}" />
<c:param name="labelField" value="name" />
</c:url> </c:url>
<div id="body"><%-- Label --%>
<c:url var="egoSparklineVisURL" value="/admin/visQuery">
<c:param name="render_mode" value="dynamic"/>
<c:param name="container" value="ego_sparkline"/>
<c:param name="vis" value="person_pub_count"/>
<c:param name="vis_mode" value="full"/>
<c:param name="uri" value="${requestScope.egoURIParam}"/>
</c:url>
<c:url var="jquery" value="/js/jquery.js" />
<c:url var="adobeFlashDetector" value="/js/visualization/coauthorship/AC_OETags.js" />
<c:url var="coAuthorShipJavaScript" value="/js/visualization/coauthorship/co_authorship.js" />
<c:url var="googleVisualizationAPI" value="http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221%22%2C%22packages%22%3A%5B%22areachart%22%2C%22imagesparkline%22%5D%7D%5D%7D"/>
<c:url var="style" value="/${themeDir}css/visualization/coauthorship/style.css" />
<c:url var="noImage" value="/${themeDir}site_icons/visualization/coauthorship/no_image.png" />
<c:url var="swfLink" value="/${themeDir}site_icons/visualization/coauthorship/CoAuthor.swf" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Co-Authorship Visualization</title>
<script type="text/javascript" src="${adobeFlashDetector}"></script>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 10;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// -----------------------------------------------------------------------------
var swfLink = "${swfLink}";
var egoCoAuthorshipDataURL = "${egoCoAuthorshipDataURL}";
var contextPath = "${contextPath}";
// -->
</script>
<script type="text/javascript" src="${jquery}"></script>
<script type="text/javascript" src="${googleVisualizationAPI}"></script>
<link href="${style}" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="${coAuthorShipJavaScript}"></script>
<style type="text/css">
#ego_sparkline {
cursor:pointer;
height:36px;
margin-left:24%;
/*margin-top:-18%;*/
position:absolute;
width:471px;
}
</style>
</head>
<body>
<div id="body">
<%-- Label --%>
<div class="datatypePropertyValue"> <div class="datatypePropertyValue">
<div class="statementWrap"> <div class="statementWrap"><span id="ego_label"
<span id="ego_label"></span> class="author_name"></span></div>
</div>
</div> </div>
<%-- Moniker--%> <%-- Moniker--%>
<div class="datatypeProperties"> <div class="datatypeProperties">
<div class="datatypePropertyValue"> <div class="datatypePropertyValue">
<div class="statementWrap"> <div class="statementWrap"><span id="ego_moniker"
<span id="ego_moniker" class="moniker"></span> class="author_moniker"></span></div>
</div> </div>
</div>
</div> </div>
<%-- Image --%> <%-- Image --%>
<div class="datatypeProperties"> <div class="datatypeProperties">
<div class="datatypePropertyValue"> <div class="datatypePropertyValue">
<div id="ego_profile_image" class="statementWrap thumbnail"> <div id="ego_profile_image" class="statementWrap thumbnail"></div>
</div> </div>
</div>
</div> </div>
<%-- Sparkline --%> <%-- Sparkline --%>
<div class="datatypeProperties"> <div class="datatypeProperties">
<div class="datatypePropertyValue"> <div class="datatypePropertyValue">
<div id="ego_sparkline"> <div id="ego_sparkline">${sparkline.sparklineContent}</div>
</div>
${sparkline.sparklineContent}
</div>
</div>
</div> </div>
@ -131,6 +51,7 @@ var contextPath = "${contextPath}";
<div id="bodyPannel" style="height: 900px;"><br class="spacer" /> <div id="bodyPannel" style="height: 900px;"><br class="spacer" />
<div id="visPanel" style="float: left; width: 610px;"> <div id="visPanel" style="float: left; width: 610px;">
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
@ -139,10 +60,7 @@ renderCoAuthorshipVisualization();
//--> //-->
</script> </script></div>
</div>
<div id="dataPanel" style="float: left; width: 150px;"><br /> <div id="dataPanel" style="float: left; width: 150px;"><br />
<br /> <br />
<br /> <br />
@ -150,32 +68,36 @@ renderCoAuthorshipVisualization();
<br /> <br />
<br /> <br />
<div id="newsLetter" style="visibility: hidden"> <div id="newsLetter" style="visibility: hidden"><span
<span class="nltop"></span> class="nltop"></span>
<div class="middle" id="nodeData"> <div class="middle" id="nodeData">
<div id="profileImage"></div> <div id="profileImage"></div>
<div class="bold"><strong><span id="authorName">&nbsp;</span></strong></div> <div class="bold"><strong><span id="authorName"
<div class="italicize"><span id="profileMoniker"></span></div> class="author_name">&nbsp;</span></strong></div>
<div class="works"><span class="numbers" style="width: 40px;" <div class="italicize"><span id="profileMoniker"
id="works">6</span>&nbsp;&nbsp;<span class="title">Works</span></div> class="author_moniker"></span></div>
<div class="works"><span class="numbers" style="width: 40px;" <div class="works"><span class="numbers" style="width: 40px;"
id="coAuthors">78</span>&nbsp;&nbsp;<span>Co-author(s)</span></div> id="works">6</span>&nbsp;&nbsp;<span class="title">Works</span></div>
<br /> <div class="works"><span class="numbers" style="width: 40px;"
<div id="firstPublication"><span></span>&nbsp;<span>First id="coAuthors">78</span>&nbsp;&nbsp;<span>Co-author(s)</span></div>
Publication</span></div> <br />
<div id="lastPublication"><span></span>&nbsp;Last Publication</div> <div id="firstPublication"><span></span>&nbsp;<span>First
<br /> Publication</span></div>
<div><a href="#" id="profileUrl">VIVO profile</a></div> <div id="lastPublication"><span></span>&nbsp;Last Publication</div>
<br /> <br />
<div><a href="#" id="coAuthorshipVisUrl">Co-author network of <span id="coAuthorName"></span></a></div> <div><a href="#" id="profileUrl">VIVO profile</a></div>
</div> <br />
<br class="spacer"> <span class="nlbottom"></span> <div><a href="#" id="coAuthorshipVisUrl">Co-author network of
</div> <span id="coAuthorName"></span></a></div>
</div>
<br class="spacer"> <span class="nlbottom"></span>
</div>
</div> </div>
Download co-authorship newtwork as <a href="/vivo1/admin/visQuery?uri=http%3A%2F%2Fvivo.library.cornell.edu%2Fns%2F0.1%23individual5748&amp;vis=person_pub_count&amp;render_mode=data">.graphml</a> file. <span class="no_href_styles"> <a href="${coAuthorshipDownloadFile}"><img
src="${visImageContextPath}download_graphml.png" width="91" height="25" /></a>
</span>
<div id="bottomShadow"></div> <div id="bottomShadow"></div>
@ -183,64 +105,60 @@ Download co-authorship newtwork as <a href="/vivo1/admin/visQuery?uri=http%3A%2F
<br class="spacer" /> <br class="spacer" />
<table id="publications_data_table"> <style type="text/css">
<caption>Publications per year</caption> .vis-stats {
<thead> width: 760px;
<tr> margin: 0;
<th>Year</th> padding: 0;
<th>Publications</th> }
</tr>
</thead>
<tbody>
<tr>
<td>2004</td>
<td>4</td>
</tr>
<tr>
<td>2005</td>
<td>2</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>Unknown</td>
<td>1</td>
</tr>
</tbody>
</table>
Download data as <a href="/vivo1/admin/visQuery?uri=http%3A%2F%2Fvivo.library.cornell.edu%2Fns%2F0.1%23individual5748&amp;vis=person_pub_count&amp;render_mode=data">.csv</a> file. .vis-tables {
width: 25%;
padding: 5px;
margin: 5px;
background-color: #FFF;
border: 1px solid #ddebf1;
float: left;
}
<table id="coauthorships_data_table"> p.datatable {
<caption>Co - Authorhips</caption> font-size: 12px;
<thead> display: block;
<tr> margin: 2px;
<th>Name</th> padding: 0
<th>Publications</th> }
</tr>
</thead>
<tbody>
<tr>
<td>2004</td>
<td>4</td>
</tr>
<tr>
<td>2005</td>
<td>2</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>Unknown</td>
<td>1</td>
</tr>
</tbody>
</table>
.datatable table {
text-align: left;
}
.datatable img {
float: right;
cursor: pointer;
}
.datatable table caption {
color: #16234c;
margin: 0;
padding: 0;
font-size: 14px;
}
</style>
<div class="vis-stats">
<div class="vis-tables">
<p class="datatable">${sparkline.table}
<a href="${egoSparklineDataURL}" class="no_href_styles">
<img src="${visImageContextPath}download_csv.png" width="91" height="25" />
</a>
</p>
</div>
<div class="vis-tables">
<p id="coauth_table_container" class="datatable"></p>
</div>
</div>
</div> </div>
<script> <script>
@ -251,25 +169,5 @@ $(document).ready(function(){
"ego_profile_image", "ego_profile_image",
jQuery.parseJSON(getWellFormedURLs("${requestScope.egoURIParam}", "profile_info"))); jQuery.parseJSON(getWellFormedURLs("${requestScope.egoURIParam}", "profile_info")));
//renderSparklineVisualization("${egoSparklineVisURL}");
var obj = jQuery.parseJSON('{"name":"John"}');
//console.log(obj)
var obj = jQuery.parseJSON('{"imageOffset2":["sup"],"A":["2001","2002","2003","2090","Unknown"],"B":["2001","2002","2003","2090","Unknown"],"C":["2001","2002","2003","2090","Unknown"],"imageOffset":["2090","2002","2003","2001"]}');
//console.log(obj)
$.each(obj, function(i, item){
//console.log("i - " + i + " item - " + item);
$.each(item, function(index, vals) {
//console.log(index + " - val - " + vals);
});
});
}); });
</script> </script>
</body>
</html>

View file

@ -0,0 +1,56 @@
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<c:set var="portalBean" value="${requestScope.portalBean}" />
<c:set var="themeDir">
<c:out value="${portalBean.themeDir}" />
</c:set>
<c:set var="contextPath">
<c:out value="${pageContext.request.contextPath}" />
</c:set>
<c:url var="egoCoAuthorshipDataFeederURL" value="/admin/visQuery">
<c:param name="vis" value="coauthorship" />
<c:param name="render_mode" value="data" />
<c:param name="uri" value="${requestScope.egoURIParam}" />
<c:param name="labelField" value="name" />
</c:url>
<c:url var="swfLink" value="/${themeDir}site_icons/visualization/coauthorship/CoAuthor.swf" />
<c:url var="jquery" value="/js/jquery.js"/>
<c:url var="adobeFlashDetector" value="/js/visualization/coauthorship/AC_OETags.js" />
<c:url var="googleVisualizationAPI" value="http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221%22%2C%22packages%22%3A%5B%22areachart%22%2C%22imagesparkline%22%5D%7D%5D%7D"/>
<c:url var="coAuthorShipJavaScript" value="/js/visualization/personlevel/person_level.js" />
<script type="text/javascript" src="${adobeFlashDetector}"></script>
<script type="text/javascript" src="${jquery}"></script>
<script type="text/javascript" src="${googleVisualizationAPI}"></script>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 10;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// -----------------------------------------------------------------------------
var swfLink = "${swfLink}";
var egoCoAuthorshipDataFeederURL = "${egoCoAuthorshipDataFeederURL}";
var contextPath = "${contextPath}";
// -->
</script>
<script type="text/javascript" src="${coAuthorShipJavaScript}"></script>
<c:url var="coAuthorStyle" value="/${themeDir}css/visualization/personlevel/coauthor_style.css" />
<c:url var="pageStyle" value="/${themeDir}css/visualization/personlevel/page.css" />
<link href="${coAuthorStyle}" rel="stylesheet" type="text/css" />
<link href="${pageStyle}" rel="stylesheet" type="text/css" />