Skip to content

Commit

Permalink
refs #4053 highlight current active sort method
Browse files Browse the repository at this point in the history
  • Loading branch information
tsteur committed Sep 19, 2013
1 parent a4f9bc4 commit bae55ed
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 33 deletions.
32 changes: 11 additions & 21 deletions plugins/CorePluginsAdmin/Controller.php
Expand Up @@ -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()
Expand Down Expand Up @@ -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();
}
Expand All @@ -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();
}
Expand Down
34 changes: 30 additions & 4 deletions plugins/CorePluginsAdmin/Marketplace.php
Expand Up @@ -10,6 +10,7 @@
*/
namespace Piwik\Plugins\CorePluginsAdmin;

use Piwik\Date;
use Piwik\Piwik;
use Piwik\PluginsManager;

Expand All @@ -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
Expand All @@ -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();
Expand Down
6 changes: 6 additions & 0 deletions plugins/CorePluginsAdmin/stylesheets/marketplace.less
Expand Up @@ -110,6 +110,12 @@
display: inline;
}

.sort {
.active {
font-weight: bold;
}
}

.infoBox {
font-size: 14px;
margin: 0px 0px 10px 10px;
Expand Down
8 changes: 4 additions & 4 deletions plugins/CorePluginsAdmin/templates/browsePlugins.twig
Expand Up @@ -10,12 +10,12 @@
Piwik is not the owner of these Plugins and did not review them.
</div>

<div>
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}">popular</a>
<div class="sort">
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}" {% if 'popular' == sort %}class="active"{% endif %}>popular</a>
|
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}">newest</a>
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}" {% if 'newest' == sort %}class="active"{% endif %}>newest</a>
|
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}">alpha</a>
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}" {% if 'alpha' == sort %}class="active"{% endif %}>alpha</a>
|
<form action="{{ linkTo({'sort': ''}) }}" method="POST">
<input value="{{ query }}" placeholder="Search" type="text" name="query"/>
Expand Down
8 changes: 4 additions & 4 deletions plugins/CorePluginsAdmin/templates/browseThemes.twig
Expand Up @@ -10,12 +10,12 @@
Piwik is not the owner of these Themes and did not review them.
</div>

<div>
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}">popular</a>
<div class="sort">
<a href="{{ linkTo({'sort': 'popular', 'query': ''}) }}" {% if 'popular' == sort %}class="active"{% endif %}>popular</a>
|
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}">newest</a>
<a href="{{ linkTo({'sort': 'newest', 'query': ''}) }}" {% if 'newest' == sort %}class="active"{% endif %}>newest</a>
|
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}">alpha</a>
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}" {% if 'alpha' == sort %}class="active"{% endif %}>alpha</a>
|
<form action="{{ linkTo({'sort': ''}) }}" method="POST">
<input value="{{ query }}" placeholder="Search" type="text" name="query"/>
Expand Down

0 comments on commit bae55ed

Please sign in to comment.