PDF rausgenommen
This commit is contained in:
@ -0,0 +1,175 @@
|
||||
<div piwik-content-block
|
||||
content-title="{{ 'ScheduledReports_CreateAndScheduleReport'|translate|e('html_attr') }}"
|
||||
class="entityAddContainer"
|
||||
ng-if="manageScheduledReport.showReportForm">
|
||||
<div class='clear'></div>
|
||||
<form id='addEditReport' piwik-form ng-submit="manageScheduledReport.submitReport()">
|
||||
|
||||
<div piwik-field uicontrol="text" name="website"
|
||||
title="{{ 'General_Website'|translate|e('html_attr') }}"
|
||||
data-disabled="true"
|
||||
value="{{ siteName|rawSafeDecoded }}">
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="textarea" name="report_description"
|
||||
title="{{ 'General_Description'|translate|e('html_attr') }}"
|
||||
ng-model="manageScheduledReport.report.description"
|
||||
inline-help="{{ 'ScheduledReports_DescriptionOnFirstPage'|translate|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
{% if segmentEditorActivated %}
|
||||
<div id="reportSegmentInlineHelp" class="inline-help-node">
|
||||
{% set SegmentEditor_DefaultAllVisits %}{{ 'SegmentEditor_DefaultAllVisits'|translate }}{% endset %}
|
||||
{% set SegmentEditor_AddNewSegment %}{{ 'SegmentEditor_AddNewSegment'|translate }}{% endset %}
|
||||
{{ 'ScheduledReports_Segment_Help'|translate('<a href="./" rel="noreferrer noopener" target="_blank">','</a>',SegmentEditor_DefaultAllVisits,SegmentEditor_AddNewSegment)|raw }}
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="select" name="report_segment"
|
||||
ng-model="manageScheduledReport.report.idsegment"
|
||||
options="{{ savedSegmentsById|json_encode }}"
|
||||
title="{{ 'SegmentEditor_ChooseASegment'|translate|e('html_attr') }}"
|
||||
inline-help="#reportSegmentInlineHelp">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div id="emailScheduleInlineHelp" class="inline-help-node">
|
||||
{{ 'ScheduledReports_WeeklyScheduleHelp'|translate }}
|
||||
<br/>
|
||||
{{ 'ScheduledReports_MonthlyScheduleHelp'|translate }}
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="select" name="report_period"
|
||||
options="{{ periods|json_encode }}"
|
||||
ng-model="manageScheduledReport.report.period"
|
||||
title="{{ 'ScheduledReports_EmailSchedule'|translate|e('html_attr') }}"
|
||||
inline-help="#emailScheduleInlineHelp">
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="select" name="report_hour"
|
||||
options="manageScheduledReport.reportHours"
|
||||
ng-change="manageScheduledReport.updateReportHourUtc()"
|
||||
ng-model="manageScheduledReport.report.hour"
|
||||
{% if timezoneOffset != 0 %}inline-help="#reportHourHelpText"{% endif %}
|
||||
title="{{ 'ScheduledReports_ReportHour'|translate('X')|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
{% if timezoneOffset != 0 %}
|
||||
<div id="reportHourHelpText" class="inline-help-node">
|
||||
<span ng-bind="manageScheduledReport.report.hourUtc"></span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div piwik-field uicontrol="select" name="report_type"
|
||||
options="{{ reportTypeOptions|json_encode }}"
|
||||
ng-model="manageScheduledReport.report.type"
|
||||
ng-change="manageScheduledReport.changedReportType()"
|
||||
{% if reportTypes|length == 1 %}disabled="true"{% endif %}
|
||||
title="{{ 'ScheduledReports_ReportType'|translate|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
{% for reportType, reportFormats in reportFormatsByReportTypeOptions %}
|
||||
<div piwik-field uicontrol="select" name="report_format"
|
||||
class="{{ reportType }}"
|
||||
ng-model="manageScheduledReport.report.format{{ reportType }}"
|
||||
ng-show="manageScheduledReport.report.type == '{{ reportType }}'"
|
||||
options="{{ reportFormats|json_encode }}"
|
||||
title="{{ 'ScheduledReports_ReportFormat'|translate|e('html_attr') }}">
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{{ postEvent("Template.reportParametersScheduledReports") }}
|
||||
|
||||
<div ng-show="manageScheduledReport.report.type == 'email' && manageScheduledReport.report.formatemail !== 'csv'">
|
||||
<div piwik-field uicontrol="select" name="display_format" class="email"
|
||||
ng-model="manageScheduledReport.report.displayFormat"
|
||||
options="{{ displayFormats|json_encode }}"
|
||||
introduction="{{ 'ScheduledReports_AggregateReportsFormat'|translate|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="checkbox" name="report_evolution_graph"
|
||||
class="report_evolution_graph"
|
||||
ng-model="manageScheduledReport.report.evolutionGraph"
|
||||
ng-show="manageScheduledReport.report.displayFormat == '2' || manageScheduledReport.report.displayFormat == '3'"
|
||||
title="{{ 'ScheduledReports_EvolutionGraph'|translate(5)|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="row evolution-graph-period"
|
||||
ng-show="manageScheduledReport.report.displayFormat == '1' || manageScheduledReport.report.displayFormat == '2' || manageScheduledReport.report.displayFormat == '3'"
|
||||
>
|
||||
<div class="col s12">
|
||||
<input id="report_evolution_period_for_each" name="report_evolution_period_for" type="radio" checked value="each" ng-model="manageScheduledReport.report.evolutionPeriodFor" />
|
||||
<label for="report_evolution_period_for_each" piwik-translate="ScheduledReports_EvolutionGraphsShowForEachInPeriod">
|
||||
<strong>::</strong>::{{ "{{ manageScheduledReport.getFrequencyPeriodSingle() }}" }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<input id="report_evolution_period_for_prev" name="report_evolution_period_for" type="radio" value="prev" ng-model="manageScheduledReport.report.evolutionPeriodFor" />
|
||||
<label for="report_evolution_period_for_prev">
|
||||
{{ "{{ 'ScheduledReports_EvolutionGraphsShowForPreviousN'|translate:manageScheduledReport.getFrequencyPeriodPlural() }}" }}:
|
||||
<input type="number" name="report_evolution_period_n" ng-model="manageScheduledReport.report.evolutionPeriodN" />
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<h3 class="col s12">{{ 'ScheduledReports_ReportsIncluded'|translate }}</h3>
|
||||
</div>
|
||||
|
||||
{% for reportType, reportsByCategory in reportsByCategoryByReportType %}
|
||||
<div name='reportsList' class='row {{ reportType }}'
|
||||
ng-show="manageScheduledReport.report.type == '{{ reportType }}'">
|
||||
|
||||
{% if allowMultipleReportsByReportType[reportType] %}
|
||||
{% set reportInputType='checkbox' %}
|
||||
{% else %}
|
||||
{% set reportInputType='radio' %}
|
||||
{% endif %}
|
||||
|
||||
{% set countCategory=0 %}
|
||||
|
||||
{% set newColumnAfter=(reportsByCategory|length + 1)//2 %}
|
||||
|
||||
<div class='col s12 m6'>
|
||||
{% for category, reports in reportsByCategory %}
|
||||
{% if countCategory >= newColumnAfter and newColumnAfter != 0 %}
|
||||
{% set newColumnAfter=0 %}
|
||||
</div>
|
||||
<div class='col s12 m6'>
|
||||
{% endif %}
|
||||
<h3 class='reportCategory'>{{ category }}</h3>
|
||||
<ul class='listReports'>
|
||||
{% for report in reports %}
|
||||
<li>
|
||||
<input type='{{ reportInputType }}' id="{{ reportType }}{{ report.uniqueId }}" report-unique-id='{{ report.uniqueId }}'
|
||||
name='{{ reportType }}Reports'/>
|
||||
<label for="{{ reportType }}{{ report.uniqueId }}">
|
||||
{{ report.name|rawSafeDecoded }}
|
||||
{% if report.uniqueId=='MultiSites_getAll' %}
|
||||
<div class="entityInlineHelp">{{ 'ScheduledReports_ReportIncludeNWebsites'|translate(countWebsites)
|
||||
}}</div>
|
||||
{% endif %}
|
||||
</label>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% set countCategory=countCategory+1 %}
|
||||
</ul>
|
||||
<br/>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<input type="hidden" id="report_idreport" ng-model="manageScheduledReport.editingReportId">
|
||||
|
||||
<div ng-value="manageScheduledReport.saveButtonTitle"
|
||||
onconfirm="manageScheduledReport.submitReport()"
|
||||
piwik-save-button></div>
|
||||
|
||||
<div class='entityCancel'>
|
||||
{{ 'General_OrCancel'|translate("<a class='entityCancelLink' ng-click='manageScheduledReport.showListOfReports()'>","</a>")|raw }}
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
@ -0,0 +1,114 @@
|
||||
<div id='entityEditContainer' class="entityTableContainer"
|
||||
piwik-content-block
|
||||
content-title="{{ title|e('html_attr') }}"
|
||||
help-url="https://matomo.org/docs/email-reports/"
|
||||
feature="true"
|
||||
ng-show="manageScheduledReport.showReportsList">
|
||||
|
||||
<table piwik-content-table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="first">{{ 'General_Description'|translate }}</th>
|
||||
<th>{{ 'ScheduledReports_EmailSchedule'|translate }}</th>
|
||||
<th>{{ 'ScheduledReports_ReportFormat'|translate }}</th>
|
||||
<th>{{ 'ScheduledReports_SendReportTo'|translate }}</th>
|
||||
<th>{{ 'General_Download'|translate }}</th>
|
||||
<th>{{ 'General_Edit'|translate }}</th>
|
||||
<th>{{ 'General_Delete'|translate }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
{% if userLogin == 'anonymous' %}
|
||||
<tr>
|
||||
<td colspan='7'>
|
||||
<br/>
|
||||
{{ 'ScheduledReports_MustBeLoggedIn'|translate }}
|
||||
<br/>› <a href='index.php?module={{ loginModule }}'>{{ 'Login_LogIn'|translate }}</a>
|
||||
<br/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
{% elseif reports is empty %}
|
||||
<tr>
|
||||
|
||||
<td colspan='7'>
|
||||
<br/>
|
||||
{{ 'ScheduledReports_ThereIsNoReportToManage'|translate(siteName)|rawSafeDecoded }}.
|
||||
<br/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
{% for report in reports %}
|
||||
<tr>
|
||||
<td class="first">
|
||||
{{ report.description|rawSafeDecoded }}
|
||||
{% if segmentEditorActivated and report.idsegment %}
|
||||
<div class="entityInlineHelp" style="font-size: 9pt;">
|
||||
{{ savedSegmentsById[report.idsegment] }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ periods[report.period] }}
|
||||
<!-- Last sent on {{ report.ts_last_sent }} -->
|
||||
</td>
|
||||
<td>
|
||||
{% if report.format is not empty %}
|
||||
{{ report.format|upper }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{# report recipients #}
|
||||
{% if report.recipients|length == 0 %}
|
||||
{{ 'ScheduledReports_NoRecipients'|translate }}
|
||||
{% else %}
|
||||
{% for recipient in report.recipients %}
|
||||
{{ recipient }}
|
||||
<br/>
|
||||
{% endfor %}
|
||||
{# send now link #}
|
||||
<a href="#"
|
||||
ng-click="manageScheduledReport.sendReportNow({{ report.idreport }})"
|
||||
name="linkSendNow" class="link_but withIcon" style="margin-top:3px;">
|
||||
<img border=0 src='{{ reportTypes[report.type] }}'/>
|
||||
{{ 'ScheduledReports_SendReportNow'|translate }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{# download link #}
|
||||
<a href="{{ linkTo({'module':'API', 'segment': null, 'token_auth':token_auth,
|
||||
'method':'ScheduledReports.generateReport', 'idReport':report.idreport,
|
||||
'outputType':downloadOutputType, 'language':language,
|
||||
'format': (report.format in ['html', 'csv']) ? report.format : false
|
||||
}) }}"
|
||||
rel="noreferrer noopener" target="_blank" name="linkDownloadReport" id="{{ report.idreport }}" class="link_but withIcon">
|
||||
<img src='{{ reportFormatsByReportType[report.type][report.format] }}' border="0" width="16px" height="16px"/>
|
||||
{{ 'General_Download'|translate }}
|
||||
</a>
|
||||
</td>
|
||||
<td style="text-align: center;padding-top:2px;">
|
||||
<button ng-click="manageScheduledReport.editReport({{ report.idreport }})"
|
||||
class="table-action" title="{{ 'General_Edit'|translate|e('html_attr') }}">
|
||||
<span class="icon-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td style="text-align: center;padding-top:2px;">
|
||||
<button ng-click="manageScheduledReport.deleteReport({{ report.idreport }})"
|
||||
class="table-action" title="{{ 'General_Delete'|translate|e('html_attr') }}">
|
||||
<span class="icon-delete"></span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</table>
|
||||
|
||||
<div class="tableActionBar">
|
||||
{% if userLogin != 'anonymous' %}
|
||||
<button id="add-report" ng-click="manageScheduledReport.createReport()" >
|
||||
<span class="icon-add"></span>
|
||||
{{ 'ScheduledReports_CreateAndScheduleReport'|translate }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
@ -0,0 +1,60 @@
|
||||
{% extends 'admin.twig' %}
|
||||
|
||||
{% set title %}{{ 'ScheduledReports_PersonalEmailReports'|translate }}{% endset %}
|
||||
|
||||
{% block topcontrols %}
|
||||
{% include "@CoreHome/_siteSelectHeader.twig" %}
|
||||
{% include "@CoreHome/_periodSelect.twig" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="emailReports" piwik-manage-scheduled-report>
|
||||
|
||||
<span id="reportSentSuccess"></span>
|
||||
<span id="reportUpdatedSuccess"></span>
|
||||
|
||||
<div>
|
||||
{% import 'ajaxMacros.twig' as ajax %}
|
||||
{{ ajax.errorDiv() }}
|
||||
{{ ajax.loadingDiv() }}
|
||||
{% include "@ScheduledReports/_listReports.twig" %}
|
||||
{% include "@ScheduledReports/_addReport.twig" %}
|
||||
<a id='bottom'></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ui-confirm" id="confirm">
|
||||
<h2>{{ 'ScheduledReports_AreYouSureDeleteReport'|translate }}</h2>
|
||||
<input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
|
||||
<input role="no" type="button" value="{{ 'General_No'|translate }}"/>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var ReportPlugin = {};
|
||||
ReportPlugin.defaultPeriod = '{{ defaultPeriod }}';
|
||||
ReportPlugin.defaultHour = '{{ defaultHour }}';
|
||||
ReportPlugin.defaultReportType = '{{ defaultReportType }}';
|
||||
ReportPlugin.defaultReportFormat = '{{ defaultReportFormat }}';
|
||||
ReportPlugin.reportList = {{ reportsJSON | raw }};
|
||||
ReportPlugin.createReportString = "{{ 'ScheduledReports_CreateReport'|translate }}";
|
||||
ReportPlugin.updateReportString = "{{ 'ScheduledReports_UpdateReport'|translate }}";
|
||||
ReportPlugin.defaultEvolutionPeriodN = {{ defaultEvolutionPeriodN|json_encode|raw }};
|
||||
ReportPlugin.periodTranslations = {{ periodTranslations|json_encode|raw }};
|
||||
</script>
|
||||
<style type="text/css">
|
||||
.reportCategory {
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.entityAddContainer {
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.emailReports .top_controls {
|
||||
padding-bottom: 18px;
|
||||
}
|
||||
|
||||
</style>
|
||||
{% endblock %}
|
@ -0,0 +1,52 @@
|
||||
<div piwik-field uicontrol="checkbox"
|
||||
name="report_email_me"
|
||||
introduction="{{ 'ScheduledReports_SendReportTo'|translate|e('html_attr') }}"
|
||||
ng-show="manageScheduledReport.report.type == 'email'"
|
||||
ng-model="manageScheduledReport.report.emailMe"
|
||||
title="{{ 'ScheduledReports_SentToMe'|translate|e('html_attr') }} ({{ currentUserEmail|e('html_attr') }})">
|
||||
</div>
|
||||
|
||||
<div piwik-field uicontrol="textarea" var-type="array"
|
||||
ng-show="manageScheduledReport.report.type == 'email'"
|
||||
ng-model="manageScheduledReport.report.additionalEmails"
|
||||
title="{{ 'ScheduledReports_AlsoSendReportToTheseEmails'|translate|e('html_attr') }}">
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$(function () {
|
||||
|
||||
resetReportParametersFunctions ['{{ reportType }}'] = function (report) {
|
||||
report.displayFormat = '{{ defaultDisplayFormat }}';
|
||||
report.emailMe = {{ defaultEmailMe }};
|
||||
report.evolutionGraph = {{ defaultEvolutionGraph }};
|
||||
report.additionalEmails = '';
|
||||
};
|
||||
|
||||
updateReportParametersFunctions['{{ reportType }}'] = function (report) {
|
||||
if (report == null || report.parameters == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var i, field, fields = ['displayFormat', 'emailMe', 'evolutionGraph', 'additionalEmails'];
|
||||
for (i in fields) {
|
||||
field = fields[i];
|
||||
if (field in report.parameters) {
|
||||
report[field] = report.parameters[field];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
getReportParametersFunctions['{{ reportType }}'] = function (report) {
|
||||
|
||||
var parameters = {};
|
||||
|
||||
parameters.displayFormat = report.displayFormat;
|
||||
parameters.emailMe = report.emailMe;
|
||||
parameters.evolutionGraph = report.evolutionGraph;
|
||||
parameters.additionalEmails = report.additionalEmails ? report.additionalEmails : [];
|
||||
|
||||
return parameters;
|
||||
};
|
||||
});
|
||||
</script>
|
@ -0,0 +1,65 @@
|
||||
{% extends '@Morpheus/layout.twig' %}
|
||||
|
||||
{% block meta %}
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
{% endblock %}
|
||||
|
||||
{% set title %}{{ 'ScheduledReports_ReportUnsubscribe'|translate }}{% endset %}
|
||||
|
||||
{% set bodyId = 'loginPage' %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{{ postEvent("Template.beforeTopBar", "login") }}
|
||||
{{ postEvent("Template.beforeContent", "login") }}
|
||||
|
||||
{% include "_iframeBuster.twig" %}
|
||||
|
||||
<div id="notificationContainer">
|
||||
</div>
|
||||
<nav>
|
||||
<div class="nav-wrapper">
|
||||
{% include "@CoreHome/_logo.twig" with { 'logoLink': 'https://matomo.org', 'centeredLogo': true, 'useLargeLogo': false } %}
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section class="loginSection row">
|
||||
<div class="col s12 m6 push-m3 l4 push-l4">
|
||||
|
||||
<div class="contentForm loginForm">
|
||||
{% embed 'contentBlock.twig' with {'title': 'ScheduledReports_ReportUnsubscribe'|translate} %}
|
||||
{% block content %}
|
||||
{% if error is defined %}
|
||||
<div piwik-notification
|
||||
noclear="true"
|
||||
context="error">
|
||||
<strong>{{ 'General_Error'|translate }}</strong>: {{ error|raw }}<br/>
|
||||
</div>
|
||||
{% elseif success is defined %}
|
||||
<p class="message">{{ 'ScheduledReports_SuccessfullyUnsubscribed'|translate('<strong>'~reportName|rawSafeDecoded~'</strong>')|raw }}</p>
|
||||
{% else %}
|
||||
<form method="POST" ng-non-bindable>
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<br/>
|
||||
<p>{{ 'ScheduledReports_UnsubscribeReportConfirmation'|translate('<strong>'~reportName|rawSafeDecoded~'</strong>')|raw }}</p>
|
||||
<br /><br /><br />
|
||||
<input type="hidden" name="nonce" id="unsubscribe_form_nonce" value="{{ nonce }}"/>
|
||||
<input class="submit btn" type="submit" name="confirm" value="{{ 'ScheduledReports_Unsubscribe'|translate }}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endif %}
|
||||
{% if isCustomLogo %}
|
||||
<p id="piwik">
|
||||
<i><a href="https://matomo.org/" rel="noreferrer noopener" target="_blank">{{ linkTitle }}</a></i>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endembed %}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
Reference in New Issue
Block a user