From 4ee04d406daac82ea26fb563ed567c14e38f34d1 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 17 Aug 2020 11:39:53 -0400 Subject: [PATCH] Upgrade screen - show success instead of error if already upgraded --- CRM/Upgrade/Page/Upgrade.php | 46 +++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/CRM/Upgrade/Page/Upgrade.php b/CRM/Upgrade/Page/Upgrade.php index 77b7ad1103..06a377924c 100644 --- a/CRM/Upgrade/Page/Upgrade.php +++ b/CRM/Upgrade/Page/Upgrade.php @@ -78,35 +78,49 @@ class CRM_Upgrade_Page_Upgrade extends CRM_Core_Page { $template = CRM_Core_Smarty::singleton(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); - if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { + // Show success msg if db already upgraded + if (version_compare($currentVer, $latestVer) == 0) { + $template->assign('upgraded', TRUE); + $template->assign('newVersion', $latestVer); + CRM_Utils_System::setTitle(ts('Your database has already been upgraded to CiviCRM %1', + [1 => $latestVer] + )); + $template->assign('pageTitle', ts('Your database has already been upgraded to CiviCRM %1', + [1 => $latestVer] + )); + } + + // Throw error if db in unexpected condition + elseif ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { throw new CRM_Core_Exception($error); } - $config = CRM_Core_Config::singleton(); + else { + $config = CRM_Core_Config::singleton(); - // All cached content needs to be cleared because the civi codebase was just replaced - CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode(); + // All cached content needs to be cleared because the civi codebase was just replaced + CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode(); - // cleanup only the templates_c directory - $config->cleanup(1, FALSE); + // cleanup only the templates_c directory + $config->cleanup(1, FALSE); - $preUpgradeMessage = NULL; - $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); + $preUpgradeMessage = NULL; + $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); - $template->assign('currentVersion', $currentVer); - $template->assign('newVersion', $latestVer); - $template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', - [1 => $currentVer, 2 => $latestVer] - )); - $template->assign('upgraded', FALSE); + $template->assign('preUpgradeMessage', $preUpgradeMessage); + $template->assign('currentVersion', $currentVer); + $template->assign('newVersion', $latestVer); + $template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', + [1 => $currentVer, 2 => $latestVer] + )); + $template->assign('upgraded', FALSE); + } // Render page header if (!defined('CIVICRM_UF_HEAD') && $region = CRM_Core_Region::instance('html-header', FALSE)) { CRM_Utils_System::addHTMLHead($region->render('')); } - $template->assign('preUpgradeMessage', $preUpgradeMessage); - $content = $template->fetch('CRM/common/success.tpl'); echo CRM_Utils_System::theme($content, $this->_print, TRUE); } -- 2.25.1