From d1abe71def94d4ff60d072a8ccd1bdd2016d7634 Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Mon, 21 Oct 2013 04:01:32 +0000 Subject: [PATCH] moved disable_*_filters to requestConfig --- core/Plugin/Visualization.php | 6 ++-- core/ViewDataTable/Config.php | 49 -------------------------- core/ViewDataTable/RequestConfig.php | 52 +++++++++++++++++++++++++++- plugins/Live/Live.php | 52 ---------------------------- plugins/Live/VisitorLog.php | 36 +++++++++++++++++++ 5 files changed, 90 insertions(+), 105 deletions(-) diff --git a/core/Plugin/Visualization.php b/core/Plugin/Visualization.php index c953f64145..ae73d4b769 100644 --- a/core/Plugin/Visualization.php +++ b/core/Plugin/Visualization.php @@ -61,7 +61,7 @@ class Visualization extends ViewDataTable $this->beforeLoadDataTable(); - $this->loadDataTableFromAPI(array('disable_generic_filters' => 1)); + $this->loadDataTableFromAPI(array('disable_generic_filters' => 1, 'disable_queued_filters' => 1)); $this->postDataTableLoadedFromAPI(); $requestPropertiesAfterLoadDataTable = $this->requestConfig->getProperties(); @@ -194,7 +194,7 @@ class Visualization extends ViewDataTable $this->beforeGenericFiltersAreAppliedToLoadedDataTable(); - if (!$this->config->areGenericFiltersDisabled()) { + if (!$this->requestConfig->areGenericFiltersDisabled()) { $this->applyGenericFilters(); } @@ -207,7 +207,7 @@ class Visualization extends ViewDataTable // Finally, apply datatable filters that were queued (should be 'presentation' filters that // do not affect the number of rows) - if (!$this->config->areQueuedFiltersDisabled()) { + if (!$this->requestConfig->areQueuedFiltersDisabled()) { $this->dataTable->applyQueuedFilters(); } } diff --git a/core/ViewDataTable/Config.php b/core/ViewDataTable/Config.php index 233f9f21c8..7e4119ed9e 100644 --- a/core/ViewDataTable/Config.php +++ b/core/ViewDataTable/Config.php @@ -38,8 +38,6 @@ class Config */ public $overridableProperties = array( 'show_goals', - 'disable_generic_filters', - 'disable_queued_filters', 'show_exclude_low_population', 'show_flatten_table', 'show_table', @@ -235,24 +233,6 @@ class Config */ public $custom_parameters = array(); - /** - * Whether to run generic filters on the DataTable before rendering or not. - * - * @see Piwik_API_DataTableGenericFilter - * - * Default value: false - */ - public $disable_generic_filters = false; - - /** - * Whether to run ViewDataTable's list of queued filters or not. - * - * NOTE: Priority queued filters are always run. - * - * Default value: false - */ - public $disable_queued_filters = false; - /** * Controls whether the limit dropdown (which allows users to change the number of data shown) * is always shown or not. @@ -496,35 +476,6 @@ class Config return get_object_vars($this); } - /** - * Returns true if queued filters have been disabled, false if otherwise. - * - * @return bool - */ - public function areQueuedFiltersDisabled() - { - return isset($this->disable_queued_filters) && $this->disable_queued_filters; - } - - /** - * Returns true if generic filters have been disabled, false if otherwise. - * - * @return bool - */ - public function areGenericFiltersDisabled() - { - // if disable_generic_filters query param is set to '1', generic filters are disabled - if (Common::getRequestVar('disable_generic_filters', '0', 'string') == 1) { - return true; - } - - if (isset($this->disable_generic_filters) && true === $this->disable_generic_filters) { - return true; - } - - return false; - } - public function setDefaultColumnsToDisplay($columns, $hasNbVisits, $hasNbUniqVisitors) { if ($hasNbVisits || $hasNbUniqVisitors) { diff --git a/core/ViewDataTable/RequestConfig.php b/core/ViewDataTable/RequestConfig.php index c92b0a3ef7..2e9a83092b 100644 --- a/core/ViewDataTable/RequestConfig.php +++ b/core/ViewDataTable/RequestConfig.php @@ -10,6 +10,7 @@ */ namespace Piwik\ViewDataTable; +use Piwik\Common; /** * Renders a sparkline image given a PHP data array. @@ -43,7 +44,9 @@ class RequestConfig 'filter_pattern', 'filter_column', 'filter_excludelowpop', - 'filter_excludelowpop_value' + 'filter_excludelowpop_value', + 'disable_generic_filters', + 'disable_queued_filters' ); /** @@ -119,6 +122,24 @@ class RequestConfig */ public $request_parameters_to_modify = array(); + /** + * Whether to run generic filters on the DataTable before rendering or not. + * + * @see Piwik_API_DataTableGenericFilter + * + * Default value: false + */ + public $disable_generic_filters = false; + + /** + * Whether to run ViewDataTable's list of queued filters or not. + * + * NOTE: Priority queued filters are always run. + * + * Default value: false + */ + public $disable_queued_filters = false; + public $apiMethodToRequestDataTable = ''; /** @@ -159,6 +180,35 @@ class RequestConfig $this->filter_sort_order = 'desc'; } + /** + * Returns true if queued filters have been disabled, false if otherwise. + * + * @return bool + */ + public function areQueuedFiltersDisabled() + { + return isset($this->disable_queued_filters) && $this->disable_queued_filters; + } + + /** + * Returns true if generic filters have been disabled, false if otherwise. + * + * @return bool + */ + public function areGenericFiltersDisabled() + { + // if disable_generic_filters query param is set to '1', generic filters are disabled + if (Common::getRequestVar('disable_generic_filters', '0', 'string') == 1) { + return true; + } + + if (isset($this->disable_generic_filters) && true === $this->disable_generic_filters) { + return true; + } + + return false; + } + public function getApiModuleToRequest() { list($module, $method) = explode('.', $this->apiMethodToRequestDataTable); diff --git a/plugins/Live/Live.php b/plugins/Live/Live.php index fd73ccadf1..e1640cb353 100644 --- a/plugins/Live/Live.php +++ b/plugins/Live/Live.php @@ -35,7 +35,6 @@ class Live extends \Piwik\Plugin 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'WidgetsList.addWidgets' => 'addWidget', 'Menu.Reporting.addItems' => 'addMenu', - 'ViewDataTable.configure' => 'configureViewDataTable', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', 'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable' ); @@ -76,59 +75,8 @@ class Live extends \Piwik\Plugin $translationKeys[] = "Live_PageRefreshed"; } - public function configureViewDataTable(ViewDataTable $view) - { - switch ($view->requestConfig->apiMethodToRequestDataTable) { - case 'Live.getLastVisitsDetails': - $this->configureViewForGetLastVisitsDetails($view); - break; - } - } - public function getDefaultTypeViewDataTable(&$defaultViewTypes) { $defaultViewTypes['Live.getLastVisitsDetails'] = VisitorLog::ID; } - - private function configureViewForGetLastVisitsDetails(ViewDataTable $view) - { - $view->config->disable_generic_filters = true; - $view->config->enable_sort = false; - $view->config->show_search = false; - $view->config->show_exclude_low_population = false; - $view->config->show_offset_information = false; - $view->config->show_all_views_icons = false; - $view->config->show_table_all_columns = false; - $view->config->show_export_as_rss_feed = false; - - $view->requestConfig->filter_sort_column = 'idVisit'; - $view->requestConfig->filter_sort_order = 'asc'; - $view->requestConfig->filter_limit = 20; - - $view->config->documentation = Piwik::translate('Live_VisitorLogDocumentation', array('<br />', '<br />')); - $view->config->custom_parameters = array( - // set a very high row count so that the next link in the footer of the data table is always shown - 'totalRows' => 10000000, - - 'filterEcommerce' => Common::getRequestVar('filterEcommerce', 0, 'int'), - 'pageUrlNotDefined' => Piwik::translate('General_NotDefined', Piwik::translate('Actions_ColumnPageURL')) - ); - - $view->config->footer_icons = array( - array( - 'class' => 'tableAllColumnsSwitch', - 'buttons' => array( - array( - 'id' => 'Piwik\\Plugins\\Live\\VisitorLog', - 'title' => Piwik::translate('Live_LinkVisitorLog'), - 'icon' => 'plugins/Zeitgeist/images/table.png' - ) - ) - ) - ); - - if ($view->isViewDataTableId(HtmlTable::ID)) { - $view->config->disable_row_actions = true; - } - } } \ No newline at end of file diff --git a/plugins/Live/VisitorLog.php b/plugins/Live/VisitorLog.php index 4fd5ffd5aa..c886b3c201 100644 --- a/plugins/Live/VisitorLog.php +++ b/plugins/Live/VisitorLog.php @@ -10,6 +10,8 @@ */ namespace Piwik\Plugins\Live; +use Piwik\Common; +use Piwik\Piwik; use Piwik\View; use Piwik\Plugin\Visualization; @@ -29,6 +31,11 @@ class VisitorLog extends Visualization 'filter_sort_column', 'filter_sort_order', )); + + $this->requestConfig->filter_sort_column = 'idVisit'; + $this->requestConfig->filter_sort_order = 'asc'; + $this->requestConfig->filter_limit = 20; + $this->requestConfig->disable_generic_filters = true; } /** @@ -37,5 +44,34 @@ class VisitorLog extends Visualization public function beforeRender() { $this->config->datatable_js_type = 'VisitorLog'; + $this->config->enable_sort = false; + $this->config->show_search = false; + $this->config->show_exclude_low_population = false; + $this->config->show_offset_information = false; + $this->config->show_all_views_icons = false; + $this->config->show_table_all_columns = false; + $this->config->show_export_as_rss_feed = false; + + $this->config->documentation = Piwik::translate('Live_VisitorLogDocumentation', array('<br />', '<br />')); + $this->config->custom_parameters = array( + // set a very high row count so that the next link in the footer of the data table is always shown + 'totalRows' => 10000000, + + 'filterEcommerce' => Common::getRequestVar('filterEcommerce', 0, 'int'), + 'pageUrlNotDefined' => Piwik::translate('General_NotDefined', Piwik::translate('Actions_ColumnPageURL')) + ); + + $this->config->footer_icons = array( + array( + 'class' => 'tableAllColumnsSwitch', + 'buttons' => array( + array( + 'id' => 'Piwik\\Plugins\\Live\\VisitorLog', + 'title' => Piwik::translate('Live_LinkVisitorLog'), + 'icon' => 'plugins/Zeitgeist/images/table.png' + ) + ) + ) + ); } } \ No newline at end of file -- GitLab