diff --git a/productMods/templates/freemarker/visualization/coauthorship/coAuthorship.ftl b/productMods/templates/freemarker/visualization/coauthorship/coAuthorship.ftl
deleted file mode 100644
index c6a894a2..00000000
--- a/productMods/templates/freemarker/visualization/coauthorship/coAuthorship.ftl
+++ /dev/null
@@ -1,241 +0,0 @@
-<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
-
-<#assign visImageContextPath = "${urls.images}/visualization/" >
-<#assign loadingImageLink = "${visImageContextPath}ajax-loader.gif">
-
-<#assign egoVivoProfileURL = "${urls.base}/individual?uri=${egoURI}">
-
-<#assign egoSparklineDataURL = '${urls.base}${dataVisualizationURLRoot}?vis=person_pub_count&uri=${egoURI}&labelField=label'>
-<#assign coAuthorshipDownloadFile = '${urls.base}${dataVisualizationURLRoot}?vis=person_level&uri=${egoURI}&labelField=label'>
-
-
-
-
-<#--
-
-Support for this has ended. Only created for the VIVO Conf Demo.
-
-
-
-
-
-
-
-
- <%-- Image --%>
-
-
- <%-- Label --%>
-
-
- <%-- Moniker--%>
-
-
-
-
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
-
-
- Currently there are no ${authorsText} papers for
- this author in the VIVO database.
-
-
-
-
-
- Currently there are no papers for
- this author in the VIVO database.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Publication(s)
-
Co-author(s)
-
-
First Publication
-
Last Publication
-
-
-
-
-
-
-
-
-
-
-
-
Table
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--->
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/sparklineAjaxVisContent.ftl b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipDynamicActivator.ftl
similarity index 59%
rename from productMods/templates/freemarker/visualization/sparklineAjaxVisContent.ftl
rename to productMods/templates/freemarker/visualization/coauthorship/coAuthorshipDynamicActivator.ftl
index d7bbedb4..d8a556c1 100644
--- a/productMods/templates/freemarker/visualization/sparklineAjaxVisContent.ftl
+++ b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipDynamicActivator.ftl
@@ -1,5 +1,5 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#if shouldVIVOrenderVis>
- <#include "/visualization/publicationSparklineContent.ftl">
+ <#include "/visualization/coauthorship/coAuthorshipSparklineContent.ftl">
#if>
diff --git a/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipSparklineContent.ftl b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipSparklineContent.ftl
new file mode 100644
index 00000000..c9fd039c
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipSparklineContent.ftl
@@ -0,0 +1,197 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+<#assign visContainerID = '${sparklineVO.visContainerDivID}'>
+
+<#if sparklineVO.shortVisMode>
+ <#assign sparklineContainerID = 'unique_coauthors_short_sparkline_vis'>
+<#else>
+ <#assign sparklineContainerID = 'unique_coauthors_full_sparkline_vis'>
+#if>
+
+<#-- This is used to prevent collision between sparkline & visualization conatiner div ids. -->
+<#if visContainerID?upper_case == sparklineContainerID?upper_case>
+ <#assign sparklineContainerID = visContainerID + "_spark">
+#if>
+
+
+
+
+
+
+
+ <#if sparklineVO.shortVisMode>
+ <#--
-->
+ View full timeline and co-author network.
+ <#---->
+ <#else>
+
+
+
+
+ Unique Co-Authors per year (.CSV File)
+
+
+
+
+ Year
+ |
+
+ Count
+ |
+
+
+
+
+ <#list sparklineVO.yearToActivityCount?keys as year>
+
+
+ ${year}
+ |
+
+ ${sparklineVO.yearToActivityCount[year]}
+ |
+
+ #list>
+
+
+
+ Download data as
.csv file.
+
+
+ #if>
+
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipStandaloneActivator.ftl b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipStandaloneActivator.ftl
new file mode 100644
index 00000000..fae5834c
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/coauthorship/coAuthorshipStandaloneActivator.ftl
@@ -0,0 +1,7 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+
+<#assign googleJSAPI = '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'>
+
+${headScripts.add(googleJSAPI)}
+
+<#include "/visualization/coauthorship/coAuthorshipSparklineContent.ftl">
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/grantSparklineContent.ftl b/productMods/templates/freemarker/visualization/grantSparklineContent.ftl
index 5844e8f8..3420e087 100644
--- a/productMods/templates/freemarker/visualization/grantSparklineContent.ftl
+++ b/productMods/templates/freemarker/visualization/grantSparklineContent.ftl
@@ -58,9 +58,9 @@
data.addColumn('number', 'Grants');
data.addRows(${sparklineVO.numOfYearsToBeRendered});
- <#list sparklineVO.yearToGrantCountDataTable as yearToGrantCountDataElement>
- data.setValue(${yearToGrantCountDataElement.grantCounter}, 0, '${yearToGrantCountDataElement.investigatedYear}');
- data.setValue(${yearToGrantCountDataElement.grantCounter}, 1, ${yearToGrantCountDataElement.currentGrants});
+ <#list sparklineVO.yearToEntityCountDataTable as yearToGrantCountDataElement>
+ data.setValue(${yearToGrantCountDataElement.yearToEntityCounter}, 0, '${yearToGrantCountDataElement.year}');
+ data.setValue(${yearToGrantCountDataElement.yearToEntityCounter}, 1, ${yearToGrantCountDataElement.currentEntitiesCount});
#list>
<#-- Create a view of the data containing only the column pertaining to grant count. -->
diff --git a/productMods/templates/freemarker/visualization/personPublicationCountDynamicActivator.ftl b/productMods/templates/freemarker/visualization/personPublicationCountDynamicActivator.ftl
new file mode 100644
index 00000000..2075785c
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/personPublicationCountDynamicActivator.ftl
@@ -0,0 +1,5 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+
+<#if shouldVIVOrenderVis>
+ <#include "/visualization/publication/personPublicationSparklineContent.ftl">
+#if>
diff --git a/productMods/templates/freemarker/visualization/publicationCount.ftl b/productMods/templates/freemarker/visualization/personPublicationCountStandaloneActivator.ftl
similarity index 84%
rename from productMods/templates/freemarker/visualization/publicationCount.ftl
rename to productMods/templates/freemarker/visualization/personPublicationCountStandaloneActivator.ftl
index ab78c65a..3035ba93 100644
--- a/productMods/templates/freemarker/visualization/publicationCount.ftl
+++ b/productMods/templates/freemarker/visualization/personPublicationCountStandaloneActivator.ftl
@@ -4,4 +4,4 @@
${headScripts.add(googleJSAPI)}
-<#include "/visualization/publicationSparklineContent.ftl">
\ No newline at end of file
+<#include "/visualization/personPublicationSparklineContent.ftl">
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/publicationSparklineContent.ftl b/productMods/templates/freemarker/visualization/personPublicationSparklineContent.ftl
similarity index 96%
rename from productMods/templates/freemarker/visualization/publicationSparklineContent.ftl
rename to productMods/templates/freemarker/visualization/personPublicationSparklineContent.ftl
index a7c31ff8..46e8da66 100644
--- a/productMods/templates/freemarker/visualization/publicationSparklineContent.ftl
+++ b/productMods/templates/freemarker/visualization/personPublicationSparklineContent.ftl
@@ -23,9 +23,9 @@
data.addColumn('number', 'Publications');
data.addRows(${sparklineVO.numOfYearsToBeRendered});
- <#list sparklineVO.yearToPublicationCountDataTable as yearToPublicationCountDataElement>
- data.setValue(${yearToPublicationCountDataElement.publicationCounter}, 0, '${yearToPublicationCountDataElement.publishedYear}');
- data.setValue(${yearToPublicationCountDataElement.publicationCounter}, 1, ${yearToPublicationCountDataElement.currentPublications});
+ <#list sparklineVO.yearToEntityCountDataTable as yearToPublicationCountDataElement>
+ data.setValue(${yearToPublicationCountDataElement.yearToEntityCounter}, 0, '${yearToPublicationCountDataElement.year}');
+ data.setValue(${yearToPublicationCountDataElement.yearToEntityCounter}, 1, ${yearToPublicationCountDataElement.currentEntitiesCount});
#list>
<#-- Create a view of the data containing only the column pertaining to publication count. -->
diff --git a/productMods/templates/freemarker/visualization/publication/personPublicationCountDynamicActivator.ftl b/productMods/templates/freemarker/visualization/publication/personPublicationCountDynamicActivator.ftl
new file mode 100644
index 00000000..2075785c
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/publication/personPublicationCountDynamicActivator.ftl
@@ -0,0 +1,5 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+
+<#if shouldVIVOrenderVis>
+ <#include "/visualization/publication/personPublicationSparklineContent.ftl">
+#if>
diff --git a/productMods/templates/freemarker/visualization/publication/personPublicationCountStandaloneActivator.ftl b/productMods/templates/freemarker/visualization/publication/personPublicationCountStandaloneActivator.ftl
new file mode 100644
index 00000000..2de2615e
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/publication/personPublicationCountStandaloneActivator.ftl
@@ -0,0 +1,7 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+
+<#assign googleJSAPI = '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'>
+
+${headScripts.add(googleJSAPI)}
+
+<#include "/visualization/publication/personPublicationSparklineContent.ftl">
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/publication/personPublicationSparklineContent.ftl b/productMods/templates/freemarker/visualization/publication/personPublicationSparklineContent.ftl
new file mode 100644
index 00000000..46e8da66
--- /dev/null
+++ b/productMods/templates/freemarker/visualization/publication/personPublicationSparklineContent.ftl
@@ -0,0 +1,199 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+<#assign visContainerID = '${sparklineVO.visContainerDivID}'>
+
+<#if sparklineVO.shortVisMode>
+ <#assign sparklineContainerID = 'pub_count_short_sparkline_vis'>
+<#else>
+ <#assign sparklineContainerID = 'pub_count_full_sparkline_vis'>
+#if>
+
+<#-- This is used to prevent collision between sparkline & visualization conatiner div ids. -->
+<#if visContainerID?upper_case == sparklineContainerID?upper_case>
+ <#assign sparklineContainerID = visContainerID + "_spark">
+#if>
+
+
+
+
+
+
+
+ <#if sparklineVO.shortVisMode>
+ <#--
-->
+ View all VIVO publications and corresponding co-author network.
+ <#---->
+ <#else>
+
+
+
+
+ Publications per year (.CSV File)
+
+
+
+
+ Year
+ |
+
+ Publications
+ |
+
+
+
+
+ <#list sparklineVO.yearToActivityCount?keys as year>
+
+
+ ${year}
+ |
+
+ ${sparklineVO.yearToActivityCount[year]}
+ |
+
+ #list>
+
+
+
+ Download data as
.csv file.
+
+
+ #if>
+
\ No newline at end of file
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/freemarker/coauthorship/CoAuthorshipVisCodeGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/freemarker/coauthorship/CoAuthorshipVisCodeGenerator.java
index 3452bf74..6a112d56 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/freemarker/coauthorship/CoAuthorshipVisCodeGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/freemarker/coauthorship/CoAuthorshipVisCodeGenerator.java
@@ -2,10 +2,12 @@
package edu.cornell.mannlib.vitro.webapp.visualization.freemarker.coauthorship;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
@@ -18,8 +20,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMa
import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Node;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineData;
+import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Node;
+import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.SparklineData;
+import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.YearToEntityCountDataElement;
@SuppressWarnings("serial")
@@ -172,6 +175,7 @@ public class CoAuthorshipVisCodeGenerator {
int uniqueCoAuthorCounter = 0;
int renderedFullSparks = 0;
Set