2 if(!defined('sugarEntry') || !sugarEntry)
3 die('Not A Valid Entry Point');
4 /*********************************************************************************
5 * SugarCRM Community Edition is a customer relationship management program developed by
6 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
8 * This program is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU Affero General Public License version 3 as published by the
10 * Free Software Foundation with the addition of the following permission added
11 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
12 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
13 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
15 * This program is distributed in the hope that it will be useful, but WITHOUT
16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
20 * You should have received a copy of the GNU Affero General Public License along with
21 * this program; if not, see http://www.gnu.org/licenses or write to the Free
22 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
26 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
28 * The interactive user interfaces in modified source and object code versions
29 * of this program must display Appropriate Legal Notices, as required under
30 * Section 5 of the GNU Affero General Public License version 3.
32 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
33 * these Appropriate Legal Notices must retain the display of the "Powered by
34 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
35 * technical reasons, the Appropriate Legal Notices must display the words
36 * "Powered by SugarCRM".
37 ********************************************************************************/
39 /*********************************************************************************
42 * Portions created by SugarCRM are Copyright(C) SugarCRM, Inc. All Rights
43 * Reserved. Contributor(s): ______________________________________..
44 * *******************************************************************************/
45 require_once('include/SugarLogger/SugarLogger.php');
47 $trackerManager = TrackerManager::getInstance();
48 $trackerManager->pause();
49 $trackerManager->unsetMonitors();
51 $_SESSION['upgrade_complete'] = '';
52 $_REQUEST['upgradeWizard'] = true;
55 logThis('[At commit.php]');
56 $stop = true; // flag to show "next"
58 //refreshing mod_strings
62 if(isset($GLOBALS['current_language']) && ($GLOBALS['current_language'] != null)){
63 $curr_lang = $GLOBALS['current_language'];
65 return_module_language($curr_lang, 'UpgradeWizard');
68 $standardErrorLevel = error_reporting();
69 logThis("Setting error_reporting() to E_ERROR while running upgrade");
70 error_reporting(E_ERROR);
74 * [unzip_dir] => /Users/curisu/www/head/cache/upload//upgrades/temp/QSugp3
75 * [zip_from_dir] => SugarEnt-Upgrade-4.0.1-to-4.2.1
76 * rest_dir: /Users/curisu/www/head/cache/upload/SugarEnt-Upgrade-4.0.1-to-4.2.1-restore
79 // flag upgradeSql script run method
80 $_SESSION['schema_change'] = $_REQUEST['schema_change'];
81 if(didThisStepRunBefore('commit')){
82 $_SESSION['committed'] = true;
85 set_upgrade_progress('commit','in_progress','commit','in_progress');
87 //Initialize session errors array
88 if(!isset($_SESSION['sqlSkippedQueries']) && !is_array($_SESSION['sqlSkippedQueries'])){
89 $_SESSION['sqlSkippedQueries'] = array();
91 // prevent "REFRESH" double commits
92 if(!isset($_SESSION['committed'])) {
93 //$_SESSION['committed'] = true; // flag to prevent refresh double-commit
94 //set the flag at the end though
95 unset($_SESSION['rebuild_relationships']);
96 unset($_SESSION['rebuild_extensions']);
97 //put checks for follwing files
99 if(!isset($_SESSION['unzip_dir']) || empty($_SESSION['unzip_dir'])) {
100 logThis('unzipping files in upgrade archive...');
102 $base_upgrade_dir = $sugar_config['upload_dir'] . "/upgrades";
103 $base_tmp_upgrade_dir = "$base_upgrade_dir/temp";
105 //also come up with mechanism to read from upgrade-progress file
106 if(!isset($_SESSION['install_file']) || empty($_SESSION['install_file']) || !is_file($_SESSION['install_file'])) {
107 if (file_exists(clean_path($base_tmp_upgrade_dir)) && $handle = opendir(clean_path($base_tmp_upgrade_dir))) {
108 while (false !== ($file = readdir($handle))) {
109 if($file !="." && $file !="..") {
110 //echo $base_tmp_upgrade_dir."/".$file.'</br>';
111 if(is_file($base_tmp_upgrade_dir."/".$file."/manifest.php")){
112 require_once($base_tmp_upgrade_dir."/".$file."/manifest.php");
113 $package_name= $manifest['copy_files']['from_dir'];
114 //echo file_exists($base_tmp_upgrade_dir."/".$file."/".$package_name).'</br>';
115 if(file_exists($base_tmp_upgrade_dir."/".$file."/".$package_name) && file_exists($base_tmp_upgrade_dir."/".$file."/scripts") && file_exists($base_tmp_upgrade_dir."/".$file."/manifest.php")){
116 //echo 'Yeah this the directory '. $base_tmp_upgrade_dir."/".$file;
117 $unzip_dir = $base_tmp_upgrade_dir."/".$file;
118 if(file_exists($sugar_config['upload_dir'].'/upgrades/patch/'.$package_name.'.zip')){
119 $_SESSION['install_file'] = $sugar_config['upload_dir'].'/upgrades/patch/'.$package_name.'.zip';
128 if(!isset($_SESSION['install_file']) || empty($_SESSION['install_file'])){
131 echo 'Upload File not found so redirecting to Upgrade Start ';
132 $redirect_new_wizard = $sugar_config['site_url' ].'/index.php?module=UpgradeWizard&action=index';
133 echo '<form name="redirect" action="' .$redirect_new_wizard. '" method="POST">';
134 $upgrade_directories_not_found =<<<eoq
135 <table cellpadding="3" cellspacing="0" border="0">
137 <th colspan="2" align="left">
138 <span class='error'><b>'Upload file missing or has been deleted. Refresh the page to go back to UpgradeWizard start'</b></span>
143 $uwMain = $upgrade_directories_not_found;
146 $install_file = urldecode( $_SESSION['install_file'] );
148 if(empty($unzip_dir)){
149 $unzip_dir = mk_temp_dir( $base_tmp_upgrade_dir );
153 $zip_force_copy = array();
156 logThis('Could not create a temporary directory using mk_temp_dir( $base_tmp_upgrade_dir )');
157 die($mod_strings['ERR_UW_NO_CREATE_TMP_DIR']);
160 //double check whether unzipped .
161 if(file_exists($unzip_dir ."/scripts") && file_exists($unzip_dir."/manifest.php")){
165 unzip( $install_file, $unzip_dir );
168 // assumption -- already validated manifest.php at time of upload
169 require_once( "$unzip_dir/manifest.php" );
171 if( isset( $manifest['copy_files']['from_dir'] ) && $manifest['copy_files']['from_dir'] != "" ){
172 $zip_from_dir = $manifest['copy_files']['from_dir'];
174 if( isset( $manifest['copy_files']['to_dir'] ) && $manifest['copy_files']['to_dir'] != "" ){
175 $zip_to_dir = $manifest['copy_files']['to_dir'];
177 if( isset( $manifest['copy_files']['force_copy'] ) && $manifest['copy_files']['force_copy'] != "" ){
178 $zip_force_copy = $manifest['copy_files']['force_copy'];
180 if( isset( $manifest['version'] ) ){
181 $version = $manifest['version'];
183 if( !is_writable( "config.php" ) ){
184 return $mod_strings['ERR_UW_CONFIG'];
187 $_SESSION['unzip_dir'] = clean_path($unzip_dir);
188 $_SESSION['zip_from_dir'] = clean_path($zip_from_dir);
189 logThis('unzip done.');
191 $unzip_dir = $_SESSION['unzip_dir'];
192 $zip_from_dir = $_SESSION['zip_from_dir'];
195 //check if $_SESSION['unzip_dir'] and $_SESSION['zip_from_dir'] exist
196 if(!isset($_SESSION['unzip_dir']) || !file_exists($_SESSION['unzip_dir'])
197 || !isset($_SESSION['install_file']) || empty($_SESSION['install_file']) || !file_exists($_SESSION['install_file'])){
201 echo 'Upload File not found so redirecting to Upgrade Start ';
202 $redirect_new_wizard = $sugar_config['site_url' ].'/index.php?module=UpgradeWizard&action=index';
203 echo '<form name="redirect" action="' .$redirect_new_wizard. '" method="POST">';
204 $upgrade_directories_not_found =<<<eoq
205 <table cellpadding="3" cellspacing="0" border="0">
207 <th colspan="2" align="left">
208 <span class='error'><b>'Upload file missing or has been deleted. Refresh the page to go back to UpgradeWizard start'</b></span>
213 $uwMain = $upgrade_directories_not_found;
216 $install_file = urldecode($_SESSION['install_file']);
221 $backupFilesExist = false;
222 $rest_dir = clean_path(remove_file_extension($install_file) . "-restore");
224 ///////////////////////////////////////////////////////////////////////////////
225 //// MAKE BACKUPS OF TARGET FILES
226 if(!didThisStepRunBefore('commit','commitMakeBackupFiles')){
227 set_upgrade_progress('commit','in_progress','commitMakeBackupFiles','in_progress');
228 $errors = commitMakeBackupFiles($rest_dir, $install_file, $unzip_dir, $zip_from_dir, array());
229 set_upgrade_progress('commit','in_progress','commitMakeBackupFiles','done');
231 //// END MAKE BACKUPS OF TARGET FILES
232 ///////////////////////////////////////////////////////////////////////////////
235 ///////////////////////////////////////////////////////////////////////////////
236 //// HANDLE PREINSTALL SCRIPTS
238 $file = "$unzip_dir/" . constant('SUGARCRM_PRE_INSTALL_FILE');
240 $out .= "{$mod_strings['LBL_UW_INCLUDING']}: {$file} <br>\n";
242 if(!didThisStepRunBefore('commit','pre_install')){
243 logThis('Running pre_install()...');
244 set_upgrade_progress('commit','in_progress','pre_install','in_progress');
246 set_upgrade_progress('commit','in_progress','pre_install','done');
247 logThis('pre_install() done.');
252 //// HANDLE PREINSTALL SCRIPTS
253 ///////////////////////////////////////////////////////////////////////////////
254 //Clean smarty from cache
255 if(is_dir($GLOBALS['sugar_config']['cache_dir'].'smarty')){
256 $allModFiles = array();
257 $allModFiles = findAllFiles($GLOBALS['sugar_config']['cache_dir'].'smarty',$allModFiles);
258 foreach($allModFiles as $file){
259 //$file_md5_ref = str_replace(clean_path(getcwd()),'',$file);
260 if(file_exists($file)){
267 //Also add the three-way merge here. The idea is after the 451 html files have
268 //been converted run the 3-way merge. If 500 then just run the 3-way merge
269 $ce_to_pro_ent = isset($manifest['name']) && ($manifest['name'] == 'SugarCE to SugarPro' || $manifest['name'] == 'SugarCE to SugarEnt' || $manifest['name'] == 'SugarCE to SugarCorp' || $manifest['name'] == 'SugarCE to SugarUlt');
271 if(file_exists('modules/UpgradeWizard/SugarMerge/SugarMerge.php')){
272 require_once('modules/UpgradeWizard/SugarMerge/SugarMerge.php');
273 if(isset($_SESSION['unzip_dir']) && isset($_SESSION['zip_from_dir']) && !isset($_SESSION['sugarMergeRunResults'])){
274 $merger = new SugarMerge($_SESSION['unzip_dir'].'/'.$_SESSION['zip_from_dir']);
275 //Perform the actual merge and store which modules were merged. We will rolllback the files if the
276 //user determines that they did not want to upgade a particular module.
277 $_SESSION['sugarMergeRunResults'] = $merger->mergeAll(TRUE,TRUE,TRUE);
278 logThis('Commit step finished SugarMerge run with the following results:' . print_r($_SESSION['sugarMergeRunResults'], true));
282 //COPY ALL FILES FROM UPLOADED UPGRADE PACKAGE
284 if(!didThisStepRunBefore('commit','commitCopyNewFiles')){
285 set_upgrade_progress('commit','in_progress','commitCopyNewFiles','in_progress');
286 $split = commitCopyNewFiles($unzip_dir, $zip_from_dir);
287 $copiedFiles = $split['copiedFiles'];
288 $skippedFiles = $split['skippedFiles'];
289 set_upgrade_progress('commit','in_progress','commitCopyNewFiles','done');
291 //END COPY NEW FILES INTO TARGET INSTANCE
292 ///////////////////////////////////////////////////////////////////////////////
293 //// HANDLE POSTINSTALL SCRIPTS
294 logThis('Starting post_install()...');
295 if (!function_exists("inDeveloperMode")) {
296 //this function was introduced from tokyo in the file include/utils.php, so when upgrading from 5.1x and 5.2x we should declare the this function
297 function inDeveloperMode()
299 return isset($GLOBALS['sugar_config']['developerMode']) && $GLOBALS['sugar_config']['developerMode'];
303 if(!didThisStepRunBefore('commit','post_install')){
304 $file = "$unzip_dir/" . constant('SUGARCRM_POST_INSTALL_FILE');
306 //set_upgrade_progress('commit','in_progress','post_install','in_progress');
307 $progArray['post_install']='in_progress';
308 post_install_progress($progArray,'set');
311 //set process to done
312 $progArray['post_install']='done';
313 //set_upgrade_progress('commit','in_progress','post_install','done');
314 post_install_progress($progArray,'set');
318 require("sugar_version.php");
320 if($_SESSION['current_db_version'] != $_SESSION['target_db_version']){
321 logThis('Performing UWrebuild()...');
323 logThis('UWrebuild() done.');
326 //set the logger before rebuilding config
327 if(!isset($sugar_config['logger'])){
328 $sugar_config['logger'] =array (
333 'name' => 'sugarcrm',
334 'dateFormat' => '%c',
342 // Set the default max tabs to 7
343 $sugar_config['default_max_tabs'] = '7';
345 if(!rebuildConfigFile($sugar_config, $sugar_version)) {
346 logThis('*** ERROR: could not write config.php! - upgrade will fail!');
347 $errors[] = $mod_strings['ERR_UW_CONFIG_WRITE'];
350 logThis('post_install() done.');
351 //// END POSTINSTALL SCRIPTS
352 ///////////////////////////////////////////////////////////////////////////////
354 logThis('check if current_db_version in $_SESSION equals target_db_version in $_SESSION');
355 if($_SESSION['current_db_version'] == $_SESSION['target_db_version']){
357 logThis('current_db_version in $_SESSION and target_db_version in $_SESSION are equal');
358 $_SESSION['license_seats_needed'] = '';
359 //Clean modules from cache
360 if(is_dir($GLOBALS['sugar_config']['cache_dir'].'modules')){
361 logThis('clear ' . $GLOBALS['sugar_config']['cache_dir'].'modules' . ' files');
362 $allModFiles = array();
363 $allModFiles = findAllFiles($GLOBALS['sugar_config']['cache_dir'].'modules',$allModFiles);
364 foreach($allModFiles as $file){
365 //$file_md5_ref = str_replace(clean_path(getcwd()),'',$file);
366 if(file_exists($file))
368 logThis('unlink ' . $file);
373 //Clean jsLanguage from cache
374 if(is_dir($GLOBALS['sugar_config']['cache_dir'].'jsLanguage'))
376 logThis('clear ' . $GLOBALS['sugar_config']['cache_dir'].'jsLanguage' . ' files');
377 $allModFiles = array();
378 $allModFiles = findAllFiles($GLOBALS['sugar_config']['cache_dir'].'jsLanguage',$allModFiles);
379 foreach($allModFiles as $file){
380 //$file_md5_ref = str_replace(clean_path(getcwd()),'',$file);
381 if(file_exists($file))
383 logThis('unlink ' . $file);
390 logThis('finished check to see if current_db_version in $_SESSION equals target_db_version in $_SESSION');
393 //Look for chance folder and delete it if found. Bug 23595
394 if(function_exists('deleteChance'))
396 logThis('running deleteChance() function');
400 //also add the cache cleaning here.
401 if(function_exists('deleteCache'))
403 logThis('running deleteCache() function');
408 $from_dir = clean_path(remove_file_extension($install_file) . "-restore");
409 logThis('call addNewSystemTabsFromUpgrade(' . $from_dir . ')');
410 addNewSystemTabsFromUpgrade($from_dir);
411 logThis('finished addNewSystemTabsFromUpgrade');
413 //run fix on dropdown lists that may have been incorrectly named
414 //fix_dropdown_list();
416 ///////////////////////////////////////////////////////////////////////////////
417 //// REGISTER UPGRADE
419 logThis('Registering upgrade with UpgradeHistory');
420 if(!didThisStepRunBefore('commit','upgradeHistory')){
421 set_upgrade_progress('commit','in_progress','upgradeHistory','in_progress');
423 $file_action = "copied";
424 // if error was encountered, script should have died before now
425 $new_upgrade = new UpgradeHistory();
426 $new_upgrade->filename = $install_file;
427 $new_upgrade->md5sum = md5_file($install_file);
428 $new_upgrade->type = 'patch';
429 $new_upgrade->version = $sugar_version;
430 $new_upgrade->status = "installed";
431 $new_upgrade->manifest =(!empty($_SESSION['install_manifest']) ? $_SESSION['install_manifest'] : '');
432 $new_upgrade->save();
434 set_upgrade_progress('commit','in_progress','upgradeHistory','done');
436 //// REGISTER UPGRADE
437 ///////////////////////////////////////////////////////////////////////////////
439 $backupFilesExist = false;
440 $copiedFiles = array();
441 $skippedFiles = array();
444 // flag to prvent double-commits via refresh
445 $_SESSION['committed'] = true;
447 ///////////////////////////////////////////////////////////////////////////////
448 //// FINISH AND OUTPUT
454 if($backupFilesExist) {
455 $backupDesc .= "<b>{$mod_strings['LBL_UW_BACKUP_FILES_EXIST_TITLE']}</b><br />";
456 $backupDesc .= $mod_strings['LBL_UW_BACKUP_FILES_EXIST'] . ': ' . $rest_dir;
459 $customized_mods_Desc = '';
461 $old_schema_opt = '';
462 $skipped_queries = '';
463 if($_SESSION['current_db_version'] != $_SESSION['target_db_version']){
464 global $sugar_version;
465 $origVersion = substr(preg_replace("/[^0-9]/", "", $_SESSION['current_db_version']),0,3);
466 $destVersion = substr(preg_replace("/[^0-9]/", "", $_SESSION['target_db_version']),0,3);
468 //old schema to be dropped
469 $old_schema_contents = '';
470 if(file_exists($_SESSION['unzip_dir'].'/scripts/drop_'.$origVersion.'_schema_after_upgrade_'.$destVersion.'.php')){
471 require_once($_SESSION['unzip_dir'].'/scripts/drop_'.$origVersion.'_schema_after_upgrade_'.$destVersion.'.php');
473 $old_schema_contents=@drop_preUpgardeSchema(true);
476 if($old_schema_contents != null && strlen($old_schema_contents) >0){
477 $old_schema = "<p><a href='javascript:void(0); toggleNwFiles(\"old_schemashow\");'>{$mod_strings['LBL_UW_SHOW_OLD_SCHEMA_TO_DROP']}</a>";
478 $old_schema .= "<div id='old_schemashow' style='display:none;'>";
479 $old_schema .= "<textarea readonly cols='80' rows='10'>{$old_schema_contents}</textarea>";
480 $old_schema .= "</div></p>";
482 $old_schema_opt="<b>{$mod_strings['LBL_UW_DROP_SCHEMA_METHOD']}</b>
483 <select name=\"schema_drop\" id=\"select_schema_drop\" onchange=\"checkSchemaDropStatus();\">
484 <option value=\"manual\">{$mod_strings['LBL_UW_DROP_SCHEMA_MANUAL']}</option>
485 <option value=\"sugar\">{$mod_strings['LBL_UW_DROP_SCHEMA_UPGRADE_WIZARD']}</option>
490 //also add the cache cleaning here.
491 if(function_exists('deleteCache')){
497 if(count($copiedFiles) > 0) {
498 $copiedDesc .= "<b>{$mod_strings['LBL_UW_COPIED_FILES_TITLE']}</b><br />";
499 $copiedDesc .= "<a href='javascript:void(0); toggleNwFiles(\"copiedFiles\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
500 $copiedDesc .= "<div id='copiedFiles' style='display:none;'>";
502 foreach($copiedFiles as $file) {
503 $copiedDesc .= $file . "<br />";
505 $copiedDesc .= "</div>";
509 if(count($skippedFiles) > 0) {
510 $skippedDesc .= "<b>{$mod_strings['LBL_UW_SKIPPED_FILES_TITLE']}</b><br />";
511 $skippedDesc .= "<a href='javascript:void(0); toggleNwFiles(\"skippedFiles\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
512 $skippedDesc .= "<div id='skippedFiles' style='display:none;'>";
514 foreach($skippedFiles as $file) {
515 $skippedDesc .= $file . "<br />";
517 $skippedDesc .= "</div>";
520 $rebuildResult = "<b>{$mod_strings['LBL_UW_REBUILD_TITLE']}</b><br />";
521 $rebuildResult .= "<a href='javascript:void(0); toggleRebuild();'>{$mod_strings['LBL_UW_SHOW']}</a> <div id='rebuildResult'></div>";
525 //moving unlink files to last
529 $skipped_queries_Desc='';
530 if(isset($_SESSION['sqlSkippedQueries']) && $_SESSION['sqlSkippedQueries'] != null && is_array($_SESSION['sqlSkippedQueries']) && sizeof($_SESSION['sqlSkippedQueries'])>0){
531 $skipped_queries_Desc .= "<b>{$mod_strings['LBL_UW_SKIPPED_QUERIES_ALREADY_EXIST']}</b><br />";
532 $skipped_queries_Desc .= "<a href='javascript:void(0); toggleNwFiles(\"skippedQueries\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
533 $skipped_queries_Desc .= "<div id='skippedQueries' style='display:none;'>";
534 if($_SESSION['sqlSkippedQueries'] != null){
535 $skipped_queries_Desc .= $mod_strings['LBL_UW_SKIPPED_QUERIES_ALREADY_EXIST']. "<br />";
536 foreach($_SESSION['sqlSkippedQueries'] as $skippedQ) {
537 $skipped_queries_Desc .= $skippedQ . "<br />";
542 if(isset($_SESSION['chance']) && $_SESSION['chance'] != null){
543 $delete_chance .= "<b>Remove the folder: {$_SESSION['chance']}</b><br />";
545 if(empty($mod_strings['LBL_UPGRADE_TAKES_TIME_HAVE_PATIENCE'])){
546 $mod_strings['LBL_UPGRADE_TAKES_TIME_HAVE_PATIENCE'] = 'Upgrade may take some time';
549 ///////////////////////////////////////////////////////////////////////////////
550 //// HANDLE REMINDERS
551 commitHandleReminders($skippedFiles);
552 //// HANDLE REMINDERS
553 ///////////////////////////////////////////////////////////////////////////////
556 logThis("Resetting error_reporting() to system level.");
557 error_reporting($standardErrorLevel);
559 ///////////////////////////////////////////////////////////////////////////////
562 <script type="text/javascript" language="javascript">
563 function toggleRebuild() {
564 var target = document.getElementById('rebuildResult');
566 if(target.innerHTML == '') {
567 target.innerHTML = rebuildResult; // found in UWrebuild()
569 target.innerHTML = '';
573 <table cellpadding="3" cellspacing="0" border="0">
588 {$customized_mods_Desc}
597 {$skipped_queries_Desc}
613 <div id="upgradeDiv" style="display:none">
614 <table cellspacing="0" cellpadding="0" border="0">
616 <p><img src='modules/UpgradeWizard/processing.gif'> <br></p>
621 function checkSchemaDropStatus() {
622 if(document.getElementById('select_schema_drop') != null){
623 var schemaSelect = document.getElementById('select_schema_drop');
624 var schemaDropMethod = document.getElementById('schema_drop');
625 if(schemaSelect.options[schemaSelect.selectedIndex].value == 'manual') {
626 schemaDropMethod.value = 'manual';
628 schemaDropMethod.value = 'sugar';
632 checkSchemaDropStatus();
636 //set the upgrade progress status.
637 set_upgrade_progress('commit','done','commit','done');
640 $showRecheck = false;
641 $showNext =($stop) ? false : true;
643 $GLOBALS['top_message'] = "<b>{$mod_strings['LBL_UW_COMMIT_DESC']}</b>";
644 $stepBack = $_REQUEST['step'] - 1;
645 //Skip ahead to the end page as no layouts need to be merged.
647 foreach($_SESSION['sugarMergeRunResults'] as $mergeModule => $mergeModuleFileList){
648 if(!empty($mergeModuleFileList)){
649 $skipLayouts = false;
652 $stepNext = $skipLayouts ? $_REQUEST['step'] + 2 : $_REQUEST['step'] + 1;
654 $stepRecheck = $_REQUEST['step'];
656 $_SESSION['step'][$steps['files'][$_REQUEST['step']]] =($stop) ? 'failed' : 'success';
658 // clear out the theme cache
659 // clear out the theme cache
660 if(!class_exists('SugarThemeRegistry')){
661 require_once('include/SugarTheme/SugarTheme.php');
663 SugarThemeRegistry::buildRegistry();
664 SugarThemeRegistry::clearAllCaches();
666 // re-minify the JS source files
667 $_REQUEST['root_directory'] = getcwd();
668 $_REQUEST['js_rebuild_concat'] = 'rebuild';
669 require_once('jssource/minify.php');