1. Added comment about the new visualization.topLevelOrg property for deploy.proeprties. Added similar content for install.txt.

2. Made front-end improvements to temporal graph vis per Katy's suggestions.
3. Made improvements to person level vis front-end.
This commit is contained in:
cdtank 2011-01-13 21:30:15 +00:00
parent e9a2cae473
commit 63a3e318ea
8 changed files with 703 additions and 673 deletions

View file

@ -164,6 +164,23 @@ example value: defaultAdmin
property name: selfEditing.idMatchingProperty property name: selfEditing.idMatchingProperty
example value: http://vivo.mydomain.edu/ns#networkId example value: http://vivo.mydomain.edu/ns#networkId
NOTE: If you want to use an external authentication system like Shibboleth or
CUWebAuth, you will need to set two additional properties in this file. See
the section below entitled "Using an External Authentication System with VIVO".
Temporal Graph Visualization is used to compare different
organizations/people within an organization on different parameters
like number of publications, grants. This parameter will be used
as a default in case a URI is not provided. It will be also used
whenever this visualization is to be rendered for top level organization.
In absence of this parameter a SPARQL query will be fired which will
attempt to provide a top level organization.The name of a property
that can be used to associate an Individual with a user account.
When a user logs in with a name that matches the value of this property,
the user will be authorized to edit that Individual.
property name: visualization.topLevelOrg
example value: http://vivo-trunk.indiana.edu/individual/topLevelOrgURI
NOTE: If you want to use an external authentication system like Shibboleth or NOTE: If you want to use an external authentication system like Shibboleth or
CUWebAuth, you will need to set two additional properties in this file. See CUWebAuth, you will need to set two additional properties in this file. See
the section below entitled "Using an External Authentication System with VIVO". the section below entitled "Using an External Authentication System with VIVO".

View file

@ -124,3 +124,13 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# #
#externalAuth.buttonText = Log in using BearCat Shibboleth #externalAuth.buttonText = Log in using BearCat Shibboleth
#externalAuth.netIdHeaderName = remote_userID #externalAuth.netIdHeaderName = remote_userID
#
# Temporal Graph Visualization is used to compare different organizations/people
# within an organization on different parameters like number of publications, grants.
# This parameter will be used as a default in case a URI is not provided. It will be
# also used whenever this visualization is to be rendered for top level organization.
# In absence of this parameter a SPARQL query will be fired which will attempt to
# provide a top level organization.
# visualization.topLevelOrg = http://vivo-trunk.indiana.edu/individual/topLevelOrgURI

View file

@ -3,67 +3,69 @@
@CHARSET "UTF-8"; @CHARSET "UTF-8";
head,#body { head,#body {
font: 0.9em Helvetica; font: 0.9em Helvetica;
} }
#body { #body {
background-color: #fff; background-color: #fff;
min-height: 800px; min-height: 800px;
width: 100%; width: 100%;
min-width: 900px; min-width: 900px;
margin: auto; margin: auto;
} }
h1 { h1 {
padding-top: 10px; padding-top: 10px;
/* font-size: 1.5em; */ /* font-size: 1.5em; */
margin-left: 5%; margin-left: 5%;
} }
h2 { h2 {
/* font-size: 1.1em; */ /* font-size: 1.1em; */
margin-top: 10px; margin-top: 10px;
margin-bottom: 5px; margin-bottom: 5px;
} }
a.temporalGraphLinks { a.temporalGraphLinks {
margin-top: 10px; margin-top: 10px;
float:right; /*float:right;*/
height: 20px; height: 20px;
text-decoration: none; text-decoration: none;
width: 30%; width: 30%;
margin: 0 1% 0 1%; /*margin: 0 1% 0 1%;*/
background-color: #EAEAEA; background-color: #EAEAEA;
text-align: center; text-align: center;
padding: 3px; padding: 3px;
padding-top: 4px; padding-top: 4px;
cursor: pointer;
} }
#reset-search { #reset-search {
color: #2485AE; color: #2485AE;
cursor: pointer; cursor: pointer;
margin-left: 10px; margin-left: 10px;
} }
form{ form{
margin-top:70px; margin-top:70px;
margin-bottom: -50px; margin-bottom: -50px;
} }
#yaxislabel{ #yaxislabel {
font-size: 12px; font-size: 12px;
float:right; float:right;
background-color: white; background-color: white;
color:black; color: #595B5B;
display: block; display: block;
height: 150px; height: 150px;
text-align: center; text-align: center;
padding-top: 50px; padding-top: 50px;
position: absolute !important;
} }
#xaxislabel{ #xaxislabel{
font-size: 12px; font-size: 12px;
margin-top: -5px; margin-top: -5px;
text-align: center; text-align: center;
} }
#notification-container { #notification-container {
@ -78,36 +80,47 @@ position: inherit;
} }
#functions{ #functions{
margin-top: 20px; margin-top: 20px;
margin-bottom: -40px; margin-bottom: -40px;
} }
#bar { #bar {
height: 20px; height: 20px;
float: left; float: left;
background-color: #fff; background-color: #fff;
width: 250px; width: 250px;
margin-left: 10px; margin-left: 10px;
} }
#checkbox{ #checkbox{
float:left; float:left;
} }
.easy-deselect-label { .easy-deselect-label {
float: left; float: left;
font-size: 12px; font-size: 12px;
width: 160px; width: 160px;
text-align: right; text-align: right;
} }
.easy-deselect-label a, #text { .easy-deselect-label a, #text {
text-decoration: none; text-decoration: none;
color: black; color: black;
font-family: Helvetica; font-family: Helvetica;
font-size: 1em; font-size: 1em;
} }
.easy-deselect-label .entity-label { .easy-deselect-label .entity-label {
color:red; color:red;
}
#header-entity-label {
font-size: 1.1em;
font-weight: bold;
}
#header-entity-label a {
color: #13968C;
} }
.ellipsis { .ellipsis {
@ -116,9 +129,10 @@ position: inherit;
} }
.entity-label-url { .entity-label-url {
width: 125px; width: 125px;
margin-right: 10px; margin-right: 10px;
display:inline-block; display:inline-block;
text-decoration: underline;
} }
.ellipsis.multiline { .ellipsis.multiline {
@ -126,113 +140,116 @@ position: inherit;
} }
#searchresult { #searchresult {
margin-top: 50px; margin-top: 50px;
} }
#bottom,#graphContainer { #bottom,#graphContainer {
float: right; /*float: right;*/
} }
#graphContainer { #graphContainer {
margin-bottom: 15px; margin-bottom: 15px;
width: 450px;
height: 250px;
margin-left: 23px;
} }
#leftblock { #leftblock {
float: left; float: left;
margin-left: 5%; /*margin-left: 5%;*/
width: 36%; width: 39%;
} }
#text { #text {
margin-left: 5px; margin-left: 5px;
} }
#searchresult a { #searchresult a {
text-decoration: none; text-decoration: none;
color: black; color: black;
font-family: Helvetica; font-family: Helvetica;
font-size: 13px; font-size: 13px;
font-weight: normal; font-weight: normal;
} }
#rightblock { #rightblock {
float:right; float:right;
margin-right:5%; margin-right:3%;
width:54%; width:54%;
margin-top: -43px; margin-top: -43px;
} }
#counter,#total { #counter,#total {
color: red; color: red;
} }
#heading { #heading {
margin-top: 10px; margin-top: 10px;
} }
li{ li{
padding: 5px; padding: 5px;
list-style: none; list-style: none;
} }
#paginatedTable{ #paginatedTable{
margin-top:0px; margin-top:0px;
} }
.sDomSearchBar{ .sDomSearchBar{
margin-bottom: -10px; margin-bottom: -10px;
margin-left: 41%; margin-left: 41%;
} }
.datatablerowhighlight { .datatablerowhighlight {
background-color: #ECFFB3 !important; background-color: #ECFFB3 !important;
} }
.datatablerowhighlight td { .datatablerowhighlight td {
font-weight: bold !important; font-weight: bold !important;
} }
/* /*
.metallic{ .metallic{
background-color: #212D34; background-color: #212D34;
color: white; color: white;
} }
*/ */
#leftUpper{ #leftUpper{
/* /*
border: 1px #3D454E solid; border: 1px #3D454E solid;
border-top: 10px #3D454E solid; border-top: 10px #3D454E solid;
background-color: #D9D9D9; background-color: #D9D9D9;
padding-left: 10px; padding-left: 10px;
*/ */
} }
#leftLower{ #leftLower{
/* /*
border: 1px #3D454E solid; border: 1px #3D454E solid;
border-top: 10px #3D454E solid; border-top: 10px #3D454E solid;
padding-left: 10px; padding-left: 10px;
*/ */
} }
#bottomButtons{ #bottomButtons{
width: 100%; width: 100%;
float:right; float:right;
margin: 20px 0 20px 0; margin: 20px 0 20px 0;
} }
#stopwordsdiv{ #stopwordsdiv{
margin-top: 10px; margin-top: 10px;
margin-left: 10px; margin-left: 10px;
} }
p.displayCounter{ p.displayCounter{
padding-bottom: 4px; padding-bottom: 4px;
border-bottom: 1px solid gray; border-bottom: 1px solid gray;
} }
#comparisonHeader, #entityHeader, #entitylevelheading, #comparisonParameter, #headerText{ #comparisonHeader, #entityHeader, #entitylevelheading, #comparisonParameter, #headerText{
color: #2485ae; color: #2485ae;
} }

