From bae55edaabac744a8627f6a116aa0e5bbc4a8d71 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 19 Sep 2013 21:07:13 +0000 Subject: [PATCH] refs #4053 highlight current active sort method --- plugins/CorePluginsAdmin/Controller.php | 32 ++++++----------- plugins/CorePluginsAdmin/Marketplace.php | 34 ++++++++++++++++--- .../stylesheets/marketplace.less | 6 ++++ .../templates/browsePlugins.twig | 8 ++--- .../templates/browseThemes.twig | 8 ++--- 5 files changed, 55 insertions(+), 33 deletions(-) diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index d0001570ce7..05e53300ce5 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -29,7 +29,7 @@ */ class Controller extends \Piwik\Controller\Admin { - private $validSortMethods = array('popular', 'newest', 'alpha'); + private $validSortMethods = array('popular', 'newest', 'alpha'); private $defaultSortMethod = 'popular'; public function updatePlugin() @@ -134,24 +134,19 @@ public function browsePlugins() { $query = Common::getRequestVar('query', '', 'string', $_POST); $sort = Common::getRequestVar('sort', $this->defaultSortMethod, 'string'); + if (!in_array($sort, $this->validSortMethods)) { $sort = $this->defaultSortMethod; } - $marketplace = new MarketplaceApiClient(); - - $view = $this->configureView('@CorePluginsAdmin/browsePlugins'); - $plugins = $marketplace->searchForPlugins('', $query, $sort); + $view = $this->configureView('@CorePluginsAdmin/browsePlugins'); - foreach ($plugins as $plugin) { - $plugin->isInstalled = PluginsManager::getInstance()->isPluginLoaded($plugin->name); - $plugin->lastUpdated = Date::factory($plugin->lastUpdated)->getLocalized(Piwik_Translate('CoreHome_ShortDateFormatWithYear')); - } - - $view->plugins = $plugins; + $marketplace = new Marketplace(); + $view->plugins = $marketplace->searchPlugins($query, $sort, $themesOnly = false); $view->query = $query; $view->nonce = Nonce::getNonce('CorePluginsAdmin.installPlugin'); + $view->sort = $sort; echo $view->render(); } @@ -160,24 +155,19 @@ public function browseThemes() { $query = Common::getRequestVar('query', '', 'string', $_POST); $sort = Common::getRequestVar('sort', $this->defaultSortMethod, 'string'); + if (!in_array($sort, $this->validSortMethods)) { $sort = $this->defaultSortMethod; } - $marketplace = new MarketplaceApiClient(); - - $view = $this->configureView('@CorePluginsAdmin/browseThemes'); - $plugins = $marketplace->searchForThemes('', $query, $sort); - - foreach ($plugins as $plugin) { - $plugin->isInstalled = PluginsManager::getInstance()->isPluginLoaded($plugin->name); - $plugin->lastUpdated = Date::factory($plugin->lastUpdated)->getLocalized(Piwik_Translate('CoreHome_ShortDateFormatWithYear')); - } + $view = $this->configureView('@CorePluginsAdmin/browseThemes'); - $view->plugins = $plugins; + $marketplace = new Marketplace(); + $view->plugins = $marketplace->searchPlugins($query, $sort, $themesOnly = true); $view->query = $query; $view->nonce = Nonce::getNonce('CorePluginsAdmin.installPlugin'); + $view->sort = $sort; echo $view->render(); } diff --git a/plugins/CorePluginsAdmin/Marketplace.php b/plugins/CorePluginsAdmin/Marketplace.php index 8703d54bf8b..bda4b4e44d1 100644 --- a/plugins/CorePluginsAdmin/Marketplace.php +++ b/plugins/CorePluginsAdmin/Marketplace.php @@ -10,6 +10,7 @@ */ namespace Piwik\Plugins\CorePluginsAdmin; +use Piwik\Date; use Piwik\Piwik; use Piwik\PluginsManager; @@ -19,6 +20,33 @@ */ class Marketplace { + /** + * @var MarketplaceApiClient + */ + private $client; + + public function __construct() + { + $this->client = new MarketplaceApiClient(); + } + + public function searchPlugins($query, $sort, $themesOnly) + { + if ($themesOnly) { + $plugins = $this->client->searchForThemes('', $query, $sort); + } else { + $plugins = $this->client->searchForPlugins('', $query, $sort); + } + + $dateFormat = Piwik_Translate('CoreHome_ShortDateFormatWithYear'); + + foreach ($plugins as $plugin) { + $plugin->isInstalled = PluginsManager::getInstance()->isPluginLoaded($plugin->name); + $plugin->lastUpdated = Date::factory($plugin->lastUpdated)->getLocalized($dateFormat); + } + + return $plugins; + } /** * @param bool $themesOnly @@ -28,13 +56,11 @@ public function getPluginsHavingUpdate($themesOnly) { $loadedPlugins = PluginsManager::getInstance()->getLoadedPlugins(); - $marketplace = new MarketplaceApiClient(); - try { if ($themesOnly) { - $pluginsHavingUpdate = $marketplace->getInfoOfThemesHavingUpdate($loadedPlugins); + $pluginsHavingUpdate = $this->client->getInfoOfThemesHavingUpdate($loadedPlugins); } else { - $pluginsHavingUpdate = $marketplace->getInfoOfPluginsHavingUpdate($loadedPlugins); + $pluginsHavingUpdate = $this->client->getInfoOfPluginsHavingUpdate($loadedPlugins); } } catch (\Exception $e) { $pluginsHavingUpdate = array(); diff --git a/plugins/CorePluginsAdmin/stylesheets/marketplace.less b/plugins/CorePluginsAdmin/stylesheets/marketplace.less index 5e42eced443..5f476d326b4 100644 --- a/plugins/CorePluginsAdmin/stylesheets/marketplace.less +++ b/plugins/CorePluginsAdmin/stylesheets/marketplace.less @@ -110,6 +110,12 @@ display: inline; } + .sort { + .active { + font-weight: bold; + } + } + .infoBox { font-size: 14px; margin: 0px 0px 10px 10px; diff --git a/plugins/CorePluginsAdmin/templates/browsePlugins.twig b/plugins/CorePluginsAdmin/templates/browsePlugins.twig index 8f89d5f4de2..f096c4fa2c1 100644 --- a/plugins/CorePluginsAdmin/templates/browsePlugins.twig +++ b/plugins/CorePluginsAdmin/templates/browsePlugins.twig @@ -10,12 +10,12 @@ Piwik is not the owner of these Plugins and did not review them. -
- popular +
+ popular | - newest + newest | - alpha + alpha |
diff --git a/plugins/CorePluginsAdmin/templates/browseThemes.twig b/plugins/CorePluginsAdmin/templates/browseThemes.twig index 645ce9cd9c8..4b379ee3c12 100644 --- a/plugins/CorePluginsAdmin/templates/browseThemes.twig +++ b/plugins/CorePluginsAdmin/templates/browseThemes.twig @@ -10,12 +10,12 @@ Piwik is not the owner of these Themes and did not review them.
-
- popular +
+ popular | - newest + newest | - alpha + alpha |