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:
authorThomas Steur <tsteur@users.noreply.github.com>2018-12-07 05:28:25 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2018-12-07 05:28:25 +0300
commit53c4d95a4b60ee099400db8c36ac64a68ffa37a3 (patch)
tree1a6918e045fb9d5a6fe35531854be98faafeb86f /plugins/CoreVisualizations
parent6eb10a35e6388c62b88d77edc5055daa519de32d (diff)
Some work on report totals (#13555)
* some work on totals * fix graphs * tweak rendering of totals row * disable evolution for totals row * let plugins configure totals row visibility * remove metadata * more tweaks and make it configurable * improve code and performance * fix some tests * lots of improvements * support bandwidth and other plugins * fix tests * add screenshot test * also fix existing test * add new method supportsTotalRow * various fixes * Updating some expected test files.
Diffstat (limited to 'plugins/CoreVisualizations')
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable.php15
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php13
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php11
-rw-r--r--plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig12
4 files changed, 49 insertions, 2 deletions
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable.php b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
index 65866c8edf..adcf8e2bda 100644
--- a/plugins/CoreVisualizations/Visualizations/HtmlTable.php
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
@@ -10,9 +10,9 @@ namespace Piwik\Plugins\CoreVisualizations\Visualizations;
use Piwik\API\Request as ApiRequest;
use Piwik\Common;
+use Piwik\Metrics;
use Piwik\Period;
use Piwik\Plugin\Visualization;
-use Piwik\View;
/**
* DataTable visualization that shows DataTable data in an HTML table.
@@ -44,6 +44,19 @@ class HtmlTable extends Visualization
$this->config->show_visualization_only = true;
}
+ if ($this->requestConfig->idSubtable) {
+ $this->config->show_totals_row = false;
+ }
+
+ foreach (Metrics::getMetricIdsToProcessReportTotal() as $metricId) {
+ $this->config->report_ratio_columns[] = Metrics::getReadableColumnName($metricId);
+ }
+ if (!empty($this->report)) {
+ foreach ($this->report->getMetricNamesToProcessReportTotals() as $metricName) {
+ $this->config->report_ratio_columns[] = $metricName;
+ }
+ }
+
// we do not want to get a datatable\map
$period = Common::getRequestVar('period', 'day', 'string');
if (Period\Range::parseDateRange($period)) {
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php b/plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php
index 9fa8163a6f..266a71e1b4 100644
--- a/plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php
@@ -87,6 +87,19 @@ class Config extends VisualizationConfig
*/
public $highlight_summary_row = false;
+ /**
+ * If true, the totals row will be hidden
+ *
+ * Default value: false
+ */
+ public $show_totals_row = true;
+
+ /**
+ * A list of columns that support showing the ratio percentage on hover
+ * @var array
+ */
+ public $report_ratio_columns = array();
+
public function __construct()
{
parent::__construct();
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php b/plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php
index 2f674a5872..696569c618 100644
--- a/plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php
@@ -29,6 +29,13 @@ class RequestConfig extends VisualizationRequestConfig
*/
public $keep_summary_row = false;
+ /**
+ * Controls whether the totals row is displayed on every page of the datatable view or not.
+ *
+ * Default value: false
+ */
+ public $keep_totals_row = false;
+
public function __construct()
{
$this->filter_limit = PiwikConfig::getInstance()->General['datatable_default_limit'];
@@ -49,11 +56,13 @@ class RequestConfig extends VisualizationRequestConfig
'filter_offset',
'filter_sort_column',
'filter_sort_order',
- 'keep_summary_row'
+ 'keep_summary_row',
+ 'keep_totals_row'
));
$this->addPropertiesThatCanBeOverwrittenByQueryParams(array(
'keep_summary_row',
+ 'keep_totals_row',
));
}
diff --git a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
index a85ee66852..2d4a25e950 100644
--- a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
+++ b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
@@ -50,6 +50,18 @@
{% include "@CoreVisualizations/_dataTableViz_htmlTable.twig" with {'dataTable': row.getSubtable(), 'idSubtable': rowSubtableId} %}
{% endif %}
{%- endfor -%}
+ {% if dataTable.getTotalsRow and properties.show_totals_row %}
+ {% set row = dataTable.getTotalsRow %}
+ {% set rowId = 'totalsRow' %}
+ <tr class="{{ row.getMetadata('css_class') }} totalsRow"
+ title="Total values for this table">
+ {% for column in properties.columns_to_display %}
+ <td>
+ {% include "@CoreHome/_dataTableCell.twig" with properties %}
+ </td>
+ {% endfor %}
+ </tr>
+ {% endif %}
{% endif %}
{%- if not showingEmbeddedSubtable -%}
</tbody>