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

@ -3,16 +3,15 @@
<div class='trackingHelp'>
<p>{{ 'Installation_JSTracking_Intro'|translate }}</p>
<p>{{ 'CoreAdminHome_JSTrackingIntro3'|translate('<a href="http://piwik.org/integrate/" target="_blank">','</a>')|raw }}</p>
<p>{{ 'CoreAdminHome_JSTrackingIntro3'|translate('<a href="http://piwik.org/integrate/" rel="noreferrer" target="_blank">','</a>')|raw }}</p>
<h3>{{ 'General_JsTrackingTag'|translate }}</h3>
<p>{{ 'CoreAdminHome_JSTracking_CodeNote'|translate("&lt;/body&gt;")|raw }}</p>
<p>{{ 'CoreAdminHome_JSTracking_CodeNoteBeforeClosingHead'|translate("&lt;/head&gt;")|raw }}</p>
<pre class="code-pre"><code>{{ jsTag|raw }}</code></pre>
<pre>{{ jsTag|raw }}</pre>
<br/>
<p>{{ 'CoreAdminHome_JSTrackingIntro5'|translate('<a target="_blank" href="http://piwik.org/docs/javascript-tracking/">','</a>')|raw }}</p>
<p>{{ 'CoreAdminHome_JSTrackingIntro5'|translate('<a rel="noreferrer" target="_blank" href="http://piwik.org/docs/javascript-tracking/">','</a>')|raw }}</p>
<p>{{ 'Installation_JSTracking_EndNote'|translate('<em>','</em>')|raw }}</p>
</div>

View file

@ -0,0 +1,3 @@
<div ng-include="'plugins/SitesManager/templates/dialogs/edit-dialog.html'"></div>
<div ng-include="'plugins/SitesManager/templates/dialogs/remove-dialog.html'"></div>

View file

@ -0,0 +1,6 @@
<div class="ui-confirm" piwik-dialog="site.editDialog.show">
<h2>{{ site.editDialog.title }}</h2>
<input role="no" type="button" value="{{ 'General_Ok'|translate }}"/>
</div>

View file

@ -0,0 +1,7 @@
<div class="ui-confirm" piwik-dialog="site.removeDialog.show" yes="site.delete()">
<h2>{{ site.removeDialog.title }}</h2>
<input type="button" value="{{ 'General_Yes'|translate }}" role="yes"/>
<input type="button" value="{{ 'General_No'|translate }}" role="no" />
</div>

View file

@ -0,0 +1,85 @@
<div ng-show="hasSuperUserAccess">
<h2 id="globalSettings" class="secondary">{{ 'SitesManager_GlobalWebsitesSettings' | translate }}</h2>
<h3>{{ 'SitesManager_GlobalListExcludedIps'|translate }}</h3>
<p>{{ 'SitesManager_ListOfIpsToBeExcludedOnAllWebsites'|translate }}</p>
<div class="form-group">
<div ng-include="'plugins/SitesManager/templates/help/excluded-ip-help.html'"></div>
<div sites-manager-multiline-field field="globalSettings.excludedIpsGlobal" cols="30" rows="3" id="excludedIpsGlobal"></div>
</div>
<h3>{{ 'SitesManager_GlobalListExcludedQueryParameters'|translate }}</h3>
<p>{{ 'SitesManager_ListOfQueryParametersToBeExcludedOnAllWebsites'|translate }}</p>
<div class="form-group">
<div ng-include="'plugins/SitesManager/templates/help/excluded-query-parameters-help.html'"></div>
<div sites-manager-multiline-field field="globalSettings.excludedQueryParametersGlobal" cols="30" rows="3" id="excludedQueryParametersGlobal"></div>
</div>
<h3>{{ 'SitesManager_GlobalListExcludedUserAgents'|translate }}</h3>
<p>{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }}</p>
<div class="form-group">
<div ng-include="'plugins/SitesManager/templates/help/excluded-user-agents-help.html'"></div>
<div sites-manager-multiline-field field="globalSettings.excludedUserAgentsGlobal" cols="30" rows="3" id="excludedUserAgentsGlobal"></div>
</div>
<div class="form-group">
<div class="form-help" ng-bind-html="'SitesManager_EnableSiteSpecificUserAgentExclude_Help'|translate:'<a href=\'#excludedUserAgentsGlobal\'>':'</a>'"></div>
<label class="checkbox">
<input type="checkbox" id="siteSpecificUserAgentExcludeEnabled" ng-model="globalSettings.siteSpecificUserAgentExcludeEnabled">
{{ 'SitesManager_EnableSiteSpecificUserAgentExclude'|translate }}
</label>
</div>
<h3>{{ 'SitesManager_KeepURLFragments'|translate }}</h3>
<p ng-bind-html="'SitesManager_KeepURLFragmentsHelp'|translate:'<em>#</em>':'<em>example.org/index.html#first_section</em>':'<em>example.org/index.html</em>'"></p>
<div class="form-group">
<p class="form-help">{{ 'SitesManager_KeepURLFragmentsHelp2'|translate }}</p>
<label class="checkbox">
<input type="checkbox" id="keepURLFragmentsGlobal" ng-model="globalSettings.keepURLFragmentsGlobal">
{{ 'SitesManager_KeepURLFragmentsLong'|translate }}
</label>
</div>
<h3>{{ 'SitesManager_TrackingSiteSearch'|translate }}</h3>
<p>{{ 'SitesManager_SiteSearchUse' | translate }}</p>
<div class="alert alert-info">
{{ 'SitesManager_SearchParametersNote'|translate }} {{ 'SitesManager_SearchParametersNote2'|translate }}
</div>
<div class="form-group">
<label>{{ 'SitesManager_SearchKeywordLabel' | translate }}</label>
<div class="form-help">
{{ 'SitesManager_SearchKeywordParametersDesc' | translate }}
</div>
<input ng-list size="15" ng-model="globalSettings.searchKeywordParametersGlobal">
</div>
<div ng-hide="customVariablesActivated" class="alert alert-info">
Note: you could also track your Internal Search Engine Categories, but the plugin Custom Variables is required. Please enable the plugin CustomVariables (or ask your Piwik admin).
</div>
<p ng-show="customVariablesActivated">
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryDesc'|translate }}
</p>
<div class="form-group" ng-show="customVariablesActivated">
<label>{{ 'SitesManager_SearchCategoryLabel' | translate }}</label>
<div class="form-help">
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryParametersDesc'|translate }}
</div>
<input ng-list size="15" ng-model="globalSettings.searchCategoryParametersGlobal">
</div>
<h3>{{ 'SitesManager_DefaultTimezoneForNewWebsites'|translate }}</h3>
<p>{{ 'SitesManager_SelectDefaultTimezone'|translate }}</p>
<div class="form-group">
<div ng-include="'plugins/SitesManager/templates/help/timezone-help.html'"></div>
<select ng-model="globalSettings.defaultTimezone" ng-options="t.code as t.label group by t.group for t in timezones"></select>
</div>
<h3>{{ 'SitesManager_DefaultCurrencyForNewWebsites'|translate }}</h3>
<p>{{ 'SitesManager_SelectDefaultCurrency'|translate }}</p>
<div class="form-group">
<div class="form-help">{{ 'SitesManager_CurrencySymbolWillBeUsedForGoals' | translate }}</div>
<select ng-model="globalSettings.defaultCurrency" ng-options="k as v for (k, v) in currencies"></select>
</div>
<input type="submit" class="submit" ng-click="saveGlobalSettings()" value="{{ 'General_Save'|translate }}"/>
</div>

