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));
283 if(file_exists("include/Expressions/Actions/SetValueAction.php")){
284 require_once("include/Expressions/Actions/SetValueAction.php");
287 //COPY ALL FILES FROM UPLOADED UPGRADE PACKAGE
288 if(!didThisStepRunBefore('commit','commitCopyNewFiles')){
289 set_upgrade_progress('commit','in_progress','commitCopyNewFiles','in_progress');
290 $split = commitCopyNewFiles($unzip_dir, $zip_from_dir);
291 $copiedFiles = $split['copiedFiles'];
292 $skippedFiles = $split['skippedFiles'];
293 set_upgrade_progress('commit','in_progress','commitCopyNewFiles','done');
295 //END COPY NEW FILES INTO TARGET INSTANCE
296 ///////////////////////////////////////////////////////////////////////////////
297 //// HANDLE POSTINSTALL SCRIPTS
298 logThis('Starting post_install()...');
299 if (!function_exists("inDeveloperMode")) {
300 //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
301 function inDeveloperMode()
303 return isset($GLOBALS['sugar_config']['developerMode']) && $GLOBALS['sugar_config']['developerMode'];
307 if(!didThisStepRunBefore('commit','post_install')){
308 $file = "$unzip_dir/" . constant('SUGARCRM_POST_INSTALL_FILE');
310 //set_upgrade_progress('commit','in_progress','post_install','in_progress');
311 $progArray['post_install']='in_progress';
312 post_install_progress($progArray,'set');
315 //set process to done
316 $progArray['post_install']='done';
317 //set_upgrade_progress('commit','in_progress','post_install','done');
318 post_install_progress($progArray,'set');
322 require("sugar_version.php");
324 if($_SESSION['current_db_version'] != $_SESSION['target_db_version']){
325 logThis('Performing UWrebuild()...');
327 logThis('UWrebuild() done.');
330 //set the logger before rebuilding config
331 if(!isset($sugar_config['logger'])){
332 $sugar_config['logger'] =array (
337 'name' => 'sugarcrm',
338 'dateFormat' => '%c',
346 // Set the default max tabs to 7
347 $sugar_config['default_max_tabs'] = '7';
349 if(!rebuildConfigFile($sugar_config, $sugar_version)) {
350 logThis('*** ERROR: could not write config.php! - upgrade will fail!');
351 $errors[] = $mod_strings['ERR_UW_CONFIG_WRITE'];
354 logThis('post_install() done.');
355 //// END POSTINSTALL SCRIPTS
356 ///////////////////////////////////////////////////////////////////////////////
358 logThis('check if current_db_version in $_SESSION equals target_db_version in $_SESSION');
359 if($_SESSION['current_db_version'] == $_SESSION['target_db_version']){
361 logThis('current_db_version in $_SESSION and target_db_version in $_SESSION are equal');
362 $_SESSION['license_seats_needed'] = '';
363 //Clean modules from cache
364 if(is_dir($GLOBALS['sugar_config']['cache_dir'].'modules')){
365 logThis('clear ' . $GLOBALS['sugar_config']['cache_dir'].'modules' . ' files');
366 $allModFiles = array();
367 $allModFiles = findAllFiles($GLOBALS['sugar_config']['cache_dir'].'modules',$allModFiles);
368 foreach($allModFiles as $file){
369 //$file_md5_ref = str_replace(clean_path(getcwd()),'',$file);
370 if(file_exists($file))
372 logThis('unlink ' . $file);
377 //Clean jsLanguage from cache
378 if(is_dir($GLOBALS['sugar_config']['cache_dir'].'jsLanguage'))
380 logThis('clear ' . $GLOBALS['sugar_config']['cache_dir'].'jsLanguage' . ' files');
381 $allModFiles = array();
382 $allModFiles = findAllFiles($GLOBALS['sugar_config']['cache_dir'].'jsLanguage',$allModFiles);
383 foreach($allModFiles as $file){
384 //$file_md5_ref = str_replace(clean_path(getcwd()),'',$file);
385 if(file_exists($file))
387 logThis('unlink ' . $file);
394 logThis('finished check to see if current_db_version in $_SESSION equals target_db_version in $_SESSION');
397 //Look for chance folder and delete it if found. Bug 23595
398 if(function_exists('deleteChance'))
400 logThis('running deleteChance() function');
404 //also add the cache cleaning here.
405 if(function_exists('deleteCache'))
407 logThis('running deleteCache() function');
412 $from_dir = clean_path(remove_file_extension($install_file) . "-restore");
413 logThis('call addNewSystemTabsFromUpgrade(' . $from_dir . ')');
414 addNewSystemTabsFromUpgrade($from_dir);
415 logThis('finished addNewSystemTabsFromUpgrade');
417 //run fix on dropdown lists that may have been incorrectly named
418 //fix_dropdown_list();
420 ///////////////////////////////////////////////////////////////////////////////
421 //// REGISTER UPGRADE
423 logThis('Registering upgrade with UpgradeHistory');
424 if(!didThisStepRunBefore('commit','upgradeHistory')){
425 set_upgrade_progress('commit','in_progress','upgradeHistory','in_progress');
427 $file_action = "copied";
428 // if error was encountered, script should have died before now
429 $new_upgrade = new UpgradeHistory();
430 $new_upgrade->filename = $install_file;
431 $new_upgrade->md5sum = md5_file($install_file);
432 $new_upgrade->type = 'patch';
433 $new_upgrade->version = $sugar_version;
434 $new_upgrade->status = "installed";
435 $new_upgrade->manifest =(!empty($_SESSION['install_manifest']) ? $_SESSION['install_manifest'] : '');
436 $new_upgrade->save();
438 set_upgrade_progress('commit','in_progress','upgradeHistory','done');
440 //// REGISTER UPGRADE
441 ///////////////////////////////////////////////////////////////////////////////
443 $backupFilesExist = false;
444 $copiedFiles = array();
445 $skippedFiles = array();
448 // flag to prvent double-commits via refresh
449 $_SESSION['committed'] = true;
451 ///////////////////////////////////////////////////////////////////////////////
452 //// FINISH AND OUTPUT
458 if($backupFilesExist) {
459 $backupDesc .= "<b>{$mod_strings['LBL_UW_BACKUP_FILES_EXIST_TITLE']}</b><br />";
460 $backupDesc .= $mod_strings['LBL_UW_BACKUP_FILES_EXIST'] . ': ' . $rest_dir;
463 $customized_mods_Desc = '';
465 $old_schema_opt = '';
466 $skipped_queries = '';
467 if($_SESSION['current_db_version'] != $_SESSION['target_db_version']){
468 global $sugar_version;
469 $origVersion = substr(preg_replace("/[^0-9]/", "", $_SESSION['current_db_version']),0,3);
470 $destVersion = substr(preg_replace("/[^0-9]/", "", $_SESSION['target_db_version']),0,3);
472 //old schema to be dropped
473 $old_schema_contents = '';
474 if(file_exists($_SESSION['unzip_dir'].'/scripts/drop_'.$origVersion.'_schema_after_upgrade_'.$destVersion.'.php')){
475 require_once($_SESSION['unzip_dir'].'/scripts/drop_'.$origVersion.'_schema_after_upgrade_'.$destVersion.'.php');
477 $old_schema_contents=@drop_preUpgardeSchema(true);
480 if($old_schema_contents != null && strlen($old_schema_contents) >0){
481 $old_schema = "<p><a href='javascript:void(0); toggleNwFiles(\"old_schemashow\");'>{$mod_strings['LBL_UW_SHOW_OLD_SCHEMA_TO_DROP']}</a>";
482 $old_schema .= "<div id='old_schemashow' style='display:none;'>";
483 $old_schema .= "<textarea readonly cols='80' rows='10'>{$old_schema_contents}</textarea>";
484 $old_schema .= "</div></p>";
486 $old_schema_opt="<b>{$mod_strings['LBL_UW_DROP_SCHEMA_METHOD']}</b>
487 <select name=\"schema_drop\" id=\"select_schema_drop\" onchange=\"checkSchemaDropStatus();\">
488 <option value=\"manual\">{$mod_strings['LBL_UW_DROP_SCHEMA_MANUAL']}</option>
489 <option value=\"sugar\">{$mod_strings['LBL_UW_DROP_SCHEMA_UPGRADE_WIZARD']}</option>
494 //also add the cache cleaning here.
495 if(function_exists('deleteCache')){
501 if(count($copiedFiles) > 0) {
502 $copiedDesc .= "<b>{$mod_strings['LBL_UW_COPIED_FILES_TITLE']}</b><br />";
503 $copiedDesc .= "<a href='javascript:void(0); toggleNwFiles(\"copiedFiles\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
504 $copiedDesc .= "<div id='copiedFiles' style='display:none;'>";
506 foreach($copiedFiles as $file) {
507 $copiedDesc .= $file . "<br />";
509 $copiedDesc .= "</div>";
513 if(count($skippedFiles) > 0) {
514 $skippedDesc .= "<b>{$mod_strings['LBL_UW_SKIPPED_FILES_TITLE']}</b><br />";
515 $skippedDesc .= "<a href='javascript:void(0); toggleNwFiles(\"skippedFiles\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
516 $skippedDesc .= "<div id='skippedFiles' style='display:none;'>";
518 foreach($skippedFiles as $file) {
519 $skippedDesc .= $file . "<br />";
521 $skippedDesc .= "</div>";
524 $rebuildResult = "<b>{$mod_strings['LBL_UW_REBUILD_TITLE']}</b><br />";
525 $rebuildResult .= "<a href='javascript:void(0); toggleRebuild();'>{$mod_strings['LBL_UW_SHOW']}</a> <div id='rebuildResult'></div>";
529 //moving unlink files to last
533 $skipped_queries_Desc='';
534 if(isset($_SESSION['sqlSkippedQueries']) && $_SESSION['sqlSkippedQueries'] != null && is_array($_SESSION['sqlSkippedQueries']) && sizeof($_SESSION['sqlSkippedQueries'])>0){
535 $skipped_queries_Desc .= "<b>{$mod_strings['LBL_UW_SKIPPED_QUERIES_ALREADY_EXIST']}</b><br />";
536 $skipped_queries_Desc .= "<a href='javascript:void(0); toggleNwFiles(\"skippedQueries\");'>{$mod_strings['LBL_UW_SHOW']}</a>";
537 $skipped_queries_Desc .= "<div id='skippedQueries' style='display:none;'>";
538 if($_SESSION['sqlSkippedQueries'] != null){
539 $skipped_queries_Desc .= $mod_strings['LBL_UW_SKIPPED_QUERIES_ALREADY_EXIST']. "<br />";
540 foreach($_SESSION['sqlSkippedQueries'] as $skippedQ) {
541 $skipped_queries_Desc .= $skippedQ . "<br />";
546 if(isset($_SESSION['chance']) && $_SESSION['chance'] != null){
547 $delete_chance .= "<b>Remove the folder: {$_SESSION['chance']}</b><br />";
549 if(empty($mod_strings['LBL_UPGRADE_TAKES_TIME_HAVE_PATIENCE'])){
550 $mod_strings['LBL_UPGRADE_TAKES_TIME_HAVE_PATIENCE'] = 'Upgrade may take some time';
553 ///////////////////////////////////////////////////////////////////////////////
554 //// HANDLE REMINDERS
555 commitHandleReminders($skippedFiles);
556 //// HANDLE REMINDERS
557 ///////////////////////////////////////////////////////////////////////////////
560 logThis("Resetting error_reporting() to system level.");
561 error_reporting($standardErrorLevel);
563 ///////////////////////////////////////////////////////////////////////////////
566 <script type="text/javascript" language="javascript">
567 function toggleRebuild() {
568 var target = document.getElementById('rebuildResult');
570 if(target.innerHTML == '') {
571 target.innerHTML = rebuildResult; // found in UWrebuild()
573 target.innerHTML = '';
577 <table cellpadding="3" cellspacing="0" border="0">
592 {$customized_mods_Desc}
601 {$skipped_queries_Desc}
617 <div id="upgradeDiv" style="display:none">
618 <table cellspacing="0" cellpadding="0" border="0">
620 <p><img src='modules/UpgradeWizard/processing.gif'> <br></p>
625 function checkSchemaDropStatus() {
626 if(document.getElementById('select_schema_drop') != null){
627 var schemaSelect = document.getElementById('select_schema_drop');
628 var schemaDropMethod = document.getElementById('schema_drop');
629 if(schemaSelect.options[schemaSelect.selectedIndex].value == 'manual') {
630 schemaDropMethod.value = 'manual';
632 schemaDropMethod.value = 'sugar';
636 checkSchemaDropStatus();
640 //set the upgrade progress status.
641 set_upgrade_progress('commit','done','commit','done');
644 $showRecheck = false;
645 $showNext =($stop) ? false : true;
647 $GLOBALS['top_message'] = "<b>{$mod_strings['LBL_UW_COMMIT_DESC']}</b>";
648 $stepBack = $_REQUEST['step'] - 1;
649 //Skip ahead to the end page as no layouts need to be merged.
651 foreach($_SESSION['sugarMergeRunResults'] as $mergeModule => $mergeModuleFileList){
652 if(!empty($mergeModuleFileList)){
653 $skipLayouts = false;
656 $stepNext = $skipLayouts ? $_REQUEST['step'] + 2 : $_REQUEST['step'] + 1;
658 $stepRecheck = $_REQUEST['step'];
660 $_SESSION['step'][$steps['files'][$_REQUEST['step']]] =($stop) ? 'failed' : 'success';
662 // clear out the theme cache
663 if(!class_exists('SugarThemeRegistry')){
664 require_once('include/SugarTheme/SugarTheme.php');
667 $themeObject = SugarThemeRegistry::current();
669 $styleJSFilePath = $GLOBALS['sugar_config']['cache_dir']. $themeObject->getJSPath() . DIRECTORY_SEPARATOR . 'style-min.js';
670 if( file_exists($styleJSFilePath) )
672 logThis("Rebuilding style js file: $styleJSFilePath");
673 unlink($styleJSFilePath);
674 SugarThemeRegistry::current()->clearJSCache();
675 SugarThemeRegistry::current()->getJS();
677 SugarThemeRegistry::buildRegistry();
678 SugarThemeRegistry::clearAllCaches();
680 //Clean out the language files
681 logThis("Rebuilding language cache");
682 sugar_cache_reset_full();
683 LanguageManager::clearLanguageCache();
685 // re-minify the JS source files
686 $_REQUEST['root_directory'] = getcwd();
687 $_REQUEST['js_rebuild_concat'] = 'rebuild';
688 require_once('jssource/minify.php');