diff options
author | sgiehl <stefan@piwik.org> | 2016-03-20 14:57:41 +0300 |
---|---|---|
committer | sgiehl <stefan@piwik.org> | 2016-03-20 16:24:33 +0300 |
commit | 464be65c8e43f70c643cd589ac54da28d12780c2 (patch) | |
tree | 9ae10278ceb6eb536e7297d0c970bc1d3dc1efcd | |
parent | a4c0f65f0ca93ee3c1ac6633a8bead7965998bc3 (diff) |
handle PivotBy within HtmlTable visualization to fix side effects
3 files changed, 20 insertions, 55 deletions
diff --git a/plugins/CoreVisualizations/CoreVisualizations.php b/plugins/CoreVisualizations/CoreVisualizations.php index 9a5f88e7ec..0aec35fb3e 100644 --- a/plugins/CoreVisualizations/CoreVisualizations.php +++ b/plugins/CoreVisualizations/CoreVisualizations.php @@ -29,8 +29,7 @@ class CoreVisualizations extends \Piwik\Plugin 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', - 'UsersManager.deleteUser' => 'deleteUser', - 'ViewDataTable.addViewDataTable' => 'addViewDataTable' + 'UsersManager.deleteUser' => 'deleteUser' ); } @@ -39,23 +38,6 @@ class CoreVisualizations extends \Piwik\Plugin ViewDataTableManager::clearUserViewDataTableParameters($userLogin); } - public function addViewDataTable(&$viewDataTable) - { - // Both are the same HtmlTable, just the Pivot one has some extra logic in case Pivot is used. - // We don't want to use the same HtmlTable twice in the UI. Therefore we always need to remove one. - 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 66cb4c26e9..dff8aa3e7a 100644 --- a/plugins/CoreVisualizations/Visualizations/HtmlTable.php +++ b/plugins/CoreVisualizations/Visualizations/HtmlTable.php @@ -70,6 +70,25 @@ class HtmlTable extends Visualization $dataTable = $request->process(); $this->assignTemplateVar('siteSummary', $dataTable); } + + if ($this->isPivoted()) { + $this->config->columns_to_display = $this->dataTable->getColumns(); + } + } + + public function beforeGenericFiltersAreAppliedToLoadedDataTable() + { + if ($this->isPivoted()) { + $this->config->columns_to_display = $this->dataTable->getColumns(); + + $this->dataTable->applyQueuedFilters(); + } + + parent::beforeGenericFiltersAreAppliedToLoadedDataTable(); } + protected function isPivoted() + { + return $this->requestConfig->pivotBy || Common::getRequestVar('pivotBy', ''); + } } diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php b/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php deleted file mode 100644 index 1703988599..0000000000 --- a/plugins/CoreVisualizations/Visualizations/HtmlTable/PivotBy.php +++ /dev/null @@ -1,36 +0,0 @@ -<?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(); - } -} |