PDF rausgenommen
This commit is contained in:
@ -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 -%}
|
@ -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 %}
|
172
msd2/tracking/piwik/plugins/MobileMessaging/templates/index.twig
Normal file
172
msd2/tracking/piwik/plugins/MobileMessaging/templates/index.twig
Normal 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>
|
||||
|
||||
</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 %}
|
@ -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 %}
|
@ -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>
|
Reference in New Issue
Block a user