diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-09-08 20:36:22 -0700 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-09-08 20:36:22 -0700 |
commit | 391a90e3cedd1cca7631f9a4d786c6c513b1dd48 (patch) | |
tree | 6d88d103a73cf9f5bdd8cd5584c80b4b9dc57e35 /modules/gallery/controllers/upgrader.php | |
parent | d7edbc211f75acf0214ee554722a4f470d92157b (diff) |
Detect when a module fails to upgrade properly and put up an
informative message to help the user know that she needs to get a
newer copy of the module. Fixes ticket #1189.
Diffstat (limited to 'modules/gallery/controllers/upgrader.php')
-rw-r--r-- | modules/gallery/controllers/upgrader.php | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/gallery/controllers/upgrader.php b/modules/gallery/controllers/upgrader.php index cb940b46..a3cfac48 100644 --- a/modules/gallery/controllers/upgrader.php +++ b/modules/gallery/controllers/upgrader.php @@ -39,10 +39,12 @@ class Upgrader_Controller extends Controller { } } + $failed = Input::instance()->get("failed"); $view = new View("upgrader.html"); $view->can_upgrade = identity::active_user()->admin || $session->get("can_upgrade"); $view->upgrade_token = $upgrade_token; $view->available = module::available(); + $view->failed = $failed ? explode(",", $failed) : array(); $view->done = $available_upgrades == 0; print $view; } @@ -65,20 +67,26 @@ class Upgrader_Controller extends Controller { } // Then upgrade the rest + $failed = array(); foreach (module::available() as $id => $module) { if ($id == "gallery") { continue; } if ($module->active && $module->code_version != $module->version) { - module::upgrade($id); + try { + module::upgrade($id); + } catch (Exception $e) { + // @todo assume it's MODULE_FAILED_TO_UPGRADE for now + $failed[] = $id; + } } } if (php_sapi_name() == "cli") { print "Upgrade complete\n"; } else { - url::redirect("upgrader"); + url::redirect("upgrader?failed=" . join(",", $failed)); } } } |