From fbe8c463ed91e2a8262dd4a6f68f2d4653dd77e3 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Mon, 8 Sep 2014 16:32:12 +1200
Subject: [PATCH] Refs #3490 Display User ID in the Visitor Profile, in the
 Visitor log and Last visits widget link/tooltip opening the Visitor profile

---
 plugins/Live/API.php                                 | 2 ++
 plugins/Live/Visitor.php                             | 3 ++-
 plugins/Live/templates/_dataTableViz_visitorLog.twig | 3 ++-
 plugins/Live/templates/getSingleVisitSummary.twig    | 1 +
 plugins/Live/templates/getVisitorProfilePopup.twig   | 5 ++++-
 5 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index b18dedf598..c2acabb619 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -382,6 +382,8 @@ class API extends \Piwik\Plugin\API
             $visit->setColumn('serverDateTimePrettyFirstAction', $dateTimePretty);
         }
 
+        $result['userId'] = $visit->getColumn('userId');
+
         // get visitor IDs that are adjacent to this one in log_visit
         // TODO: make sure order of visitor ids is not changed if a returning visitor visits while the user is
         //       looking at the popup.
diff --git a/plugins/Live/Visitor.php b/plugins/Live/Visitor.php
index a1ab3d2ee1..d9bb556efd 100644
--- a/plugins/Live/Visitor.php
+++ b/plugins/Live/Visitor.php
@@ -87,7 +87,8 @@ class Visitor implements VisitorInterface
 
     function getUserId()
     {
-        if (!is_null($this->details['user_id'])) {
+        if (isset($this->details['user_id'])
+            && !is_null($this->details['user_id'])) {
             return $this->details['user_id'];
         }
         return false;
diff --git a/plugins/Live/templates/_dataTableViz_visitorLog.twig b/plugins/Live/templates/_dataTableViz_visitorLog.twig
index 6e53ce0253..17b762f603 100644
--- a/plugins/Live/templates/_dataTableViz_visitorLog.twig
+++ b/plugins/Live/templates/_dataTableViz_visitorLog.twig
@@ -176,7 +176,8 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
                 <div class="visitor-log-page-list">
                     {% if visitor.getColumn('visitorId') is not empty %}
                     <a class="visitor-log-visitor-profile-link" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.getColumn("visitorId") }}">
-                        <img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}</span>
+                        <img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}
+                            {%- if visitor.getColumn('userId') is not empty %}: {{ visitor.getColumn('userId')|raw }}{% endif %}</span>
                     </a>
                     {% endif %}
                     <strong>
diff --git a/plugins/Live/templates/getSingleVisitSummary.twig b/plugins/Live/templates/getSingleVisitSummary.twig
index aa378a6ccd..deb50b5252 100644
--- a/plugins/Live/templates/getSingleVisitSummary.twig
+++ b/plugins/Live/templates/getSingleVisitSummary.twig
@@ -35,6 +35,7 @@
             </div>
         </li>
         {% if visitData.resolution is defined %}<li><span>{{ 'UserSettings_ColumnResolution'|translate }}</span><strong>{{ visitData.resolution }}</strong></li>{% endif %}
+        {% if visitData.userId is defined %}<li><span>{{ 'General_UserId'|translate }}</span><strong>{{ visitData.userId|raw }}</strong></li>{% endif %}
         {% if visitReferralSummary is defined %}
         {%- set keywordNotDefined = 'General_NotDefined'|translate('General_ColumnKeyword'|translate) -%}
         <li>
diff --git a/plugins/Live/templates/getVisitorProfilePopup.twig b/plugins/Live/templates/getVisitorProfilePopup.twig
index afeac813a1..9e68dde96b 100644
--- a/plugins/Live/templates/getVisitorProfilePopup.twig
+++ b/plugins/Live/templates/getVisitorProfilePopup.twig
@@ -22,7 +22,10 @@
                     <div>
                         <div class="visitor-profile-header">
                             {% if visitorData.previousVisitorId is not empty %}<a class="visitor-profile-prev-visitor" href="#" title="{{ 'Live_PreviousVisitor'|translate }}">&larr;</a>{% endif %}
-                            <h1>{{ 'Live_VisitorProfile'|translate }} <img class="loadingPiwik" style="display:none;" src="plugins/Morpheus/images/loading-blue.gif"/></h1>
+                            <h1>{{ 'Live_VisitorProfile'|translate }}
+                                {%- if visitorData.userId is not empty %}: <span title="{{'General_UserId'|translate}}: {{ visitorData.userId|raw }}">{{ visitorData.userId|raw }}</span>{% endif -%}
+                                <img class="loadingPiwik" style="display:none;" src="plugins/Morpheus/images/loading-blue.gif"/>
+                            </h1>
                             <a href="http://piwik.org/docs/user-profile/" class="reportDocumentationIcon" target="_blank" title="{{ 'General_ViewDocumentationFor'|translate("Live_VisitorProfile"|translate|ucwords) }}"></a>
                             {% if visitorData.nextVisitorId is not empty %}<a class="visitor-profile-next-visitor" href="#" title="{{ 'Live_NextVisitor'|translate }}">&rarr;</a>{% endif %}
                         </div>
-- 
GitLab