From e2a09d4fa74306295095b7d3c1c0e9ce9294f7e6 Mon Sep 17 00:00:00 2001
From: mattpiwik <matthieu.aubry@gmail.com>
Date: Thu, 4 Oct 2012 01:27:30 +0000
Subject: [PATCH]  * Display correctly in Visitor Log & real time widget, when
 visits to a page that has no URL set but a page title (the LEFT JOIN instead
 of INNER)  * Also remove "0s"  from visitor log when there is only 1 action.

git-svn-id: http://dev.piwik.org/svn/trunk@7097 59fd770c-687e-43c8-a1e3-f5a4ff64c105
---
 plugins/Live/API.php                                        | 2 +-
 plugins/Live/templates/lastVisits.tpl                       | 6 +++---
 plugins/Live/templates/visitorLog.tpl                       | 2 +-
 .../Integration/OneVisitor_NoKeywordSpecifiedTest.php       | 3 ++-
 ...or_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml | 2 +-
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 753b4d9aff..fcca531e5c 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -194,7 +194,7 @@ class Piwik_Live_API
 					log_link_visit_action.time_spent_ref_action as timeSpentRef
 					$sqlCustomVariables
 				FROM " .Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action
-					INNER JOIN " .Piwik_Common::prefixTable('log_action')." AS log_action
+					LEFT JOIN " .Piwik_Common::prefixTable('log_action')." AS log_action
 					ON  log_link_visit_action.idaction_url = log_action.idaction
 					LEFT JOIN " .Piwik_Common::prefixTable('log_action')." AS log_action_title
 					ON  log_link_visit_action.idaction_name = log_action_title.idaction
diff --git a/plugins/Live/templates/lastVisits.tpl b/plugins/Live/templates/lastVisits.tpl
index 03991ff08f..6a2601164d 100644
--- a/plugins/Live/templates/lastVisits.tpl
+++ b/plugins/Live/templates/lastVisits.tpl
@@ -5,9 +5,9 @@
 {foreach from=$visitors item=visitor}
 	<li id="{$visitor.idVisit}" class="visit">
 		<div style="display:none" class="idvisit">{$visitor.idVisit}</div>
-			<div class="datetime">
+			<div title="{$visitor.actionDetails|@count} {'Live_Actions'|translate}" class="datetime">
 				<span style='display:none' class='serverTimestamp'>{$visitor.serverTimestamp}</span>
-				{$visitor.serverDatePretty} - {$visitor.serverTimePretty} ({$visitor.visitDurationPretty})
+				{$visitor.serverDatePretty} - {$visitor.serverTimePretty} {if $visitor.visitDuration > 0}<i>({$visitor.visitDurationPretty})</i>{/if}
 				&nbsp;<img src="{$visitor.countryFlag}" title="{$visitor.country}, {'Provider_ColumnProvider'|translate} {$visitor.provider}" />
 				&nbsp;<img src="{$visitor.browserIcon}" title="{$visitor.browserName}, {'UserSettings_Plugins'|translate}: {$visitor.plugins}" />
 				&nbsp;<img src="{$visitor.operatingSystemIcon}" title="{$visitor.operatingSystem}, {$visitor.resolution}" />
@@ -34,7 +34,7 @@
 				{else}{'Referers_DirectEntry'|translate}{/if}
 			</div>
 		<div id="{$visitor.idVisit}_actions" class="settings">
-			<span class="pagesTitle">{'Actions_SubmenuPages'|translate}:</span>&nbsp;
+			<span class="pagesTitle" title="{$visitor.actionDetails|@count} {'Live_Actions'|translate}" >{'Actions_SubmenuPages'|translate}:</span>&nbsp;
 			{php} $col = 0;	{/php}
 			{foreach from=$visitor.actionDetails item=action name=visitorPages}
 				{if $smarty.foreach.visitorPages.iteration <= $maxPagesDisplayedByVisitor}
diff --git a/plugins/Live/templates/visitorLog.tpl b/plugins/Live/templates/visitorLog.tpl
index 641e5b2aaa..72d600018b 100644
--- a/plugins/Live/templates/visitorLog.tpl
+++ b/plugins/Live/templates/visitorLog.tpl
@@ -148,7 +148,7 @@
 				{else}
 					{'Live_Actions'|translate}
 				{/if}
-				- {$visitor.columns.visitDurationPretty}
+				{if $visitor.columns.visitDuration > 0}- {$visitor.columns.visitDurationPretty}{/if}
 			</strong>
 			<br />
 			<ol class='visitorLog'>
diff --git a/tests/PHPUnit/Integration/OneVisitor_NoKeywordSpecifiedTest.php b/tests/PHPUnit/Integration/OneVisitor_NoKeywordSpecifiedTest.php
index b8eca8ae2a..e20c0c869a 100755
--- a/tests/PHPUnit/Integration/OneVisitor_NoKeywordSpecifiedTest.php
+++ b/tests/PHPUnit/Integration/OneVisitor_NoKeywordSpecifiedTest.php
@@ -84,7 +84,8 @@ class Test_Piwik_Integration_OneVisitor_NoKeywordSpecified extends IntegrationTe
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(2)->getDatetime());
         $t->setUrlReferrer('http://www.google.com.vn/url?sa=t&rct=j&q=%3C%3E%26%5C%22the%20pdo%20extension%20is%20required%20for%20this%20adapter%20but%20the%20extension%20is%20not%20loaded&source=web&cd=4&ved=0FjAD&url=http%3A%2F%2Fforum.piwik.org%2Fread.php%3F2%2C1011&ei=y-HHAQ&usg=AFQjCN2-nt5_GgDeg&cad=rja');
 
-        self::checkResponse($t->doTrackPageView('incredible title!'));
+	    // Test with empty title, that the output of Live is valid
+        self::checkResponse($t->doTrackPageView(''));
 
     }
 }
diff --git a/tests/integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
index a81c0393b0..b05621de80 100644
--- a/tests/integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
+++ b/tests/integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
@@ -16,7 +16,7 @@
 			<row>
 				<type>action</type>
 				<url>http://example.org/this%20is%20cool!</url>
-				<pageTitle>incredible title!</pageTitle>
+				<pageTitle />
 				<pageIdAction>2</pageIdAction>
 				<pageId>2</pageId>
 				
-- 
GitLab