This commit is contained in:
2025-04-01 00:38:54 +02:00
parent d4d4c0c09d
commit 87da06293a
22351 changed files with 5168854 additions and 7538 deletions

View File

@@ -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">&times;</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>

View File

@@ -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>

View 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>

View File

@@ -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>

View 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;

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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&amp;token={{ token }}&amp;refreshCurrentVersion=1">{{ 'Refresh the page'|trans({}) }}</a> -
{% else %}
<a class="button button-autoupgrade btn btn-primary" href="index.php?controller=AdminSelfUpgrade&amp;token={{ token }}&amp;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">&nbsp;</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>

View File

@@ -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>