View file

@ -1,85 +1,85 @@
@CHARSET "UTF-8"; @CHARSET "UTF-8";
thead th, tr.even td{ thead th, tr.even td{
background-color: white; background-color: white;
} }
.paginatedtabs{ .paginatedtabs{
/* border-top: 1px #3D454E solid; */ /* border-top: 1px #3D454E solid; */
text-align: center; text-align: center;
margin-bottom: 10px; margin-bottom: 10px;
padding-top: 10px; padding-top: 10px;
font-size: 1.2em; font-size: 1.2em;
} }
.paginatedtabs span{ .paginatedtabs span{
padding-right: 5px; padding-right: 5px;
cursor: pointer; cursor: pointer;
} }
.datatablewrapper td, th{ .datatablewrapper td, th{
border-bottom: 1px #F1F2EE solid; border-bottom: 1px #F1F2EE solid;
border-right: 1px #F1F2EE solid; border-right: 1px #F1F2EE solid;
border-left: 1px #F1F2EE solid; border-left: 1px #F1F2EE solid;
text-align: left; text-align: left;
padding: 5px; padding: 5px;
font-size: 10px; font-size: 12px;
} }
.showentries { .showentries {
text-align: center; text-align: center;
margin-bottom: 10px; margin-bottom: 10px;
} }
.searchbar{ .searchbar{
margin-bottom: -10px; margin-bottom: -10px;
text-align: left; text-align: left;
} }
.datatablewrapper th{ .datatablewrapper th{
border-top: 1px #3D454E solid; border-top: 1px #3D454E solid;
background:#F1F2ee; background:#F1F2ee;
font-weight:bold; font-weight:bold;
font-size:12px; font-size:12px;
} }
/* /*
.datatablewrapper th{ .datatablewrapper th{
border-top: 1px #3D454E solid; border-top: 1px #3D454E solid;
border-bottom: 1px #3D454E solid; border-bottom: 1px #3D454E solid;
border-right: 1px #3D454E solid; border-right: 1px #3D454E solid;
padding: 5px; padding: 5px;
} }
*/ */
.sorting_asc { .sorting_asc {
background: url('sort_asc.png') no-repeat center right; background: url('sort_asc.png') no-repeat center right;
} }
.sorting_desc { .sorting_desc {
background: url('sort_desc.png') no-repeat center right; background: url('sort_desc.png') no-repeat center right;
} }
.sorting { .sorting {
background: url('sort_both.png') no-repeat center right; background: url('sort_both.png') no-repeat center right;
} }
.sorting_asc_disabled { .sorting_asc_disabled {
background: url('sort_asc_disabled.png') no-repeat center right; background: url('sort_asc_disabled.png') no-repeat center right;
} }
.sorting_desc_disabled { .sorting_desc_disabled {
background: url('sort_desc_disabled.png') no-repeat center right; background: url('sort_desc_disabled.png') no-repeat center right;
} }
/* /*
tr.odd { tr.odd {
background-color: #E2E4FF; background-color: #E2E4FF;
} }
tr.even { tr.even {
background-color: white; background-color: white;
} }
*/ */

