Merge pull request #12541 from colemanw/menuIcons
[civicrm-core.git] / CRM / Admin / Page / ExtensionsUpgrade.php
1 <?php
2
3 require_once 'CRM/Core/Page.php';
4
5 /**
6 * Display a page which displays a progress bar while executing
7 * upgrade tasks.
8 */
9 class CRM_Admin_Page_ExtensionsUpgrade extends CRM_Core_Page {
10 const END_URL = 'civicrm/admin/extensions';
11 const END_PARAMS = 'reset=1';
12
13 /**
14 * Run Page.
15 */
16 public function run() {
17 $queue = CRM_Extension_Upgrades::createQueue();
18 $runner = new CRM_Queue_Runner(array(
19 'title' => ts('Database Upgrades'),
20 'queue' => $queue,
21 'errorMode' => CRM_Queue_Runner::ERROR_ABORT,
22 'onEnd' => array('CRM_Admin_Page_ExtensionsUpgrade', 'onEnd'),
23 'onEndUrl' => !empty($_GET['destination']) ? $_GET['destination'] : CRM_Utils_System::url(self::END_URL, self::END_PARAMS),
24 ));
25
26 CRM_Core_Error::debug_log_message('CRM_Admin_Page_ExtensionsUpgrade: Start upgrades');
27 $runner->runAllViaWeb(); // does not return
28 }
29
30 /**
31 * Handle the final step of the queue.
32 *
33 * @param \CRM_Queue_TaskContext $ctx
34 */
35 public static function onEnd(CRM_Queue_TaskContext $ctx) {
36 CRM_Core_Error::debug_log_message('CRM_Admin_Page_ExtensionsUpgrade: Finish upgrades');
37 }
38
39 }