]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2871 activate all/deactivate all now sensitive to filtering
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 9 Jun 2011 20:19:08 +0000 (20:19 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 9 Jun 2011 20:19:08 +0000 (20:19 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@9158 36083f99-b078-4883-b0ff-0f9b5a30f544

actions/admin/plugins/activate_all.php
actions/admin/plugins/deactivate_all.php
views/default/admin/plugins.php
views/default/css/admin.php
views/default/forms/admin/plugins/change_state.php [new file with mode: 0644]

index 0f03528775d448e6882a46dc59bef45ec663185c..19eb821421caa74c9685d885fe27a60078c22074 100644 (file)
@@ -1,21 +1,25 @@
 <?php
 /**
- * Activates all installed and inactive plugins.
+ * Activates all specified installed and inactive plugins.
  *
- * All plugins in the mod/ directory are that aren't active are activated and the views
+ * All specified plugins in the mod/ directory are that aren't active are activated and the views
  * cache and simplecache are invalidated.
  *
  * @package Elgg.Core
  * @subpackage Administration.Plugins
  */
 
-$plugins = elgg_get_plugins('inactive');
+$guids = get_input('guids');
+$guids = explode(',', $guids);
 
-foreach ($plugins as $plugin) {
-       if ($plugin->activate()) {
-               //system_message(elgg_echo('admin:plugins:activate:yes', array($plugin->getManifest()->getName())));
-       } else {
-               register_error(elgg_echo('admin:plugins:activate:no', array($plugin->getManifest()->getName())));
+foreach ($guids as $guid) {
+       $plugin = get_entity($guid);
+       if (!$plugin->isActive()) {
+               if ($plugin->activate()) {
+                       //system_message(elgg_echo('admin:plugins:activate:yes', array($plugin->getManifest()->getName())));
+               } else {
+                       register_error(elgg_echo('admin:plugins:activate:no', array($plugin->getManifest()->getName())));
+               }
        }
 }
 
index 446cad8c089f965382071776c6054b05e053b59d..436a3ad30fd35119fd6b3238e327286dc246ff6d 100644 (file)
@@ -1,21 +1,25 @@
 <?php
 /**
- * Disable all installed plugins.
+ * Disable all specified installed plugins.
  *
- * All plugins in the mod/ directory are disabled and the views cache and simplecache
+ * Specified plugins in the mod/ directory are disabled and the views cache and simplecache
  * are reset.
  *
  * @package Elgg.Core
  * @subpackage Administration.Plugins
  */
 
-$plugins = elgg_get_plugins('active');
+$guids = get_input('guids');
+$guids = explode(',', $guids);
 
-foreach ($plugins as $plugin) {
-       if ($plugin->deactivate()) {
-               //system_message(elgg_echo('admin:plugins:deactivate:yes', array($plugin->getManifest()->getName())));
-       } else {
-               register_error(elgg_echo('admin:plugins:deactivate:no', array($plugin->getManifest()->getName())));
+foreach ($guids as $guid) {
+       $plugin = get_entity($guid);
+       if ($plugin->isActive()) {
+               if ($plugin->deactivate()) {
+                       //system_message(elgg_echo('admin:plugins:activate:yes', array($plugin->getManifest()->getName())));
+               } else {
+                       register_error(elgg_echo('admin:plugins:deactivate:no', array($plugin->getManifest()->getName())));
+               }
        }
 }
 
index 9f426fae2299f197b02e6b5cb6746ffa5f26183c..1aa899fcc28d9b684e440e3c8871deaea6cc935f 100644 (file)
@@ -1,8 +1,8 @@
 <?php
 /**
- * Elgg administration advanced plugin screen
+ * Elgg administration plugin screen
  *
- * Shows a list of all plugins sorted by load order.
+ * Shows a list of plugins that can be sorted and filtered.
  *
  * @package Elgg.Core
  * @subpackage Admin.Plugins
@@ -56,6 +56,11 @@ foreach ($installed_plugins as $id => $plugin) {
        }
 }
 
+$guids = array();
+foreach ($installed_plugins as $plugin) {
+       $guids[] = $plugin->getGUID();
+}
+
 // sort plugins
 switch ($sort) {
        case 'date':
@@ -99,7 +104,7 @@ if (!array_key_exists($show_category, $categories)) {
 }
 
 $category_form = elgg_view_form('admin/plugins/filter', array(
-       'action' => 'admin/plugins/advanced',
+       'action' => 'admin/plugins',
        'method' => 'get',
        'disable_security' => true,
 ), array(
@@ -120,7 +125,7 @@ if (!array_key_exists($sort, $sort_options)) {
 }
 
 $sort_form = elgg_view_form('admin/plugins/sort', array(
-       'action' => 'admin/plugins/advanced',
+       'action' => 'admin/plugins',
        'method' => 'get',
        'disable_security' => true,
 ), array(
@@ -129,21 +134,22 @@ $sort_form = elgg_view_form('admin/plugins/sort', array(
        'category' => $show_category,
 ));
 
-
-// @todo Until "en/deactivate all" means "All plugins on this page" hide when not looking at all.
-if ($show_category == 'all') {
-       $activate_url = "action/admin/plugins/activate_all";
-       $activate_url = elgg_add_action_tokens_to_url($activate_url);
-       $deactivate_url = "action/admin/plugins/deactivate_all";
-       $deactivate_url = elgg_add_action_tokens_to_url($deactivate_url);
-
-       $buttons = "<div class=\"mbl\">";
-       $buttons .= "<a class='elgg-button elgg-button-action' href=\"$activate_url\">" . elgg_echo('admin:plugins:activate_all') . '</a> ';
-       $buttons .=     "<a class='elgg-button elgg-button-cancel' href=\"$deactivate_url\">" . elgg_echo('admin:plugins:deactivate_all') . '</a> ';
-       $buttons .= "</div>";
-} else {
-       $buttons = '';
-}
+$buttons = "<div class=\"clearfix mbm\">";
+$buttons .= elgg_view_form('admin/plugins/change_state', array(
+       'action' => 'action/admin/plugins/activate_all',
+       'class' => 'float',
+), array(
+       'guids' => $guids,
+       'action' => 'activate',
+));
+$buttons .= elgg_view_form('admin/plugins/change_state', array(
+       'action' => 'action/admin/plugins/deactivate_all',
+       'class' => 'float',
+), array(
+       'guids' => $guids,
+       'action' => 'deactivate',
+));
+$buttons .= "</div>";
 
 $buttons .= $category_form . $sort_form;
 
index 744211a20df76aceda2cebffaf6a721bb3a9db5b..e04bdc568b8d42712b2114743a3018cceb00d8d6 100644 (file)
@@ -158,6 +158,13 @@ table.mceLayout {
 .center {
        text-align: center;
 }
+.float {
+       float: left;
+}
+.float-alt {
+       float: right;
+}
+
 /* ***************************************
        PAGE WRAPPER
 *************************************** */
diff --git a/views/default/forms/admin/plugins/change_state.php b/views/default/forms/admin/plugins/change_state.php
new file mode 100644 (file)
index 0000000..ba5d873
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Activate/deactive all plugins specified by guids array
+ *
+ * @uses $vars['guids']  Array of GUIDs
+ * @uses $vars['action'] 'activate' or 'deactivate'
+ */
+
+$guids = elgg_extract('guids', $vars, array());
+$guids = implode(',', $guids);
+
+echo elgg_view('input/hidden', array(
+       'name' => 'guids',
+       'value' => $guids,
+));
+
+echo elgg_view('input/submit', array(
+       'value' => elgg_echo("admin:plugins:{$vars['action']}_all"),
+       'class' => 'elgg-button elgg-button-action'
+));