update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit d885a4baa9
5833 changed files with 418860 additions and 226988 deletions

View file

@ -1,37 +1,3 @@
{% if onlyShowAddNewGoal is defined %}
<h2 piwik-enriched-headline>{{ 'Goals_AddNewGoal'|translate }}</h2>
<p>{{ 'Goals_NewGoalIntro'|translate }}</p>
<p>{{ 'Goals_NewGoalDescription'|translate }}
{{ 'Goals_NewWhatDoYouWantUsersToDo'|translate }}
{{ 'Goals_NewGoalYouWillBeAbleTo'|translate }}</p>
<p>{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
</p>
{% else %}
<div class="clear"></div>
<h2 piwik-enriched-headline>{{ 'Goals_GoalsManagement'|translate }}</h2>
<div class="entityList">
<ul class='listCircle'>
<li><a onclick='' name='linkAddNewGoal'>{{ 'Goals_CreateNewGOal'|translate }}</a></li>
<li><a onclick='' name='linkEditGoals'>{{ 'Goals_ViewAndEditGoals'|translate }}</a></li>
<li>{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}</li>
<li>
{% if not ecommerceEnabled %}
{% set websiteManageText %}
<a href='{{ linkTo({'module':'SitesManager','action':'index' }) }}'>{{ 'SitesManager_WebsitesManagement'|translate }}</a>
{% endset %}
{% set ecommerceReportText %}
<a href="http://piwik.org/docs/ecommerce-analytics/" target="_blank">{{ 'Goals_EcommerceReports'|translate }}</a>
{% endset %}
{{ 'Goals_Optional'|translate }} {{ 'Goals_Ecommerce'|translate }}: {{ 'Goals_YouCanEnableEcommerceReports'|translate(ecommerceReportText,websiteManageText)|raw }}
{% else %}
{{ 'SitesManager_PiwikOffersEcommerceAnalytics'|translate('<a href="http://piwik.org/docs/ecommerce-analytics/" target="_blank">',"</a>")|raw }}
{% endif %}
</li>
</ul>
</div>
<br/>
{% endif %}
{% import 'ajaxMacros.twig' as ajax %}
{{ ajax.errorDiv() }}
@ -41,41 +7,61 @@
{% if onlyShowAddNewGoal is not defined %}
{% include "@Goals/_listGoalEdit.twig" %}
{% endif %}
{% include "@Goals/_formAddGoal.twig" %}
{% if onlyShowAddNewGoal is not defined %}
<div class='entityCancel' style='display:none;'>
{{ 'General_OrCancel'|translate("<a class='entityCancelLink'>","</a>")|raw }}
</div>
{% if userCanEditGoals %}
{% include "@Goals/_formAddGoal.twig" %}
{% if onlyShowAddNewGoal is not defined %}
<div class='entityCancel' style='display:none;'>
{{ 'General_OrCancel'|translate("<a class='entityCancelLink'>","</a>")|raw }}
</div>
{% endif %}
{% endif %}
<a id='bottom'></a>
</div>
<br/><br/>
<script type="text/javascript">
var mappingMatchTypeName = {
"url": "{{ 'Goals_URL'|translate }}",
"title": "{{ 'Goals_PageTitle'|translate }}",
"file": "{{ 'Goals_Filename'|translate }}",
"external_website": "{{ 'Goals_ExternalWebsiteUrl'|translate }}"
"external_website": "{{ 'Goals_ExternalWebsiteUrl'|translate }}",
"event": "{{ 'Events_Event'|translate }}"
};
var mappingMatchTypeExamples = {
"url": "{{ 'General_ForExampleShort'|translate }} {{ 'Goals_Contains'|translate("'checkout/confirmation'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://example.com/thank-you.html'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'(.*)\\\/demo\\\/(.*)'") }}",
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://example.com/thank-you.html'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'(.*)\\\/demo\\\/(.*)'") }}",
"title": "{{ 'General_ForExampleShort'|translate }} {{ 'Goals_Contains'|translate("'Order confirmation'") }}",
"file": "{{ 'General_ForExampleShort'|translate }} {{ 'Goals_Contains'|translate("'files/brochure.pdf'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://example.com/files/brochure.pdf'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'(.*)\\\.zip'") }}",
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://example.com/files/brochure.pdf'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'(.*)\\\.zip'") }}",
"external_website": "{{ 'General_ForExampleShort'|translate }} {{ 'Goals_Contains'|translate("'amazon.com'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://mypartner.com/landing.html'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'http://www.amazon.com\\\/(.*)\\\/yourAffiliateId'") }}"
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'http://mypartner.com/landing.html'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'http://www.amazon.com\\\/(.*)\\\/yourAffiliateId'") }}",
"event": "{{ 'General_ForExampleShort'|translate }} {{ 'Goals_Contains'|translate("'video'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_IsExactly'|translate("'click'") }} \
<br />{{ 'General_ForExampleShort'|translate }} {{ 'Goals_MatchesExpression'|translate("'(.*)_banner'") }}"
};
bindGoalForm();
$(document).ready(function () {
{% if userCanEditGoals %}
bindGoalForm();
{% if onlyShowAddNewGoal is not defined %}
piwik.goals = {{ goalsJSON|raw }};
bindListGoalEdit();
{% else %}
initAndShowAddGoalForm();
{% endif %}
{% if onlyShowAddNewGoal is not defined %}
piwik.goals = {{ goalsJSON|raw }};
bindListGoalEdit();
{% if idGoal %}
editGoal({{ idGoal|e('js') }});
{% else %}
showEditGoals();
{% endif %}
{% else %}
initAndShowAddGoalForm();
{% endif %}
{% else %}
piwik.goals = {{ goalsJSON|raw }};
showEditGoals();
{% endif %}
});
</script>

View file

@ -12,30 +12,39 @@
<td><input type="text" name="name" value="" size="28" id="goal_name" class="inp"/></td>
</tr>
<tr>
<td style='width:260px;' class="first">{{ 'Goals_GoalIsTriggered'|translate }}
<td style='width:260px;' class="first">{{ 'Goals_GoalIsTriggered'|translate }}</td>
<td>
<select name="trigger_type" class="inp">
<option value="visitors">{{ 'Goals_WhenVisitors'|translate }}</option>
<option value="manually">{{ 'Goals_Manually'|translate }}</option>
</select>
</td>
<td>
<input type="radio" id="match_attribute_url" value="url" name="match_attribute"/>
<label for="match_attribute_url">{{ 'Goals_VisitUrl'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_title" value="title" name="match_attribute"/>
<label for="match_attribute_title">{{ 'Goals_VisitPageTitle'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_file" value="file" name="match_attribute"/>
<label for="match_attribute_file">{{ 'Goals_Download'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_external_website" value="external_website" name="match_attribute"/>
<label for="match_attribute_external_website">{{ 'Goals_ClickOutlink'|translate }}</label>
<p id="match_attribute_section2">
<input type="radio" id="match_attribute_url" value="url" name="match_attribute"/>
<label for="match_attribute_url">{{ 'Goals_VisitUrl'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_title" value="title" name="match_attribute"/>
<label for="match_attribute_title">{{ 'Goals_VisitPageTitle'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_event" value="event" name="match_attribute"/>
<label for="match_attribute_event">{{ 'Goals_SendEvent'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_file" value="file" name="match_attribute"/>
<label for="match_attribute_file">{{ 'Goals_Download'|translate }}</label>
<br/>
<input type="radio" id="match_attribute_external_website" value="external_website" name="match_attribute"/>
<label for="match_attribute_external_website">{{ 'Goals_ClickOutlink'|translate }}</label>
</p>
</td>
</tr>
</tbody>
<tbody id="match_attribute_section">
<tr>
<td class="first">{{ 'Goals_WhereThe'|translate }} <span id="match_attribute_name"></span></td>
<td class="first">{{ 'Goals_WhereThe'|translate }} <span class="whereUrl" id="match_attribute_name"></span><select name="event_type" class="whereEvent inp">
<option value="event_category">{{ 'Events_EventCategory'|translate }}</option>
<option value="event_action">{{ 'Events_EventAction'|translate }}</option>
<option value="event_name">{{ 'Events_EventName'|translate }}</option>
</select></td>
<td>
<select name="pattern_type" class="inp">
<option value="contains">{{ 'Goals_Contains'|translate("") }}</option>
@ -43,6 +52,8 @@
<option value="regex">{{ 'Goals_MatchesExpression'|translate("") }}</option>
</select>
{{ 'Goals_Pattern'|translate }}
<input type="text" name="pattern" value="" size="16" class="inp"/>
<br/>
@ -94,4 +105,5 @@
<input type="hidden" name="goalIdUpdate" value=""/>
<input type="submit" value="" name="submit" id="goal_submit" class="submit"/>
</form>
</div>

View file

@ -1,4 +1,4 @@
<div id='entityEditContainer' style="display:none;">
<div id='entityEditContainer' class="managegoals" style="display:none;">
<table class="dataTable entityTable">
<thead>
<tr>
@ -6,36 +6,59 @@
<th>{{ 'Goals_GoalName'|translate }}</th>
<th>{{ 'Goals_GoalIsTriggeredWhen'|translate }}</th>
<th>{{ 'General_ColumnRevenue'|translate }}</th>
<th>{{ 'General_Edit'|translate }}</th>
<th>{{ 'General_Delete'|translate }}</th>
{% if userCanEditGoals %}
<th>{{ 'General_Edit'|translate }}</th>
<th>{{ 'General_Delete'|translate }}</th>
{% endif %}
</tr>
</thead>
{% for goal in goals %}
{% if goals is empty %}
<tr>
<td class="first">{{ goal.idgoal }}</td>
<td>{{ goal.name|raw }}</td>{# NOTE: goal names are escaped in the DB #}
<td><span class='matchAttribute'>{{ goal.match_attribute }}</span>
{% if goal.pattern_type is defined %}
<br/>
{{ 'Goals_Pattern'|translate }} {{ goal.pattern_type }}: {{ goal.pattern|raw }}
{% endif %}
</td>
<td>{% if goal.revenue==0 %}-{% else %}{{ goal.revenue|money(idSite)|raw }}{% endif %}</td>
<td>
<a href='#' name="linkEditGoal" id="{{ goal.idgoal }}" class="link_but">
<img src='plugins/Zeitgeist/images/ico_edit.png' border="0"/>
{{ 'General_Edit'|translate }}
</a>
</td>
<td>
<a href='#' name="linkDeleteGoal" id="{{ goal.idgoal }}" class="link_but">
<img src='plugins/Zeitgeist/images/ico_delete.png' border="0"/>
{{ 'General_Delete'|translate }}
</a>
<td colspan='7'>
<br/>
{{ 'Goals_ThereIsNoGoalToManage'|translate(siteName)|raw }}.
<br/><br/>
</td>
</tr>
{% endfor %}
{% else %}
{% for goal in goals %}
<tr>
<td class="first">{{ goal.idgoal }}</td>
<td>{{ goal.name }}</td>
<td><span class='matchAttribute'>{{ goal.match_attribute }}</span>
{% if goal.pattern_type is defined %}
<br/>
{{ 'Goals_Pattern'|translate }} {{ goal.pattern_type }}: {{ goal.pattern }}
{% endif %}
</td>
<td class="text-center">
{% if goal.revenue==0 %}-{% else %}{{ goal.revenue|money(idSite)|raw }}{% endif %}
</td>
{% if userCanEditGoals %}
<td class="text-center">
<button id="{{ goal.idgoal }}" class="edit-goal btn btn-flat btn-lg" title="{{ 'General_Edit'|translate }}">
<span class="icon-edit"></span>
</button>
</td>
<td class="text-center">
<button id="{{ goal.idgoal }}" class="delete-goal btn btn-flat btn-lg" title="{{ 'General_Delete'|translate }}">
<span class="icon-delete"></span>
</button>
</td>
{% endif %}
</tr>
{% endfor %}
{% endif %}
</table>
{% if userCanEditGoals and onlyShowAddNewGoal is not defined %}
<p>
<button id="add-goal" class="btn btn-lg btn-flat">
<span class="icon-add"></span>
{{ 'Goals_AddNewGoal'|translate }}
</button>
</p>
{% endif %}
</div>
<div class="ui-confirm" id="confirm">
@ -50,7 +73,10 @@
"file": "{{ 'Goals_Download'|translate }}",
"url": "{{ 'Goals_VisitUrl'|translate }}",
"title": "{{ 'Goals_VisitPageTitle'|translate }}",
"external_website": "{{ 'Goals_ClickOutlink'|translate }}"
"external_website": "{{ 'Goals_ClickOutlink'|translate }}",
"event_action": "{{ 'Goals_SendEvent'|translate }} ({{ 'Events_EventAction'|translate }})",
"event_category": "{{ 'Goals_SendEvent'|translate }} ({{ 'Events_EventCategory'|translate }})",
"event_name": "{{ 'Goals_SendEvent'|translate }} ({{ 'Events_EventName'|translate }})"
};
$(document).ready(function () {

View file

@ -1,8 +1,8 @@
{% for element in topDimension %}
{% set goal_nb_conversion=element.nb_conversions %}
{% set goal_conversion_rate=element.conversion_rate %}
<span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion~"</b>")|raw }},
{{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate~"</b>")|raw }}'>
<span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion|number~"</b>")|raw }},
{{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate|number~"</b>")|raw }}'>
{{ element.name }}
</span>

View file

@ -1,21 +1,26 @@
<span data-graph-id="{{ nameGraphEvolution }}"></span>
{% if displayFullReport %}
<h2 piwik-enriched-headline>{% if goalName is defined %}{{ 'Goals_GoalX'|translate(goalName)|raw }}{% else %}{{ 'Goals_GoalsOverview'|translate }}{% endif %}</h2>
{% if displayFullReport or headline is defined %}
<h2 piwik-enriched-headline
{% if idGoal is defined and idGoal and goalName is defined and not ecommerce is defined %}
edit-url="{{ linkTo({'module': 'Goals', 'action': 'manage', 'idGoal': idGoal})|e('html_attr') }}"
feature-name="{{ 'Goals_Details'|translate|e('html_attr') }}"
{% endif %}
>{% if headline is defined %}{{ headline }}{% elseif goalName is defined %}{{ 'Goals_GoalX'|translate(goalName) }}{% else %}{{ 'General_EvolutionOverPeriod'|translate }}{% endif %}</h2>
{% endif %}
{{ graphEvolution|raw }}
<div id='leftcolumn' {% if not isWidget %}style='width:33%;'{% endif %}>
<div id='leftcolumn' style="clear:both;{% if not isWidget and ecommerce is defined %}width:33%;'{% endif %}">
<div class="sparkline">{{ sparkline(urlSparklineConversions) }}
{% if ecommerce is defined %}
<strong>{{ nb_conversions }}</strong>
<strong>{{ nb_conversions|number }}</strong>
{{ 'General_EcommerceOrders'|translate }}
<img src='plugins/Zeitgeist/images/ecommerceOrder.gif'>
<img src='plugins/Morpheus/images/ecommerceOrder.gif'>
{% else %}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }}
{% endif %}
{% if goalAllowMultipleConversionsPerVisit is defined and goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>")|raw }})
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>")|raw }})
{% endif %}
</div>
{% if revenue != 0 or ecommerce is defined %}
@ -37,30 +42,30 @@
{% endif %}
</div>
<div id='leftcolumn' {% if not isWidget %}style='width:33%;'{% endif %}>
<div id='leftcolumn' {% if not isWidget and ecommerce is defined %}style='width:33%;'{% endif %}>
<div class="sparkline">{{ sparkline(urlSparklineConversionRate) }}
{% if ecommerce is defined %}
{% set ecommerceOrdersText %}{{ 'General_EcommerceOrders'|translate }}{% endset %}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong> "~ecommerceOrdersText)|raw }}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong> "~ecommerceOrdersText)|raw }}
{% else %}
{{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }}
{{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }}
{% endif %}
</div>
{% if ecommerce is defined %}
<div class="sparkline">{{ sparkline(urlSparklinePurchasedProducts) }}
<strong>{{ items }}</strong> {{ 'General_PurchasedProducts'|translate }}</div>
<strong>{{ items|number }}</strong> {{ 'General_PurchasedProducts'|translate }}</div>
{% endif %}
</div>
{% if ecommerce is defined %}
<div id='rightcolumn' {% if not isWidget %}style='width:30%;'{% endif %}>
<div>
<img src='plugins/Zeitgeist/images/ecommerceAbandonedCart.gif'> <em>{{ 'General_AbandonedCarts'|translate }}</em>
<img src='plugins/Morpheus/images/ecommerceAbandonedCart.gif'> <em>{{ 'General_AbandonedCarts'|translate }}</em>
</div>
<div class="sparkline">
{{ sparkline(cart_urlSparklineConversions) }}
{% set ecommerceAbandonedCartsText %}{{ 'Goals_AbandonedCart'|translate }}{% endset %}
<strong>{{ cart_nb_conversions }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }}
<strong>{{ cart_nb_conversions|number }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }}
</div>
<div class="sparkline">
@ -72,7 +77,7 @@
<div class="sparkline">
{{ sparkline(cart_urlSparklineConversionRate) }}
<strong>{{ cart_conversion_rate }}</strong>
<strong>{{ cart_conversion_rate|percent }}</strong>
{{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }}
</div>
</div>

View file

@ -1,11 +1,21 @@
{% if userCanEditGoals %}
<h2 piwik-enriched-headline>{{ 'Goals_AddNewGoal'|translate }}</h2>
<p>{{ 'Goals_NewGoalIntro'|translate }}</p>
<p>{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
{{ 'Goals_ManageGoalsOrCreateANewGoal'|translate("<a href='#module=Goals&action=editGoals'>","</a>")|raw }}
</p>
{% include "@Goals/_addEditGoal.twig" %}
<br/><br/>
{% else %}
<h2>{{ 'Goals_CreateNewGOal'|translate }}</h2>
<h2>{{ 'Goals_AddNewGoal'|translate }}</h2>
<p>
{{ 'Goals_NoGoalsNeedAccess'|translate|raw }}
</p>
<p>
{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
</p>
{% endif %}

View file

@ -0,0 +1,16 @@
{% if userCanEditGoals %}
<h2 piwik-enriched-headline>{{ 'Goals_ManageGoals'|translate }}</h2>
{% include "@Goals/_addEditGoal.twig" %}
{% else %}
<h2>{{ 'Goals_ManageGoals'|translate }}</h2>
<p>
{{ 'Goals_NeedAccess'|translate|raw }}
</p>
{% include "@Goals/_addEditGoal.twig" %}
{% endif %}

View file

@ -37,6 +37,10 @@
</li>
{% endif %}
</ul>
<a href="javascript:;" class="segmentedlog" onclick="SegmentedVisitorLog.show('Goals.getMetrics', 'visitConvertedGoalId=={{ idGoal }}', {})">
{{ 'Live_RowActionTooltipWithDimension'|translate('General_Goal'|translate) }}
</a>
{% endif %}
<script type="text/javascript">
@ -56,7 +60,7 @@
{% if nb_conversions > 0 or cart_nb_conversions is defined %}
<h2 id='titleGoalsByDimension'>
{% if idGoal is defined %}
{{ 'Goals_GoalConversionsBy'|translate(goalName)|raw }}
{{ 'Goals_GoalConversionsBy'|translate(goalName) }}
{% else %}
{{ 'Goals_ConversionsOverviewBy'|translate }}
{% endif %}

View file

@ -8,27 +8,39 @@
{% set nb_visits_converted=goal.nb_visits_converted %}
{% set conversion_rate=goal.conversion_rate %}
{% set name=goal.name %}
<div class="goalEntry">
<div class="goalEntry" style="clear:both">
<h2>
<a href="javascript:broadcast.propagateAjax('module=Goals&action=goalReport&idGoal={{ goal.id }}')">
{{ 'Goals_GoalX'|translate("'"~name~"'")|raw }}
{{ 'Goals_GoalX'|translate("'"~name~"'") }}
</a>
</h2>
<div id='leftcolumn'>
<div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }}
{% if goal.goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>") | raw }})
{% endif %}
{% if not isWidget %}
<div class="row">
<div class="col-md-6">
{% endif %}
<div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }}
{% if goal.goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>") | raw }})
{% endif %}
</div>
{% if not isWidget %}
</div>
<div class="col-md-6">
{% endif %}
<div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }}
</div>
{% if not isWidget %}
</div>
</div>
<div id='rightcolumn'>
<div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }}
</div>
</div>
<br class="clear"/>
{% endif %}
</div>
{% endfor %}
@ -36,15 +48,11 @@
{% if sum_nb_conversions != 0 %}
<h2 id='titleGoalsByDimension'>
{% if idGoal is defined %}
{{ 'Goals_GoalConversionsBy'|translate(goalName)|raw }}
{{ 'Goals_GoalConversionsBy'|translate(goalName) }}
{% else %}
{{ 'Goals_ConversionsOverviewBy'|translate }}
{% endif %}
</h2>
{{ goalReportsByDimension|raw }}
{% endif %}
{% if userCanEditGoals %}
{% include "@Goals/_addEditGoal.twig" %}
{% endif %}
{% endif %}

