Skip to content
Extraits de code Groupes Projets
Valider aeca338e rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

refs #4223 added plugin filter, work in progress

parent 0d72cdd1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -244,9 +244,13 @@ class Controller extends Plugin\ControllerAdmin
protected function getPluginsInfo($themesOnly = false)
{
$plugins = \Piwik\Plugin\Manager::getInstance()->returnLoadedPluginsInfo();
$pluginManager = \Piwik\Plugin\Manager::getInstance();
$plugins = $pluginManager->returnLoadedPluginsInfo();
foreach ($plugins as $pluginName => &$plugin) {
$plugin['isCorePlugin'] = $pluginManager->isPluginBundledWithCore($pluginName);
if (!isset($plugin['info'])) {
$suffix = Piwik::translate('CorePluginsAdmin_PluginAskDevToUpdate');
......
......@@ -104,6 +104,7 @@ class CorePluginsAdmin extends \Piwik\Plugin
$jsFiles[] = "plugins/CorePluginsAdmin/javascripts/pluginDetail.js";
$jsFiles[] = "plugins/CorePluginsAdmin/javascripts/pluginOverview.js";
$jsFiles[] = "plugins/CorePluginsAdmin/javascripts/pluginExtend.js";
$jsFiles[] = "plugins/CorePluginsAdmin/javascripts/plugins.js";
}
public function getClientSideTranslationKeys(&$translations)
......
/*!
* Piwik - Web Analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
$(document).ready(function () {
var filterType = 'all';
var filterStatus = 'all';
function filterPlugins()
{
var queryEnable = '#plugins tr';
if ('all' == filterType) {
queryEnable += '[data-filter-type]';
} else {
queryEnable += '[data-filter-type=' + filterType + ']';
}
if ('all' == filterStatus) {
queryEnable += '[data-filter-status]';
} else {
queryEnable += '[data-filter-status=' + filterStatus + ']';
}
$('#plugins tr').css('display', 'none');
$(queryEnable).css('display', 'table-row');
}
$('.pluginsFilter .status').on('click', 'a', function (event) {
event.preventDefault();
filterStatus = $(this).data('filter-status');
$(this).siblings().removeClass('active');
$(this).addClass('active');
filterPlugins();
});
$('.pluginsFilter .type').on('click', 'a', function (event) {
event.preventDefault();
filterType = $(this).data('filter-type');
$(this).siblings().removeClass('active');
$(this).addClass('active');
filterPlugins();
});
});
\ No newline at end of file
......@@ -16,6 +16,10 @@
font-style: italic;
}
.pluginsFilter .active {
font-weight: bold;
}
#installPluginByUpload {
.description {
margin-top: 30px;
......
......@@ -65,7 +65,7 @@
<tbody id="plugins">
{% for name,plugin in pluginsInfo %}
{% if (plugin.alwaysActivated is defined and not plugin.alwaysActivated) or isTheme %}
<tr {% if plugin.activated %}class="highlighted"{% endif %}>
<tr {% if plugin.activated %}class="highlighted"{% endif %} data-filter-status="{% if plugin.activated %}active{% else %}inactive{% endif %}" data-filter-type="{% if plugin.isCorePlugin %}core{% else %}noncore{% endif %}">
<td class="name">
{% if plugin.info.homepage is defined %}
<a title="{{ 'CorePluginsAdmin_PluginHomepage'|translate }}" href="{{ plugin.info.homepage }}" target="_blank">
......
......@@ -17,6 +17,22 @@
<p>{{ 'CorePluginsAdmin_MainDescription'|translate }}</p>
<p class="pluginsFilter">
<span class="type">
<strong>Type</strong>
<a data-filter-type="all" href="#" class="active">All</a> |
<a data-filter-type="core" href="#">Core</a> |
<a data-filter-type="noncore" href="#">Marketplace</a>
</span>
<span class="status">
<strong>Status</strong>
<a data-filter-status="all" href="#" class="active">All</a> |
<a data-filter-status="active" href="#">Active</a> |
<a data-filter-status="inactive" href="#">Inactive</a>
</span>
</p>
{{ plugins.tablePlugins(pluginsInfo, pluginNamesHavingSettings, activateNonce, deactivateNonce, uninstallNonce, false) }}
</div>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter