PDF rausgenommen

This commit is contained in:
aschwarz
2023-01-23 11:03:31 +01:00
parent 82d562a322
commit a6523903eb
28078 changed files with 4247552 additions and 2 deletions

View File

@ -0,0 +1,48 @@
{{ prettyDate }}{% if displaySegment %}, {{ segmentName }}{% endif %}. {% if false %}{% endif %}
{%- if reportRows is empty -%}
{{ 'CoreHome_ThereIsNoDataForThisReport'|translate }}
{%- endif -%}
{%- for rowId, row in reportRows -%}
{%- set rowMetrics=row.columns -%}
{%- set rowMetadata=reportRowsMetadata[rowId].columns -%}
{%- if displaySiteName -%}{{ rowMetrics.label|raw }}: {% endif -%}
{# visits #}
{{- rowMetrics.nb_visits|number }} {{ 'General_ColumnNbVisits'|translate }}
{%- if rowMetrics.visits_evolution != 0 %} ({{ rowMetrics.visits_evolution|percentEvolution }}){%- endif -%}
{%- if rowMetrics.nb_visits != 0 -%}
{#- actions -#}
, {{ rowMetrics.nb_actions|number }} {{ 'General_ColumnNbActions'|translate }}
{%- if rowMetrics.actions_evolution != 0 %} ({{ rowMetrics.actions_evolution|percentEvolution }}){%- endif -%}
{%- if isGoalPluginEnabled -%}
{# goal metrics #}
{%- if rowMetrics.nb_conversions != 0 -%}
, {{ 'General_ColumnRevenue'|translate }}: {{ rowMetrics.revenue|raw }}
{%- if rowMetrics.revenue_evolution != 0 %} ({{ rowMetrics.revenue_evolution|percentEvolution }}){%- endif -%}
, {{ rowMetrics.nb_conversions|number }} {{ 'Goals_GoalConversions'|translate }}
{%- if rowMetrics.nb_conversions_evolution != 0 %} ({{ rowMetrics.nb_conversions_evolution|percentEvolution }}){%- endif -%}
{%- endif -%}
{# eCommerce metrics #}
{%- if siteHasECommerce[rowMetadata.idsite] -%}
, {{ 'General_ProductRevenue'|translate }}: {{ rowMetrics.ecommerce_revenue|raw }}
{%- if rowMetrics.ecommerce_revenue_evolution != 0 %} ({{ rowMetrics.ecommerce_revenue_evolution|percentEvolution }}){%- endif -%}
, {{ rowMetrics.orders|number }} {{ 'General_EcommerceOrders'|translate }}
{%- if rowMetrics.orders_evolution != 0 %} ({{ rowMetrics.orders_evolution|percentEvolution }}){%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- if not loop.last -%}. {% endif -%}
{%- endfor -%}

View File

@ -0,0 +1,7 @@
{% for field in credentialfields %}
<div piwik-field uicontrol="{{ field.type }}" name="{{ field.name }}"
ng-model="credentials.{{ field.name }}"
title="{{ field.title|translate|e('html_attr') }}"
value="">
</div>
{% endfor %}

View File

@ -0,0 +1,172 @@
{% extends 'admin.twig' %}
{% import '@MobileMessaging/macros.twig' as macro %}
{% set title %}{{ 'MobileMessaging_SettingsMenu'|translate }}{% endset %}
{% block content %}
<div class="manageMobileMessagingSettings">
{% if isSuperUser %}
<div piwik-content-block content-title="{{ title|e('html_attr') }}">
<div ng-controller="DelegateMobileMessagingSettingsController as delegateManagement">
<div piwik-field uicontrol="radio" name="delegatedManagement"
options="{{ delegateManagementOptions|json_encode }}"
full-width="true"
ng-model="delegateManagement.enabled"
title="{{ 'MobileMessaging_Settings_LetUsersManageAPICredential'|translate|e('html_attr') }}"
value="{% if delegatedManagement %}1{% else %}0{% endif %}">
</div>
<div piwik-save-button onconfirm="delegateManagement.save()" saving="delegateManagement.isLoading"></div>
</div>
</div>
{% endif %}
{% if accountManagedByCurrentUser %}
<div piwik-content-block content-title="{{ 'MobileMessaging_Settings_SMSProvider'|translate|e('html_attr') }}" feature="true">
{% if isSuperUser and delegatedManagement %}
<p>{{ 'MobileMessaging_Settings_DelegatedSmsProviderOnlyAppliesToYou'|translate }}</p>
{% endif %}
{{ macro.manageSmsApi(credentialSupplied, credentialError, creditLeft, smsProviderOptions, smsProviders, provider) }}
</div>
{% endif %}
<div piwik-content-block content-title="{{ 'MobileMessaging_PhoneNumbers'|translate|e('html_attr') }}">
{% if not credentialSupplied %}
<p>
{% if accountManagedByCurrentUser %}
{{ 'MobileMessaging_Settings_CredentialNotProvided'|translate }}
{% else %}
{{ 'MobileMessaging_Settings_CredentialNotProvidedByAdmin'|translate }}
{% endif %}
</p>
{% else %}
<div ng-controller="ManageMobilePhoneNumbersController as managePhoneNumber">
<p>{{ 'MobileMessaging_Settings_PhoneNumbers_Help'|translate }}</p>
{% if isSuperUser %}
<p>{{ 'MobileMessaging_Settings_DelegatedPhoneNumbersOnlyUsedByYou'|translate }}</p>
{% endif %}
<div class="row">
<h3 class="col s12">{{ 'MobileMessaging_Settings_PhoneNumbers_Add'|translate }}</h3>
</div>
<div class="form-group row">
<div class="col s12 m6">
<div piwik-field uicontrol="select" name="countryCodeSelect"
value="{{ defaultCallingCode }}"
ng-model="managePhoneNumber.countryCallingCode"
full-width="true"
title="{{ 'MobileMessaging_Settings_SelectCountry'|translate|e('html_attr') }}"
options='{{ countries|json_encode }}'>
</div>
</div>
<div class="col s12 m6 form-help">
{{ 'MobileMessaging_Settings_PhoneNumbers_CountryCode_Help'|translate }}
</div>
</div>
<div class="form-group row addPhoneNumber">
<div class="col s12 m6">
<div class="countryCode left">
<span class="countryCodeSymbol">+</span>
<div piwik-field uicontrol="text" name="countryCallingCode"
full-width="true"
ng-model="managePhoneNumber.countryCallingCode"
maxlength="4"
title="{{ 'MobileMessaging_Settings_CountryCode'|translate }}">
</div>
</div>
<div class="phoneNumber left">
<div piwik-field uicontrol="text" name="newPhoneNumber"
ng-model="managePhoneNumber.newPhoneNumber"
ng-change="managePhoneNumber.validateNewPhoneNumberFormat()"
full-width="true"
maxlength="80"
title="{{ 'MobileMessaging_Settings_PhoneNumber'|translate }}">
</div>
</div>
<div class="addNumber left valign-wrapper">
<div piwik-save-button
data-disabled="!managePhoneNumber.canAddNumber || managePhoneNumber.isAddingPhonenumber"
onconfirm="managePhoneNumber.addPhoneNumber()"
class="valign" value='{{ 'General_Add'|translate }}'></div>
</div>
<div piwik-alert="warning"
id="suspiciousPhoneNumber"
ng-show="managePhoneNumber.showSuspiciousPhoneNumber">
{{ 'MobileMessaging_Settings_SuspiciousPhoneNumber'|translate('54184032') }}
</div>
</div>
<div class="col s12 m6 form-help">
{{ strHelpAddPhone }}
</div>
</div>
<div id="ajaxErrorAddPhoneNumber"></div>
<div piwik-activity-indicator loading="managePhoneNumber.isAddingPhonenumber"></div>
{% if phoneNumbers|length > 0 %}
<div class="row"><h3 class="col s12">{{ 'MobileMessaging_Settings_ManagePhoneNumbers'|translate }}</h3></div>
{% endif %}
{% for phoneNumber, validated in phoneNumbers %}
<div class="form-group row">
<div class="col s12 m6">
<span class='phoneNumber'>{{ phoneNumber }}</span>
{% if not validated %}
<input type="text"
ng-hide="managePhoneNumber.isActivated[{{ loop.index }}]"
ng-model="managePhoneNumber.validationCode[{{ loop.index }}]"
class='verificationCode'
placeholder="{{ 'MobileMessaging_Settings_EnterActivationCode'|translate|e('html_attr') }}"/>
<div piwik-save-button
ng-hide="managePhoneNumber.isActivated[{{ loop.index }}]"
value='{{ 'MobileMessaging_Settings_ValidatePhoneNumber'|translate }}'
data-disabled="!managePhoneNumber.validationCode[{{ loop.index }}] || managePhoneNumber.isChangingPhoneNumber"
onconfirm='managePhoneNumber.validateActivationCode({{ phoneNumber|json_encode }}, {{ loop.index }})'
></div>
{% endif %}
<div piwik-save-button
value='{{ 'General_Remove'|translate }}'
data-disabled="managePhoneNumber.isChangingPhoneNumber"
onconfirm="managePhoneNumber.removePhoneNumber({{ phoneNumber|json_encode }})"
></div>
</div>
{% if not validated %}
<div class="form-help col s12 m6">
<div ng-hide="managePhoneNumber.isActivated[{{ loop.index }}]">
{{ 'MobileMessaging_Settings_VerificationCodeJustSent'|translate }}
</div>
&nbsp;
</div>
{% endif %}
</div>
{% endfor %}
{{ ajax.errorDiv('invalidVerificationCodeAjaxError') }}
<div piwik-activity-indicator loading="managePhoneNumber.isChangingPhoneNumber"></div>
</div>
{% endif %}
</div>
<div class='ui-confirm' id='confirmDeleteAccount'>
<h2>{{ 'MobileMessaging_Settings_DeleteAccountConfirm'|translate }}</h2>
<input role='yes' type='button' value='{{ 'General_Yes'|translate }}'/>
<input role='no' type='button' value='{{ 'General_No'|translate }}'/>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,84 @@
{% macro manageSmsApi(credentialSupplied, credentialError, creditLeft, smsProviderOptions, smsProviders, provider) %}
<div ng-controller="ManageSmsProviderController as manageProvider">
<div piwik-activity-indicator loading="manageProvider.isDeletingAccount"></div>
<div id="ajaxErrorManageSmsProviderSettings"></div>
{% if credentialSupplied %}
<p>
{% if credentialError %}
{{ 'MobileMessaging_Settings_CredentialInvalid'|translate(provider) }}<br />
{{ credentialError }}
{% else %}
{{ 'MobileMessaging_Settings_CredentialProvided'|translate(provider) }}
{{ creditLeft }}
{% endif %}
<br/>
{{ 'MobileMessaging_Settings_UpdateOrDeleteAccount'|translate('<a ng-click="manageProvider.showUpdateAccount()" id="displayAccountForm">',"</a>",'<a ng-click="manageProvider.deleteAccount()" id="deleteAccount">',"</a>")|raw }}
</p>
{% else %}
<p>{{ 'MobileMessaging_Settings_PleaseSignUp'|translate }}</p>
{% endif %}
<div piwik-form id='accountForm' {% if credentialSupplied %}ng-show="manageProvider.showAccountForm"{% endif %}>
<div piwik-field uicontrol="select" name="smsProviders"
options="{{ smsProviderOptions|json_encode }}"
ng-model="manageProvider.smsProvider"
ng-change="manageProvider.isUpdateAccountPossible()"
title="{{ 'MobileMessaging_Settings_SMSProvider'|translate|e('html_attr') }}"
value="{{ provider }}">
</div>
<div sms-provider-credentials
provider="manageProvider.smsProvider"
ng-model="manageProvider.credentials"
value="{}"
ng-init="manageProvider.isUpdateAccountPossible()"
ng-change="manageProvider.isUpdateAccountPossible()"
></div>
<div piwik-save-button id='apiAccountSubmit'
data-disabled="!manageProvider.canBeUpdated"
saving="manageProvider.isUpdatingAccount"
onconfirm="manageProvider.updateAccount()"></div>
{% for smsProvider, description in smsProviders %}
<div class='providerDescription'
ng-show="manageProvider.smsProvider == '{{ smsProvider|e('js') }}'"
id='{{ smsProvider }}'>
{{ description|raw }}
</div>
{% endfor %}
</div>
</div>
{% endmacro %}
{% macro selectPhoneNumbers(phoneNumbers, angularContext, value, withIntroduction) %}
<div id="mobilePhoneNumbersHelp" class="inline-help-node">
<span class="icon-info"></span>
{% if phoneNumbers|length == 0 %}
{{ 'MobileMessaging_MobileReport_NoPhoneNumbers'|translate }}
{% else %}
{{ 'MobileMessaging_MobileReport_AdditionalPhoneNumbers'|translate|e('html_attr') }}
{% endif %}
<a href="{{ linkTo({'module':"MobileMessaging", 'action': 'index', 'updated':null}) }}">{{ 'MobileMessaging_MobileReport_MobileMessagingSettingsLink'|translate }}</a>
</div>
<div class='mobile'
piwik-field uicontrol="checkbox"
var-type="array"
name="phoneNumbers"
ng-model="{{ angularContext }}.report.phoneNumbers"
{% if withIntroduction %}
introduction="{{ 'ScheduledReports_SendReportTo'|translate|e('html_attr') }}"
{% endif %}
title="{{ 'MobileMessaging_PhoneNumbers'|translate|e('html_attr') }}"
{% if phoneNumbers|length == 0 %}disabled="true"{% endif %}
options="{{ phoneNumbers|json_encode }}"
inline-help="#mobilePhoneNumbersHelp"
{% if value %}value="{{ value|json_encode }}"{% endif %}>
</div>
{% endmacro %}

View File

@ -0,0 +1,30 @@
{% import '@MobileMessaging/macros.twig' as macro %}
<div ng-show="manageScheduledReport.report.type == 'mobile'">
{{ macro.selectPhoneNumbers(phoneNumbers, 'manageScheduledReport', '', true) }}
</div>
<script>
$(function () {
resetReportParametersFunctions['mobile'] = function (report) {
report.phoneNumbers = [];
report.formatmobile = 'sms';
};
updateReportParametersFunctions['mobile'] = function (report) {
if (report.parameters && report.parameters.phoneNumbers) {
report.phoneNumbers = report.parameters.phoneNumbers;
}
report.formatmobile = 'sms';
};
getReportParametersFunctions['mobile'] = function (report) {
var parameters = {};
// returning [''] when no phone numbers are selected avoids the "please provide a value for 'parameters'" error message
parameters.phoneNumbers = report.phoneNumbers && report.phoneNumbers.length > 0 ? report.phoneNumbers : [''];
return parameters;
};
});
</script>