View file

@ -48,7 +48,6 @@
*/ */
function init(graphContainer) { function init(graphContainer) {
$('#yaxislabel').css("color", "#595B5B");
var optionSelected = $("select.comparisonValues option:selected").val(); var optionSelected = $("select.comparisonValues option:selected").val();
// TODO: make use of the id on the select field instead of a generic one. // TODO: make use of the id on the select field instead of a generic one.
$("#comparisonParameter").text("Total Number of " + $("select.comparisonValues option:selected").val()); $("#comparisonParameter").text("Total Number of " + $("select.comparisonValues option:selected").val());
@ -395,7 +394,15 @@ function createLegendRow(entity, bottomDiv) {
var labelDiv = $('<div>'); var labelDiv = $('<div>');
labelDiv.attr('class', 'easy-deselect-label'); labelDiv.attr('class', 'easy-deselect-label');
labelDiv.html('<div class="entity-label-url ellipsis"></div>'); labelDiv.html('<div class="entity-label-url ellipsis"></div>');
labelDiv.append('<a class="temporal-vis-url" href="' + getTemporalVisURL(entity) + '"><img src = "' + temporalGraphSmallIcon + '"/></a>');
/*
* We should display a further drill-down option only when available. In case of people
* there is no drill-down possible, so don't diaply the temporal graph icon.
* */
if (entity.visMode !== "PERSON") {
labelDiv.append('<a class="temporal-vis-url" href="' + getTemporalVisURL(entity) + '"><img src = "' + temporalGraphSmallIcon + '"/></a>');
}
var checkbox = $('<input>'); var checkbox = $('<input>');
checkbox.attr('type', 'checkbox'); checkbox.attr('type', 'checkbox');
@ -456,19 +463,7 @@ function getVIVOURL(entity){
function getTemporalVisURL(entity) { function getTemporalVisURL(entity) {
var result = ''; return subOrganizationTemporalGraphURL + "&uri=" + entity.entityURI ;
if(entity.visMode == "PERSON"){
result = subOrganizationVivoProfileURL + "uri="+ entity.entityURI;
} else{
result = subOrganizationTemporalGraphURL + "&" +
"uri=" + entity.entityURI ;
}
return result;
} }
function getVIVOProfileURL(given_uri) { function getVIVOProfileURL(given_uri) {

View file

@ -92,79 +92,79 @@ var subOrganizationTemporalGraphURL = "${subOrganizationTemporalGraphURL}";
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
var jsonString = '${jsonContent}'; var jsonString = '${jsonContent}';
var organizationLabel = '${organizationLabel}'; var organizationLabel = '${organizationLabel}';
/* This is used to cache the current state whether the user is allowed to select more entities from /* This is used to cache the current state whether the user is allowed to select more entities from
the datatable or not. Once Max number of entity selection is reached the user can no longer select the datatable or not. Once Max number of entity selection is reached the user can no longer select
more & this variable will be set to false. */ more & this variable will be set to false. */
$("#datatable").data("isEntitySelectionAllowed", true); $("#datatable").data("isEntitySelectionAllowed", true);
$("#organizationLabel").text(organizationLabel).css("color", "#2485ae"); $("#organizationLabel").text(organizationLabel).css("color", "#2485ae");
$("#organizationMoniker").text(organizationLabel); $("#organizationMoniker").text(organizationLabel);
$("#organizationMoniker").attr("href", "${organizationVivoProfileURL}"); $("#organizationMoniker").attr("href", "${organizationVivoProfileURL}");
$notificationContainer = $("#notification-container").notify(); $notificationContainer = $("#notification-container").notify();
var jsonObject = { var jsonObject = {
prepare : function(arg1){ prepare : function(arg1){
loadData(arg1); loadData(arg1);
} }
}; };
graphContainer = $("#graphContainer"); graphContainer = $("#graphContainer");
tableDiv = $('#paginatedTable'); tableDiv = $('#paginatedTable');
// initial display of the grid when the page loads // initial display of the grid when the page loads
init(graphContainer); init(graphContainer);
/* /*
* When the intra-entity parameters are clicked, * When the intra-entity parameters are clicked,
* update the status accordingly. * update the status accordingly.
*/ */
$("select.comparisonValues").click(function(){ $("select.comparisonValues").click(function(){
var selectedValue = $("select.comparisonValues option:selected").val(); var selectedValue = $("select.comparisonValues option:selected").val();
$("#comparisonParameter").text("Total Number of " + selectedValue); $("#comparisonParameter").text("Total Number of " + selectedValue);
$('#yaxislabel').html("Number of " + selectedValue).mbFlipText(false); $('#yaxislabel').html("Number of " + selectedValue).mbFlipText(false);
$('#yaxislabel').css("color", "#595B5B"); $('#yaxislabel').css("color", "#595B5B");
$('#comparisonHeader').html(selectedValue).css('font-weight', 'bold'); $('#comparisonHeader').html(selectedValue).css('font-weight', 'bold');
}); });
//click event handler for clear button //click event handler for clear button
$("a#clear").click(function(){ $("a#clear").click(function(){
clearRenderedObjects(); clearRenderedObjects();
}); });
$("input[type=checkbox].easyDeselectCheckbox").live('click', function(){ $("input[type=checkbox].easyDeselectCheckbox").live('click', function(){
var checkbox = $(this); var checkbox = $(this);
var checkboxValue = $(this).attr("value"); var checkboxValue = $(this).attr("value");
var linkedCheckbox = labelToCheckedEntities[checkboxValue]; var linkedCheckbox = labelToCheckedEntities[checkboxValue];
//console.log('checkbox value is '+ checkboxValue); //console.log('checkbox value is '+ checkboxValue);
var entityToBeRemoved = labelToEntityRecord[checkboxValue]; var entityToBeRemoved = labelToEntityRecord[checkboxValue];
if(!checkbox.is(':checked')){ if(!checkbox.is(':checked')){
//console.log("Easy deselect checkbox is unclicked!"); //console.log("Easy deselect checkbox is unclicked!");
updateRowHighlighter(linkedCheckbox); updateRowHighlighter(linkedCheckbox);
removeUsedColor(entityToBeRemoved); removeUsedColor(entityToBeRemoved);
removeEntityUnChecked(renderedObjects, entityToBeRemoved); removeEntityUnChecked(renderedObjects, entityToBeRemoved);
removeLegendRow(linkedCheckbox); removeLegendRow(linkedCheckbox);
removeCheckBoxFromGlobalSet(linkedCheckbox); removeCheckBoxFromGlobalSet(linkedCheckbox);
$(linkedCheckbox).attr('checked', false); $(linkedCheckbox).attr('checked', false);
checkIfColorLimitIsReached(); checkIfColorLimitIsReached();
displayLineGraphs(); displayLineGraphs();
updateCounter(); updateCounter();
} }
}); });
//parse the json object and pass it to loadData //parse the json object and pass it to loadData
jsonObject.prepare(jQuery.parseJSON(jsonString)); jsonObject.prepare(jQuery.parseJSON(jsonString));
function performEntityCheckboxUnselectedActions(entity, checkboxValue, checkbox) { function performEntityCheckboxUnselectedActions(entity, checkboxValue, checkbox) {
removeUsedColor(entity); removeUsedColor(entity);
removeEntityUnChecked(renderedObjects, entity); removeEntityUnChecked(renderedObjects, entity);
removeLegendRow(checkbox); removeLegendRow(checkbox);
removeCheckBoxFromGlobalSet(checkbox); removeCheckBoxFromGlobalSet(checkbox);
@ -175,7 +175,7 @@ var subOrganizationTemporalGraphURL = "${subOrganizationTemporalGraphURL}";
function performEntityCheckboxSelectedActions(entity, checkboxValue, checkbox) { function performEntityCheckboxSelectedActions(entity, checkboxValue, checkbox) {
getNextFreeColor(entity); getNextFreeColor(entity);
//Generate the bar, checkbox and label for the legend. //Generate the bar, checkbox and label for the legend.
createLegendRow(entity, $("#bottom")); createLegendRow(entity, $("#bottom"));
@ -183,183 +183,177 @@ var subOrganizationTemporalGraphURL = "${subOrganizationTemporalGraphURL}";
renderLineGraph(renderedObjects, entity); renderLineGraph(renderedObjects, entity);
labelToCheckedEntities[checkboxValue] = checkbox; labelToCheckedEntities[checkboxValue] = checkbox;
/* /*
* To highlight the rows belonging to selected entities. * To highlight the rows belonging to selected entities.
* */ * */
checkbox.closest("tr").addClass('datatablerowhighlight'); checkbox.closest("tr").addClass('datatablerowhighlight');
} }
function performEntityCheckboxClickedRedrawActions() { function performEntityCheckboxClickedRedrawActions() {
setTickSizeOfAxes(); setTickSizeOfAxes();
checkIfColorLimitIsReached(); checkIfColorLimitIsReached();
displayLineGraphs(); displayLineGraphs();
updateCounter(); updateCounter();
} }
/* /*
* function to populate the labelToEntityRecord object with the * function to populate the labelToEntityRecord object with the
* values from the json file and * values from the json file and
* dynamically generate checkboxes * dynamically generate checkboxes
*/ */
function loadData(jsonData) { function loadData(jsonData) {
// var yearRange; // var yearRange;
$.each(jsonData, function (index, val) { $.each(jsonData, function (index, val) {
setOfLabels.push(val.label); setOfLabels.push(val.label);
labelToEntityRecord[val.label] = val; labelToEntityRecord[val.label] = val;
}); });
getEntityVisMode(jsonData); getEntityVisMode(jsonData);
prepareTableForDataTablePagination(jsonData); prepareTableForDataTablePagination(jsonData);
setEntityLevel(); setEntityLevel();
/* /*
calcMinandMaxYears(labelToEntityRecord, year); calcMinandMaxYears(labelToEntityRecord, year);
yearRange = (year.max - year.min); yearRange = (year.max - year.min);
setLineWidthAndTickSize(yearRange, FlotOptions); setLineWidthAndTickSize(yearRange, FlotOptions);
setTickSizeOfYAxis(calcMaxOfComparisonParameter(labelToEntityRecord), FlotOptions); setTickSizeOfYAxis(calcMaxOfComparisonParameter(labelToEntityRecord), FlotOptions);
*/ */
$(".disabled-checkbox-event-receiver").live("click", function () { $(".disabled-checkbox-event-receiver").live("click", function () {
if ($(this).next().is(':disabled')) { if ($(this).next().is(':disabled')) {
createNotification("error-notification", { createNotification("error-notification", {
title: 'Error', title: 'Error',
text: 'A Maximum 10 entities can be compared. Please remove some & try again.' text: 'A Maximum 10 entities can be compared. Please remove some & try again.'
}, { }, {
custom: true, custom: true,
expires: 3500 expires: 3500
}); });
} }
}); });
/* /*
* When the elements in the paginated div * When the elements in the paginated div
* are clicked this event handler is called * are clicked this event handler is called
*/ */
$("input.if_clicked_on_school").live('click', function () { $("input.if_clicked_on_school").live('click', function () {
var checkbox = $(this); var checkbox = $(this);
var checkboxValue = $(this).attr("value"); var checkboxValue = $(this).attr("value");
var entity = labelToEntityRecord[checkboxValue]; var entity = labelToEntityRecord[checkboxValue];
if (checkbox.is(':checked')) { if (checkbox.is(':checked')) {
performEntityCheckboxSelectedActions(entity, checkboxValue, checkbox); performEntityCheckboxSelectedActions(entity, checkboxValue, checkbox);
} else { } else {
performEntityCheckboxUnselectedActions(entity, checkboxValue, checkbox); performEntityCheckboxUnselectedActions(entity, checkboxValue, checkbox);
} }
performEntityCheckboxClickedRedrawActions(); performEntityCheckboxClickedRedrawActions();
}); });
} }
/* /*
This will make sure that top 3 entites are selected by default when the page loads. This will make sure that top 3 entites are selected by default when the page loads.
*/ */
$.each($("input.if_clicked_on_school"), function(index, checkbox) { $.each($("input.if_clicked_on_school"), function(index, checkbox) {
if (index > 2) { if (index > 2) {
return false; return false;
} }
$(this).attr('checked', true); $(this).attr('checked', true);
var checkboxValue = $(this).attr("value"); var checkboxValue = $(this).attr("value");
var entity = labelToEntityRecord[checkboxValue]; var entity = labelToEntityRecord[checkboxValue];
performEntityCheckboxSelectedActions(entity, checkboxValue, $(this)); performEntityCheckboxSelectedActions(entity, checkboxValue, $(this));
performEntityCheckboxClickedRedrawActions(); performEntityCheckboxClickedRedrawActions();
}); });
}); });
</script> </script>
<div id="body"> <div id="body">
<h2 style="width: 36%; padding-left:45px;"><a href="" id = "organizationMoniker"></a></h2> <h2><span id="header-entity-label"><a id="organizationMoniker" href="#"></a></span></h2>
<div id="leftblock">
<div id="leftUpper">
<h3>How do you want to compare?</h3>
<div style="text-align: left;"> <div id="leftblock">
<div id="leftUpper">
<h3>How do you want to compare?</h3>
<select class="comparisonValues" style="margin-bottom: 20px;"> <div style="text-align: left;">
<option value="Publications" selected="selected">by Publications</option>
<option value="Grants">by Grants</option> <select class="comparisonValues" style="margin-bottom: 20px;">
<option value="Publications" selected="selected">by Publications</option>
<option value="Grants">by Grants</option>
</select>
</div>
</div>
<div id="leftLower">
<div id="notification-container" style="display:none">
<div id="error-notification" class="ui-state-error" style="padding:10px; -moz-box-shadow:0 0 6px #980000; -webkit-box-shadow:0 0 6px #980000; box-shadow:0 0 6px #980000;">
<a class="ui-notify-close" href="#"><span class="ui-icon ui-icon-close" style="float:right"></span></a>
<span style="float:left; margin:0 5px 0 0;" class="ui-icon ui-icon-alert"></span>
<h1>&#035;{title}</h1>
<p>&#035;{text}</p>
<p style="text-align:center"><a class="ui-notify-close" href="#">Close Me</a></p>
</div>
<div id="warning-notification">
<a class="ui-notify-close ui-notify-cross" href="#">x</a>
<h1>&#035;{title}</h1>
<p>&#035;{text}</p>
</div>
</div>
<h3>Who do you want to compare?</h3>
<div id="paginatedTable"></div>
<br />
<a id="csv" href="${TemporalGraphDownloadFile}" class="temporalGraphLinks">Save as CSV</a>
</div>
<#-- <#--
<option value="People" disabled="disabled">by People</option> <div id = "stopwordsdiv">
<option value="Item4" disabled="disabled">by Item4</option> * The entity types core:Person, foaf:Organization have been excluded as they are too general.
<option value="Item5" disabled="disabled">by Item5</option> </div>
--> -->
</select> </div>
</div> <div id="rightblock">
</div>
<div id="leftLower"> <h4 id="headerText">Comparing <span id="comparisonHeader">Publications</span> of <span id="entityHeader">Institutions</span> in <span id="organizationLabel"></span></h4>
<div id="notification-container" style="display:none">
<div id="error-notification" class="ui-state-error" style="padding:10px; -moz-box-shadow:0 0 6px #980000; -webkit-box-shadow:0 0 6px #980000; box-shadow:0 0 6px #980000;"> <div id="temporal-graph">
<a class="ui-notify-close" href="#"><span class="ui-icon ui-icon-close" style="float:right"></span></a> <div id="yaxislabel"></div>
<span style="float:left; margin:0 5px 0 0;" class="ui-icon ui-icon-alert"></span> <div id="graphContainer"></div>
<h1>&#035;{title}</h1> <div id="xaxislabel">Year</div>
<p>&#035;{text}</p> </div>
<p style="text-align:center"><a class="ui-notify-close" href="#">Close Me</a></p>
</div>
<div id="warning-notification"> <div id="bottom" style="width: 450px; height: 350px;">
<a class="ui-notify-close ui-notify-cross" href="#">x</a> <h4><span id="comparisonParameter"></span></h4>
<h1>&#035;{title}</h1> <p class="displayCounter">You have selected <span id="counter">0</span> of a maximum
<p>&#035;{text}</p> <span id="total">10</span> <span id="entityleveltext"> schools</span> to compare.
</div> <a id="clear" class="temporalGraphLinks">Clear</a></p>
</div> </div>
<h3>Who do you want to compare?</h3> </div>
<div id="paginatedTable">
</div>
</div>
<#--
<div id = "stopwordsdiv">
* The entity types core:Person, foaf:Organization have been excluded as they are too general.
</div>
-->
</div>
<div id="rightblock">
<h4 id="headerText" style="padding-left:60px;">Comparing <span id="comparisonHeader">Publications</span> of <span id="entityHeader">Institutions</span> in <span id="organizationLabel"></span></h4>
<div id="graphContainer" style="width: 450px; height: 250px;"></div>
<div id="yaxislabel"></div>
<div id="bottom" style="width: 450px; height: 350px;">
<div id="xaxislabel">Year</div>
<div id="bottomButtons">
<a id="clear" style="cursor:pointer;" class="temporalGraphLinks" >Remove All</a>
<a id="csv" href="${TemporalGraphDownloadFile}" class="temporalGraphLinks" >Save as CSV</a>
<#-- <a id="image" href = "" class="temporalGraphLinks" onClick="window.print()"> Save as Image</a>
--> </div><br/>
<h4><span id="comparisonParameter"></span></h4>
<p class="displayCounter">You have selected <span id="counter">0</span> of a maximum <span
id="total">10</span> <span id="entityleveltext"> schools</span> to compare.</p>
</div>
</div>
</div> </div>

View file

@ -66,20 +66,20 @@ var visualizationDataRoot = "${dataVisualizationURLRoot}";
$(document).ready(function(){ $(document).ready(function(){
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) > <#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) >
$("#coauth_table_container").empty().html('<img id="loadingData" width="auto" src="${loadingImageLink}" />'); $("#coauth_table_container").empty().html('<img id="loadingData" width="auto" src="${loadingImageLink}" />');
</#if> </#if>
processProfileInformation("ego_label", processProfileInformation("ego_label",
"ego_moniker", "ego_moniker",
"ego_profile_image", "ego_profile_image",
jQuery.parseJSON(getWellFormedURLs("${egoURIParam}", "profile_info"))); jQuery.parseJSON(getWellFormedURLs("${egoURIParam}", "profile_info")));
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips <= 0) || (numOfAuthors?? && numOfAuthors <= 0) > <#if (numOfCoAuthorShips?? && numOfCoAuthorShips <= 0) || (numOfAuthors?? && numOfAuthors <= 0) >
if ($('#ego_label').text().length > 0) { if ($('#ego_label').text().length > 0) {
setProfileName('no_coauthorships_person', $('#ego_label').text()); setProfileName('no_coauthorships_person', $('#ego_label').text());
} }
</#if> </#if>
}); });
</script> </script>
@ -87,140 +87,137 @@ $(document).ready(function(){
<div id="body"> <div id="body">
<div id="ego_profile"> <div id="ego_profile">
<#-- Label --> <#-- Label -->
<h2><span id="ego_label" class="author_name"></span></h2> <h2><a href="${egoVivoProfileURL}"><span id="ego_label" class="author_name"></span></a></h2>
<#-- Moniker--> <#-- Moniker-->
<em id="ego_moniker" class="moniker"></em> <em id="ego_moniker" class="moniker"></em>
<br /> </div>
<img class="" src="${urls.images}/arrowBackIcon.gif" alt="arrow icon" /><a href="${egoVivoProfileURL}">Back to Profile</a>
</div> <div class = "toggle_visualization">
<div id="coinvestigator_link_container">
<div class = "toggle_visualization"> <div class="collaboratorship-icon"><a href="${coprincipalinvestigatorURL}"><img src="${coInvestigatorIcon}" /></a></div>
<div id="coinvestigator_link_container"> <div class="collaboratorship-link">
<div class="collaboratorship-icon"><a href="${coprincipalinvestigatorURL}"><img src="${coInvestigatorIcon}" /></a></div>
<div class="collaboratorship-link">
<h3><a href="${coprincipalinvestigatorURL}">Co-Investigator Network</a></h3> <h3><a href="${coprincipalinvestigatorURL}">Co-Investigator Network</a></h3>
</div> </div>
</div> </div>
</div> </div>
<div style="clear:both;"></div> <div style="clear:both;"></div>
<#if (numOfAuthors?? && numOfAuthors > 0) > <#if (numOfAuthors?? && numOfAuthors > 0) >
<div class="sub_headings"><h3>Co-Author Network </h3></div> <div class="sub_headings"><h3>Co-Author Network </h3></div>
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) > <#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) >
<div class = "graphml-file-link"><a href="${egoCoAuthorshipNetworkDataFileURL}">(GraphML File)</a></div> <div class = "graphml-file-link"><a href="${egoCoAuthorshipNetworkDataFileURL}">(GraphML File)</a></div>
<#else> <#else>
<#if numOfAuthors?? && numOfAuthors <= 0 > <#if numOfAuthors?? && numOfAuthors <= 0 >
<#assign authorsText = "multi-author" /> <#assign authorsText = "multi-author" />
</#if> </#if>
<div id="no_coauthorships">Currently there are no ${authorsText!} papers for <div id="no_coauthorships">Currently there are no ${authorsText!} papers for
<a href="${egoVivoProfileURL}"><span id="no_coauthorships_person" class="author_name">this author</span></a> <a href="${egoVivoProfileURL}"><span id="no_coauthorships_person" class="author_name">this author</span></a>
in the VIVO database. in the VIVO database.
</div> </div>
</#if> </#if>
<#else> <#else>
<span id="no_coauthorships">Currently there are no papers for <span id="no_coauthorships">Currently there are no papers for
<a href="${egoVivoProfileURL}"><span id="no_coauthorships_person" class="author_name">this author</span></a> in the <a href="${egoVivoProfileURL}"><span id="no_coauthorships_person" class="author_name">this author</span></a> in the
VIVO database. VIVO database.
</span> </span>
</#if> </#if>
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) > <#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) >
<div id="bodyPannel"> <div id="bodyPannel">
<div id="visPanel"> <div id="visPanel">
<script language="JavaScript" type="text/javascript"> <script language="JavaScript" type="text/javascript">
<!-- <!--
renderCollaborationshipVisualization(); renderCollaborationshipVisualization();
//--> //-->
</script> </script>
</div> </div>
<div id="dataPanel"> <div id="dataPanel">
<h4 id ="profileTitle">Profile</h4> <h4 id ="profileTitle">Profile</h4>
<div id="data-panel-content"> <div id="data-panel-content">
<div id="profileImage" class="thumbnail"></div> <div id="profileImage" class="thumbnail"></div>
<h4><span id="authorName" class="neutral_author_name">&nbsp;</span></h4> <h4><span id="authorName" class="neutral_author_name">&nbsp;</span></h4>
<em id="profileMoniker" class="moniker"></em> <em id="profileMoniker" class="moniker"></em>
<div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coAuthorshipVisUrl">Co-author network</a></div> <div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coAuthorshipVisUrl">Co-author network</a></div>
<div class="author_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp; <div class="author_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp;
<span class="author_stats_text">Publication(s)</span></div> <span class="author_stats_text">Publication(s)</span></div>
<div class="author_stats" id="num_authors"><span class="numbers" style="width: 40px;" id="coAuthors"></span> <div class="author_stats" id="num_authors"><span class="numbers" style="width: 40px;" id="coAuthors"></span>
&nbsp;&nbsp;<span class="author_stats_text">Co-author(s)</span></div> &nbsp;&nbsp;<span class="author_stats_text">Co-author(s)</span></div>
<div class="author_stats" id="fPub" style="visibility:hidden"> <div class="author_stats" id="fPub" style="visibility:hidden">
<span class="numbers" style="width:40px;" id="firstPublication"></span>&nbsp;&nbsp;<span>First Publication</span></div> <span class="numbers" style="width:40px;" id="firstPublication"></span>&nbsp;&nbsp;<span>First Publication</span></div>
<div class="author_stats" id="lPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastPublication"></span> <div class="author_stats" id="lPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastPublication"></span>
&nbsp;&nbsp;<span>Last Publication</span></div> &nbsp;&nbsp;<span>Last Publication</span></div>
<div id="incomplete-data">Note: This information is based solely on publications which have been loaded into the VIVO system. <div id="incomplete-data">Note: This information is based solely on publications which have been loaded into the VIVO system.
This may only be a small sample of the person's total work. </div> This may only be a small sample of the person's total work. </div>
</div> </div>
</div> </div>
</div> </div>
</#if> </#if>
<#-- Sparkline --> <#if (numOfAuthors?? && numOfAuthors > 0) >
<div id="sparkline-container">
<#assign displayTable = false /> <#-- Sparkline -->
<div id="sparkline-container">
<#assign sparklineVO = egoPubSparklineVO /> <#assign displayTable = false />
<div id="publication-count-sparkline-include"><#include "personPublicationSparklineContent.ftl"></div>
<#assign sparklineVO = uniqueCoauthorsSparklineVO /> <#assign sparklineVO = egoPubSparklineVO />
<div id="coauthor-count-sparkline-include"><#include "coAuthorshipSparklineContent.ftl"></div> <div id="publication-count-sparkline-include"><#include "personPublicationSparklineContent.ftl"></div>
</div>
<#if (numOfAuthors?? && numOfAuthors > 0) > <#assign sparklineVO = uniqueCoauthorsSparklineVO />
<div id="coauthor-count-sparkline-include"><#include "coAuthorshipSparklineContent.ftl"></div>
</div>
<div class="vis_stats"> <div class="vis_stats">
<div class="sub_headings" id="table_heading"><h3>Tables</h3></div> <div class="sub_headings" id="table_heading"><h3>Tables</h3></div>
<div class="vis-tables"> <div class="vis-tables">
<p id="publications_table_container" class="datatable"> <p id="publications_table_container" class="datatable">
<#assign tableID = "publication_data_table" /> <#assign tableID = "publication_data_table" />
<#assign tableCaption = "Publications per year " /> <#assign tableCaption = "Publications per year " />
<#assign tableActivityColumnName = "Publications" /> <#assign tableActivityColumnName = "Publications" />
<#assign tableContent = egoPubSparklineVO.yearToActivityCount /> <#assign tableContent = egoPubSparklineVO.yearToActivityCount />
<#assign fileDownloadLink = egoPubSparklineVO.downloadDataLink /> <#assign fileDownloadLink = egoPubSparklineVO.downloadDataLink />
<#include "yearToActivityCountTable.ftl"> <#include "yearToActivityCountTable.ftl">
</p> </p>
</div> </div>
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) > <#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) >
<div class="vis-tables"> <div class="vis-tables">
<p id="coauth_table_container" class="datatable"></p> <p id="coauth_table_container" class="datatable"></p>
</div> </div>
</#if> </#if>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
</#if> </#if>
</div> </div>

View file

@ -64,162 +64,162 @@ var visualizationDataRoot = "${dataVisualizationURLRoot}";
$(document).ready(function(){ $(document).ready(function(){
<#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) > <#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) >
$("#coinve_table_container").empty().html('<img id="loadingData" width="auto" src="${loadingImageLink}" />'); $("#coinve_table_container").empty().html('<img id="loadingData" width="auto" src="${loadingImageLink}" />');
</#if> </#if>
processProfileInformation("ego_label", processProfileInformation("ego_label",
"ego_moniker", "ego_moniker",
"ego_profile_image", "ego_profile_image",
jQuery.parseJSON(getWellFormedURLs("${egoURIParam}", "profile_info"))); jQuery.parseJSON(getWellFormedURLs("${egoURIParam}", "profile_info")));
<#if (numOfCoInvestigations?? && numOfCoInvestigations <= 0) || (numOfInvestigators?? && numOfInvestigators <= 0) > <#if (numOfCoInvestigations?? && numOfCoInvestigations <= 0) || (numOfInvestigators?? && numOfInvestigators <= 0) >
if ($('#ego_label').text().length > 0) { if ($('#ego_label').text().length > 0) {
setProfileName('no_coinvestigations_person', $('#ego_label').text()); setProfileName('no_coinvestigations_person', $('#ego_label').text());
} }
</#if> </#if>
}); });
</script> </script>
<div id="body"> <div id="body">
<div id="ego_profile"> <div id="ego_profile">
<#-- Label --> <#-- Label -->
<h2><span id="ego_label" class="investigator_name"></span></h2> <h2><a href="${egoVivoProfileURL}"><span id="ego_label" class="investigator_name"></span></a></h2>
<#-- Moniker--> <#-- Moniker-->
<em id="ego_moniker" class="moniker"></em> <em id="ego_moniker" class="moniker"></em>
<br />
<img class="" src="${urls.images}/arrowBackIcon.gif" alt="arrow icon" /><a href="${egoVivoProfileURL}">Back to Profile</a>
</div> </div>
<div class = "toggle_visualization"> <div class = "toggle_visualization">
<div id="coauthorship_link_container"> <div id="coauthorship_link_container">
<div class="collaboratorship-icon"><a href="${coauthorshipURL}"><img src="${coAuthorIcon}" /></a></div> <div class="collaboratorship-icon"><a href="${coauthorshipURL}"><img src="${coAuthorIcon}" /></a></div>
<div class="collaboratorship-link"> <div class="collaboratorship-link">
<h3><a href="${coauthorshipURL}">Co-Author Network</a></h3> <h3><a href="${coauthorshipURL}">Co-Author Network</a></h3>
</div> </div>
</div> </div>
</div> </div>
<div style="clear:both;"></div> <div style="clear:both;"></div>
<#if (numOfInvestigators?? && numOfInvestigators > 0) > <#if (numOfInvestigators?? && numOfInvestigators > 0) >
<div class="sub_headings"><h3 >Co-Investigator Network </h3></div> <div class="sub_headings"><h3 >Co-Investigator Network </h3></div>
<#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) || (numOfInvestigators?? && numOfInvestigators > 0) > <#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) || (numOfInvestigators?? && numOfInvestigators > 0) >
<div class = "graphml-file-link"><a href="${egoCoInvestigationNetworkDataFileURL}">(GraphML File)</a></div> <div class = "graphml-file-link"><a href="${egoCoInvestigationNetworkDataFileURL}">(GraphML File)</a></div>
<#else> <#else>
<#if numOfInvestigators?? && numOfInvestigators <= 0 > <#if numOfInvestigators?? && numOfInvestigators <= 0 >
<#assign investigatorsText = "multi-investigator" /> <#assign investigatorsText = "multi-investigator" />
</#if> </#if>
<span id="no_coinvestigations">Currently there are no ${investigatorsText!} grants for <span id="no_coinvestigations">Currently there are no ${investigatorsText!} grants for
<a href="${egoVivoProfileURL}"><span id="no_coinvestigations_person" class="investigator_name">this investigator</span></a> <a href="${egoVivoProfileURL}"><span id="no_coinvestigations_person" class="investigator_name">this investigator</span></a>
in the VIVO database. in the VIVO database.
</span> </span>
</#if> </#if>
<#else> <#else>
<span id="no_coinvestigations">Currently there are no grants for <span id="no_coinvestigations">Currently there are no grants for
<a href="${egoVivoProfileURL}"><span id="no_coinvestigations_person" class="investigator_name">this investigator</span></a> in the <a href="${egoVivoProfileURL}"><span id="no_coinvestigations_person" class="investigator_name">this investigator</span></a> in the
VIVO database. VIVO database.
</span> </span>
</#if> </#if>
<#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) || (numOfInvestigators?? && numOfInvestigators > 0) > <#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) || (numOfInvestigators?? && numOfInvestigators > 0) >
<div id="bodyPannel"> <div id="bodyPannel">
<div id="visPanel"> <div id="visPanel">
<script language="JavaScript" type="text/javascript"> <script language="JavaScript" type="text/javascript">
<!-- <!--
renderCollaborationshipVisualization(); renderCollaborationshipVisualization();
//--> //-->
</script> </script>
</div> </div>
<div id="dataPanel"> <div id="dataPanel">
<h4 id ="profileTitle">Profile</h4> <h4 id ="profileTitle">Profile</h4>
<div id="data-panel-content"> <div id="data-panel-content">
<div id="profileImage" class="thumbnail"></div> <div id="profileImage" class="thumbnail"></div>
<h4><span id="investigatorName" class="neutral_investigator_name">&nbsp;</span></h4> <h4><span id="investigatorName" class="neutral_investigator_name">&nbsp;</span></h4>
<em id="profileMoniker" class="moniker"></em> <em id="profileMoniker" class="moniker"></em>
<div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coInvestigationVisUrl">Co-investigator network</a></div> <div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coInvestigationVisUrl">Co-investigator network</a></div>
<div class="investigator_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp; <div class="investigator_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp;
<span class="investigator_stats_text">Grant(s)</span></div> <span class="investigator_stats_text">Grant(s)</span></div>
<div class="investigator_stats" id="num_investigators"><span class="numbers" style="width: 40px;" id="coInvestigators"></span> <div class="investigator_stats" id="num_investigators"><span class="numbers" style="width: 40px;" id="coInvestigators"></span>
&nbsp;&nbsp;<span class="investigator_stats_text">Co-investigator(s)</span></div> &nbsp;&nbsp;<span class="investigator_stats_text">Co-investigator(s)</span></div>
<div class="investigator_stats" id="fGrant" style="visibility:hidden"> <div class="investigator_stats" id="fGrant" style="visibility:hidden">
<span class="numbers" style="width:40px;" id="firstGrant"></span>&nbsp;&nbsp;<span>First Grant</span></div> <span class="numbers" style="width:40px;" id="firstGrant"></span>&nbsp;&nbsp;<span>First Grant</span></div>
<div class="investigator_stats" id="lGrant" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastGrant"></span> <div class="investigator_stats" id="lGrant" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastGrant"></span>
&nbsp;&nbsp;<span>Last Grant</span></div> &nbsp;&nbsp;<span>Last Grant</span></div>
<div id="incomplete-data">Note: This information is based solely on grants which have been loaded into the VIVO system. <div id="incomplete-data">Note: This information is based solely on grants which have been loaded into the VIVO system.
This may only be a small sample of the person's total work. </div> This may only be a small sample of the person's total work. </div>
</div> </div>
</div> </div>
</div> </div>
</#if> </#if>
<#-- Sparkline -->
<div id="sparkline-container">
<#assign displayTable = false /> <#if (numOfInvestigators?? && numOfInvestigators > 0) >
<#assign sparklineVO = egoGrantSparklineVO /> <#-- Sparkline -->
<div id="grant-count-sparkline-include"><#include "personGrantSparklineContent.ftl"></div> <div id="sparkline-container">
<#assign sparklineVO = uniqueCoInvestigatorsSparklineVO /> <#assign displayTable = false />
<div id="coinvestigator-count-sparkline-include"><#include "coInvestigationSparklineContent.ftl"></div>
</div>
<#if (numOfInvestigators?? && numOfInvestigators > 0) > <#assign sparklineVO = egoGrantSparklineVO />
<div id="grant-count-sparkline-include"><#include "personGrantSparklineContent.ftl"></div>
<div class="vis_stats"> <#assign sparklineVO = uniqueCoInvestigatorsSparklineVO />
<div id="coinvestigator-count-sparkline-include"><#include "coInvestigationSparklineContent.ftl"></div>
</div>
<div class="sub_headings" id="table_heading"><h3>Tables</h3></div>
<div class="vis-tables"> <div class="vis_stats">
<p id="grants_table_container" class="datatable"> <div class="sub_headings" id="table_heading"><h3>Tables</h3></div>
<#assign tableID = "grant_data_table" /> <div class="vis-tables">
<#assign tableCaption = "Grants per year " />
<#assign tableActivityColumnName = "Grants" />
<#assign tableContent = egoGrantSparklineVO.yearToActivityCount />
<#assign fileDownloadLink = egoGrantSparklineVO.downloadDataLink />
<#include "yearToActivityCountTable.ftl"> <p id="grants_table_container" class="datatable">
</p> <#assign tableID = "grant_data_table" />
<#assign tableCaption = "Grants per year " />
<#assign tableActivityColumnName = "Grants" />
<#assign tableContent = egoGrantSparklineVO.yearToActivityCount />
<#assign fileDownloadLink = egoGrantSparklineVO.downloadDataLink />
</div> <#include "yearToActivityCountTable.ftl">
<#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) > </p>
<div class="vis-tables"> </div>
<p id="coinve_table_container" class="datatable"></p> <#if (numOfCoInvestigations?? && numOfCoInvestigations > 0) >
</div>
</#if> <div class="vis-tables">
<div style="clear:both"></div> <p id="coinve_table_container" class="datatable"></p>
</div>
</div> </#if>
</#if> <div style="clear:both"></div>
</div>
</#if>
</div> </div>