diff --git a/phpBB/adm/style/acp_ext_disable.html b/phpBB/adm/style/acp_ext_disable.html
index c7de43a611..e47ba2d8b9 100644
--- a/phpBB/adm/style/acp_ext_disable.html
+++ b/phpBB/adm/style/acp_ext_disable.html
@@ -1,27 +1,31 @@
-
-
-
-
-
{L_EXTENSIONS_ADMIN}
-
- {L_EXTENSIONS_EXPLAIN}
- {L_ENABLE_EXPLAIN}
-
-
- {L_DISABLE_CONFIRM}
-
-
-
-
-
-
-
+
+
+
+
+ {L_EXTENSIONS_ADMIN}
+
+ {L_EXTENSIONS_EXPLAIN}
+ {L_ENABLE_EXPLAIN}
+
+
+ {L_DISABLE_CONFIRM}
+
+
+
+
+
{L_DISABLE_IN_PROGRESS}
+
+
+
+
+
+
diff --git a/phpBB/adm/style/acp_ext_enable.html b/phpBB/adm/style/acp_ext_enable.html
index dd892d3477..4b0f8bfdd7 100644
--- a/phpBB/adm/style/acp_ext_enable.html
+++ b/phpBB/adm/style/acp_ext_enable.html
@@ -1,27 +1,31 @@
-
-
-
-
- {L_EXTENSIONS_ADMIN}
-
- {L_EXTENSIONS_EXPLAIN}
- {L_ENABLE_EXPLAIN}
-
-
- {L_ENABLE_CONFIRM}
-
-
-
-
-
-
-
+
+
+
+
+ {L_EXTENSIONS_ADMIN}
+
+ {L_EXTENSIONS_EXPLAIN}
+ {L_ENABLE_EXPLAIN}
+
+
+ {L_ENABLE_CONFIRM}
+
+
+
+
+
{L_ENABLE_IN_PROGRESS}
+
+
+
+
+
+
diff --git a/phpBB/adm/style/acp_ext_purge.html b/phpBB/adm/style/acp_ext_purge.html
index 55a648a3e3..7255057d04 100644
--- a/phpBB/adm/style/acp_ext_purge.html
+++ b/phpBB/adm/style/acp_ext_purge.html
@@ -1,27 +1,31 @@
-
-
-
-
- {L_EXTENSIONS_ADMIN}
-
- {L_EXTENSIONS_EXPLAIN}
- {L_ENABLE_EXPLAIN}
-
-
- {L_PURGE_CONFIRM}
-
-
-
-
-
-
-
+
+
+
+
+ {L_EXTENSIONS_ADMIN}
+
+ {L_EXTENSIONS_EXPLAIN}
+ {L_ENABLE_EXPLAIN}
+
+
+ {L_PURGE_CONFIRM}
+
+
+
+
+
{L_PURGE_IN_PROGRESS}
+
+
+
+
+
+
diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php
index b65be0c641..8cb6685d9f 100644
--- a/phpBB/includes/acp/acp_extensions.php
+++ b/phpBB/includes/acp/acp_extensions.php
@@ -56,7 +56,12 @@ class acp_extensions
break;
case 'enable':
- $phpbb_extension_manager->enable($ext_name);
+ if ($phpbb_extension_manager->enable_step($ext_name))
+ {
+ $template->assign_var('S_NEXT_STEP', true);
+
+ meta_refresh(0, $this->u_action . '&action=enable&ext_name=' . $ext_name);
+ }
$this->tpl_name = 'acp_ext_enable';
@@ -75,7 +80,12 @@ class acp_extensions
break;
case 'disable':
- $phpbb_extension_manager->disable($ext_name);
+ if ($phpbb_extension_manager->disable_step($ext_name))
+ {
+ $template->assign_var('S_NEXT_STEP', true);
+
+ meta_refresh(0, $this->u_action . '&action=disable&ext_name=' . $ext_name);
+ }
$this->tpl_name = 'acp_ext_disable';
@@ -94,7 +104,12 @@ class acp_extensions
break;
case 'purge':
- $phpbb_extension_manager->purge($ext_name);
+ if ($phpbb_extension_manager->purge_step($ext_name))
+ {
+ $template->assign_var('S_NEXT_STEP', true);
+
+ meta_refresh(0, $this->u_action . '&action=purge&ext_name=' . $ext_name);
+ }
$this->tpl_name = 'acp_ext_purge';
diff --git a/phpBB/language/en/acp/extensions.php b/phpBB/language/en/acp/extensions.php
index 950f3b5332..66f3665757 100644
--- a/phpBB/language/en/acp/extensions.php
+++ b/phpBB/language/en/acp/extensions.php
@@ -60,10 +60,13 @@ $lang = array_merge($lang, array(
'PURGE_EXPLAIN' => 'Purging an extension clears an extensions data while retaining its files.',
'DELETE_EXPLAIN' => 'Deleting an extension removes all of its files and settings. Log entries will remain, although any language variables added by the extension will not be available.',
- 'ENABLE_SUCESS' => 'The extension was enabled successfully',
- 'DISABLE_SUCESS' => 'The extension was disabled successfully',
- 'PURGE_SUCESS' => 'The extension was purged successfully',
- 'DELETE_SUCESS' => 'The extension was deleted successfully',
+ 'DISABLE_IN_PROGRESS' => 'The extension is currently being disabled, please do not leave this page or refresh until it is completed.',
+ 'ENABLE_IN_PROGRESS' => 'The extension is currently being installed, please do not leave this page or refresh until it is completed.',
+ 'PURGE_IN_PROGRESS' => 'The extension is currently being purged, please do not leave this page or refresh until it is completed.',
+ 'ENABLE_SUCCESS' => 'The extension was enabled successfully',
+ 'DISABLE_SUCCESS' => 'The extension was disabled successfully',
+ 'PURGE_SUCCESS' => 'The extension was purged successfully',
+ 'DELETE_SUCCESS' => 'The extension was deleted successfully',
'ENABLE_FAIL' => 'The extension could not be enabled',
'DISABLE_FAIL' => 'The extension could not be disabled',