437 lines
16 KiB
Smarty
Executable File
437 lines
16 KiB
Smarty
Executable File
{if false}
|
|
/**
|
|
*
|
|
* SugarCRM Community Edition is a customer relationship management program developed by
|
|
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
|
*
|
|
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
|
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it under
|
|
* the terms of the GNU Affero General Public License version 3 as published by the
|
|
* Free Software Foundation with the addition of the following permission added
|
|
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
|
|
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
|
|
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
* this program; if not, see http://www.gnu.org/licenses or write to the Free
|
|
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
* 02110-1301 USA.
|
|
*
|
|
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
|
|
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of this program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU Affero General Public License version 3.
|
|
*
|
|
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
|
* these Appropriate Legal Notices must retain the display of the "Powered by
|
|
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
|
|
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
|
|
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
|
|
*/
|
|
{/if}
|
|
|
|
<script type="text/javascript" language="Javascript" src="{sugar_getjspath file='modules/UpgradeWizard/upgradeWizard.js'}"></script>
|
|
|
|
{$UW_JS}
|
|
|
|
<div id="title">
|
|
{$UW_TITLE}
|
|
</div>
|
|
|
|
<div id="progress" style="display:none;">
|
|
{$UW_PROGRESS}
|
|
</div>
|
|
|
|
<div id="message" style="display:none;">
|
|
{$UW_MESSAGE}
|
|
</div>
|
|
|
|
<div id="nav">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td>
|
|
<form action="index.php" method="post" name="UpgradeWizardForm" id="form">
|
|
<input type="hidden" name="module" value="UpgradeWizard">
|
|
<input type="hidden" name="action" value="index">
|
|
<input type="hidden" name="step" id="step" value="{$UW_STEP}">
|
|
<input type="hidden" name="overwrite_files" id="over">
|
|
<input type="hidden" name="schema_change" id="schema">
|
|
<input type="hidden" name="schema_drop" id="schema_drop">
|
|
<input type="hidden" name="overwrite_files_serial" id="overwrite_files_serial">
|
|
<input type="hidden" name="addTaskReminder" id="addTaskReminder">
|
|
<input type="hidden" name="addEmailReminder" id="addEmailReminder">
|
|
{if !isset($includeContainerCSS) || $includeContainerCSS}
|
|
<link rel='stylesheet' type='text/css' href="{sugar_getjspath file='include/javascript/yui/assets/container.css'}" />
|
|
{if $step == 'commit'}
|
|
<link rel='stylesheet' type='text/css' href="{sugar_getjspath file='include/javascript/yui/build/container/assets/container.css'}"/>
|
|
{/if}
|
|
{/if}
|
|
{if $showBack}
|
|
<input title = "{$MOD.LBL_BUTTON_BACK}"
|
|
class = "button"
|
|
onclick = "document.getElementById('form').step.value='{$STEP_BACK}';"
|
|
type = "submit"
|
|
value = " {$MOD.LBL_BUTTON_BACK} ">
|
|
{/if}
|
|
{if $showNext}
|
|
<input title = "{$MOD.LBL_BUTTON_NEXT}"
|
|
class = "button"
|
|
{$disableNextForLicense}
|
|
onclick = " handleUploadCheck('{$step}', {$u_allow}); if(!{$u_allow}) return; upgradeP('{$step}', false);document.getElementById('form').step.value='{$STEP_NEXT}'; handlePreflight('{$step}'); document.getElementById('form').submit();"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_NEXT} "
|
|
id = "next_button" >
|
|
{/if}
|
|
{if $showCancel}
|
|
<input title = "{$MOD.LBL_BUTTON_CANCEL}"
|
|
class = "button"
|
|
{if $step == 'start'}
|
|
{**** if this is the first step, cancel should take you to administration screen ****}
|
|
onclick = "document.location.href='index.php?module=Administration&action=index';"
|
|
type = "button"
|
|
{else}
|
|
onclick = "cancelUpgrade();document.getElementById('form').step.value='{$STEP_CANCEL}';"
|
|
type = "submit"
|
|
{/if}
|
|
value = " {$MOD.LBL_BUTTON_CANCEL} ">
|
|
{/if}
|
|
{if $showRecheck}
|
|
<input title = "{$MOD.LBL_BUTTON_RECHECK}"
|
|
class = "button"
|
|
onclick = "upgradeP('{$step}', true);document.getElementById('form').step.value='{$STEP_RECHECK}';"
|
|
type = "submit"
|
|
value = " {$MOD.LBL_BUTTON_RECHECK} ">
|
|
{/if}
|
|
{if $showDone}
|
|
<input title = "{$MOD.LBL_BUTTON_DONE}"
|
|
class = "button"
|
|
onclick = "deleteCacheAjax();window.location.href='index.php?module=Home&action=About';"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_DONE} ">
|
|
{/if}
|
|
{if $showExit}
|
|
<input title = "{$MOD.LBL_BUTTON_EXIT}"
|
|
class = "button"
|
|
onclick = "window.location.href='index.php?module=Administration&action=index';"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_EXIT} ">
|
|
{/if}
|
|
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="main">
|
|
<table width="100%" border="0" cellpadding="0" cellpadding="0"
|
|
class="{if !isset($includeContainerCSS) || $includeContainerCSS}tabDetailView{else}detail view small{/if}">
|
|
{if $step != "start" && $step != "cancel" && $step != "end"}
|
|
<tr>
|
|
<td id=error_messages colspan="2">
|
|
<div id="top_message">{$top_message}</div>
|
|
</td>
|
|
</tr>
|
|
{/if}
|
|
<tr>
|
|
<td width="25%" rowspan="2" {if !isset($includeContainerCSS) || $includeContainerCSS}class="tabDetailViewDL"{else}scope="row"{/if}><span>
|
|
{$CHECKLIST}
|
|
</span></td>
|
|
<td width="75%" {if !isset($includeContainerCSS) || $includeContainerCSS}class="tabDetailViewDF"{/if}><span>
|
|
{$UW_MAIN}
|
|
</span></td>
|
|
</tr>
|
|
{if $step == "upload"}
|
|
<tr>
|
|
<td valign="top" {if !isset($includeContainerCSS) || $includeContainerCSS}class="tabDetailViewDF"{/if}>
|
|
<br />
|
|
{$UW_HISTORY}
|
|
</td>
|
|
</tr>
|
|
{/if}
|
|
</table>
|
|
</div>
|
|
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td>
|
|
<form action="index.php" method="post" name="UpgradeWizardForm" id="form">
|
|
<input type="hidden" name="module" value="UpgradeWizard">
|
|
<input type="hidden" name="action" value="index">
|
|
<input type="hidden" name="step" value="{$UW_STEP}">
|
|
<input type="hidden" name="overwrite_files" id="over">
|
|
<input type="hidden" name="schema_change" id="schema">
|
|
<input type="hidden" name="schema_drop" id="schema_drop">
|
|
<input type="hidden" name="overwrite_files_serial" id="overwrite_files_serial">
|
|
<input type="hidden" name="addTaskReminder" id="addTaskReminder">
|
|
<input type="hidden" name="addEmailReminder" id="addEmailReminder">
|
|
{if !isset($includeContainerCSS) || $includeContainerCSS}
|
|
<link rel='stylesheet' type='text/css' href='include/javascript/yui/assets/container.css' />
|
|
{if $step == 'commit'}
|
|
<link rel='stylesheet' type='text/css' href='include/javascript/yui/build/container/assets/container.css'/>
|
|
{/if}
|
|
{/if}
|
|
{if $showBack}
|
|
<input title = "{$MOD.LBL_BUTTON_BACK}"
|
|
class = "button"
|
|
onclick = "document.getElementById('form').step.value='{$STEP_BACK}';"
|
|
type = "submit"
|
|
value = " {$MOD.LBL_BUTTON_BACK} ">
|
|
{/if}
|
|
{if $showNext}
|
|
<input title = "{$MOD.LBL_BUTTON_NEXT}"
|
|
class = "button"
|
|
{$disableNextForLicense}
|
|
onclick = " handleUploadCheck('{$step}', {$u_allow}); if(!{$u_allow}) return; upgradeP('{$step}', false);document.getElementById('form').step.value='{$STEP_NEXT}'; handlePreflight('{$step}'); document.getElementById('form').submit();"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_NEXT} "
|
|
id = "next_button" >
|
|
{/if}
|
|
{if $showCancel}
|
|
<input title = "{$MOD.LBL_BUTTON_CANCEL}"
|
|
class = "button"
|
|
{if $step == 'start'}
|
|
{**** if this is the first step, cancel should take you to administration screen ****}
|
|
onclick = "document.location.href='index.php?module=Administration&action=index';"
|
|
type = "button"
|
|
{else}
|
|
onclick = "cancelUpgrade();document.getElementById('form').step.value='{$STEP_CANCEL}';"
|
|
type = "submit"
|
|
{/if}
|
|
value = " {$MOD.LBL_BUTTON_CANCEL} ">
|
|
{/if}
|
|
{if $showRecheck}
|
|
<input title = "{$MOD.LBL_BUTTON_RECHECK}"
|
|
class = "button"
|
|
onclick = "upgradeP('{$step}', true);document.getElementById('form').step.value='{$STEP_RECHECK}';"
|
|
type = "submit"
|
|
value = " {$MOD.LBL_BUTTON_RECHECK} ">
|
|
{/if}
|
|
{if $showDone}
|
|
<input title = "{$MOD.LBL_BUTTON_DONE}"
|
|
class = "button"
|
|
onclick = "deleteCacheAjax();window.location.href='index.php?module=Home&action=About';"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_DONE} ">
|
|
{/if}
|
|
{if $showExit}
|
|
<input title = "{$MOD.LBL_BUTTON_EXIT}"
|
|
class = "button"
|
|
onclick = "window.location.href='index.php?module=Administration&action=index';"
|
|
type = "button"
|
|
value = " {$MOD.LBL_BUTTON_EXIT} ">
|
|
{/if}
|
|
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<script>
|
|
|
|
UPGRADE_PROGRESS = '{$MOD.LBL_UPGRADE_IN_PROGRESS}';
|
|
TIME_ELAPSED = "{$MOD.LBL_UPGRADE_TIME_ELAPSED}";
|
|
START_IN_PROGRESS = "{$MOD.LBL_START_UPGRADE_IN_PROGRESS}";
|
|
SYSTEM_CHECK_IN_PROGRESS = "{$MOD.LBL_SYSTEM_CHECKS_IN_PROGRESS}";
|
|
LICENSE_CHECK_IN_PROGRESS = "{$MOD.LBL_LICENSE_CHECK_IN_PROGRESS}";
|
|
PREFLIGHT_CHECK_IN_PROGRESS ="{$MOD.LBL_PREFLIGHT_CHECK_IN_PROGRESS}";
|
|
COMMIT_UPGRADE_IN_PROGRESS ="{$MOD.LBL_COMMIT_UPGRADE_IN_PROGRESS}";
|
|
UPGRADE_SUMMARY_IN_PROGRESS ="{$MOD.LBL_UPGRADE_SUMMARY_IN_PROGRESS}";
|
|
UPGRADE_SCRIPTS_IN_PROGRESS ="{$MOD.LBL_UPGRADE_SCRIPTS_IN_PROGRESS}";
|
|
SET_STEP_TO_COMPLETE = "{$MOD.LBL_UW_COMPLETE}";
|
|
UPLOADE_UPGRADE_IN_PROGRESS= "{$MOD.LBL_UPLOADE_UPGRADE_IN_PROGRESS}";
|
|
UPLOADING_UPGRADE_PACKAGE = "{$MOD.LBL_UPLOADING_UPGRADE_PACKAGE}";
|
|
UPGRADE_CANCEL_IN_PROGRESS ="{$MOD.LBL_UPGRADE_CANCEL_IN_PROGRESS}";
|
|
PREFLIGHT_FILE_COPYING_PROGRESS = "{$MOD.LBL_PREFLIGHT_FILE_COPYING_PROGRESS}";
|
|
{literal}
|
|
var msgPanel;
|
|
var c=0
|
|
var s=0
|
|
var t
|
|
var currStage
|
|
var timeOutWindowMultiplier = 1
|
|
var timeOutWindow = 60
|
|
function upgradeP(step, recheck){
|
|
//if(step == 'systemCheck'){
|
|
// return;
|
|
//}
|
|
|
|
if(document.getElementById("upgradeDiv") != null){
|
|
var args = { width:"300px",
|
|
modal:true,
|
|
//xy:[400,300],
|
|
fixedcenter: true,
|
|
constraintoviewport: false,
|
|
underlay:"shadow",
|
|
close:false,
|
|
draggable:true,
|
|
effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:.5}
|
|
} ;
|
|
msg_panel = new YAHOO.widget.Panel('p_msg', args);
|
|
//If we haven't built our panel using existing markup,
|
|
//we can set its content via script:
|
|
|
|
if(step == 'start' || step == 'systemCheck'){
|
|
//currStage = START_IN_PROGRESS;
|
|
currStage = SYSTEM_CHECK_IN_PROGRESS;
|
|
}
|
|
/* removed window from system check. if you need to add back, remove check at the top
|
|
* of this function as well
|
|
if(step == 'systemCheck'){
|
|
currStage = UPLOADE_UPGRADE_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
*/
|
|
if(step == 'uploadingUpgradePackage'){
|
|
currStage = UPLOADING_UPGRADE_PACKAGE;
|
|
}
|
|
if(step == 'license_fiveO'){
|
|
//currStage = LICENSE_CHECK_IN_PROGRESS;
|
|
currStage = PREFLIGHT_CHECK_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
if(step == 'upload'){
|
|
//currStage = LICENSE_CHECK_IN_PROGRESS;
|
|
currStage = PREFLIGHT_CHECK_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
if(step == 'preflight'){
|
|
if(recheck){
|
|
currStage = PREFLIGHT_CHECK_IN_PROGRESS;
|
|
}
|
|
else{
|
|
currStage = PREFLIGHT_FILE_COPYING_PROGRESS;
|
|
}
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
if(step == 'commit'){
|
|
currStage = UPGRADE_SCRIPTS_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
if(step == 'layouts'){
|
|
currStage = UPGRADE_SUMMARY_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
}
|
|
msg_panel.setHeader(currStage);
|
|
msg_panel.setBody(document.getElementById("upgradeDiv").innerHTML);
|
|
//timedCount(currStage);
|
|
//msg_panel.setFooter('Time Elapsed '+s);
|
|
msg_panel.render(document.body);
|
|
msgPanel = msg_panel;
|
|
msgPanel.show;
|
|
}
|
|
return;
|
|
}
|
|
|
|
function cancelUpgrade(){
|
|
if(document.getElementById("upgradeDiv") != null){
|
|
var args = { width:"300px",
|
|
modal:true,
|
|
//xy:[400,300],
|
|
fixedcenter: true,
|
|
constraintoviewport: false,
|
|
underlay:"shadow",
|
|
close:false,
|
|
draggable:true,
|
|
effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:.5}
|
|
} ;
|
|
msg_panel = new YAHOO.widget.Panel('p_msg', args);
|
|
//If we haven't built our panel using existing markup,
|
|
//we can set its content via script:
|
|
|
|
currStage = UPGRADE_CANCEL_IN_PROGRESS;
|
|
//document.getElementById(step).innerHTML='<i>'+SET_STEP_TO_COMPLETE+'</i>'
|
|
msg_panel.setHeader(currStage);
|
|
msg_panel.setBody(document.getElementById("upgradeDiv").innerHTML);
|
|
//timedCount(currStage);
|
|
//msg_panel.setFooter('Time Elapsed '+s);
|
|
msg_panel.render(document.body);
|
|
msgPanel = msg_panel;
|
|
msgPanel.show;
|
|
}
|
|
return;
|
|
}
|
|
|
|
function timedCount(currStage)
|
|
{
|
|
msg_panel.setFooter(TIME_ELAPSED+' '+s);
|
|
currStage = currStage+' '+s;
|
|
msg_panel.setHeader(currStage);
|
|
c=c+1
|
|
s=c
|
|
|
|
timeOutWindowMultiples = timeOutWindowMultiplier*timeOutWindow
|
|
if(c == timeOutWindowMultiples){
|
|
updateUpgradeStepTime(timeOutWindow)
|
|
timeOutWindowMultiplier = timeOutWindowMultiplier+1
|
|
}
|
|
|
|
if(c<10){
|
|
s='0'+c
|
|
}
|
|
|
|
if(c>=60 && c<3600){
|
|
m=1
|
|
while(c>=((m+1)*60)){
|
|
m=m+1
|
|
}
|
|
secs= (c-(m*60))
|
|
if(m < 10){
|
|
m = '0'+m
|
|
}
|
|
if(secs < 10){
|
|
secs = '0'+secs
|
|
}
|
|
s=m+':'+ secs
|
|
}
|
|
if(c>=3600){
|
|
h=1;
|
|
while(c>=((h+1)*3600)){
|
|
h=h+1;
|
|
}
|
|
r= c-(h*3600)
|
|
m = 0
|
|
secs = 0
|
|
if(r>=60){
|
|
m=1;
|
|
while(r>=((m+1)*60)){
|
|
m=m+1;
|
|
}
|
|
secs = (r-(m*60))
|
|
}
|
|
if(h < 10){
|
|
h = '0'+h
|
|
}
|
|
if(m < 10){
|
|
m = '0'+m
|
|
}
|
|
if(secs <10){
|
|
secs = '0'+ secs
|
|
}
|
|
s=h+':'+m+':'+ secs
|
|
}
|
|
t=setTimeout("timedCount(currStage)",1000)
|
|
}
|
|
function updateUpgradeStepTime(ts){
|
|
success = function(r) {
|
|
//making ajax call every three minutes to make sure the browser
|
|
//remains active
|
|
}
|
|
postData = 'upgradeStepTime=' + ts + '&module=UpgradeWizard&action=upgradeTimeCounter&to_pdf=1&sugar_body_only=1';
|
|
var ajxProgress = YAHOO.util.Connect.asyncRequest('POST','index.php', {success: success, failure: success}, postData);
|
|
}
|
|
</script>
|
|
{/literal}
|
|
|
|
|