Index: /trunk/admin/include/plugins.class.php
===================================================================
--- /trunk/admin/include/plugins.class.php (revision 10292)
+++ /trunk/admin/include/plugins.class.php (revision 10293)
@@ -79,12 +79,6 @@
{
case 'install':
- if (!empty($crt_db_plugin))
- {
- array_push($errors, 'CANNOT INSTALL - ALREADY INSTALLED');
- break;
- }
- if (!isset($this->fs_plugins[$plugin_id]))
- {
- array_push($errors, 'CANNOT INSTALL - NO SUCH PLUGIN');
+ if (!empty($crt_db_plugin) or !isset($this->fs_plugins[$plugin_id]))
+ {
break;
}
@@ -110,13 +104,11 @@
if (!isset($crt_db_plugin))
{
- array_push($errors, 'CANNOT ACTIVATE - NOT INSTALLED');
+ $errors = $this->perform_action('install', $plugin_id);
+ }
+ elseif ($crt_db_plugin['state'] == 'active')
+ {
break;
}
- if ($crt_db_plugin['state'] != 'inactive')
- {
- array_push($errors, 'invalid current state ' . $crt_db_plugin['state']);
- break;
- }
- if (file_exists($file_to_include))
+ if (empty($errors) and file_exists($file_to_include))
{
include_once($file_to_include);
@@ -137,11 +129,7 @@
case 'deactivate':
- if (!isset($crt_db_plugin))
- {
- die ('CANNOT DEACTIVATE - NOT INSTALLED');
- }
- if ($crt_db_plugin['state'] != 'active')
- {
- die('invalid current state ' . $crt_db_plugin['state']);
+ if (!isset($crt_db_plugin) or $crt_db_plugin['state'] != 'active')
+ {
+ break;
}
$query = '
@@ -161,5 +149,9 @@
if (!isset($crt_db_plugin))
{
- die ('CANNOT UNINSTALL - NOT INSTALLED');
+ break;
+ }
+ if ($crt_db_plugin['state'] == 'active')
+ {
+ $this->perform_action('deactivate', $plugin_id);
}
$query = '
@@ -176,13 +168,17 @@
break;
+ case 'restore':
+ $this->perform_action('uninstall', $plugin_id);
+ unset($this->db_plugins_by_id[$plugin_id]);
+ $errors = $this->perform_action('activate', $plugin_id);
+ break;
+
case 'delete':
if (!empty($crt_db_plugin))
{
- array_push($errors, 'CANNOT DELETE - PLUGIN IS INSTALLED');
- break;
+ $this->perform_action('uninstall', $plugin_id);
}
if (!isset($this->fs_plugins[$plugin_id]))
{
- array_push($errors, 'CANNOT DELETE - NO SUCH PLUGIN');
break;
}
Index: /trunk/admin/plugins_list.php
===================================================================
--- /trunk/admin/plugins_list.php (revision 10292)
+++ /trunk/admin/plugins_list.php (revision 10293)
@@ -98,14 +98,10 @@
else
{
- $tpl_plugin['STATE'] = 'uninstalled';
+ $tpl_plugin['STATE'] = 'inactive';
}
if (isset($fs_plugin['extension']) and in_array($fs_plugin['extension'], $_SESSION['merged_extensions']))
{
- switch($tpl_plugin['STATE'])
- {
- case 'active': $plugins->perform_action('deactivate', $plugin_id);
- case 'inactive': $plugins->perform_action('uninstall', $plugin_id);
- }
+ $plugins->perform_action('uninstall', $plugin_id);
$tpl_plugin['STATE'] = 'merged';
$tpl_plugin['DESC'] = l10n('THIS PLUGIN IS NOW PART OF PIWIGO CORE! DELETE IT NOW.');
@@ -118,5 +114,4 @@
$template->append('plugin_states', 'active');
$template->append('plugin_states', 'inactive');
-$template->append('plugin_states', 'uninstalled');
if ($merged_plugins)
Index: /trunk/admin/themes/default/template/plugins_list.tpl
===================================================================
--- /trunk/admin/themes/default/template/plugins_list.tpl (revision 10292)
+++ /trunk/admin/themes/default/template/plugins_list.tpl (revision 10293)
@@ -32,7 +32,4 @@
{'Inactive Plugins'|@translate}
- {elseif $plugin_state == 'uninstalled'}
- {'Uninstalled Plugins'|@translate}
-
{elseif $plugin_state == 'missing'}
{'Missing Plugins'|@translate}
@@ -57,12 +54,9 @@
{if $plugin.STATE == 'active'}
{'Deactivate'|@translate}
+ | {'Restore'|@translate}
{elseif $plugin_state == 'inactive'}
{'Activate'|@translate}
- | {'Uninstall'|@translate}
-
- {elseif $plugin_state == 'uninstalled'}
- {'Install'|@translate}
- | {'Delete'|@translate}
+ | {'Delete'|@translate}
{elseif $plugin_state == 'missing'}