Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKate Butler <kate@innocraft.com>2019-10-01 02:01:40 +0300
committerThomas Steur <tsteur@users.noreply.github.com>2019-10-01 02:01:40 +0300
commit546d429972b7f1b9b4ca869ffc32d44b13935d39 (patch)
tree60cbfd48842423725d893ab6530e02e5c1e6a51a /plugins/CoreHome
parent0fc4d1d1cc7c18d3fbe7a5594fcfb7b6c57f39aa (diff)
Add a configurable row limit to report export popover (#14913)
* Add a configurable row limit to report export popover * Don't validate input against max limit when it's not set
Diffstat (limited to 'plugins/CoreHome')
-rw-r--r--plugins/CoreHome/CoreHome.php1
-rw-r--r--plugins/CoreHome/angularjs/report-export/reportexport.directive.js19
-rw-r--r--plugins/CoreHome/angularjs/report-export/reportexport.popover.html13
-rw-r--r--plugins/CoreHome/templates/_dataTableActions.twig1
4 files changed, 30 insertions, 4 deletions
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index e55706314d..bd515e2693 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -465,6 +465,7 @@ class CoreHome extends \Piwik\Plugin
$translationKeys[] = 'CoreHome_PageDownShortcutDescription';
$translationKeys[] = 'CoreHome_MacPageUp';
$translationKeys[] = 'CoreHome_MacPageDown';
+ $translationKeys[] = 'General_ComputedMetricMax';
$translationKeys[] = 'General_XComparedToY';
$translationKeys[] = 'General_ComparisonCardTooltip1';
$translationKeys[] = 'General_ComparisonCardTooltip2';
diff --git a/plugins/CoreHome/angularjs/report-export/reportexport.directive.js b/plugins/CoreHome/angularjs/report-export/reportexport.directive.js
index 3599c4f6d8..80c420f5fd 100644
--- a/plugins/CoreHome/angularjs/report-export/reportexport.directive.js
+++ b/plugins/CoreHome/angularjs/report-export/reportexport.directive.js
@@ -21,7 +21,8 @@
'reportTitle': '@',
'requestParams': '@',
'reportFormats': '@',
- 'apiMethod': '@'
+ 'apiMethod': '@',
+ 'maxFilterLimit': '@',
},
link: function(scope, element, attr) {
@@ -204,8 +205,12 @@
var formats = JSON.parse(scope.reportFormats);
scope.reportType = 'default';
- scope.reportLimit = dataTable.param.filter_limit > 0 ? dataTable.param.filter_limit : 100;
- scope.reportLimitAll = dataTable.param.filter_limit == -1 ? 'yes' : 'no';
+ var reportLimit = dataTable.param.filter_limit;
+ if (scope.maxFilterLimit > 0) {
+ reportLimit = Math.min(reportLimit, scope.maxFilterLimit);
+ }
+ scope.reportLimit = reportLimit > 0 ? reportLimit : 100;
+ scope.reportLimitAll = reportLimit == -1 ? 'yes' : 'no';
scope.optionFlat = dataTable.param.flat === true || dataTable.param.flat === 1 || dataTable.param.flat === "1";
scope.optionExpanded = 1;
scope.optionFormatMetrics = 0;
@@ -233,6 +238,14 @@
}
}, true);
+ if (scope.maxFilterLimit > 0) {
+ scope.$watch('reportLimit', function (newVal, oldVal) {
+ if (parseInt(newVal, 10) > parseInt(scope.maxFilterLimit, 10)) {
+ scope.reportLimit = oldVal;
+ }
+ }, true);
+ }
+
var elem = $document.find('#reportExport').eq(0);
if (!elem.length) {
diff --git a/plugins/CoreHome/angularjs/report-export/reportexport.popover.html b/plugins/CoreHome/angularjs/report-export/reportexport.popover.html
index b435b6986e..f80b896a4c 100644
--- a/plugins/CoreHome/angularjs/report-export/reportexport.popover.html
+++ b/plugins/CoreHome/angularjs/report-export/reportexport.popover.html
@@ -37,6 +37,7 @@
<div piwik-field uicontrol="radio" name="filter_limit_all"
data-title="{{ 'CoreHome_RowLimit'|translate }}"
ng-model="$parent.reportLimitAll"
+ ng-hide="maxFilterLimit > 0"
full-width="false"
options="limitAllOptions">
</div>
@@ -44,7 +45,17 @@
min="1"
ng-model="$parent.reportLimit"
full-width="false"
- ng-show="$parent.reportLimitAll == 'no'">
+ ng-show="$parent.reportLimitAll == 'no' && maxFilterLimit <= 0">
+ </div>
+
+ <div piwik-field uicontrol="number" name="filter_limit"
+ min="1"
+ max="{{ scope.reportLimit }}"
+ ng-model="$parent.reportLimit"
+ ng-keypress="scope.checkNumberForLimit"
+ full-width="false"
+ data-title="{{ 'CoreHome_RowLimit'|translate }} ({{ 'General_ComputedMetricMax'|translate:maxFilterLimit }})"
+ ng-show="$parent.reportLimitAll == 'no' && maxFilterLimit > 0">
</div>
</div>
</div>
diff --git a/plugins/CoreHome/templates/_dataTableActions.twig b/plugins/CoreHome/templates/_dataTableActions.twig
index 4266644440..05be8b9834 100644
--- a/plugins/CoreHome/templates/_dataTableActions.twig
+++ b/plugins/CoreHome/templates/_dataTableActions.twig
@@ -76,6 +76,7 @@
report-title="{{ properties.title|e('html_attr') }}" request-params="{{ requestParams|e('html_attr') }}"
api-method="{{ properties.apiMethodToRequestDataTable }}" report-formats="{{ formats|json_encode|e('html_attr') }}"
href='javascript:;' title="{{ 'General_ExportThisReport'|translate|e('html_attr') }}"
+ max-filter-limit="{{ properties.max_export_filter_limit|e('html_attr') }}"
><span class="icon-export"></span></a>
{% endif %}