View file

@ -0,0 +1,40 @@
{% extends 'user.twig' %}
{% set title %}{{ 'Goals_ManageGoals'|translate }}{% endset %}
{% block topcontrols %}
{% include "@CoreHome/_siteSelectHeader.twig" %}
{% endblock %}
{% block content %}
<h2 piwik-enriched-headline>
<div class="inlineHelp">{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
{% if not ecommerceEnabled %}
<br /><br/>
{% set websiteManageText %}
<a href='{{ linkTo({'module':'SitesManager','action':'index' }) }}'>{{ 'SitesManager_WebsitesManagement'|translate }}</a>
{% endset %}
{% set ecommerceReportText %}
<a href="http://piwik.org/docs/ecommerce-analytics/" rel="noreferrer" target="_blank">{{ 'Goals_EcommerceReports'|translate }}</a>
{% endset %}
{{ 'Goals_Optional'|translate }} {{ 'Goals_Ecommerce'|translate }}: {{ 'Goals_YouCanEnableEcommerceReports'|translate(ecommerceReportText,websiteManageText)|raw }}
{% endif %}</div>
{{ title }}
</h2>
{% include "@Goals/_addEditGoal.twig" %}
<style type="text/css">
.entityAddContainer {
position:relative;
}
.entityAddContainer > .entityCancel:first-child {
position: absolute;
right:0;
bottom:100%;
}
</style>
{% endblock %}