From d098190f43ff8d6ab811b77b66854bd95ac0a887 Mon Sep 17 00:00:00 2001
From: Eike Cochu <eike@cochu.com>
Date: Fri, 29 Apr 2016 23:34:13 +0200
Subject: [PATCH] added series highlight to word evolution

---
 vipra-ui/app/html/directives/entity-menu.html |  2 ++
 vipra-ui/app/html/directives/topic-menu.html  |  5 +++--
 .../app/html/directives/word-evolution.html   |  2 +-
 vipra-ui/app/html/directives/word-menu.html   |  2 ++
 vipra-ui/app/js/controllers.js                | 20 +++++++++++++++++++
 5 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/vipra-ui/app/html/directives/entity-menu.html b/vipra-ui/app/html/directives/entity-menu.html
index bd253dcd..c90b918b 100644
--- a/vipra-ui/app/html/directives/entity-menu.html
+++ b/vipra-ui/app/html/directives/entity-menu.html
@@ -3,6 +3,8 @@
     <i class="fa fa-caret-down"></i>
   </a>
   <ul class="dropdown-menu" ng-class="{'dropdown-menu-right':dropdownRight}">
+    <li><a ui-sref="entities.show({id:entity.id})">Show</a></li>
+    <li role="separator" class="divider"></li>
     <li><a ui-sref="entities.show.articles({id:entity.id})">Articles</a></li>
     <li role="separator" class="divider"></li>
     <li><a ng-href="{{entity.url}}" target="_blank"><span class="dbpedia-logo"></span> DBPedia</a></li>
diff --git a/vipra-ui/app/html/directives/topic-menu.html b/vipra-ui/app/html/directives/topic-menu.html
index 02497524..7cd58bbc 100644
--- a/vipra-ui/app/html/directives/topic-menu.html
+++ b/vipra-ui/app/html/directives/topic-menu.html
@@ -3,9 +3,10 @@
     <i class="fa fa-caret-down"></i>
   </a>
   <ul class="dropdown-menu" ng-class="{'dropdown-menu-right':dropdownRight}">
+    <li><a ui-sref="topics.show({id:topic.id})">Show</a></li>
+    <li><a ng-click="renameTopic()">Rename...</a></li>
+    <li role="separator" class="divider"></li>
     <li><a ui-sref="network({type:'topics',id:topic.id})">Network</a></li>
     <li><a ui-sref="topics.show.articles({id:topic.id})">Articles</a></li>
-    <li role="separator" class="divider"></li>
-    <li><a ng-click="renameTopic()">Rename...</a></li>
   </ul>
 </div>
diff --git a/vipra-ui/app/html/directives/word-evolution.html b/vipra-ui/app/html/directives/word-evolution.html
index 22939158..3ec5b9fb 100644
--- a/vipra-ui/app/html/directives/word-evolution.html
+++ b/vipra-ui/app/html/directives/word-evolution.html
@@ -18,7 +18,7 @@
   <div class="panel-body">
     <div class="topic-list sidebar">
       <ul class="list-unstyled item-choice">
-        <li ng-repeat="word in topic.words">
+        <li ng-repeat="word in topic.words" ng-mouseenter="highlightSeries(word.id, true)" ng-mouseleave="highlightSeries(word.id, false)">
           <div class="checkbox checkbox-condensed" ng-class="{selected:word.selected}">
             <input tabindex="0" type="checkbox" ng-model="word.selected" ng-attr-id="{{::word.id}}" ng-change="redrawWordEvolutionChart()">
             <label class="check" ng-attr-for="{{::word.id}}">
diff --git a/vipra-ui/app/html/directives/word-menu.html b/vipra-ui/app/html/directives/word-menu.html
index 103531b1..69fc83b4 100644
--- a/vipra-ui/app/html/directives/word-menu.html
+++ b/vipra-ui/app/html/directives/word-menu.html
@@ -3,6 +3,8 @@
     <i class="fa fa-caret-down"></i>
   </a>
   <ul class="dropdown-menu" ng-class="{'dropdown-menu-right':dropdownRight}">
+    <li><a ui-sref="words.show({id:word.id})">Show</a></li>
+    <li role="separator" class="divider"></li>
     <li><a ui-sref="words.show.topics({id:word.id})">Topics</a></li>
     <li><a ui-sref="words.show.articles({id:word.id})">Articles</a></li>
   </ul>
diff --git a/vipra-ui/app/js/controllers.js b/vipra-ui/app/js/controllers.js
index 6977ff31..0303126f 100644
--- a/vipra-ui/app/js/controllers.js
+++ b/vipra-ui/app/js/controllers.js
@@ -1432,6 +1432,7 @@
               probs.push([new Date($scope.topic.sequences[j].window.startDate).getTime(), prob]);
             }
             evolutions.push({
+              id: word.id,
               name: word.id,
               color: word.color,
               data: probs
@@ -1443,6 +1444,25 @@
         $scope.wordsSelected = evolutions.length;
       };
 
+      $scope.highlightSeries = function(id, toggle) {
+        if (!$scope.wordsSelected) return;
+        var highcharts = $('#' + $scope.chartId).highcharts();
+        if (!highcharts) return;
+        var series = highcharts.get(id);
+        if (!series) return;
+
+        if (toggle) {
+          series.onMouseOver();
+          series.group.zIndexOrig = series.group.zIndex;
+          series.group.zIndexSetter(9999, 'zIndex');
+          series.graph.attr('stroke', '#000000').attr('stroke-dasharray', '5,5');
+        } else {
+          series.onMouseOut();
+          series.group.zIndexSetter(series.group.zIndexOrig, 'zIndex');
+          series.graph.attr('stroke', series.color).attr('stroke-dasharray', '');
+        }
+      };
+
       $scope.$watchGroup(['wordSeqstyle', 'wordChartstyle', 'topic'], $scope.redrawWordEvolutionChart);
 
       $scope.$watch('topic', function() {
-- 
GitLab