View file

@ -0,0 +1,7 @@
<div class="form-help">
{{ 'SitesManager_HelpExcludedIps' | translate : '1.2.3.*' : '1.2.*.*' }}
<br/><br/>
<span ng-bind-html="'SitesManager_YourCurrentIpAddressIs'|translate:'<i>' + currentIpAddress + '</i>'"></span>
</div>

View file

@ -0,0 +1,7 @@
<div class="form-help">
{{ 'SitesManager_ListOfQueryParametersToExclude'|translate }}
<br/><br/>
{{ 'SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters'|translate:'phpsessid, sessionid, ...' }}
</div>

View file

@ -0,0 +1,7 @@
<div class="form-help">
{{ 'SitesManager_GlobalExcludedUserAgentHelp1'|translate }}
<br/><br/>
{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }} {{ 'SitesManager_GlobalExcludedUserAgentHelp2'|translate }}
</div>

View file

@ -0,0 +1,18 @@
<div class="form-help">
<span ng-switch="timezoneSupportEnabled">
<span ng-switch-default>
{{ 'SitesManager_AdvancedTimezoneSupportNotFound'|translate }}
</span>
<span ng-switch-when="true">
{{ 'SitesManager_ChooseCityInSameTimezoneAsYou'|translate }}
</span>
</span>
<br/>
{{ 'SitesManager_UTCTimeIs'| translate : (utcTime | date : 'yyyy-MM-dd HH:mm:ss') }}
<br/>
{{ 'SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward'|translate }}
</div>

View file

@ -0,0 +1,17 @@
<div ng-controller="SitesManagerController" class="SitesManager">
<div ng-include="'plugins/SitesManager/templates/sites-manager-header.html?cb=' + cacheBuster" class="sites-manager-header"></div>
<div ng-include="'plugins/SitesManager/templates/loading.html?cb=' + cacheBuster"></div>
<div ng-include="'plugins/SitesManager/templates/sites-list/add-site-link.html?cb=' + cacheBuster"></div>
<div ng-include="'plugins/SitesManager/templates/sites-list/add-entity-dialog.html?cb=' + cacheBuster"></div>
<div ng-include="'plugins/SitesManager/templates/sites-list/sites-list.html?cb=' + cacheBuster"></div>
<div class="bottomButtonBar" ng-include="'plugins/SitesManager/templates/sites-list/add-site-link.html?cb=' + cacheBuster"></div>
<div ng-include="'plugins/SitesManager/templates/global-settings.html?cb=' + cacheBuster"></div>
</div>

View file

@ -1,426 +1,9 @@
{% extends 'admin.twig' %}
{% set title %}{{ 'SitesManager_WebsitesManagement'|translate }}{% endset %}
{% block content %}
{% import 'macros.twig' as piwik %}
{% import 'ajaxMacros.twig' as ajax %}
{% set excludedIpHelpPlain %}
{{ 'SitesManager_HelpExcludedIps'|translate("1.2.3.*","1.2.*.*") }}
<br/><br/>
{{ 'SitesManager_YourCurrentIpAddressIs'|translate("<i>" ~ currentIpAddress ~ "</i>")|raw }}
{% endset %}
<div ng-include="'plugins/SitesManager/templates/index.html?cb={{ cacheBuster }}'"></div>
{% set excludedIpHelp=piwik.inlineHelp(excludedIpHelpPlain) %}
{% set defaultTimezoneHelpPlain %}
{% if timezoneSupported %}
{{ 'SitesManager_ChooseCityInSameTimezoneAsYou'|translate }}
{% else %}
{{ 'SitesManager_AdvancedTimezoneSupportNotFound'|translate }}
{% endif %}
<br/><br/>
{{ 'SitesManager_UTCTimeIs'|translate(utcTime) }}
{% endset %}
{% set timezoneHelpPlain %}
{{ defaultTimezoneHelpPlain }}
<br/><br/>
{{ 'SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward'|translate }}
{% endset %}
{% set currencyHelpPlain %}
{{ piwik.inlineHelp('SitesManager_CurrencySymbolWillBeUsedForGoals'|translate) }}
{% endset %}
{% set ecommerceHelpPlain %}
{{ 'SitesManager_EcommerceHelp'|translate }}
<br/>
{{ 'SitesManager_PiwikOffersEcommerceAnalytics'|translate("<a href='http://piwik.org/docs/ecommerce-analytics/' target='_blank'>","</a>")|raw }}
{% endset %}
{% set excludedQueryParametersHelp %}
{{ 'SitesManager_ListOfQueryParametersToExclude'|translate }}
<br/><br/>
{{ 'SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters'|translate("phpsessid, sessionid, ...") }}
{% endset %}
{% set excludedQueryParametersHelp=piwik.inlineHelp(excludedQueryParametersHelp) %}
{% set excludedUserAgentsHelp %}
{{ 'SitesManager_GlobalExcludedUserAgentHelp1'|translate }}
<br/><br/>
{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }} {{ 'SitesManager_GlobalExcludedUserAgentHelp2'|translate }}
{% endset %}
{% set excludedUserAgentsHelp=piwik.inlineHelp(excludedUserAgentsHelp) %}
{% set keepURLFragmentSelectHTML %}
<h4 style="display:inline-block;">{{ 'SitesManager_KeepURLFragmentsLong'|translate }}</h4>
<select id="keepURLFragmentSelect">
<option value="0"> {% if globalKeepURLFragments %}{{ 'General_Yes'|translate }}{% else %}{{ 'General_No'|translate }}{% endif %}
({{ 'General_Default'|translate }})
</option>
<option value="1">{{ 'General_Yes'|translate }}</option>
<option value="2">{{ 'General_No'|translate }}</option>
</select>
{% endset %}
<script type="text/javascript">
var excludedIpHelp = '{{ excludedIpHelp|e('js') }}';
var aliasUrlsHelp = '{{ piwik.inlineHelp('SitesManager_AliasUrlHelp'|translate)|e('js') }}';
var excludedQueryParametersHelp = '{{ excludedQueryParametersHelp|e('js') }}';
var excludedUserAgentsHelp = '{{ excludedUserAgentsHelp|e('js') }}';
var timezoneHelp = '{{ piwik.inlineHelp(timezoneHelpPlain)|e('js') }}';
var currencyHelp = '{{ currencyHelpPlain|e('js') }}';
var ecommerceHelp = '{{ piwik.inlineHelp(ecommerceHelpPlain)|e('js') }}';
var ecommerceEnabled = '{{ 'SitesManager_EnableEcommerce'|translate|e('js') }}';
var ecommerceDisabled = '{{ 'SitesManager_NotAnEcommerceSite'|translate|e('js') }}';
{% set defaultTimezoneHelp=piwik.inlineHelp(defaultTimezoneHelpPlain) %}
{% set searchKeywordHelp=piwik.inlineHelp('SitesManager_SearchKeywordParametersDesc'|translate) %}
{% set searchCategoryHelpText %}
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryParametersDesc'|translate }}
{% endset %}
{% set searchCategoryHelp=piwik.inlineHelp(searchCategoryHelpText) %}
var sitesearchEnabled = '{{ 'SitesManager_EnableSiteSearch'|translate|e('js') }}';
var sitesearchDisabled = '{{ 'SitesManager_DisableSiteSearch'|translate|e('js') }}';
var searchKeywordHelp = '{{ searchKeywordHelp|e('js') }}';
var searchCategoryHelp = '{{ searchCategoryHelp|e('js') }}';
var sitesearchDesc = '{{ 'SitesManager_TrackingSiteSearch'|translate|e('js') }}';
var keepURLFragmentSelectHTML = '{{ keepURLFragmentSelectHTML|e('js') }}';
var sitesManager = new SitesManager({{ timezones|raw }}, {{ currencies|raw }}, '{{ defaultTimezone|raw }}', '{{ defaultCurrency|raw }}');
{% set searchKeywordLabel='SitesManager_SearchKeywordLabel'|translate %}
{% set searchCategoryLabel='SitesManager_SearchCategoryLabel'|translate %}
var searchKeywordLabel = '{{ searchKeywordLabel|e('js') }}';
var searchCategoryLabel = '{{ searchCategoryLabel|e('js') }}';
{% set sitesearchIntro='SitesManager_SiteSearchUse'|translate %}
var sitesearchIntro = '{{ piwik.inlineHelp(sitesearchIntro)|e('js') }}';
var sitesearchUseDefault = '{% if isSuperUser %}{{ 'SitesManager_SearchUseDefault'|translate('<a href="#globalSiteSearch">','</a>')|e('js') }}{% else %}{{ 'SitesManager_SearchUseDefault'|translate('','')|e('js') }}{% endif %}';
var strDefault = '{{ 'General_Default'|translate|e('js') }}';
$(function () {
sitesManager.init();
});
</script>
<h2 piwik-enriched-headline help-url="http://piwik.org/docs/manage-websites/">{{ 'SitesManager_WebsitesManagement'|translate }}</h2>
<p>{{ 'SitesManager_MainDescription'|translate }}
{{ 'SitesManager_YouCurrentlyHaveAccessToNWebsites'|translate("<strong>" ~ adminSitesCount ~ "</strong>")|raw }}
{% if isSuperUser %}
<br/>
{{ 'SitesManager_SuperUserAccessCan'|translate("<a href='#globalSettings'>","</a>")|raw }}
{% endif %}
</p>
{{ ajax.errorDiv() }}
{{ ajax.loadingDiv() }}
{% set createNewWebsite %}
<a href="javascript:" class="addRowSite">
{{ 'SitesManager_AddSite'|translate }}
</a>
{% endset %}
{% if adminSites|length == 0 %}
{{ 'SitesManager_NoWebsites'|translate }}
{% else %}
<div class="ui-confirm" id="confirm">
<h2></h2>
<input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
<input role="no" type="button" value="{{ 'General_No'|translate }}"/>
</div>
<div class="entityContainer">
{% if isSuperUser %}
{{ createNewWebsite }}
{% endif %}
<table class="entityTable dataTable" id="editSites">
<thead>
<tr>
<th>{{ 'General_Id'|translate }}</th>
<th>{{ 'General_Name'|translate }}</th>
<th>{{ 'SitesManager_Urls'|translate }}</th>
<th>{{ 'SitesManager_ExcludedIps'|translate }}</th>
<th>{{ 'SitesManager_ExcludedParameters'|translate|replace({" ":"<br />"})|raw }}</th>
<th id='exclude-user-agent-header'
{% if not allowSiteSpecificUserAgentExclude %}style="display:none;"{% endif %}>{{ 'SitesManager_ExcludedUserAgents'|translate }}</th>
<th>{{ 'Actions_SubmenuSitesearch'|translate }}</th>
<th>{{ 'SitesManager_Timezone'|translate }}</th>
<th>{{ 'SitesManager_Currency'|translate }}</th>
<th>{{ 'Goals_Ecommerce'|translate }}</th>
<th></th>
<th></th>
<th>{{ 'General_JsTrackingTag'|translate }}</th>
</tr>
</thead>
<tbody>
{% for i,site in adminSites %}
<tr id="row{{ site.idsite }}" data-keep-url-fragments="{{ site.keep_url_fragment }}">
<td id="idSite">{{ site.idsite }}</td>
<td id="siteName" class="editableSite">
{{- site.name|raw -}}
</td>
<td id="urls" class="editableSite">
{%- for url in site.alias_urls -%}
{{- url|trim|replace({'http://': ''})|raw -}}<br />
{%- endfor -%}
</td>
<td id="excludedIps" class="editableSite">
{%- for ip in site.excluded_ips -%}
{{- ip -}}<br/>
{%- endfor -%}
</td>
<td id="excludedQueryParameters" class="editableSite">
{%- for parameter in site.excluded_parameters -%}
{{- parameter|raw -}}<br />
{%- endfor -%}
</td>
<td id="excludedUserAgents" class="editableSite"
{% if not allowSiteSpecificUserAgentExclude %}style="display:none;"{% endif %}>
{%- for ua in site.excluded_user_agents -%}
{{- ua|raw -}}<br />
{%- endfor -%}
</td>
<td id="sitesearch" class="editableSite">
{% if site.sitesearch %}
<span class="sitesearchActive">{{ 'General_Yes'|translate }}</span>
{% else %}
<span class="sitesearchInactive">-</span>
{% endif %}
<span class="sskp" sitesearch_keyword_parameters="{{- site.sitesearch_keyword_parameters -}}"
sitesearch_category_parameters="{{- site.sitesearch_category_parameters -}}"
id="sitesearch_parameters">
</span>
</td>
<td id="timezone" class="editableSite">{{ site.timezone }}</td>
<td id="currency" class="editableSite">{{ site.currency }}</td>
<td id="ecommerce" class="editableSite">
{% if site.ecommerce %}
<span class='ecommerceActive'>{{ 'General_Yes'|translate }}</span>
{% else %}
<span class='ecommerceInactive'>-</span>
{% endif %}
</td>
<td>
<span id="row{{ site.idsite }}" class='editSite link_but'>
<img src='plugins/Zeitgeist/images/ico_edit.png' title="{{ 'General_Edit'|translate }}"
border="0"/>
<span>{{ 'General_Edit'|translate }}</span>
</span>
</td>
<td>
<span id="row{{ site.idsite }}" class="deleteSite link_but">
<img src='plugins/Zeitgeist/images/ico_delete.png' title="{{ 'General_Delete'|translate }}"
border="0"/>
<span>{{ 'General_Delete'|translate }}</span>
</span>
</td>
<td>
<a href='{{ linkTo({'module':'CoreAdminHome','action':'trackingCodeGenerator','idSite':site.idsite,'updated':false }) }}'>
{{ 'SitesManager_ShowTrackingTag'|translate }}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% if isSuperUser %}
{{ createNewWebsite }}
{% endif %}
</div>
{% endif %}
{# Admin users use these values for Site Search column, when editing websites #}
{% if not isSuperUser %}
<input type="hidden" size="15" id="globalSearchKeywordParameters"
value="{{ globalSearchKeywordParameters }}"/>
<input type="hidden" size="15" id="globalSearchCategoryParameters"
value="{{ globalSearchCategoryParameters }}"/>
{% endif %}
{% if isSuperUser %}
<br/>
<h2 id="globalSettings">{{ 'SitesManager_GlobalWebsitesSettings'|translate }}</h2>
<br/>
<table style="width:600px;" class="adminTable">
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_GlobalListExcludedIps'|translate }}</strong>
<p>{{ 'SitesManager_ListOfIpsToBeExcludedOnAllWebsites'|translate }} </p>
</td>
</tr>
<tr>
<td>
<textarea cols="30" rows="3" id="globalExcludedIps">
{{- globalExcludedIps -}}
</textarea>
</td>
<td>
<label for="globalExcludedIps">{{ excludedIpHelp }}</label>
</td>
</tr>
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_GlobalListExcludedQueryParameters'|translate }}</strong>
<p>{{ 'SitesManager_ListOfQueryParametersToBeExcludedOnAllWebsites'|translate }} </p>
</td>
</tr>
<tr>
<td>
<textarea cols="30" rows="3" id="globalExcludedQueryParameters">
{{- globalExcludedQueryParameters -}}
</textarea>
</td>
<td>
<label for="globalExcludedQueryParameters">{{ excludedQueryParametersHelp }}</label>
</td>
</tr>
{# global excluded user agents #}
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_GlobalListExcludedUserAgents'|translate }}</strong>
<p>{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }}</p>
</td>
</tr>
<tr>
<td>
<textarea cols="30" rows="3" id="globalExcludedUserAgents">
{{- globalExcludedUserAgents -}}
</textarea>
</td>
<td><label for="globalExcludedUserAgents">{{ excludedUserAgentsHelp }}</label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" id="enableSiteUserAgentExclude" name="enableSiteUserAgentExclude"
{% if allowSiteSpecificUserAgentExclude %}checked="checked"{% endif %}/>
<label for="enableSiteUserAgentExclude">
{{ 'SitesManager_EnableSiteSpecificUserAgentExclude'|translate }}
</label>
<span id="enableSiteUserAgentExclude-loading" class="loadingPiwik" style="display:none;">
<img src="plugins/Zeitgeist/images/loading-blue.gif"/>
</span>
</td>
<td>
{{ piwik.inlineHelp('SitesManager_EnableSiteSpecificUserAgentExclude_Help'|translate('<a href="#editSites">','</a>'))|raw }}
</td>
</tr>
{# global keep URL fragments #}
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_KeepURLFragments'|translate }}</strong>
<p>{{ 'SitesManager_KeepURLFragmentsHelp'|translate("<em>#</em>","<em>example.org/index.html#first_section</em>","<em>example.org/index.html</em>")|raw }}
</p>
<input type="checkbox" id="globalKeepURLFragments" name="globalKeepURLFragments"
{% if globalKeepURLFragments %}checked="checked"{% endif %}/>
<label for="globalKeepURLFragments">{{ 'SitesManager_KeepURLFragmentsLong'|translate }}</label>
<p>{{ 'SitesManager_KeepURLFragmentsHelp2'|translate }}</p>
</td>
</tr>
{# global site search #}
<tr>
<td colspan="2">
<strong id="globalSiteSearch">{{ 'SitesManager_TrackingSiteSearch'|translate }}</strong>
<p>{{ sitesearchIntro }}</p>
<span class="form-description" style="font-size:8pt;">
{{ 'SitesManager_SearchParametersNote'|translate }} {{ 'SitesManager_SearchParametersNote2'|translate }}
</span>
</td>
</tr>
<tr>
<td colspan="2">
<label>{{ searchKeywordLabel }} &nbsp;
<input type="text" size="15" id="globalSearchKeywordParameters"
value="{{ globalSearchKeywordParameters|raw }}"/>
<div style='width: 200px;float:right;'>{{ searchKeywordHelp }}</div>
</label>
</td>
</tr>
<tr>
<td colspan="2">
{% if not isSearchCategoryTrackingEnabled %}
<input value='globalSearchCategoryParametersIsDisabled' id="globalSearchCategoryParameters"
type='hidden'/>
<span class='form-description'>Note: you could also track your Internal Search Engine Categories, but the plugin Custom Variables is required. Please enable the plugin CustomVariables (or ask your Piwik admin).</span>
{% else %}
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryDesc'|translate }} <br/>
</td>
</tr>
<tr>
<td colspan="2">
<label>{{ searchCategoryLabel }} &nbsp;
<input type="text" size="15" id="globalSearchCategoryParameters"
value="{{ globalSearchCategoryParameters|raw }}"/>
<div style='width: 200px;float:right;'>{{ searchCategoryHelp }}</div>
</label>
{% endif %}
</td>
</tr>
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_DefaultTimezoneForNewWebsites'|translate }}</strong>
<p>{{ 'SitesManager_SelectDefaultTimezone'|translate }} </p>
</td>
</tr>
<tr>
<td>
<div id='defaultTimezone'></div>
</td>
<td>
{{ defaultTimezoneHelp }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>{{ 'SitesManager_DefaultCurrencyForNewWebsites'|translate }}</strong>
<p>{{ 'SitesManager_SelectDefaultCurrency'|translate }}</p>
</td>
</tr>
<tr>
<td>
<div id='defaultCurrency'></div>
</td>
<td>
{{ currencyHelpPlain }}
</td>
</tr>
</table>
<span style="margin-left:20px;">
<input type="submit" class="submit" id='globalSettingsSubmit' value="{{ 'General_Save'|translate }}"/>
</span>
{{ ajax.errorDiv('ajaxErrorGlobalSettings') }}
{{ ajax.loadingDiv('ajaxLoadingGlobalSettings') }}
{% endif %}
{% if showAddSite %}
<script type="text/javascript">
$(document).ready(function () {
$('.addRowSite:first').trigger('click');
});
</script>
{% endif %}
<br/><br/><br/><br/>
{% endblock %}

View file

@ -0,0 +1,6 @@
<div ng-class="{'hide_only': !loading && !adminSites.isLoading}">
<div class="loadingPiwik">
<img src="plugins/Morpheus/images/loading-blue.gif" alt="{{ 'General_LoadingData'|translate }}" />
{{ 'General_LoadingData'|translate }}
</div>
</div>

View file

@ -0,0 +1,7 @@
{% import 'settingsMacros.twig' as settingsMacro %}
{% for name, setting in settings %}
<fieldset>
{{ settingsMacro.singleSetting(setting, loop.index) }}
</fieldset>
{% endfor %}

View file

@ -0,0 +1,51 @@
{% extends "dashboard.twig" %}
{% block notification %}{% endblock %}
{% block topcontrols %}
{% include "@CoreHome/_siteSelectHeader.twig" %}
{% endblock %}
{% block content %}
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('<div />').insertAfter('.site-without-data').liveWidget({
interval: 1000,
onUpdate: function () {
// reload page as soon as a visit was detected
document.location.reload();
},
dataUrlParams: {
module: 'Live',
action: 'getLastVisitsStart'
}
});
});
</script>
<div class="site-without-data">
<h2>{{ 'SitesManager_SiteWithoutDataTitle'|translate }}</h2>
<p>
{{ 'SitesManager_SiteWithoutDataDescription'|translate }}
{{ 'SitesManager_SiteWithoutDataSetupTracking'|translate('<a href="' ~ linkTo({
'module': 'CoreAdminHome',
'action': 'trackingCodeGenerator',
}) ~ '">', '</a>')|raw }}
</p>
<p>
{{ 'SitesManager_SiteWithoutDataMessageDisappears'|translate }}
{{ 'SitesManager_SiteWithoutDataSetupGoals'|translate('<a href="' ~ linkTo({
'module': 'Goals',
'action': 'manage',
}) ~ '">', '</a>')|raw }}
</p>
{{ trackingHelp|raw }}
</div>
{% endblock %}

View file

@ -0,0 +1,16 @@
<div piwik-dialog="$parent.showAddSiteDialog"
title="{{ 'SitesManager_ChooseMeasurableTypeHeadline'|translate }}">
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset">
<button type="button"
ng-repeat="type in availableTypes"
title="{{ type.description }}"
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
ng-click="addSite(type.id);closeAddMeasurableDialog()"
aria-disabled="false">
<span class="ui-button-text">{{ type.name }}</span>
</button>
</div>
</div>
</div>

View file

@ -0,0 +1,33 @@
<div ng-show="!siteIsBeingEdited" class="sitesButtonBar clearfix">
<a ng-show="hasSuperUserAccess && availableTypes"
class="btn addSite"
ng-click="addNewEntity()" tabindex="1">
{{ availableTypes.length > 1 ? ('SitesManager_AddMeasurable'|translate) : ('SitesManager_AddSite'|translate) }}
</a>
<div class="search" ng-show="adminSites.hasPrev || adminSites.hasNext || adminSites.searchTerm">
<input ng-model="adminSites.search" piwik-onenter="adminSites.searchSite(adminSites.search)"
placeholder="{{ 'Actions_SubmenuSitesearch' | translate }}" type="text">
<img ng-click="adminSites.searchSite(adminSites.search)" title="{{ 'General_ClickToSearch' | translate }}"
class="search_ico" src="plugins/Morpheus/images/search_ico.png"/>
</div>
<div class="paging" ng-show="adminSites.hasPrev || adminSites.hasNext">
<a class="btn prev" ng-disabled="!adminSites.hasPrev" ng-click="adminSites.previousPage()">
<span style="cursor:pointer;">&#171; {{ 'General_Previous'|translate }}</span>
</a>
<span class="counter" ng-show="adminSites.hasPrev || adminSites.hasNext">
<span ng-if="adminSites.searchTerm">
{{ 'General_PaginationWithoutTotal'|translate:adminSites.offsetStart:adminSites.offsetEnd }}
</span>
<span ng-if="!adminSites.searchTerm">
{{ 'General_Pagination'|translate:adminSites.offsetStart:adminSites.offsetEnd:totalNumberOfSites }}
</span>
</span>
<a class="btn next" ng-disabled="!adminSites.hasNext" ng-click="adminSites.nextPage()">
<span style="cursor:pointer;" class="pointer">{{ 'General_Next'|translate }} &#187;</span>
</a>
</div>
</div>

View file

@ -0,0 +1,152 @@
<div class="site" ng-class="{'editingSite': site.editMode==true}">
<div class="row" ng-if="!site.editMode">
<div class="col-md-3">
<h4>{{ site.name }}</h4>
<ul>
<li><span class="title">{{ 'General_Id'|translate }}:</span> {{ site.idsite }}</li>
<li ng-show="availableTypes.length > 1"><span class="title">Type:</span> {{ currentType.name }}</li>
<li ng-show="site.idsite && howToSetupUrl">
<a target="{{ isInternalSetupUrl ? '_self' : '_blank' }}" title="{{ 'SitesManager_ShowTrackingTag'|translate }}"
ng-href="{{ howToSetupUrl }}{{ isInternalSetupUrl ? '&idSite=' + site.idsite + '&period=' + period + '&date=' + date +'&updated=false' : ''}}">
{{ 'SitesManager_ShowTrackingTag'|translate }}
</a>
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li><span class="title">{{ 'SitesManager_Timezone'|translate }}:</span> {{ site.timezone }}</li>
<li><span class="title">{{ 'SitesManager_Currency'|translate }}:</span> {{ site.currency }}</li>
<li ng-show="site.ecommerce == 1">
<span class="title">{{ 'Goals_Ecommerce'|translate }}:</span> {{ 'General_Yes'|translate }}
</li>
<li ng-show="site.sitesearch == 1">
<span class="title">{{ 'Actions_SubmenuSitesearch'|translate }}:</span> {{ 'General_Yes'|translate }}
</li>
</ul>
</div>
<div class="col-md-4">
<ul>
<li>
<span class="title">{{ 'SitesManager_Urls'|translate }}</span>:
{{ site.alias_urls.join(', ') }}
</li>
<li ng-show="site.excluded_ips.length">
<span class="title">{{ 'SitesManager_ExcludedIps'|translate }}:</span>
{{ site.excluded_ips.join(', ') }}
</li>
<li ng-show="site.excluded_parameters.length">
<span class="title">{{ 'SitesManager_ExcludedParameters'|translate }}:</span>
{{ site.excluded_parameters.join(', ') }}
</li>
<li ng-if="globalSettings.siteSpecificUserAgentExcludeEnabled && site.excluded_user_agents.length">
<span class="title">{{ 'SitesManager_ExcludedUserAgents'|translate }}:</span>
{{ site.excluded_user_agents.join(', ') }}
</li>
</ul>
</div>
<div class="col-md-1 text-right">
<ul>
<li>
<button class="btn btn-flat btn-lg" ng-click="editSite()" title="{{ 'General_Edit'|translate }}">
<span class="icon-edit"></span>
</button>
</li>
<li>
<button class="btn btn-flat btn-lg" ng-show="site.idsite" ng-click="openDeleteDialog()" title="{{ 'General_Delete'|translate }}">
<span class="icon-delete"></span>
</button>
</li>
</ul>
</div>
</div>
<div ng-if="site.editMode">
<div class="form-group">
<label>{{ 'General_Name'|translate }}</label>
<input type="text" ng-model="site.name"/>
</div>
<div class="form-group typeSettings"
ng-include="'?module=SitesManager&action=getMeasurableTypeSettings&idSite=' + site.idsite + '&idType=' + site.type"
>
</div>
<div class="form-group">
<label>{{ 'SitesManager_Urls'|translate }}</label>
<div class="form-help">
{{ 'SitesManager_AliasUrlHelp' | translate }}
</div>
<div sites-manager-multiline-field field="site.alias_urls" cols="25" rows="3"></div>
<div class="form-help">
{{ 'SitesManager_OnlyMatchedUrlsAllowedHelp' | translate }}
{{ 'SitesManager_OnlyMatchedUrlsAllowedHelpExamples' | translate }}
</div>
<label class="checkbox">
<input type="checkbox" ng-model="site.exclude_unknown_urls" ng-true-value="1" ng-false-value="0"> {{ 'SitesManager_OnlyMatchedUrlsAllowed' | translate:'':'' }}
</label>
</div>
<div class="form-group">
<label>{{ 'SitesManager_KeepURLFragmentsLong'|translate }}</label>
<select ng-options="key as value for (key, value) in keepURLFragmentsOptions"
ng-model="site.keep_url_fragment"></select>
</div>
<div class="form-group">
<label>{{ 'SitesManager_ExcludedIps'|translate }}</label>
<div ng-include="'plugins/SitesManager/templates/help/excluded-ip-help.html'"></div>
<div sites-manager-multiline-field field="site.excluded_ips" cols="20" rows="4"></div>
</div>
<div class="form-group">
<label>{{ 'SitesManager_ExcludedParameters'|translate }}</label>
<div ng-include="'plugins/SitesManager/templates/help/excluded-query-parameters-help.html'"></div>
<div sites-manager-multiline-field field="site.excluded_parameters" cols="20" rows="4"></div>
</div>
<div class="form-group" ng-if="globalSettings.siteSpecificUserAgentExcludeEnabled">
<label>{{ 'SitesManager_ExcludedUserAgents'|translate }}</label>
<div ng-include="'plugins/SitesManager/templates/help/excluded-user-agents-help.html'"></div>
<div sites-manager-multiline-field field="site.excluded_user_agents" cols="20" rows="4"></div>
</div>
<div ng-include="'plugins/SitesManager/templates/sites-list/site-search-field.html'"></div>
<div class="form-group">
<label>{{ 'SitesManager_Timezone'|translate }}</label>
<div ng-include="'plugins/SitesManager/templates/help/timezone-help.html'"></div>
<select ng-model="site.timezone" ng-options="t.code as t.label group by t.group for t in timezones"></select>
</div>
<div class="form-group">
<label>{{ 'SitesManager_Currency'|translate }}</label>
<div class="form-help">
{{ 'SitesManager_CurrencySymbolWillBeUsedForGoals' | translate }}
</div>
<select ng-model="site.currency" ng-options="k as v for (k, v) in currencies"></select>
</div>
<div class="form-group">
<label>{{ 'Goals_Ecommerce'|translate }}</label>
<div class="form-help">
{{ 'SitesManager_EcommerceHelp' | translate }}
<br/>
<span ng-bind-html="'SitesManager_PiwikOffersEcommerceAnalytics'|translate:'<a href=\'http://piwik.org/docs/ecommerce-analytics/\' target=\'_blank\'>':'</a>'"></span>
</div>
<select ng-options="option.key as option.value for option in eCommerceptions" ng-model="site.ecommerce"></select>
</div>
<div class="editingSiteFooter">
<input type="submit" class="btn" value="{{ 'General_Save' | translate }}" ng-click="saveSite()"/>
<button class="btn btn-link" ng-click="cancelEditSite($event)">{{ 'General_Cancel' | translate:'':'' }}</button>
</div>
</div>
</div>

View file

@ -0,0 +1,64 @@
<div class="form-group">
<label>{{ 'Actions_SubmenuSitesearch'|translate }}</label>
<div class="form-help">
{{ 'SitesManager_SiteSearchUse'|translate }}
</div>
<select ng-options="option.key as option.value for option in siteSearchOptions" ng-model="site.sitesearch"></select>
</div>
<div ng-if="site.sitesearch">
<div ng-show="globalSettings.searchKeywordParametersGlobal.length" class="form-group">
<label class="checkbox">
<input type="checkbox" ng-model="site.useDefaultSiteSearchParams">
<span ng-show="hasSuperUserAccess"
ng-bind-html="'SitesManager_SearchUseDefault'|translate:'<a href=\'#globalSettings\'>':'</a>'">
</span>
<span ng-hide="hasSuperUserAccess">
{{ 'SitesManager_SearchUseDefault' | translate:'':'' }}
</span>
</label>
<span ng-show="site.useDefaultSiteSearchParams" class="form-description">
{{ 'SitesManager_SearchKeywordLabel' | translate }}
({{ 'General_Default' | translate }}) :
<span ng-repeat="param in globalSettings.searchKeywordParametersGlobal">
{{ param }}<span ng-show="!$last">, </span>
</span>
<span ng-show="globalSettings.searchCategoryParametersGlobal.length">
& {{ 'SitesManager_SearchCategoryLabel' | translate }} :
<span ng-repeat="param in globalSettings.searchCategoryParametersGlobal">
{{ param }}<span ng-show="!$last">, </span>
</span>
</span>
</span>
</div>
<div ng-hide="site.useDefaultSiteSearchParams">
<div class="form-group">
<label>{{ 'SitesManager_SearchKeywordLabel' | translate }}</label>
<div class="form-help">
{{ 'SitesManager_SearchKeywordParametersDesc' | translate }}
</div>
<input ng-list ng-model="site.sitesearch_keyword_parameters">
</div>
<div ng-show="customVariablesActivated" class="form-group">
<label>{{ 'SitesManager_SearchCategoryLabel' | translate }}</label>
<div class="form-help">
{{ 'Goals_Optional' | translate }} {{ 'SitesManager_SearchCategoryParametersDesc' | translate }}
</div>
<input ng-list ng-model="site.sitesearch_category_parameters">
</div>
</div>
</div>

View file

@ -0,0 +1,13 @@
<div class="sitesManagerList">
<div ng-repeat="site in adminSites.sites" ng-include="'plugins/SitesManager/templates/dialogs/dialogs.html?cb=' + cacheBuster"></div>
<p ng-if="adminSites.searchTerm && 0 === adminSites.sites.length && !adminSites.isLoading">
{{ 'SitesManager_NotFound'|translate }} <strong>{{ adminSites.searchTerm }}</strong>
</p>
<div ng-controller="SitesManagerSiteController" ng-repeat="site in adminSites.sites"
ng-include="'plugins/SitesManager/templates/sites-list/site-fields.html?cb=' + cacheBuster">
</div>
</div>

View file

@ -0,0 +1,18 @@
<h2
ng-show="availableTypes"
piwik-enriched-headline
help-url="http://piwik.org/docs/manage-websites/"
feature-name="{{ 'SitesManager_WebsitesManagement'|translate }}">
{{ 'SitesManager_XManagement'|translate:(availableTypes.length > 1 ? ('General_Measurables'|translate) : ('SitesManager_Sites'|translate)) }}
</h2>
<p>
{{ 'SitesManager_MainDescription'|translate }}
<span ng-bind-html="'SitesManager_YouCurrentlyHaveAccessToNWebsites'|translate:'<strong>' + totalNumberOfSites + '</strong>'"></span>
<span ng-show="hasSuperUserAccess">
<br/>
<span ng-bind-html="'SitesManager_SuperUserAccessCan'|translate:'<a href=\'#globalSettings\'>':'</a>'"></span>
</span>
</p>