update
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<div class="bootstrap" id="activityLogBlock" style="display:none">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Activity Log'|trans({}) }}
|
||||
</div>
|
||||
|
||||
<div><div id="upgradeResultToDoList" style="display: none;" class="alert alert-info col-xs-12"></div></div>
|
||||
|
||||
<div class="row">
|
||||
<div id="currentlyProcessing" class="col-xs-12" style="display:none;">
|
||||
<h4 id="pleaseWait">{{ 'Currently processing'|trans({}) }} <img class="pleaseWait" src="{{ psBaseUri }}img/loader.gif"/></h4>
|
||||
<div id="infoStep" class="processing">{{ 'Analyzing the situation...'|trans({}) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="quickInfo" class="clear processing" style="margin-top: 15px;"></div>
|
||||
{# this block will show errors and important warnings that happens during upgrade #}
|
||||
<div class="row">
|
||||
<div id="errorDuringUpgrade" class="col-xs-12" style="display:none;">
|
||||
<h4>{{ 'Errors'|trans({}) }}</h4>
|
||||
<div id="infoError" class="processing"></div>
|
||||
<button id="reportErrorButton" class="btn btn-warning" style="margin-top: 10px;" data-toggle="modal" data-target="#errorModal">
|
||||
{{ 'Report a bug'|trans({}) }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="errorModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h3 class="modal-title">
|
||||
{{ 'Give feedbacks'|trans({}) }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<label for="userEmail">
|
||||
{{ 'Email'|trans({}) }}
|
||||
</label>
|
||||
<input id="userEmail" type="text" class="form-control" placeholder="{{ 'Email'|trans({}) }}" style="display: block; margin-bottom: 10px;">
|
||||
<label for="errorDescription">
|
||||
{{ 'Description'|trans({}) }}
|
||||
</label>
|
||||
<textarea id="errorDescription" rows="3" placeholder="{{ 'Give us details about the error'|trans({}) }}"></textarea>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" style="text-transform: uppercase;">
|
||||
{{ 'Cancel'|trans({}) }}
|
||||
</button>
|
||||
<button id="submitErrorReport" type="button" class="btn btn-primary">
|
||||
{{ 'Send a bug report'|trans({}) }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
<div id="channel-infos" >
|
||||
{% if upgradeInfo.branch is not empty %}
|
||||
<div style="clear:both">
|
||||
<label class="label-small">{{ 'Branch:'|trans({}) }}</label>
|
||||
<span class="available">
|
||||
<img src="{{ psBaseUri }}img/admin/{% if upgradeInfo.available is not empty %}enabled{% else %}disabled{% endif %}.gif">
|
||||
{% if upgradeInfo.available is not empty %}
|
||||
{{ 'Available'|trans({}) }}
|
||||
{% else %}
|
||||
{{ 'Unavailable'|trans({}) }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="all-infos">
|
||||
{% if upgradeInfo.version_name is not empty %}
|
||||
<div style="clear:both;">
|
||||
<label class="label-small">{{ 'Name:'|trans({}) }}</label>
|
||||
<span class="name">{{ upgradeInfo.version_name }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if upgradeInfo.version_num is not empty %}
|
||||
<div style="clear:both;">
|
||||
<label class="label-small">{{ 'Version number:'|trans({}) }}</label>
|
||||
<span class="version">{{ upgradeInfo.version_num }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if upgradeInfo.link is not empty %}
|
||||
<div style="clear:both;">
|
||||
<label class="label-small">{{ 'URL:'|trans({}) }}</label>
|
||||
<a class="url" href="{{ upgradeInfo.link }}">{{ upgradeInfo.link }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if upgradeInfo.md5 is not empty %}
|
||||
<div style="clear:both;">
|
||||
<label class="label-small">{{ 'MD5 hash:'|trans({}) }}</label>
|
||||
<span class="md5">{{ upgradeInfo.md5 }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if upgradeInfo.changelog is not empty %}
|
||||
<div style="clear:both;">
|
||||
<label class="label-small">{{ 'Changelog:'|trans({}) }}</label>
|
||||
<a class="changelog" href="{{ upgradeInfo.changelog }}">{{ 'See changelog'|trans({}) }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
240
modules/autoupgrade/views/templates/block/checklist.html.twig
Normal file
240
modules/autoupgrade/views/templates/block/checklist.html.twig
Normal file
@@ -0,0 +1,240 @@
|
||||
{% import "@ModuleAutoUpgrade/macros/icons.html.twig" as icons %}
|
||||
|
||||
<div class="bootstrap" id="currentConfigurationBlock">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'The pre-Upgrade checklist'|trans({}) }}
|
||||
</div>
|
||||
{% if not moduleIsUpToDate %}
|
||||
<p class="alert alert-warning">
|
||||
{{ 'Your current version of the module is out of date. Update now'|trans({}) }}
|
||||
<a href=" {{ moduleUpdateLink }} ">{{ 'Modules > Module Manager > Updates'|trans({}) }}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if showErrorMessage %}
|
||||
<p class="alert alert-warning">{{ 'The checklist is not OK. You can only upgrade your shop once all indicators are green.'|trans({}) }}</p>
|
||||
{% endif %}
|
||||
<div id="currentConfiguration">
|
||||
<p class="alert alert-info">{{ 'Before starting the upgrade process, please make sure this checklist is all green.'|trans({}) }}</p>
|
||||
<table class="table" cellpadding="0" cellspacing="0">
|
||||
{% if phpRequirementsState != constant('PrestaShop\\Module\\AutoUpgrade\\UpgradeSelfCheck::PHP_REQUIREMENTS_VALID') %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if phpRequirementsState == constant('PrestaShop\\Module\\AutoUpgrade\\UpgradeSelfCheck::PHP_REQUIREMENTS_INVALID') %}
|
||||
{{ 'Your current PHP version isn\'t compatible with your PrestaShop version. (Expected: %s - %s | Current: %s)'|trans([
|
||||
phpCompatibilityRange['php_min_version'],
|
||||
phpCompatibilityRange['php_max_version'],
|
||||
phpCompatibilityRange['php_current_version'],
|
||||
]) }}
|
||||
{% else %}
|
||||
{{ 'We were unable to check your PHP compatibility with the destination PrestaShop version.'|trans({}) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if phpRequirementsState == constant('PrestaShop\\Module\\AutoUpgrade\\UpgradeSelfCheck::PHP_REQUIREMENTS_INVALID') %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.warning(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>{{ 'Your store\'s root directory (%s) is writable (with appropriate CHMOD permissions).'|trans([rootDirectory]) }}</td>
|
||||
<td>
|
||||
{% if rootDirectoryIsWritable %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if adminDirectoryWritableReport %}
|
||||
<tr>
|
||||
<td>{{ 'The "/admin/autoupgrade" directory is writable (appropriate CHMOD permissions)'|trans({}) }}</td>
|
||||
<td>
|
||||
{% if adminDirectoryIsWritable %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }} {{ adminDirectoryWritableReport }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>{{ 'PHP\'s "Safe mode" option is turned off'|trans({})|raw }}</td>
|
||||
<td>
|
||||
{% if safeModeIsDisabled %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.warning(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ 'PHP\'s "allow_url_fopen" option is turned on, or cURL is installed'|trans({})|raw }}</td>
|
||||
<td>
|
||||
{% if allowUrlFopenOrCurlIsEnabled %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ 'PHP\'s "zip" extension is enabled'|trans({})|raw }}</td>
|
||||
<td>
|
||||
{% if zipIsEnabled %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if not isLocalEnvironment %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if storeIsInMaintenance %}
|
||||
{{ 'Your store is in maintenance mode'|trans({}) }}
|
||||
{% else %}
|
||||
{{ 'Enable maintenance mode and add your maintenance IP in [1]Shop parameters > General > Maintenance[/1]'|trans({
|
||||
'[1]' : '<a href="' ~ maintenanceLink ~'" target="_blank">',
|
||||
'[/1]' : '</a>',
|
||||
})|raw }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if storeIsInMaintenance %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>{{ 'PrestaShop\'s caching features are disabled'|trans({}) }}</td>
|
||||
<td>
|
||||
{% if cachingIsDisabled %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.nok(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
{% if maxExecutionTime == 0 %}
|
||||
{{ 'PHP\'s max_execution_time setting has a high value or is disabled entirely (current value: unlimited)'|trans({}) }}
|
||||
{% else %}
|
||||
{{ 'PHP\'s max_execution_time setting has a high value or is disabled entirely (current value: %s seconds)'|trans([maxExecutionTime]) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if maxExecutionTime == 0 %}
|
||||
{{ icons.ok(psBaseUri) }}
|
||||
{% else %}
|
||||
{{ icons.warning(psBaseUri) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if not checkApacheModRewrite %}
|
||||
<tr>
|
||||
<td>{{ 'Apache mod_rewrite is disabled.'|trans({}) }}</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if notLoadedPhpExtensions|length > 0 %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if notLoadedPhpExtensions|length > 1 %}
|
||||
{{ 'The following PHP extensions are not installed: %s.'|trans([notLoadedPhpExtensions|join(', ')]) }}
|
||||
{% else %}
|
||||
{{ 'The following PHP extension is not installed: %s.'|trans([notLoadedPhpExtensions|first]) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not checkMemoryLimit %}
|
||||
<tr>
|
||||
<td>{{ 'PHP memory_limit is inferior to 256 MB.'|trans({}) }}</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not checkFileUploads %}
|
||||
<tr>
|
||||
<td>{{ 'PHP file_uploads configuration is disabled.'|trans({}) }}</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if notExistsPhpFunctions|length > 0 %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if notExistsPhpFunctions|length > 1 %}
|
||||
{{ 'The following PHP functions are not installed: %s.'|trans([notExistsPhpFunctions|join(', ')]) }}
|
||||
{% else %}
|
||||
{{ 'The following PHP function is not installed: %s.'|trans([notExistsPhpFunctions|first]) }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not checkPhpSessions %}
|
||||
<tr>
|
||||
<td>{{ 'It\'s not possible to create a PHP session.'|trans({}) }}</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not checkKeyGeneration %}
|
||||
<tr>
|
||||
<td>{{ 'Unable to generate private keys using openssl_pkey_new. Check your OpenSSL configuration, especially the path to openssl.cafile.'|trans({}) }}</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if missingFiles|length > 0 %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ 'The following files are missing:'|trans({}) }}
|
||||
<ul>
|
||||
{% for file in missingFiles %}
|
||||
<li>{{ file }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if notWritingDirectories|length > 0 %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ 'It\'s not possible to write in the following folders:'|trans({}) }}
|
||||
<ul>
|
||||
{% for missingFile in notWritingDirectories %}
|
||||
<li>{{ missingFile }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if not isShopVersionMatchingVersionInDatabase %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ 'The version of PrestaShop does not match the one stored in database. Your database structure may not be up-to-date and/or the value of PS_VERSION_DB needs to be updated in the configuration table. [1]Learn more[/1].'|trans({
|
||||
'[1]': '<a href="https://devdocs.prestashop-project.org/8/faq/upgrade#the-version-of-prestashop-does-not-match-the-one-stored-in-database" target="_blank">',
|
||||
'[/1]': '</a>',
|
||||
})|raw }}
|
||||
</td>
|
||||
<td>{{ icons.nok(psBaseUri) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
<br>
|
||||
<p class="alert alert-info">{{ 'Please also make sure you make a full manual backup of your files and database.'|trans({}) }}</p>
|
||||
{% if showErrorMessage %}
|
||||
<p class="alert alert-danger">{{ 'PrestaShop requirements are not satisfied.'|trans({}) }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div style="display: flex; justify-content: center;">
|
||||
<a class="btn" style="display: flex; align-items: center;" href="https://www.prestashop-project.org/data-transparency/" target="_blank">
|
||||
<i class="material-icons" style="font-size: 18px; margin-right: 4px;">
|
||||
launch
|
||||
</i>
|
||||
{{ 'Privacy policy'|trans({}) }}
|
||||
</a>
|
||||
</div>
|
||||
34
modules/autoupgrade/views/templates/block/index.php
Normal file
34
modules/autoupgrade/views/templates/block/index.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to https://devdocs.prestashop.com/ for more information.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,38 @@
|
||||
<div id="postRestoreChecklist" style="display: none; margin-top: 10px;">
|
||||
<div class="alert alert-success">
|
||||
<div style="display: flex;">
|
||||
<div>
|
||||
<div style="font-weight: bold;">
|
||||
{{ 'Your restoration is complete'|trans({}) }}
|
||||
</div>
|
||||
{{ 'Before continuing with your tasks, please review the following checklist to ensure smooth operation after recent recovery.'|trans({}) }}
|
||||
</div>
|
||||
<div style="margin-left: auto">
|
||||
<a class="btn btn-primary" target="_blank" href="https://devdocs.prestashop-project.org/8/basics/keeping-up-to-date/upgrade-module/post-restore-checklist/">
|
||||
<i class="material-icons" style="font-size: 18px; margin-right: 4px;">
|
||||
launch
|
||||
</i>
|
||||
{{ 'Open developer documentation'|trans({}) }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Next steps'|trans({}) }}
|
||||
</div>
|
||||
<ul>
|
||||
<li>{{ 'Disable the maintenance mode in General settings > Maintenance.'|trans({}) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Troubleshooting'|trans({}) }}
|
||||
</div>
|
||||
<ul>
|
||||
<li>{{ 'If you can\'t access your back office, try emptying the cache.'|trans({}) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<div id="postUpdateChecklist" style="display: none; margin-top: 10px;">
|
||||
<div class="alert alert-success">
|
||||
<div style="display: flex;">
|
||||
<div>
|
||||
<div style="font-weight: bold;">
|
||||
{{ 'Your store is up to date'|trans({}) }}
|
||||
</div>
|
||||
{{ 'Before continuing with your tasks, please review the following checklist to ensure smooth operation after recent updates'|trans({}) }}
|
||||
</div>
|
||||
<div style="margin-left: auto">
|
||||
<a class="btn btn-primary" target="_blank" href="https://devdocs.prestashop-project.org/8/basics/keeping-up-to-date/upgrade-module/post-update-checklist/">
|
||||
<i class="material-icons" style="font-size: 18px; margin-right: 4px;">
|
||||
launch
|
||||
</i>
|
||||
{{ 'Open developer documentation'|trans({}) }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Next steps'|trans({}) }}
|
||||
</div>
|
||||
<ul>
|
||||
<li>{{ 'Re-enable and check your modules one by one.'|trans({}) }}</li>
|
||||
<li>{{ 'Make sure your store\'s front office is working properly: try to create an account, place an order, add a product, etc.'|trans({}) }}</li>
|
||||
<li>{{ 'Disable the maintenance mode in General settings > Maintenance.'|trans({}) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Troubleshooting'|trans({}) }}
|
||||
</div>
|
||||
<ul>
|
||||
<li>{{ 'If some images don\'t appear in the front office, try regenerating thumbnails in Preferences > Images.'|trans({}) }}</li>
|
||||
{% if PS_AUTOUP_BACKUP %}
|
||||
<li>{{ 'If something\'s wrong, you can restore a backup with this module. Your backup is available at {admin}/autoupgrade/backup.'|trans({}) }}</li>
|
||||
{% endif %}
|
||||
<li>{{ 'If you can\'t access your back office, try enabling the debug mode manually in config/defines.inc.php by setting _PS_MODE_DEV_ to true.'|trans({}) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
<div class="bootstrap" id="rollbackForm">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Rollback'|trans({}) }}
|
||||
</div>
|
||||
<p class="alert alert-info">
|
||||
{{ 'After upgrading your shop, you can rollback to the previous database and files. Use this function if your theme or an essential module is not working correctly.'|trans({}) }}
|
||||
</p>
|
||||
|
||||
<div class="row" id="restoreBackupContainer">
|
||||
<label class="col-lg-3 control-label text-right">{{ 'Choose your backup:'|trans({}) }}</label>
|
||||
<div class="col-lg-9">
|
||||
<select name="restoreName">
|
||||
<option value="0">{{ '-- Choose a backup to restore --'|trans({}) }}</option>';
|
||||
{% if availableBackups is not empty %}
|
||||
{% for backupName in availableBackups %}
|
||||
<option value="{{ backupName }}">{{ backupName }}</option>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</select>
|
||||
<span id="buttonDeleteBackup"></span>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<p id="rollbackContainer" class="col-lg-offset-3 col-lg-9">
|
||||
<a disabled="disabled" class="upgradestep button btn btn-primary" href="" id="rollback">{{ 'Rollback'|trans({}) }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,155 @@
|
||||
<div class="bootstrap" id="upgradeButtonBlock">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Start your Upgrade'|trans({}) }}
|
||||
</div>
|
||||
<div class="blocOneClickUpgrade">
|
||||
{% if versionCompare > 0 %}
|
||||
<p class="alert alert-warning">{{ 'You come from the future! You are using a more recent version than the latest available!'|trans({}) }}</p>
|
||||
{% elseif versionCompare == 0 %}
|
||||
<p class="alert alert-success">{{ 'Congratulations, you are already using the latest version available!'|trans({}) }}</p>
|
||||
{% endif %}
|
||||
<p>
|
||||
{{ 'Your current PrestaShop version'|trans({}) }}: <strong>{{ currentPsVersion }}</strong>
|
||||
</p>
|
||||
<p>
|
||||
{{ 'Your current PHP version'|trans({}) }}: <strong>{{ phpVersion }}</strong>
|
||||
</p>
|
||||
<p>
|
||||
{{ 'Latest official version for %s channel.'|trans([channel]) }}: <strong>{{ latestChannelVersion }}</strong>
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
{% if showUpgradeButton %}
|
||||
<div>
|
||||
<a href="#" id="upgradeNow" class="button-autoupgrade upgradestep btn btn-primary">{{ 'Upgrade PrestaShop now!'|trans({}) }}</a>
|
||||
{% if showUpgradeLink %}
|
||||
<small><a href="{{ upgradeLink }}">{{ 'PrestaShop will be downloaded from %s'|trans([upgradeLink]) }}</a></small>
|
||||
{% if changelogLink is not empty %}
|
||||
<p>
|
||||
<a href="{{ changelogLink }}" target="_blank" >{{ 'Open changelog in a new window'|trans({}) }}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ 'No file will be downloaded (channel %s is used)'|trans([channel]) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if skipActions is not empty %}
|
||||
<div id="skipAction-list" class="alert alert-warning">
|
||||
<p>{{ 'The following action are automatically replaced'|trans({}) }}</p>
|
||||
<ul>
|
||||
{% for old, new in skipActions %}
|
||||
<li>
|
||||
{{ '%old% will be replaced by %new%'|trans({'%old%': old, '%new%': new}) }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<p>{{ 'To change this behavior, you need to manually edit your php files'|trans({}) }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<br>
|
||||
<p>
|
||||
{% if showUpgradeButton %}
|
||||
<a class="button button-autoupgrade btn btn-default" href="index.php?controller=AdminSelfUpgrade&token={{ token }}&refreshCurrentVersion=1">{{ 'Refresh the page'|trans({}) }}</a> -
|
||||
{% else %}
|
||||
<a class="button button-autoupgrade btn btn-primary" href="index.php?controller=AdminSelfUpgrade&token={{ token }}&refreshCurrentVersion=1">{{ 'Check if a new version is available'|trans({}) }}</a> -
|
||||
{% endif %}
|
||||
<span style="font-style: italic; font-size: 11px;">{% if lastVersionCheck %}
|
||||
{{ 'Last check: %s'|trans([lastVersionCheck|date('Y-m-d H:i:s')]) }}
|
||||
{% else %}
|
||||
{{ 'Last check: never'|trans({}) }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<!-- advanced configuration -->
|
||||
<div class="row">
|
||||
<div class="pull-right">
|
||||
<p><input type="button" class="button btn btn-warning" name="btn_adv" value="{{ 'More options (Expert mode)'|trans({}) }}"/></p>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<p class="alert alert-info" style="display:none;" id="configResult"> </p>
|
||||
<div id="advanced" style="margin-top: 30px;">
|
||||
<div class="panel-heading">
|
||||
{{ 'Expert mode'|trans({}) }}
|
||||
</div>
|
||||
<h4 style="margin-top: 0">{{ 'Please select your channel:'|trans({}) }}</h4>
|
||||
<p>
|
||||
{{ 'Channels are offering you different ways to perform an upgrade. You can either upload the new version manually or let the 1-Click Upgrade module download it for you.'|trans({}) }}<br>
|
||||
{{ 'The Alpha, Beta and Private channels give you the ability to upgrade to a non-official or unstable release (for testing purposes only).'|trans({}) }}<br>
|
||||
{{ 'By default, you should use the "Minor release" channel which is offering the latest stable version available.'|trans({})|raw }}
|
||||
</p>
|
||||
<br>
|
||||
<label for="channel">{{ 'Channel:'|trans({}) }}</label>
|
||||
<select name="channel" id="channel">
|
||||
{% for channelOpt in channelOptions %}
|
||||
{% set selected = (channel == channelOpt[1]) %}
|
||||
<option id="{{ channelOpt[0] }}" value="{{ channelOpt[1] }}" {% if selected %}class="current" selected{% endif %}>
|
||||
{% if selected %}* {% endif %}{{ channelOpt[2] }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% include '@ModuleAutoUpgrade/block/channelInfo.html.twig' %}
|
||||
<div id="for-usePrivate">
|
||||
<p><label for="private_release_link">{{ 'Link:'|trans({}) }} *</label>
|
||||
<input type="text" size="50" id="private_release_link" name="private_release_link" value="{{ privateChannel.releaseLink }}" required>
|
||||
</p>
|
||||
<p><label for="private_release_md5">{{ 'Hash key:'|trans({}) }} *</label>
|
||||
<input type="text" size="32" id="private_release_md5" name="private_release_md5" value="{{ privateChannel.releaseMd5 }}" required>
|
||||
</p>
|
||||
<p><label for="private_allow_major">{{ 'Allow major upgrade:'|trans({}) }}</label>
|
||||
<input type="checkbox" id="private_allow_major" name="private_allow_major" value="1"{% if privateChannel.allowMajor %} checked{% endif %}>
|
||||
</p>
|
||||
</div>
|
||||
<div id="for-useArchive">
|
||||
{% if archiveFiles is not empty %}
|
||||
<label for="archive_prestashop">{{ 'Archive to use:'|trans({}) }} *</label>
|
||||
<div>
|
||||
<select id="archive_prestashop" name="archive_prestashop" required>
|
||||
<option value="">{{ 'Choose an archive'|trans({}) }}</option>
|
||||
{% for file in archiveFiles %}
|
||||
{% set fileName = file|replace({(downloadPath): ''}) %}
|
||||
<option {% if archiveFileName == fileName %} selected{% endif %} value="{{ fileName }}">{{ fileName }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<br>
|
||||
<label for="archive_xml">{{ 'XML file to use:'|trans({}) }} *</label>
|
||||
<select id="archive_xml" name="archive_xml" required>
|
||||
<option value="">{{ 'Choose an XML file'|trans({}) }}</option>
|
||||
{% for file in xmlFiles %}
|
||||
{% set fileName = file|replace({(downloadPath): ''}) %}
|
||||
<option {% if xmlFileName == fileName %} selected{% endif %} value="{{ fileName }}">{{ fileName }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning">{{ 'No archive found in your admin/autoupgrade/download directory'|trans({}) }}</div>
|
||||
{% endif %}
|
||||
<div class="margin-form">
|
||||
{{ 'Save in the following directory the archive file and XML file of the version you want to upgrade to: %s'|trans(['<b>/admin/autoupgrade/download/</b>'])|raw }}<br>
|
||||
{{ 'Click to save once the archive is there.'|trans({}) }}<br>
|
||||
{{ 'This option will skip the download step.'|trans({}) }}
|
||||
</div>
|
||||
</div>
|
||||
<div id="for-useDirectory">
|
||||
<div>
|
||||
{{ 'Save in the following directory the uncompressed PrestaShop files of the version you want to upgrade to: %s'|trans(['<b>/admin/autoupgrade/latest/</b>'])|raw }}
|
||||
<br><br>
|
||||
<label for="directory_num">{{ 'Please tell us which version you are upgrading to [1](1.7.0.1 for instance)[/1]'|trans({'[1]': '<small>', '[/1]': '</small>'})|raw }}</label>
|
||||
<input type="text" size="10" id="directory_num" name="directory_num" value="{{ directoryVersionNumber }}" placeholder="1.7.0.1">
|
||||
<div class="margin-form">
|
||||
{{ 'Click to save once the archive is there.'|trans({}) }}<br>
|
||||
* {{ 'This option will skip both download and unzip steps and will use %1$s as the source directory'|trans(['<b>/admin/autoupgrade/latest/</b>'])|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<p>
|
||||
<input type="button" class="button btn btn-primary" value="{{ 'Save'|trans({}) }}" name="submitConf-channel">
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
<div class="bootstrap" id="comparisonBlock">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Version comparison'|trans({}) }}
|
||||
</div>
|
||||
<p>
|
||||
<b>{{ 'PrestaShop Original version'|trans({}) }}:</b><br>
|
||||
<span id="checkPrestaShopFilesVersion">
|
||||
<img id="pleaseWait" src="{{ psBaseUri }}img/loader.gif"/>
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<b>{{ 'Differences between versions'|trans({}) }}:</b><br>
|
||||
<span id="checkPrestaShopModifiedFiles">
|
||||
<img id="pleaseWait" src="{{ psBaseUri }}img/loader.gif"/>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
6
modules/autoupgrade/views/templates/error.html.twig
Normal file
6
modules/autoupgrade/views/templates/error.html.twig
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="alert alert-danger">
|
||||
{{ message }}
|
||||
<a class="btn btn-primary" style="margin-left: 10px;" href="javascript:window.history.back();">
|
||||
{{ 'Go back'|trans({}, 'Admin.Actions') }}
|
||||
</a>
|
||||
</div>
|
||||
16
modules/autoupgrade/views/templates/form.html.twig
Normal file
16
modules/autoupgrade/views/templates/form.html.twig
Normal file
@@ -0,0 +1,16 @@
|
||||
<div class="bootstrap" id="{{ name }}Block">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ tabName }}
|
||||
</div>
|
||||
<div class="form-wrapper">
|
||||
{% for field in fields %}
|
||||
{{ field|raw }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<button type="submit" class="btn btn-default pull-right" value="{{ 'Save'|trans({}) }}" name="customSubmitAutoUpgrade"><i class="process-icon-save"></i>
|
||||
{{ 'Save'|trans({}) }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
34
modules/autoupgrade/views/templates/index.php
Normal file
34
modules/autoupgrade/views/templates/index.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to https://devdocs.prestashop.com/ for more information.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,9 @@
|
||||
{% macro ok(psBaseUri) %}
|
||||
<img src="{{ psBaseUri }}img/admin/enabled.gif" alt="ok">
|
||||
{% endmacro %}
|
||||
{% macro nok(psBaseUri) %}
|
||||
<img src="{{ psBaseUri }}img/admin/disabled.gif" alt="nok">
|
||||
{% endmacro %}
|
||||
{% macro warning(psBaseUri) %}
|
||||
<img src="{{ psBaseUri }}img/admin/warning.gif" alt="warn">
|
||||
{% endmacro %}
|
||||
34
modules/autoupgrade/views/templates/macros/index.php
Normal file
34
modules/autoupgrade/views/templates/macros/index.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to https://devdocs.prestashop.com/ for more information.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
50
modules/autoupgrade/views/templates/main.html.twig
Normal file
50
modules/autoupgrade/views/templates/main.html.twig
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
<script>
|
||||
var jQueryVersionPS = parseInt($().jquery.replace(/\./g, ""));
|
||||
</script>
|
||||
<script src="{{ psBaseUri }}modules/autoupgrade/js/jquery-1.6.2.min.js"></script>
|
||||
<script src="{{ psBaseUri }}modules/autoupgrade/js/sentry-8.2.1.min.js"></script>
|
||||
<script>
|
||||
if (jQueryVersionPS >= 162) {
|
||||
jq162 = jQuery.noConflict(true);
|
||||
}
|
||||
</script>
|
||||
<link type="text/css" rel="stylesheet" href="{{ psBaseUri }}modules/autoupgrade/css/styles.css" />
|
||||
<div class="bootstrap" id="informationBlock">
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
{{ 'Welcome!'|trans({}) }}
|
||||
</div>
|
||||
<p>
|
||||
{{ 'Upgrade your store to benefit from the latest improvements, bug fixes and security patches.'|trans({}) }}
|
||||
</p>
|
||||
<p class="alert alert-warning">
|
||||
{{ 'Upgrading your store on your own can be risky. If you don\'t feel comfortable doing the upgrade yourself, many agencies and developers in your area may also provide this kind of service.'|trans({}) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# content #}
|
||||
{% include '@ModuleAutoUpgrade/block/checklist.html.twig' %}
|
||||
{% include '@ModuleAutoUpgrade/block/upgradeButtonBlock.html.twig' %}
|
||||
|
||||
{% include '@ModuleAutoUpgrade/block/versionComparison.html.twig' %}
|
||||
{% include '@ModuleAutoUpgrade/block/postUpdateChecklistBlock.html.twig' %}
|
||||
{% include '@ModuleAutoUpgrade/block/postRestoreChecklistBlock.html.twig' %}
|
||||
{% include '@ModuleAutoUpgrade/block/activityLog.html.twig' %}
|
||||
|
||||
{% include '@ModuleAutoUpgrade/block/rollbackForm.html.twig' %}
|
||||
|
||||
<form action="{{ currentIndex }}&customSubmitAutoUpgrade=1&token={{ token }}" method="post" class="form-horizontal" enctype="multipart/form-data">
|
||||
{{ backupOptions|raw }}
|
||||
{{ upgradeOptions|raw }}
|
||||
</form>
|
||||
|
||||
{% include '@ModuleAutoUpgrade/block/footer.html.twig' %}
|
||||
|
||||
<script src="{{ psBaseUri }}modules/autoupgrade/js/jquery.xml2json.js"></script>
|
||||
<script>
|
||||
var input = {{ jsParams|json_encode|raw }};
|
||||
</script>
|
||||
<script src="{{ psBaseUri }}modules/autoupgrade/js/upgrade.js"></script>
|
||||
<script src="{{ psBaseUri }}modules/autoupgrade/js/sentry.js"></script>
|
||||
Reference in New Issue
Block a user