diff --git a/productMods/css/individual/individual-vivo.css b/productMods/css/individual/individual-vivo.css
index 56e2771e..7db57798 100644
--- a/productMods/css/individual/individual-vivo.css
+++ b/productMods/css/individual/individual-vivo.css
@@ -32,6 +32,24 @@ div.overview-value :last-child {
padding-right: 10px;
vertical-align: text-top;
}
+
+/* <------ INDIVIDUAL MAP OF SCIENCE */
+#map-of-science {
+ float: right;
+ padding: 0 3px 20px 0;
+ background-color: #fff;
+}
+
+#map-of-science h3 {
+ margin: 0;
+ padding: 0;
+}
+#map-of-science h3 img {
+ padding-right: 10px;
+ vertical-align: text-top;
+}
+
+
/* <------ POSITIONS */
ul#individual-personInPosition {
list-style-type: circle;
diff --git a/productMods/css/visualization/mapofscience/layout.css b/productMods/css/visualization/mapofscience/layout.css
index e394fbf0..fca63e8f 100644
--- a/productMods/css/visualization/mapofscience/layout.css
+++ b/productMods/css/visualization/mapofscience/layout.css
@@ -9,6 +9,15 @@
width: 100%;
}
+#map-of-science-info {
+ margin-bottom: 6px;
+ margin-top: -6px;
+}
+
+.hide-dom-on-init {
+ display: none;
+}
+
#left-column {
float: left;
width: 260px;
@@ -24,6 +33,12 @@
height: 480px;
}
+#percent-mapped-info {
+ float:right;
+ display: none;
+ margin-top: 5px;
+}
+
#header-entity-label {
font-family: "Lucida Sans Unicode","Lucida Grande", Geneva, helvetica, sans-serif;
font-size: 1.5275em;
@@ -102,6 +117,10 @@ a.clear-selected-entities {
/* table */
+.science-area-tab {
+
+}
+
#main-science-areas-table-container table {
cellpadding: 0;
cellspacing: 0;
@@ -119,6 +138,10 @@ a.clear-selected-entities {
width: 100%;
}
+table.datatable-table tbody tr {
+ border-top: 3px solid;
+}
+
#main-science-areas-table-footer {
margin-top: 10px;
text-align: left;
@@ -136,4 +159,4 @@ a.clear-selected-entities {
.paginatedtabs {
font-size: 0.81em;
-}
+}
\ No newline at end of file
diff --git a/productMods/js/visualization/mapofscience/DataTableWidget.js b/productMods/js/visualization/mapofscience/DataTableWidget.js
index e7388c3e..b2ab131c 100644
--- a/productMods/js/visualization/mapofscience/DataTableWidget.js
+++ b/productMods/js/visualization/mapofscience/DataTableWidget.js
@@ -19,8 +19,8 @@ var DataTableWidget = Class.extend({
widget: '',
- init: function(opts) {
- this.opts = opts;
+ init: function(sciMapWidget) {
+ this.sciMapWidget = sciMapWidget;
this.subdisciplineInfo = {};
this.disciplineInfo = {};
@@ -64,10 +64,10 @@ var DataTableWidget = Class.extend({
me.disciplineInfo[currentSubdisciplinesDiscipline].publicationCount =
me.disciplineInfo[currentSubdisciplinesDiscipline].publicationCount + density;
-
}
-
});
+
+ $(".hide-dom-on-init").show();
me.setupView();
},
hasKey: function(key) {
@@ -81,6 +81,13 @@ var DataTableWidget = Class.extend({
},
initView: function() {
},
+ parseIDIntoScienceTypeAreaID: function(rawID) {
+
+ var type = rawID.substring(0, rawID.indexOf("-"));
+ var area = rawID.substring(rawID.indexOf("-") + 1);
+
+ return [type, area];
+ },
setupView: function() {
var me = this;
@@ -125,7 +132,7 @@ var DataTableWidget = Class.extend({
var i = 0;
$.each(me.disciplineInfo, function(index, item) {
- rowsToInsert[i++] = '
' + SCIMAP_TYPE.DISCIPLINE + ' | ';
+ rowsToInsert[i++] = '
' + SCIMAP_TYPE.DISCIPLINE + ' | ';
rowsToInsert[i++] = '' + item.label + ' | ';
rowsToInsert[i++] = '' + item.publicationCount.toFixed(1) + ' | ';
rowsToInsert[i++] = '' + (100 * (item.publicationCount / me.pubsMapped)).toFixed(1) + ' |
';
@@ -133,7 +140,7 @@ var DataTableWidget = Class.extend({
$.each(me.subdisciplineInfo, function(index, item) {
- rowsToInsert[i++] = '' + SCIMAP_TYPE.SUBDISCIPLINE + ' | ';
+ rowsToInsert[i++] = '
' + SCIMAP_TYPE.SUBDISCIPLINE + ' | ';
rowsToInsert[i++] = '' + item.label + ' | ';
rowsToInsert[i++] = '' + item.publicationCount.toFixed(1) + ' | ';
rowsToInsert[i++] = '' + (100 * (item.publicationCount / me.pubsMapped)).toFixed(1) + ' |
';
@@ -144,6 +151,18 @@ var DataTableWidget = Class.extend({
table.append(tbody);
$("#" + me.dom.containerID).append(table);
+ table.children("tbody").children("tr").mouseenter(function() {
+
+ var params = me.parseIDIntoScienceTypeAreaID($(this).attr("id"));
+ me.sciMapWidget.mouseIn(params[0], params[1]);
+ });
+
+ table.children("tbody").children("tr").mouseleave(function() {
+
+ var params = me.parseIDIntoScienceTypeAreaID($(this).attr("id"));
+ me.sciMapWidget.mouseOut(params[0], params[1]);
+ });
+
/*
* GMAIL_STYLE_PAGINATION_CONTAINER_CLASS, ACTIVE_DISCIPLINE_SUBDISCIPLINE_FILTER has to be declared
* for the filter & pagination to work properly.
@@ -195,7 +214,11 @@ var DataTableWidget = Class.extend({
me.widget.fnFilter("");
});
+ $("#percent-mapped-info").show();
+ $("#percent-mapped").text((100 * me.pubsMapped / (me.pubsWithNoJournals + me.pubsWithInvalidJournals + me.pubsMapped)).toFixed(2));
+
},
+
changeFilter: function(filterType) {
var me = this;
diff --git a/productMods/js/visualization/mapofscience/MarkerManager.js b/productMods/js/visualization/mapofscience/MarkerManager.js
index ecaca7e3..451808b5 100644
--- a/productMods/js/visualization/mapofscience/MarkerManager.js
+++ b/productMods/js/visualization/mapofscience/MarkerManager.js
@@ -108,7 +108,7 @@ ScimapMarkerManager = MarkerManager.extend({
marker.focus();
});
},
- mouseIn: function(key) {
+ mouseOut: function(key) {
var marker = this.getMarker(key);
if (marker) {
marker.unfocus();
diff --git a/productMods/js/visualization/mapofscience/VisModeControllers.js b/productMods/js/visualization/mapofscience/VisModeControllers.js
index a60815af..241643f4 100644
--- a/productMods/js/visualization/mapofscience/VisModeControllers.js
+++ b/productMods/js/visualization/mapofscience/VisModeControllers.js
@@ -39,7 +39,7 @@ var EntityVisModeController = Class.extend({
initWidgets: function(map, sliderControl) {
var widgets = {};
widgets['scimap'] = new ScimapWidget(map, sliderControl);
- widgets['sci_area_table'] = new DataTableWidget();
+ widgets['sci_area_table'] = new DataTableWidget(widgets['scimap']);
this.widgets = widgets;
},
diff --git a/productMods/templates/freemarker/body/individual/individual--foaf-organization.ftl b/productMods/templates/freemarker/body/individual/individual--foaf-organization.ftl
index 15769149..1ff898c4 100644
--- a/productMods/templates/freemarker/body/individual/individual--foaf-organization.ftl
+++ b/productMods/templates/freemarker/body/individual/individual--foaf-organization.ftl
@@ -6,6 +6,8 @@
<#if temporalVisualizationEnabled>
<#assign classSpecificExtension>
<#include "individual-visualizationTemporalGraph.ftl">
+
+ <#include "individual-visualizationMapOfScience.ftl">
#assign>
#if>
diff --git a/productMods/templates/freemarker/body/partials/individual/individual-visualizationFoafPerson.ftl b/productMods/templates/freemarker/body/partials/individual/individual-visualizationFoafPerson.ftl
index 586eaeb6..a2cdeebc 100644
--- a/productMods/templates/freemarker/body/partials/individual/individual-visualizationFoafPerson.ftl
+++ b/productMods/templates/freemarker/body/partials/individual/individual-visualizationFoafPerson.ftl
@@ -18,7 +18,10 @@
<#if isAuthor>
<#assign coAuthorIcon = "${urls.images}/visualization/co_author_icon.png">
+ <#assign mapOfScienceIcon = "${urls.images}/visualization/mapofscience/vivo_scimap_icon_v001.png">
<#assign coAuthorVisUrl = individual.coAuthorVisUrl>
+ <#assign mapOfScienceVisUrl = individual.mapOfScienceUrl>
+
<#assign googleJSAPI = "https://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%22imagesparkline%22%5D%7D%5D%7D">
@@ -28,12 +31,21 @@
-
+
+
+
+
+

+
+
+
+
${scripts.add('',
'',
'')}
diff --git a/productMods/templates/freemarker/body/partials/individual/individual-visualizationMapOfScience.ftl b/productMods/templates/freemarker/body/partials/individual/individual-visualizationMapOfScience.ftl
new file mode 100644
index 00000000..bcbf85a8
--- /dev/null
+++ b/productMods/templates/freemarker/body/partials/individual/individual-visualizationMapOfScience.ftl
@@ -0,0 +1,8 @@
+<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
+
+<#-- Map Of Science visualization -->
+
+
\ No newline at end of file
diff --git a/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceSetup.ftl b/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceSetup.ftl
index 3aecb8b8..acb6e41a 100644
--- a/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceSetup.ftl
+++ b/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceSetup.ftl
@@ -25,6 +25,8 @@
#if>
+<#assign mapOfScienceIcon = '${urls.images}/visualization/mapofscience/vivo_scimap_icon_v001.png'>
+
<#assign entityMapOfScienceDataURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=json">
<#assign entityMapOfScienceDisciplineCSVURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=csv&vis_mode=discipline">
<#assign entityMapOfScienceSubDisciplineCSVURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=csv&vis_mode=subdiscipline">
diff --git a/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceStandalone.ftl b/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceStandalone.ftl
index 494638a8..7b15c2c8 100644
--- a/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceStandalone.ftl
+++ b/productMods/templates/freemarker/visualization/mapOfScience/mapOfScienceStandalone.ftl
@@ -7,7 +7,24 @@ corresponding changes in the included Templates. -->
<#include "mapOfScienceSetup.ftl">
-
+
+<#--
+
+
+

+
+-->
+
+
+
+
Explore publication activity across 554 scientific sub-disciplines
+

+
+
+
@@ -32,7 +49,7 @@ corresponding changes in the included Templates. -->
554 Sub-Disciplines

+ title="Spiel on Discipline vs Sub-Discipline" />
@@ -42,5 +59,12 @@ corresponding changes in the included Templates. -->
-
+
+
+mapped
% of publications
+

+
+
\ No newline at end of file
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
index 06c7b5e6..d7584ec1 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
@@ -125,6 +125,7 @@ public class VisualizationFrameworkConstants {
public static final String UTILITIES_VIS = "utilities";
public static final String ENTITY_COMPARISON_VIS = "entity_comparison";
public static final String PUBLICATION_TEMPORAL_VIS_SHORT_URL = "publication-graph";
+ public static final String MAP_OF_SCIENCE_VIS_SHORT_URL = "map-of-science";
public static final String GRANT_TEMPORAL_VIS_SHORT_URL = "grant-graph";
public static final String CO_PI_VIS = "coprincipalinvestigator";
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
index 0fe4cb37..33395aac 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
@@ -121,7 +121,23 @@ public class MapOfScienceVisualizationRequestHandler implements
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
organizationEntity,
organizationWithAssociatedPeople);
- }
+ } /*else {
+
+
+ // This is for just people.
+ Set
test = new HashSet();
+
+ test.add(new SubEntity(subjectEntityURI));
+
+ documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities
+ .getPublicationsWithJournalForAssociatedPeople(dataset, test);
+
+ organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
+ organizationEntity,
+ organizationWithAssociatedPeople);
+
+
+ }*/
if (allDocumentURIToVOs.isEmpty() && documentURIForAssociatedPeopleTOVO.isEmpty()) {
diff --git a/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java b/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
index 2888a60b..3cc9efad 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
@@ -86,6 +86,13 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
return getVisUrl(temporalVisURL);
}
+ public String getMapOfScienceUrl() {
+
+ String mapOfScienceVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.MAP_OF_SCIENCE_VIS_SHORT_URL + "/";
+
+ return getVisUrl(mapOfScienceVisURL);
+ }
+
public String getSelfEditingId() {
String id = null;
String idMatchingProperty = ConfigurationProperties.getBean(getServletContext()).getProperty("selfEditing.idMatchingProperty");