Skip to content
Extraits de code Groupes Projets
Valider 954c66c8 rédigé par Benaka Moorthi's avatar Benaka Moorthi
Parcourir les fichiers

Refs #3089, add click on individual visit behavior in visitor profile, make...

Refs #3089, add click on individual visit behavior in visitor profile, make sure footer of usercountry map is not shown at all.
parent 70a01747
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -200,19 +200,6 @@ class API
$result['totalAbandonedCartsItems'] = 0;
}
// use the most recent visit for IP/browser/OS/etc. info
$mostRecentVisit = $visits->getFirstRow();
$result['latestVisitIp'] = $mostRecentVisit->getColumn('visitIp');
$result['visitorId'] = $mostRecentVisit->getColumn('visitorId');
$result['browserCode'] = $mostRecentVisit->getColumn('browserCode');
$result['browserName'] = \Piwik\Plugins\UserSettings\getBrowserFromBrowserVersion($mostRecentVisit->getColumn('browserName'));
$result['browserLogo'] = $mostRecentVisit->getColumn('browserIcon');
$result['operatingSystemCode'] = $mostRecentVisit->getColumn('operatingSystemCode');
$result['operatingSystemShortName'] = $mostRecentVisit->getColumn('operatingSystemShortName');
$result['operatingSystemLogo'] = $mostRecentVisit->getColumn('operatingSystemIcon');
$result['resolution'] = $mostRecentVisit->getColumn('resolution');
$result['customVariables'] = $mostRecentVisit->getColumn('customVariables');
// aggregate all requested visits info for total_* info
foreach ($visits->getRows() as $visit) {
++$result['totalVisits'];
......@@ -275,6 +262,24 @@ class API
return $result;
}
/**
* Returns visit data for a single visit.
*
* @param string $idVisit
* @param array
*/
public function getSingleVisitSummary($idVisit)
{
$sql = 'SELECT * from '.Common::prefixTable('log_visit').' WHERE idvisit = ?';
$bind = array($idVisit);
$visitorData = Db::fetchAll($sql, $bind);
$table = $this->getCleanedVisitorsFromDetails($visitorData, $visitorData[0]['idsite'], $flat = false, $doNotFetchActions = true);
$r = $table->getFirstRow()->getColumns();
$r['resolution'] = '1x1';
return $r;
}
/**
* Returns a summary for an important visit. Used to describe the first & last visits of a visitor.
*
......
......@@ -150,6 +150,13 @@ class Controller extends \Piwik\Controller
echo $view->render();
}
public function getSingleVisitSummary()
{
$view = new View('@Live/getSingleVisitSummary.twig');
$view->visitData = Request::processRequest('Live.getSingleVisitSummary');
echo $view->render();
}
private function getUserCountryMapForVisitorProfile()
{
$segment = Request::getRawSegmentFromRequest();
......
......@@ -215,6 +215,10 @@
.visitor-profile-map {
padding:unit(@visitor_profile_map_pad_top, px) 2px unit(@visitor_profile_map_pad_bottom, px) 21px;
.dataTableFeatures {
display:none;
}
}
.visitor-profile-map > div {
......@@ -411,4 +415,9 @@ span.visitor-profile-goal-name {
.visitor-profile-visit-title {
cursor:pointer;
}
.visitor-profile-avatar .loadingPiwik {
padding:0;
margin:0;
}
\ No newline at end of file
{% macro customVar(id, customVariable) %}
{% set name='customVariableName' ~ id %}
{% set value='customVariableValue' ~ id %}
<li><span>{{ customVariable[name]|truncate(30) }}</span>{% if customVariable[value]|length > 0 %}<strong>{{ customVariable[value]|truncate(50) }}</strong>{% endif %}</li>
{% endmacro %}
{% import _self as macros %}
<div class="visitor-profile-latest-visit-column">
<ul>
<li><span>{{ 'General_IP'|translate }}</span><strong>{{ visitData.visitIp }}</strong></li>
<li><span>{{ 'General_Id'|translate|upper }}</span><strong>{{ visitData.visitorId }}</strong></li>
<li>
<div class="visitor-profile-browser">
<img src="{{ visitData.browserIcon }}"/><span>{{ visitData.browserName|split(' ')[0] }}</span>
</div>
<div class="visitor-profile-os">
<img src="{{ visitData.operatingSystemIcon }}"/><span>{{ visitData.operatingSystemShortName }}</span>
</div>
</li>
<li><span>{{ 'UserSettings_ColumnResolution'|translate }}</span><strong>{{ visitData.resolution }}</strong></li>
</ul>
</div>
<div class="visitor-profile-latest-visit-column">
<ul>
{% for id,customVariable in visitData.customVariables %}
{% if loop.index0 < 4 %}
{{ macros.customVar(id, customVariable) }}
{% endif %}
{% endfor %}
</ul>
{% if visitData.customVariables|length > 4 %}
<ul class="visitor-profile-extra-cvars" style="display:none;">
{% for id,customVariable in visitData.customVariables %}
{% if loop.index0 >= 4 %}
{{ macros.customVar(id, customVariable) }}
{% endif %}
{% endfor %}
</ul>
<p class="visitor-profile-see-more-cvars"><a href="#">&#x25bc;</a></p>
{% endif %}
</div>
{% macro customVar(id, customVariable) %}
{% set name='customVariableName' ~ id %}
{% set value='customVariableValue' ~ id %}
<li><span>{{ customVariable[name]|truncate(30) }}</span>{% if customVariable[value]|length > 0 %}<strong>{{ customVariable[value]|truncate(50) }}</strong>{% endif %}</li>
{% endmacro %}
{% import _self as macros %}
<div class="visitor-profile">
<a href class="visitor-profile-close"></a>
<div class="visitor-profile-info">
......@@ -16,42 +10,9 @@
<img src="plugins/Live/images/paperclip.png" alt=""/>
</div>
<div>
<h1>{{ 'Live_VisitorProfile'|translate }}</h1>
<div>
<div class="visitor-profile-latest-visit-column">
<ul>
<li><span>{{ 'General_IP'|translate }}</span><strong>{{ visitorData.latestVisitIp }}</strong></li>
<li><span>{{ 'General_Id'|translate|upper }}</span><strong>{{ visitorData.visitorId }}</strong></li>
<li>
<div class="visitor-profile-browser">
<img src="{{ visitorData.browserLogo }}"/><span>{{ visitorData.browserName }}</span>
</div>
<div class="visitor-profile-os">
<img src="{{ visitorData.operatingSystemLogo }}"/><span>{{ visitorData.operatingSystemShortName }}</span>
</div>
</li>
<li><span>{{ 'UserSettings_ColumnResolution'|translate }}</span><strong>{{ visitorData.resolution }}</strong></li>
</ul>
</div>
<div class="visitor-profile-latest-visit-column">
<ul>
{% for id,customVariable in visitorData.customVariables %}
{% if loop.index0 < 4 %}
{{ macros.customVar(id, customVariable) }}
{% endif %}
{% endfor %}
</ul>
{% if visitorData.customVariables|length > 4 %}
<ul class="visitor-profile-extra-cvars" style="display:none;">
{% for id,customVariable in visitorData.customVariables %}
{% if loop.index0 >= 4 %}
{{ macros.customVar(id, customVariable) }}
{% endif %}
{% endfor %}
</ul>
<p class="visitor-profile-see-more-cvars"><a href="#">&#x25bc;</a></p>
{% endif %}
</div>
<h1>{{ 'Live_VisitorProfile'|translate }} <img class="loadingPiwik" style='display:none' src="plugins/Zeitgeist/images/loading-blue.gif"/></h1>
<div class="visitor-profile-latest-visit">
{% include "@Live/getSingleVisitSummary.twig" with {'visitData': visitorData.lastVisits.getFirstRow().getColumns()} %}
</div>
</div>
<p style="clear:both; border:none!important;"></p>
......@@ -158,7 +119,20 @@ $(function() {
});
$('.visitor-profile-visit-title').click(function () {
// TODO
var ajax = new ajaxHelper();
$('.visitor-profile-avatar .loadingPiwik').css('display', 'inline-block');
ajax.addParams({
module: 'Live',
action: 'getSingleVisitSummary',
idVisit: $(this).attr('data-idvisit')
}, 'GET');
ajax.setCallback(function (response) {
$('.visitor-profile-avatar .loadingPiwik').hide();
$('.visitor-profile-latest-visit').html(response);
});
ajax.setFormat('html');
ajax.send();
});
});
</script>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter