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 <thomas.steur@gmail.com>2015-03-04 02:00:31 +0300
committerThomas Steur <thomas.steur@gmail.com>2015-03-09 06:13:18 +0300
commit3c3a11b6948a9b4a32f0fa2bc9e40c6ecf2177b9 (patch)
treed26f85111435f25ffb758912c844218f8feb99e4 /plugins/CoreVisualizations
parentc1eb5d6d0887b21a132ba09c826f4c94b9e05424 (diff)
Run queued filters after generic filters making visualizations much faster.
Diffstat (limited to 'plugins/CoreVisualizations')
-rw-r--r--plugins/CoreVisualizations/CoreVisualizations.php19
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable.php4
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php36
3 files changed, 54 insertions, 5 deletions
diff --git a/plugins/CoreVisualizations/CoreVisualizations.php b/plugins/CoreVisualizations/CoreVisualizations.php
index 54aa127c91..97311475ac 100644
--- a/plugins/CoreVisualizations/CoreVisualizations.php
+++ b/plugins/CoreVisualizations/CoreVisualizations.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\CoreVisualizations;
+use Piwik\Common;
use Piwik\ViewDataTable\Manager as ViewDataTableManager;
require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/JqplotDataGenerator.php';
@@ -28,7 +29,8 @@ class CoreVisualizations extends \Piwik\Plugin
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
- 'UsersManager.deleteUser' => 'deleteUser'
+ 'UsersManager.deleteUser' => 'deleteUser',
+ 'ViewDataTable.addViewDataTable' => 'addViewDataTable'
);
}
@@ -37,6 +39,21 @@ class CoreVisualizations extends \Piwik\Plugin
ViewDataTableManager::clearUserViewDataTableParameters($userLogin);
}
+ public function addViewDataTable(&$viewDataTable)
+ {
+ if (Common::getRequestVar('pivotBy', '')) {
+ $tableToRemove = 'Visualizations\HtmlTable';
+ } else {
+ $tableToRemove = 'HtmlTable\PivotBy';
+ }
+
+ foreach ($viewDataTable as $index => $table) {
+ if (Common::stringEndsWith($table, $tableToRemove)) {
+ unset($viewDataTable[$index]);
+ }
+ }
+ }
+
public function getStylesheetFiles(&$stylesheets)
{
$stylesheets[] = "plugins/CoreVisualizations/stylesheets/dataTableVisualizations.less";
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable.php b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
index dcd2374df9..66cb4c26e9 100644
--- a/plugins/CoreVisualizations/Visualizations/HtmlTable.php
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
@@ -70,10 +70,6 @@ class HtmlTable extends Visualization
$dataTable = $request->process();
$this->assignTemplateVar('siteSummary', $dataTable);
}
-
- if ($this->requestConfig->pivotBy) {
- $this->config->columns_to_display = $this->dataTable->getColumns();
- }
}
}
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php b/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php
new file mode 100644
index 0000000000..1703988599
--- /dev/null
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+
+namespace Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
+
+use Piwik\DataTable;
+use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
+use Piwik\View;
+
+/**
+ * DataTable Visualization that derives from HtmlTable and sets show_extra_columns to true.
+ */
+class PivotBy extends HtmlTable
+{
+ public function beforeGenericFiltersAreAppliedToLoadedDataTable()
+ {
+ $this->config->columns_to_display = $this->dataTable->getColumns();
+
+ $this->dataTable->applyQueuedFilters();
+
+ parent::beforeGenericFiltersAreAppliedToLoadedDataTable();
+ }
+
+ public function beforeRender()
+ {
+ parent::beforeRender();
+
+ $this->config->columns_to_display = $this->dataTable->getColumns();
+ }
+}