Newer
Older
/* +**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
* ***********************************************************************************/
chdir (dirname(__FILE__) . '/..');
include_once 'vtigerversion.php';
include_once 'data/CRMEntity.php';
include_once 'includes/main/WebUI.php';
$errorMessage = $_REQUEST['error'];
if (!$errorMessage) {
/* 7.x module compatability check when coming from earlier version */
if (version_compare($vtiger_current_version, '7.0.0') < 0) {
/* NOTE: Add list-of modules that you own / sure to upgrade later */
$skipCheckForModules = array();
$extensionStoreInstance = Settings_ExtensionStore_Extension_Model::getInstance();
$vtigerStandardModules = array('Accounts', 'Assets', 'Calendar', 'Campaigns', 'Contacts', 'CustomerPortal',
'Dashboard', 'Emails', 'EmailTemplates', 'Events', 'ExtensionStore',
'Faq', 'Google', 'HelpDesk', 'Home', 'Import', 'Invoice', 'Leads',
'MailManager', 'Mobile', 'ModComments', 'ModTracker',
'PBXManager', 'Portal', 'Potentials', 'PriceBooks', 'Products', 'Project', 'ProjectMilestone',
'ProjectTask', 'PurchaseOrder', 'Quotes', 'RecycleBin', 'Reports', 'Rss', 'SalesOrder',
'ServiceContracts', 'Services', 'SMSNotifier', 'Users', 'Vendors',
'Webforms', 'Webmails', 'WSAPP');
$skipCheckForModules = array_merge($skipCheckForModules, $vtigerStandardModules);
$nonPortedExtns = array();
$moduleModelsList = array();
$db = PearDatabase::getInstance();
$result = $db->pquery('SELECT name FROM vtiger_tab WHERE isentitytype != ? AND presence != ? AND trim(name) NOT IN ('.generateQuestionMarks($skipCheckForModules).')', array(1, 1, $skipCheckForModules));
if ($db->num_rows($result)) {
$moduleModelsList = $extensionStoreInstance->getListings();
}
$moduleModelsListByName = array();
$moduleModelsListByLabel = array();
foreach ($moduleModelsList as $moduleId => $moduleModel) {
if ($moduleModel->get('name') != $moduleModel->get('label')) {
$moduleModelsListByName[$moduleModel->get('name')] = $moduleModel;
} else {
$moduleModelsListByLabel[$moduleModel->get('label')] = $moduleModel;
}
}

Prasad
committed
if ($moduleModelsList) {
while($row = $db->fetch_row($result)) {
$moduleName = $row['name'];//label
if ($moduleName) {
unset($moduleModel);
if (array_key_exists($moduleName, $moduleModelsListByName)) {
$moduleModel = $moduleModelsListByName[$moduleName];
} else if (array_key_exists($moduleName, $moduleModelsListByLabel)) {
$moduleModel = $moduleModelsListByLabel[$moduleName];
}

Prasad
committed
if ($moduleModel) {
$vtigerVersion = $moduleModel->get('vtigerVersion');
$vtigerMaxVersion = $moduleModel->get('vtigerMaxVersion');
if (($vtigerVersion && strpos($vtigerVersion, '7.') === false)
&& ($vtigerMaxVersion && strpos($vtigerMaxVersion, '7.') === false)) {
$nonPortedExtns[] = $moduleName;
}
}
}
}

Prasad
committed
if ($nonPortedExtns) {
$portingMessage = 'Following custom modules are not compatible with Vtiger 7. Please disable these modules to proceed.';
foreach ($nonPortedExtns as $moduleName) {
$portingMessage .= "<li>$moduleName</li>";
}
$portingMessage .= '</ul>';
}
}
}

Prasad
committed
<!doctype>
<title>Vtiger CRM Setup</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="resources/js/jquery-min.js"></script>
<link href="resources/todc/css/bootstrap.min.css" rel="stylesheet">
<link href="resources/todc/css/todc-bootstrap.min.css" rel="stylesheet">
<link href="resources/css/mkCheckbox.css" rel="stylesheet">
<link href="resources/css/style.css" rel="stylesheet">
</head>
<body style="font-size: 14px !important;">
<div class="row">
<div class="col-lg-6">
<div class="logo">
<img src="resources/images/vt1.png" alt="Vtiger Logo"/>
</div>
</div>
<div class="col-lg-6">
<div class="head pull-right">
<h3>Migration Wizard</h3>
</div>
</div>
</div>
<div class="row main-container">
<div class="col-lg-12 inner-container">
<div class="row">
<div class="col-lg-10">
<h4 class="">Welcome</h4>
<div class="col-lg-2">
<a href="https://wiki.vtiger.com/vtiger7/" target="_blank" class="pull-right">
<img src="resources/images/help40.png" alt="Help-Icon"/>
</a>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-4 welcome-image">
<img src="resources/images/migration_screen.png" alt="Vtiger Logo" style="width: 100%; margin-left: 15px;"/>
<?php
$currentVersion = explode('.', $vtiger_current_version);
if ($portingMessage) { ?>
<div class="col-lg-1"></div>
<div class="col-lg-7">
<h3><font color="red">WARNING : Cannot continue with Migration</font></h3><br>
<p><?php echo $portingMessage;?></p>
</div>
</div>
<div class="button-container col-lg-12">
<div class="pull-right">
<form action="../index.php?module=Migration&action=DisableModules&mode=fromMig" method="POST">
<input type="hidden" name="modulesList" <?php echo 'value="'.Vtiger_Util_Helper::toSafeHTML(Zend_JSON::encode($nonPortedExtns)).'"'; ?> />
<input type="submit" class="btn btn-warning" value="Disable modules & Proceed"/>
<input type="button" onclick="window.location.href='../index.php'" class="btn btn-default" value="Close"/>
</form>
</div>
<?php } else if($currentVersion[0] >= 6 && $currentVersion[1] >= 0) { ?>
<div class="col-lg-8" style="padding-left: 30px;">
<h3> Welcome to Vtiger Migration</h3>
<?php if(isset($errorMessage)) {
echo '<span><font color="red"><b>'.filter_var($errorMessage, FILTER_SANITIZE_STRING).'</b></font></span><br><br>';
} ?>
<p>We have detected that you have <strong>Vtiger <?php echo $vtiger_current_version ?></strong> installation.<br><br></p>
<strong>Warning: </strong>
Please note that it is not possible to revert back to <?php echo $vtiger_current_version ?> after the upgrade to vtiger 7 <br>
So, it is important to take a backup of the <?php echo $vtiger_current_version ?> installation, including the source files and database.
</p><br>
<form action="../index.php?module=Migration&action=Extract&mode=fromMig" method="POST">
<div><input type="checkbox" id="checkBox1" name="checkBox1"/><div class="chkbox"></div> I have taken the backup of database <a href="http://community.vtiger.com/help/vtigercrm/administrators/backup.html" target="_blank" >(how to?)</a></div><br>
<div><input type="checkbox" id="checkBox2" name="checkBox2"/><div class="chkbox"></div> I have taken the backup of source folder <a href="http://community.vtiger.com/help/vtigercrm/administrators/backup.html" target="_blank" >(how to?)</a></div><br>
<br>
<div>
<span id="error"></span>
User Name <span class="no"> </span>
<input type="text" value="" name="username" id="username" />
Password <span class="no"> </span>
<input type="password" value="" name="password" id="password" />
</div>
<br><br><br>
<div class="button-container">
<input type="submit" class="btn btn-primary" id="startMigration" name="startMigration" value="Start Migration" />
<?php } else if($currentVersion[0] < 6) { ?>
<div class="col-lg-1"></div>
<div class="col-lg-7">
<h3><font color="red">WARNING : Cannot continue with Migration</font></h3><br>
<p>We detected that this installation is running <strong>Vtiger CRM</strong>
<?php
if($vtiger_current_version < 6 ) {
echo '<b>'.$vtiger_current_version.'</b>';
}
?>.
Please upgrade to <strong>5.4.0</strong> first before continuing with this wizard.
</p>
</div>
<div class="button-container col-lg-12">
<input type="button" onclick="window.location.href='index.php'" class="btn btn-primary pull-right" value="Finish"/>
<div class="col-lg-1"></div>
<div class="col-lg-7">
<h3><font color="red">WARNING : Cannot continue with Migration</font></h3>
<br>
<p>
We detected that this source is upgraded latest version.
</p>
</div>
<div class="button-container col-lg-12">
<input type="button" onclick="window.location.href='index.php'" class="btn btn-primary pull-right" value="Finish"/>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('input[name="startMigration"]').click(function(){
if($("#checkBox1").is(':checked') == false || $("#checkBox2").is(':checked') == false){
alert('Before starting migration, please take your database and source backup');
return false;
}
if($('#username').val() == '' || $('#password').val() == ''){
alert('Please enter Admin credentials to start Migration');
return false;
}
return true;
});
});
</script>