1. Modified javascript for person level page to adapt tp freemarker changes.
2. Abstracted out the table generating code for sparklines out. This gives us flexibility to put the table wherever we want in the template. 3. Made changes to coauth person l;evel page to display all the content. TThe data is all there with links. 4. Adapted person pub count & coauth sparklines to adapt to new table generating template. 5. Changed coauth vis code gen to include a missing data value. 6. Fixed a bug in person level req handler.
This commit is contained in:
parent
428c8a24ce
commit
7568601dc4
7 changed files with 576 additions and 557 deletions
|
@ -1,475 +1,476 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
function getWellFormedURLs(given_uri, type) {
|
||||
|
||||
if (!given_uri || given_uri == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
// general best practice is to put javascript code inside document.ready
|
||||
// but in this case when i do that the function does not get called
|
||||
// properly.
|
||||
// so removing it for now.
|
||||
|
||||
// $(document).ready(function() {
|
||||
|
||||
var finalURL;
|
||||
|
||||
if (type == "coauthorship") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PERSON_LEVEL_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
|
||||
} else if (type == "copi") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "COPI_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
|
||||
}else if (type == "profile") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PROFILE_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
} else if (type == "image") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "IMAGE_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
} else if (type == "profile_info") {
|
||||
|
||||
var profileInfoJSON = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PROFILE_INFO", uri: given_uri}),
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return profileInfoJSON;
|
||||
|
||||
}
|
||||
|
||||
// });
|
||||
}
|
||||
|
||||
$.fn.image = function(src, successFunc, failureFunc){
|
||||
return this.each(function(){
|
||||
var profileImage = new Image();
|
||||
profileImage.onerror = failureFunc;
|
||||
profileImage.onload = successFunc;
|
||||
profileImage.src = src;
|
||||
|
||||
return profileImage;
|
||||
});
|
||||
};
|
||||
|
||||
function setProfileImage(imageContainerID, mainImageURL) {
|
||||
|
||||
if (imageContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mainImageURL || mainImageURL == "") {
|
||||
$("#" + imageContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var rawPath = getWellFormedURLs(mainImageURL, "image");
|
||||
|
||||
var imageLink = contextPath + rawPath;
|
||||
|
||||
var imageContainer = $("#" + imageContainerID);
|
||||
imageContainer.image(imageLink,
|
||||
function(){
|
||||
imageContainer.empty().append(this);
|
||||
},
|
||||
function(){
|
||||
// For performing any action on failure to
|
||||
// find the image.
|
||||
imageContainer.empty();
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function setProfileMoniker(monikerContainerID, moniker, doEllipsis) {
|
||||
|
||||
if (monikerContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!moniker) {
|
||||
$("#" + monikerContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var finalDisplayMoniker;
|
||||
|
||||
if (moniker.length > 30 && doEllipsis) {
|
||||
|
||||
finalDisplayMoniker = moniker.substr(0,30) + "...";
|
||||
|
||||
} else {
|
||||
|
||||
finalDisplayMoniker = moniker;
|
||||
|
||||
}
|
||||
|
||||
$("#" + monikerContainerID).empty().text(finalDisplayMoniker);
|
||||
$("#" + monikerContainerID).attr('title', moniker);
|
||||
|
||||
}
|
||||
|
||||
function setProfileName(nameContainerID, name, doNameEllipsis) {
|
||||
|
||||
if (nameContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
$("#" + nameContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var finalDisplayName;
|
||||
|
||||
if (name.length > 30 && doNameEllipsis) {
|
||||
|
||||
finalDisplayName = name.substr(0,30) + "...";
|
||||
|
||||
} else {
|
||||
|
||||
finalDisplayName = name;
|
||||
|
||||
}
|
||||
|
||||
$("#" + nameContainerID).empty().text(finalDisplayName);
|
||||
$("#" + nameContainerID).attr('title', name);
|
||||
|
||||
}
|
||||
|
||||
function processProfileInformation(nameContainerID,
|
||||
monikerContainerID,
|
||||
imageContainerID,
|
||||
profileInfoJSON,
|
||||
doMonikerEllipsis,
|
||||
doNameEllipsis) {
|
||||
|
||||
var name, mainImageURL, moniker;
|
||||
|
||||
if (jQuery.isEmptyObject(profileInfoJSON)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(profileInfoJSON, function(key, set){
|
||||
|
||||
if (key.search(/mainImage/i) > -1) {
|
||||
|
||||
mainImageURL = set[0];
|
||||
|
||||
} else if (key.search(/moniker/i) > -1) {
|
||||
|
||||
moniker = set[0];
|
||||
|
||||
} else if (key.search(/label/i) > -1) {
|
||||
|
||||
name = set[0];
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
setProfileName(nameContainerID, name, doNameEllipsis);
|
||||
setProfileMoniker(monikerContainerID, moniker, doMonikerEllipsis);
|
||||
setProfileImage(imageContainerID, mainImageURL);
|
||||
|
||||
}
|
||||
|
||||
function visLoaded(nodes){
|
||||
|
||||
var jsonedNodes = jQuery.parseJSON(nodes);
|
||||
var tableID = "";
|
||||
var tableContainer = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
tableID = "coauthorships_table";
|
||||
tableContainer = "coauth_table_container";
|
||||
/*} else {
|
||||
tableID = "copis_table";
|
||||
tableContainer = "copi_table_container";
|
||||
}*/
|
||||
|
||||
$(document).ready(function() {
|
||||
createTable("coauthorships_table" , "coauth_table_container" , jsonedNodes.slice(1));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function createTable(tableID, tableContainer, tableData) {
|
||||
|
||||
var number_of_works = "";
|
||||
var tableCaption = "";
|
||||
var tableColumnTitle1 = "";
|
||||
var tableColumnTitle2 = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
tableCaption = "Co-authors ";
|
||||
tableColumnTitle1 = "Author";
|
||||
tableColumnTitle2 = "Publications with <br />";
|
||||
/*} else {
|
||||
tableCaption = "Co-pis ";
|
||||
tableColumnTitle1 = "Principal Investigator";
|
||||
tableColumnTitle2 = "Grants with <br />";
|
||||
}*/
|
||||
|
||||
var table = $('<table>');
|
||||
table.attr('id', tableID);
|
||||
|
||||
table.append($('<caption>').html(tableCaption + "<a href=\"" + egoCoAuthorsListDataFileURL + "\">(.CSV File)</a>"));
|
||||
|
||||
var header = $('<thead>');
|
||||
|
||||
var row = $('<tr>');
|
||||
|
||||
var authorTH = $('<th>');
|
||||
authorTH.html(tableColumnTitle1);
|
||||
row.append(authorTH);
|
||||
|
||||
row.append($('<th>').html(tableColumnTitle2 + "" + $('#ego_label').text()));
|
||||
|
||||
header.append(row);
|
||||
|
||||
table.append(header);
|
||||
|
||||
$.each(tableData, function(i, item){
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
number_of_works = item.number_of_authored_works;
|
||||
/*} else {
|
||||
number_of_works = item.number_of_investigated_grants;
|
||||
}*/
|
||||
var row = $('<tr>');
|
||||
|
||||
row.append($('<td>').html(item.label));
|
||||
row.append($('<td>').html(number_of_works));
|
||||
|
||||
table.append(row);
|
||||
|
||||
});
|
||||
|
||||
table.prependTo('#' + tableContainer);
|
||||
$('#' + tableContainer + " #loadingData").remove();
|
||||
}
|
||||
|
||||
//renderStatsOnNodeClicked, CoRelations, noOfCoRelations
|
||||
//function nodeClickedJS(json){
|
||||
function renderStatsOnNodeClicked(json){
|
||||
|
||||
//console.log(json);
|
||||
var obj = jQuery.parseJSON(json);
|
||||
|
||||
var works = "";
|
||||
var persons = "";
|
||||
var relation = "";
|
||||
var earliest_work = "";
|
||||
var latest_work = "";
|
||||
var number_of_works = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
works = "Publication(s)";
|
||||
persons = "Co-author(s)";
|
||||
relation = "coauthorship"
|
||||
earliest_work = obj.earliest_publication;
|
||||
latest_work = obj.latest_publication;
|
||||
number_of_works = obj.number_of_authored_works;
|
||||
/*} else {
|
||||
works = "Grant(s)";
|
||||
persons = "Co-PI(s)";
|
||||
relation = "copi";
|
||||
earliest_work = obj.earliest_grant;
|
||||
latest_work = obj.latest_grant;
|
||||
number_of_works = obj.number_of_investigated_grants;
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
$("#dataPanel").attr("style","visibility:visible");
|
||||
$("#works").empty().append(number_of_works);
|
||||
|
||||
/*
|
||||
* Here obj.url points to the uri of that individual
|
||||
*/
|
||||
if(obj.url){
|
||||
|
||||
if (obj.url == egoURI) {
|
||||
|
||||
$("#authorName").addClass('author_name').removeClass('neutral_author_name');
|
||||
$('#num_works > .author_stats_text').text(works);
|
||||
$('#num_authors > .author_stats_text').text(persons);
|
||||
|
||||
} else {
|
||||
|
||||
$("#authorName").addClass('neutral_author_name').removeClass('author_name');
|
||||
$('#num_works > .author_stats_text').text('Joint ' + works);
|
||||
$('#num_authors > .author_stats_text').text('Joint ' + persons);
|
||||
|
||||
}
|
||||
|
||||
$("#profileUrl").attr("href", getWellFormedURLs(obj.url, "profile"));
|
||||
$("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, relation));
|
||||
processProfileInformation("authorName",
|
||||
"profileMoniker",
|
||||
"profileImage",
|
||||
jQuery.parseJSON(getWellFormedURLs(obj.url, "profile_info")),
|
||||
true,
|
||||
true);
|
||||
|
||||
|
||||
|
||||
} else{
|
||||
$("#profileUrl").attr("href","#");
|
||||
$("#coAuthorshipVisUrl").attr("href","#");
|
||||
}
|
||||
|
||||
$("#coAuthors").empty().append(obj.noOfCorelations);
|
||||
|
||||
$("#firstPublication").empty().append(earliest_work);
|
||||
(earliest_work)?$("#fPub").attr("style","visibility:visible"):$("#fPub").attr("style","visibility:hidden");
|
||||
$("#lastPublication").empty().append(latest_work);
|
||||
(latest_work)?$("#lPub").attr("style","visibility:visible"):$("#lPub").attr("style","visibility:hidden");
|
||||
|
||||
// obj.url:the url parameter for node
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Inside both of these functions, '&' are replaced with '%26' because we are externally
|
||||
* passing two parameters to the flash code using flashvars (see renderCoAuthorshipVisualization())
|
||||
* and they are delimited using '&' too.
|
||||
*/
|
||||
|
||||
function getEncodedCoAuthorURL(){
|
||||
|
||||
var queryString = "uri="+ egoURI + "&vis=coauthorship";
|
||||
// console.log('domainParam is '+ domainParam);
|
||||
// console.log('CoAuthorURL is ' + domainParam + '?' + queryString.replace(/&/g, '%26'));
|
||||
return domainParam + '?' + queryString.replace(/&/g, '%26');
|
||||
}
|
||||
|
||||
function getEncodedCoPIURL(){
|
||||
|
||||
var queryString = "uri="+ egoURI+ "&vis=coprincipalinvestigator";
|
||||
// console.log('CoPIURL is ' + domainParam + '?' + queryString.replace(/&/g, '%26') );
|
||||
return domainParam + '?' + queryString.replace(/&/g, '%26');
|
||||
}
|
||||
|
||||
function renderCoAuthorshipVisualization() {
|
||||
|
||||
var visualization = "";
|
||||
var encodedURL = "";
|
||||
|
||||
/*if(visMode == "coauthorship"){*/
|
||||
visualization = "CoAuthor";
|
||||
encodedURL = getEncodedCoAuthorURL();
|
||||
/*} else {
|
||||
visualization = "CoPI";
|
||||
encodedURL = getEncodedCoPIURL();
|
||||
}*/
|
||||
|
||||
// console.log('visualization is ' + visualization + ' and encodedURL is '+ encodedURL);
|
||||
// Version check for the Flash Player that has the ability to start Player
|
||||
// Product Install (6.0r65)
|
||||
var hasProductInstall = DetectFlashVer(6, 0, 65);
|
||||
|
||||
// Version check based upon the values defined in globals
|
||||
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
||||
|
||||
if ( hasProductInstall && !hasRequestedVersion ) {
|
||||
// DO NOT MODIFY THE FOLLOWING FOUR LINES
|
||||
// Location visited after installation is complete if installation is
|
||||
// required
|
||||
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
|
||||
var MMredirectURL = window.location;
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
var MMdoctitle = document.title;
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "playerProductInstall",
|
||||
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
|
||||
"width", "800",
|
||||
"height", "840",
|
||||
"align", "middle",
|
||||
"id", "EgoCentric",
|
||||
"quality", "high",
|
||||
"bgcolor", "#ffffff",
|
||||
"name", "EgoCentric",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else if (hasRequestedVersion) {
|
||||
// if we've detected an acceptable version
|
||||
// embed the Flash Content SWF when all tests are passed
|
||||
//coAuthorUrl=/vivo1/visualization?vis=coauthorship%26render_mode=data%26uri=http%3A%2F%2Fvivo.iu.edu%2Findividual%2FBrnerKaty&labelField=label&coPIUrl=/vivo1/visualization?vis=coprincipalinvestigator%26render_mode=data%26uri=http%3A%2F%2Fvivo.iu.edu%2Findividual%2FBrnerKaty&labelField=label
|
||||
AC_FL_RunContent(
|
||||
"src", swfLink,
|
||||
// "flashVars", 'coAuthorUrl='+ encodeURL(egoCoAuthorshipDataFeederURL) + '&coPIUrl=' + encodeURL(egoCoPIDataFeederURL) ,
|
||||
// "flashVars", 'coAuthorUrl='+ getEncodedCoAuthorURL() + '&coPIUrl=' + getEncodedCoPIURL() ,
|
||||
// "flashVars", 'graphmlUrl=' + getEncodedCoAuthorURL() + '&labelField=label&visType=CoAuthor',
|
||||
"flashVars", 'graphmlUrl=' + encodedURL + '&labelField=label&visType='+visualization,
|
||||
"width", "600",
|
||||
"height", "850",
|
||||
"align", "top",
|
||||
"id", "EgoCentric",
|
||||
"quality", "high",
|
||||
"bgcolor", "#ffffff",
|
||||
"name", "EgoCentric",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else { // flash is too old or we can't detect the plugin
|
||||
var alternateContent = '<br /><h3 style="color: red;">'
|
||||
+ 'This content requires the Adobe Flash Player. '
|
||||
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a></h3>';
|
||||
document.write(alternateContent); // insert non-flash content
|
||||
|
||||
}
|
||||
|
||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
function getWellFormedURLs(given_uri, type) {
|
||||
|
||||
if (!given_uri || given_uri == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
// general best practice is to put javascript code inside document.ready
|
||||
// but in this case when i do that the function does not get called
|
||||
// properly.
|
||||
// so removing it for now.
|
||||
|
||||
// $(document).ready(function() {
|
||||
|
||||
var finalURL;
|
||||
|
||||
if (type == "coauthorship") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PERSON_LEVEL_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
|
||||
} else if (type == "copi") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "COPI_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
|
||||
}else if (type == "profile") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PROFILE_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
} else if (type == "image") {
|
||||
|
||||
finalURL = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "IMAGE_URL", uri: given_uri}),
|
||||
dataType: "text",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return finalURL;
|
||||
|
||||
} else if (type == "profile_info") {
|
||||
|
||||
var profileInfoJSON = $.ajax({
|
||||
url: contextPath + "/visualizationAjax",
|
||||
data: ({vis: "utilities", vis_mode: "PROFILE_INFO", uri: given_uri}),
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success:function(data){
|
||||
}
|
||||
}).responseText;
|
||||
|
||||
return profileInfoJSON;
|
||||
|
||||
}
|
||||
|
||||
// });
|
||||
}
|
||||
|
||||
$.fn.image = function(src, successFunc, failureFunc){
|
||||
return this.each(function(){
|
||||
var profileImage = new Image();
|
||||
profileImage.onerror = failureFunc;
|
||||
profileImage.onload = successFunc;
|
||||
profileImage.src = src;
|
||||
|
||||
return profileImage;
|
||||
});
|
||||
};
|
||||
|
||||
function setProfileImage(imageContainerID, mainImageURL) {
|
||||
|
||||
if (imageContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mainImageURL || mainImageURL == "") {
|
||||
$("#" + imageContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var rawPath = getWellFormedURLs(mainImageURL, "image");
|
||||
|
||||
var imageLink = contextPath + rawPath;
|
||||
|
||||
var imageContainer = $("#" + imageContainerID);
|
||||
imageContainer.image(imageLink,
|
||||
function(){
|
||||
imageContainer.empty().append(this);
|
||||
},
|
||||
function(){
|
||||
// For performing any action on failure to
|
||||
// find the image.
|
||||
imageContainer.empty();
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function setProfileMoniker(monikerContainerID, moniker, doEllipsis) {
|
||||
|
||||
if (monikerContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!moniker) {
|
||||
$("#" + monikerContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var finalDisplayMoniker;
|
||||
|
||||
if (moniker.length > 30 && doEllipsis) {
|
||||
|
||||
finalDisplayMoniker = moniker.substr(0,30) + "...";
|
||||
|
||||
} else {
|
||||
|
||||
finalDisplayMoniker = moniker;
|
||||
|
||||
}
|
||||
|
||||
$("#" + monikerContainerID).empty().text(finalDisplayMoniker);
|
||||
$("#" + monikerContainerID).attr('title', moniker);
|
||||
|
||||
}
|
||||
|
||||
function setProfileName(nameContainerID, name, doNameEllipsis) {
|
||||
|
||||
if (nameContainerID == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
$("#" + nameContainerID).empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var finalDisplayName;
|
||||
|
||||
if (name.length > 30 && doNameEllipsis) {
|
||||
|
||||
finalDisplayName = name.substr(0,30) + "...";
|
||||
|
||||
} else {
|
||||
|
||||
finalDisplayName = name;
|
||||
|
||||
}
|
||||
|
||||
$("#" + nameContainerID).empty().text(finalDisplayName);
|
||||
$("#" + nameContainerID).attr('title', name);
|
||||
|
||||
}
|
||||
|
||||
function processProfileInformation(nameContainerID,
|
||||
monikerContainerID,
|
||||
imageContainerID,
|
||||
profileInfoJSON,
|
||||
doMonikerEllipsis,
|
||||
doNameEllipsis) {
|
||||
|
||||
var name, mainImageURL, moniker;
|
||||
|
||||
if (jQuery.isEmptyObject(profileInfoJSON)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(profileInfoJSON, function(key, set){
|
||||
|
||||
if (key.search(/mainImage/i) > -1) {
|
||||
|
||||
mainImageURL = set[0];
|
||||
|
||||
} else if (key.search(/moniker/i) > -1) {
|
||||
|
||||
moniker = set[0];
|
||||
|
||||
} else if (key.search(/label/i) > -1) {
|
||||
|
||||
name = set[0];
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
setProfileName(nameContainerID, name, doNameEllipsis);
|
||||
setProfileMoniker(monikerContainerID, moniker, doMonikerEllipsis);
|
||||
setProfileImage(imageContainerID, mainImageURL);
|
||||
|
||||
}
|
||||
|
||||
function visLoaded(nodes){
|
||||
|
||||
var jsonedNodes = jQuery.parseJSON(nodes);
|
||||
var tableID = "";
|
||||
var tableContainer = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
tableID = "coauthorships_table";
|
||||
tableContainer = "coauth_table_container";
|
||||
/*} else {
|
||||
tableID = "copis_table";
|
||||
tableContainer = "copi_table_container";
|
||||
}*/
|
||||
|
||||
$(document).ready(function() {
|
||||
createTable("coauthorships_table" , "coauth_table_container" , jsonedNodes.slice(1));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function createTable(tableID, tableContainer, tableData) {
|
||||
|
||||
var number_of_works = "";
|
||||
var tableCaption = "";
|
||||
var tableColumnTitle1 = "";
|
||||
var tableColumnTitle2 = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
tableCaption = "Co-authors ";
|
||||
tableColumnTitle1 = "Author";
|
||||
tableColumnTitle2 = "Publications with <br />";
|
||||
/*} else {
|
||||
tableCaption = "Co-pis ";
|
||||
tableColumnTitle1 = "Principal Investigator";
|
||||
tableColumnTitle2 = "Grants with <br />";
|
||||
}*/
|
||||
|
||||
var table = $('<table>');
|
||||
table.attr('id', tableID);
|
||||
|
||||
table.append($('<caption>').html(tableCaption + "<a href=\"" + egoCoAuthorsListDataFileURL + "\">(.CSV File)</a>"));
|
||||
|
||||
var header = $('<thead>');
|
||||
|
||||
var row = $('<tr>');
|
||||
|
||||
var authorTH = $('<th>');
|
||||
authorTH.html(tableColumnTitle1);
|
||||
row.append(authorTH);
|
||||
|
||||
row.append($('<th>').html(tableColumnTitle2 + "" + $('#ego_label').text()));
|
||||
|
||||
header.append(row);
|
||||
|
||||
table.append(header);
|
||||
|
||||
$.each(tableData, function(i, item){
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
number_of_works = item.number_of_authored_works;
|
||||
/*} else {
|
||||
number_of_works = item.number_of_investigated_grants;
|
||||
}*/
|
||||
var row = $('<tr>');
|
||||
|
||||
row.append($('<td>').html(item.label));
|
||||
row.append($('<td>').html(number_of_works));
|
||||
|
||||
table.append(row);
|
||||
|
||||
});
|
||||
|
||||
table.prependTo('#' + tableContainer);
|
||||
$('#' + tableContainer + " #loadingData").remove();
|
||||
|
||||
}
|
||||
|
||||
//renderStatsOnNodeClicked, CoRelations, noOfCoRelations
|
||||
//function nodeClickedJS(json){
|
||||
function renderStatsOnNodeClicked(json){
|
||||
|
||||
//console.log(json);
|
||||
var obj = jQuery.parseJSON(json);
|
||||
|
||||
var works = "";
|
||||
var persons = "";
|
||||
var relation = "";
|
||||
var earliest_work = "";
|
||||
var latest_work = "";
|
||||
var number_of_works = "";
|
||||
|
||||
/*if (visMode == "coauthorship") {*/
|
||||
works = "Publication(s)";
|
||||
persons = "Co-author(s)";
|
||||
relation = "coauthorship"
|
||||
earliest_work = obj.earliest_publication;
|
||||
latest_work = obj.latest_publication;
|
||||
number_of_works = obj.number_of_authored_works;
|
||||
/*} else {
|
||||
works = "Grant(s)";
|
||||
persons = "Co-PI(s)";
|
||||
relation = "copi";
|
||||
earliest_work = obj.earliest_grant;
|
||||
latest_work = obj.latest_grant;
|
||||
number_of_works = obj.number_of_investigated_grants;
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
$("#dataPanel").attr("style","visibility:visible");
|
||||
$("#works").empty().append(number_of_works);
|
||||
|
||||
/*
|
||||
* Here obj.url points to the uri of that individual
|
||||
*/
|
||||
if(obj.url){
|
||||
|
||||
if (obj.url == egoURI) {
|
||||
|
||||
$("#authorName").addClass('author_name').removeClass('neutral_author_name');
|
||||
$('#num_works > .author_stats_text').text(works);
|
||||
$('#num_authors > .author_stats_text').text(persons);
|
||||
|
||||
} else {
|
||||
|
||||
$("#authorName").addClass('neutral_author_name').removeClass('author_name');
|
||||
$('#num_works > .author_stats_text').text('Joint ' + works);
|
||||
$('#num_authors > .author_stats_text').text('Joint ' + persons);
|
||||
|
||||
}
|
||||
|
||||
$("#profileUrl").attr("href", getWellFormedURLs(obj.url, "profile"));
|
||||
$("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, relation));
|
||||
processProfileInformation("authorName",
|
||||
"profileMoniker",
|
||||
"profileImage",
|
||||
jQuery.parseJSON(getWellFormedURLs(obj.url, "profile_info")),
|
||||
true,
|
||||
true);
|
||||
|
||||
|
||||
|
||||
} else{
|
||||
$("#profileUrl").attr("href","#");
|
||||
$("#coAuthorshipVisUrl").attr("href","#");
|
||||
}
|
||||
|
||||
$("#coAuthors").empty().append(obj.noOfCorelations);
|
||||
|
||||
$("#firstPublication").empty().append(earliest_work);
|
||||
(earliest_work)?$("#fPub").attr("style","visibility:visible"):$("#fPub").attr("style","visibility:hidden");
|
||||
$("#lastPublication").empty().append(latest_work);
|
||||
(latest_work)?$("#lPub").attr("style","visibility:visible"):$("#lPub").attr("style","visibility:hidden");
|
||||
|
||||
// obj.url:the url parameter for node
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Inside both of these functions, '&' are replaced with '%26' because we are externally
|
||||
* passing two parameters to the flash code using flashvars (see renderCoAuthorshipVisualization())
|
||||
* and they are delimited using '&' too.
|
||||
*/
|
||||
|
||||
function getEncodedCoAuthorURL(){
|
||||
|
||||
var queryString = "uri="+ egoURI + "&vis=coauthorship";
|
||||
// console.log('domainParam is '+ domainParam);
|
||||
// console.log('CoAuthorURL is ' + domainParam + '?' + queryString.replace(/&/g, '%26'));
|
||||
return domainParam + '?' + queryString.replace(/&/g, '%26');
|
||||
}
|
||||
|
||||
function getEncodedCoPIURL(){
|
||||
|
||||
var queryString = "uri="+ egoURI+ "&vis=coprincipalinvestigator";
|
||||
// console.log('CoPIURL is ' + domainParam + '?' + queryString.replace(/&/g, '%26') );
|
||||
return domainParam + '?' + queryString.replace(/&/g, '%26');
|
||||
}
|
||||
|
||||
function renderCoAuthorshipVisualization() {
|
||||
|
||||
var visualization = "";
|
||||
var encodedURL = "";
|
||||
|
||||
/*if(visMode == "coauthorship"){*/
|
||||
visualization = "CoAuthor";
|
||||
encodedURL = getEncodedCoAuthorURL();
|
||||
/*} else {
|
||||
visualization = "CoPI";
|
||||
encodedURL = getEncodedCoPIURL();
|
||||
}*/
|
||||
|
||||
// console.log('visualization is ' + visualization + ' and encodedURL is '+ encodedURL);
|
||||
// Version check for the Flash Player that has the ability to start Player
|
||||
// Product Install (6.0r65)
|
||||
var hasProductInstall = DetectFlashVer(6, 0, 65);
|
||||
|
||||
// Version check based upon the values defined in globals
|
||||
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
||||
|
||||
if ( hasProductInstall && !hasRequestedVersion ) {
|
||||
// DO NOT MODIFY THE FOLLOWING FOUR LINES
|
||||
// Location visited after installation is complete if installation is
|
||||
// required
|
||||
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
|
||||
var MMredirectURL = window.location;
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
var MMdoctitle = document.title;
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "playerProductInstall",
|
||||
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
|
||||
"width", "800",
|
||||
"height", "840",
|
||||
"align", "middle",
|
||||
"id", "EgoCentric",
|
||||
"quality", "high",
|
||||
"bgcolor", "#ffffff",
|
||||
"name", "EgoCentric",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else if (hasRequestedVersion) {
|
||||
// if we've detected an acceptable version
|
||||
// embed the Flash Content SWF when all tests are passed
|
||||
//coAuthorUrl=/vivo1/visualization?vis=coauthorship%26render_mode=data%26uri=http%3A%2F%2Fvivo.iu.edu%2Findividual%2FBrnerKaty&labelField=label&coPIUrl=/vivo1/visualization?vis=coprincipalinvestigator%26render_mode=data%26uri=http%3A%2F%2Fvivo.iu.edu%2Findividual%2FBrnerKaty&labelField=label
|
||||
AC_FL_RunContent(
|
||||
"src", swfLink,
|
||||
// "flashVars", 'coAuthorUrl='+ encodeURL(egoCoAuthorshipDataFeederURL) + '&coPIUrl=' + encodeURL(egoCoPIDataFeederURL) ,
|
||||
// "flashVars", 'coAuthorUrl='+ getEncodedCoAuthorURL() + '&coPIUrl=' + getEncodedCoPIURL() ,
|
||||
// "flashVars", 'graphmlUrl=' + getEncodedCoAuthorURL() + '&labelField=label&visType=CoAuthor',
|
||||
"flashVars", 'graphmlUrl=' + encodedURL + '&labelField=label&visType='+visualization,
|
||||
"width", "600",
|
||||
"height", "850",
|
||||
"align", "top",
|
||||
"id", "EgoCentric",
|
||||
"quality", "high",
|
||||
"bgcolor", "#ffffff",
|
||||
"name", "EgoCentric",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else { // flash is too old or we can't detect the plugin
|
||||
var alternateContent = '<br /><h3 style="color: red;">'
|
||||
+ 'This content requires the Adobe Flash Player. '
|
||||
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a></h3>';
|
||||
document.write(alternateContent); // insert non-flash content
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -15,19 +15,19 @@
|
|||
<div class="staticPageBackground">
|
||||
<div id="${visContainerID}">
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
function drawCoauthorsSparklineVisualization(providedSparklineImgTD) {
|
||||
|
||||
var data = new google.visualization.DataTable();
|
||||
data.addColumn('string', 'Year');
|
||||
data.addColumn('number', 'Unique co-authors');
|
||||
data.addRows(${sparklineVO.numOfYearsToBeRendered});
|
||||
|
||||
data.addRows(${sparklineVO.yearToEntityCountDataTable?size});
|
||||
|
||||
<#list sparklineVO.yearToEntityCountDataTable as yearToUniqueCoauthorsDataElement>
|
||||
data.setValue(${yearToUniqueCoauthorsDataElement.yearToEntityCounter}, 0, '${yearToUniqueCoauthorsDataElement.year}');
|
||||
data.setValue(${yearToUniqueCoauthorsDataElement.yearToEntityCounter}, 1, ${yearToUniqueCoauthorsDataElement.currentEntitiesCount});
|
||||
</#list>
|
||||
|
||||
|
||||
<#-- Create a view of the data containing only the column pertaining to coauthors count. -->
|
||||
var sparklineDataView = new google.visualization.DataView(data);
|
||||
sparklineDataView.setColumns([1]);
|
||||
|
@ -43,9 +43,8 @@
|
|||
maxValue: '${sparklineVO.latestRenderedPublicationYear?c}'
|
||||
}]));
|
||||
|
||||
|
||||
<#else>
|
||||
|
||||
|
||||
</#if>
|
||||
|
||||
|
||||
|
@ -87,6 +86,7 @@
|
|||
var sparksText = ' co-author(s) from <span class="sparkline_range">${sparklineVO.earliestYearConsidered?c}'
|
||||
+ ' to ${sparklineVO.latestRenderedPublicationYear?c}</span> '
|
||||
+ ' <a href="${sparklineVO.downloadDataLink}" class="inline_href">(.CSV File)</a> ';
|
||||
|
||||
</#if>
|
||||
|
||||
$('#${sparklineContainerID} td.sparkline_text').html(sparksText);
|
||||
|
@ -152,7 +152,9 @@
|
|||
});
|
||||
</script>
|
||||
|
||||
</div><!-- Sparkline Viz -->
|
||||
</div>
|
||||
|
||||
<!-- Sparkline Viz -->
|
||||
|
||||
<#if sparklineVO.shortVisMode>
|
||||
<#--<span class="vis_link">-->
|
||||
|
@ -161,37 +163,23 @@
|
|||
<#else>
|
||||
<!-- For Full Sparkline - Print the Table of Couauthor Counts per Year -->
|
||||
<p>
|
||||
<table id='sparkline_data_table'>
|
||||
<caption>
|
||||
Unique Co-Authors per year <a href="${sparklineVO.downloadDataLink}">(.CSV File)</a>
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Year
|
||||
</th>
|
||||
<th>
|
||||
Count
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<#if displayTable?? && displayTable>
|
||||
|
||||
<p>
|
||||
<#assign tableID = "sparkline_data_table" />
|
||||
<#assign tableCaption = "Unique Co-Authors per year " />
|
||||
<#assign tableActivityColumnName = "Count" />
|
||||
<#assign tableContent = sparklineVO.yearToActivityCount />
|
||||
<#assign fileDownloadLink = sparklineVO.downloadDataLink />
|
||||
|
||||
<#include "yearToActivityCountTable.ftl">
|
||||
|
||||
Download data as <a href="${sparklineVO.downloadDataLink}">.csv</a> file.
|
||||
<br />
|
||||
</p>
|
||||
|
||||
</#if>
|
||||
|
||||
<#list sparklineVO.yearToActivityCount?keys as year>
|
||||
<tr>
|
||||
<td>
|
||||
${year}
|
||||
</td>
|
||||
<td>
|
||||
${sparklineVO.yearToActivityCount[year]}
|
||||
</td>
|
||||
</tr>
|
||||
</#list>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
Download data as <a href="${sparklineVO.downloadDataLink}">.csv</a> file.
|
||||
<br />
|
||||
</p>
|
||||
</#if>
|
||||
</div>
|
|
@ -5,12 +5,12 @@
|
|||
<#assign dataVisualizationURLRoot ="/visualizationData">
|
||||
|
||||
<#assign egoURI ="${egoURIParam?url}">
|
||||
<#assign egoCoAuthorshipDataFeederURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&visMode=coauthor_network_stream&labelField=label'>
|
||||
<#assign egoCoAuthorshipDataFeederURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&vis_mode=coauthor_network_stream&labelField=label'>
|
||||
|
||||
<#assign coprincipalinvestigatorURL = '${urls.base}${standardVisualizationURLRoot}?vis=person_level&uri=${egoURI}&visMode=copi'>
|
||||
<#assign coprincipalinvestigatorURL = '${urls.base}${standardVisualizationURLRoot}?vis=person_level&uri=${egoURI}&vis_mode=copi'>
|
||||
|
||||
<#assign egoCoAuthorsListDataFileURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&visMode=coauthors'>
|
||||
<#assign egoCoAuthorshipNetworkDataFileURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&visMode=coauthor_network_download'>
|
||||
<#assign egoCoAuthorsListDataFileURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&vis_mode=coauthors'>
|
||||
<#assign egoCoAuthorshipNetworkDataFileURL = '${urls.base}${dataVisualizationURLRoot}?vis=coauthorship&uri=${egoURI}&vis_mode=coauthor_network_download'>
|
||||
|
||||
<#assign swfLink = '${urls.images}/visualization/coauthorship/EgoCentric.swf'>
|
||||
<#assign adobeFlashDetector = '${urls.base}/js/visualization/coauthorship/AC_OETags.js'>
|
||||
|
@ -63,16 +63,15 @@ var domainParam = "http://vivo-vis-test.slis.indiana.edu/vivo1/visualizationData
|
|||
<script language="JavaScript" type="text/javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
|
||||
<#if (numOfCoAuthorShips > 0) >
|
||||
$("#coauth_table_container").empty().html('<img id="loadingData" width="auto" src="${loadingImageLink}" />');
|
||||
</#if>
|
||||
|
||||
|
||||
processProfileInformation("ego_label",
|
||||
"ego_moniker",
|
||||
"ego_profile_image",
|
||||
jQuery.parseJSON(getWellFormedURLs("${egoURI}", "profile_info")));
|
||||
jQuery.parseJSON(getWellFormedURLs("${egoURIParam}", "profile_info")));
|
||||
|
||||
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips <= 0) || (numOfAuthors?? && numOfAuthors <= 0) >
|
||||
if ($('#ego_label').text().length > 0) {
|
||||
|
@ -96,7 +95,7 @@ $(document).ready(function(){
|
|||
|
||||
<div class = "toggle_visualization">
|
||||
<h2>Co-Investigator Network</h2>
|
||||
<a style = "margin-top:0px;" class="view-all-style" href='<c:out value="${coprincipalinvestigatorURL}"/>'>View</a>
|
||||
<a style = "margin-top:0px;" class="view-all-style" href='${coprincipalinvestigatorURL}'>View</a>
|
||||
<span class="pictos-arrow-10">4</span>
|
||||
</div>
|
||||
|
||||
|
@ -106,7 +105,7 @@ $(document).ready(function(){
|
|||
|
||||
<h2 class="sub_headings">Co-Author Network </h2>
|
||||
|
||||
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips <= 0) || (numOfAuthors?? && numOfAuthors <= 0) >
|
||||
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) >
|
||||
<a class = "fileDownloadPlaceHolder" href="${egoCoAuthorshipNetworkDataFileURL}">(GraphML File)</a>
|
||||
<#else>
|
||||
|
||||
|
@ -130,8 +129,8 @@ $(document).ready(function(){
|
|||
</#if>
|
||||
|
||||
</div>
|
||||
|
||||
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips <= 0) || (numOfAuthors?? && numOfAuthors <= 0) >
|
||||
|
||||
<#if (numOfCoAuthorShips?? && numOfCoAuthorShips > 0) || (numOfAuthors?? && numOfAuthors > 0) >
|
||||
|
||||
<div id="bodyPannel">
|
||||
<div id="visPanel" style="float: right; width: 600px;">
|
||||
|
@ -167,6 +166,9 @@ $(document).ready(function(){
|
|||
|
||||
<#-- Sparkline -->
|
||||
<div style="width: 60%; height: 100px; float:right;">
|
||||
|
||||
<#assign displayTable = false />
|
||||
|
||||
<#assign sparklineVO = egoPubSparklineVO />
|
||||
<#include "personPublicationSparklineContent.ftl">
|
||||
|
||||
|
@ -181,9 +183,19 @@ $(document).ready(function(){
|
|||
<h3 class="sub_headings" id="table_heading">Tables</h3>
|
||||
|
||||
<div class="vis-tables">
|
||||
|
||||
<p id="publications_table_container" class="datatable">
|
||||
TABLE
|
||||
|
||||
<#assign tableID = "publication_data_table" />
|
||||
<#assign tableCaption = "Publications per year " />
|
||||
<#assign tableActivityColumnName = "Publications" />
|
||||
<#assign tableContent = egoPubSparklineVO.yearToActivityCount />
|
||||
<#assign fileDownloadLink = egoPubSparklineVO.downloadDataLink />
|
||||
|
||||
<#include "yearToActivityCountTable.ftl">
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<#if (numOfCoAuthorShips > 0) >
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
var data = new google.visualization.DataTable();
|
||||
data.addColumn('string', 'Year');
|
||||
data.addColumn('number', 'Publications');
|
||||
data.addRows(${sparklineVO.numOfYearsToBeRendered});
|
||||
data.addRows(${sparklineVO.yearToEntityCountDataTable?size});
|
||||
|
||||
<#list sparklineVO.yearToEntityCountDataTable as yearToPublicationCountDataElement>
|
||||
data.setValue(${yearToPublicationCountDataElement.yearToEntityCounter}, 0, '${yearToPublicationCountDataElement.year}');
|
||||
|
@ -160,38 +160,25 @@
|
|||
<#--</span>-->
|
||||
<#else>
|
||||
<!-- For Full Sparkline - Print the Table of Publication Counts per Year -->
|
||||
<p>
|
||||
<table id='sparkline_data_table'>
|
||||
<caption>
|
||||
Publications per year <a href="${sparklineVO.downloadDataLink}">(.CSV File)</a>
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Year
|
||||
</th>
|
||||
<th>
|
||||
Publications
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<#list sparklineVO.yearToActivityCount?keys as year>
|
||||
<tr>
|
||||
<td>
|
||||
${year}
|
||||
</td>
|
||||
<td>
|
||||
${sparklineVO.yearToActivityCount[year]}
|
||||
</td>
|
||||
</tr>
|
||||
</#list>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
Download data as <a href="${sparklineVO.downloadDataLink}">.csv</a> file.
|
||||
<br />
|
||||
</p>
|
||||
<#if displayTable?? && displayTable>
|
||||
|
||||
<p>
|
||||
<#assign tableID = "sparkline_data_table" />
|
||||
<#assign tableCaption = "Publications per year " />
|
||||
<#assign tableActivityColumnName = "Publications" />
|
||||
<#assign tableContent = sparklineVO.yearToActivityCount />
|
||||
<#assign fileDownloadLink = sparklineVO.downloadDataLink />
|
||||
|
||||
<#include "yearToActivityCountTable.ftl">
|
||||
|
||||
Download data as <a href="${sparklineVO.downloadDataLink}">.csv</a> file.
|
||||
<br />
|
||||
</p>
|
||||
|
||||
|
||||
</#if>
|
||||
|
||||
|
||||
</#if>
|
||||
</div>
|
|
@ -0,0 +1,29 @@
|
|||
<table id='${tableID}'>
|
||||
<caption>
|
||||
${tableCaption} <a href="${fileDownloadLink}">(.CSV File)</a>
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Year
|
||||
</th>
|
||||
<th>
|
||||
${tableActivityColumnName}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<#list tableContent?keys as year>
|
||||
<tr>
|
||||
<td>
|
||||
${year}
|
||||
</td>
|
||||
<td>
|
||||
${tableContent[year]}
|
||||
</td>
|
||||
</tr>
|
||||
</#list>
|
||||
|
||||
</tbody>
|
||||
</table>
|
|
@ -148,6 +148,8 @@ public class CoAuthorshipVisCodeGenerator {
|
|||
|
||||
numOfYearsToBeRendered = currentYear - minPubYearConsidered + 1;
|
||||
|
||||
sparklineData.setNumOfYearsToBeRendered(numOfYearsToBeRendered);
|
||||
|
||||
visualizationCode.append("<style type='text/css'>"
|
||||
+ "." + VISUALIZATION_STYLE_CLASS + " table{"
|
||||
+ " margin: 0;"
|
||||
|
|
|
@ -82,7 +82,7 @@ public class PersonLevelRequestHandler implements VisualizationRequestHandler {
|
|||
VisualizationFrameworkConstants.VIS_MODE_KEY);
|
||||
|
||||
|
||||
if (VisualizationFrameworkConstants.CO_PI_VIS.equalsIgnoreCase(visMode)) {
|
||||
if (VisualizationFrameworkConstants.COPI_VIS_MODE.equalsIgnoreCase(visMode)) {
|
||||
|
||||
QueryRunner<CoPIData> coPIQueryManager = new CoPIGrantCountQueryRunner(egoURI, dataSource, log);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue