528 lignes
26 KiB
Twig
528 lignes
26 KiB
Twig
{% if oView.getAction() == 'skip' and not oView.getError() %}
|
|
<script type='text/javascript'>
|
|
{% set sFormerClassUrl = oView.getFormerClassUrl() %}
|
|
document.location = '{{ sFormerClassUrl|escape("js") }}';
|
|
</script>
|
|
{% endif %}
|
|
|
|
{% include "headitem.html.twig" with {title: "GENERAL_ADMIN_TITLE"|translate} %}
|
|
|
|
<style>
|
|
<!--
|
|
ul li {
|
|
list-style-type: disc;
|
|
background: none;
|
|
margin-left: 5px;
|
|
}
|
|
|
|
.updatedesc {
|
|
padding: 20px 0;
|
|
border-bottom: 1px solid #c0c0c0;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.installoption {
|
|
|
|
padding: 5px 10px;
|
|
float: left;
|
|
width: 350px;
|
|
border: none;
|
|
margin: 5px;
|
|
min-height: 95px;
|
|
background: #ddf0f6;
|
|
}
|
|
|
|
.installoption.checked {
|
|
background: #a9d4f6;
|
|
}
|
|
|
|
.installoption label {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.installoption:nth-child(2n) {
|
|
{# clear: both; #}
|
|
}
|
|
|
|
.installoption input {
|
|
margin: 10px 5px;
|
|
}
|
|
|
|
.installoption h4 {
|
|
display: inline;
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
ol.steps {
|
|
margin-top: 20px;
|
|
padding-left: 55px;
|
|
}
|
|
|
|
ol.steps li {
|
|
-moz-box-shadow: 3px 3px 4px #999;
|
|
-webkit-box-shadow: 3px 3px 4px #999;
|
|
box-shadow: 3px 3px 4px #999; /* For IE 8 */
|
|
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#999999')"; /* For IE 5.5 - 7 */
|
|
filter: progid:DXImageTransform.Microsoft.Shadow(Strength = 4, Direction = 135, Color = '#999999');
|
|
font-size: 40px;
|
|
color: #add8e6;
|
|
padding: 5px 10px;
|
|
width: 80%;
|
|
border: 1px solid #add8e6;
|
|
-webkit-border-radius: 5px;
|
|
-moz-border-radius: 5px;
|
|
border-radius: 5px;
|
|
margin: 5px;
|
|
height: auto;
|
|
background-color: white;
|
|
}
|
|
|
|
ol.steps li span {
|
|
display: block;
|
|
font-size: 11px;
|
|
color: #000000;
|
|
}
|
|
|
|
ol.steps li span textarea {
|
|
height: 100px;
|
|
width: 97%;
|
|
padding: 10px;
|
|
margin: 10px 0;
|
|
}
|
|
|
|
.installnavigation {
|
|
margin: 20px 0 20px 50px;
|
|
height: 22px;
|
|
}
|
|
|
|
span.d3modcfg_btn,
|
|
span.d3modcfg_btn:hover,
|
|
span.d3modcfg_btn:active {
|
|
margin-right: 20px;
|
|
}
|
|
|
|
.invisible {
|
|
display: none;
|
|
}
|
|
|
|
.desclink {
|
|
cursor: pointer;
|
|
margin-bottom: 5px;
|
|
}
|
|
-->
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
<!--
|
|
let oldElemId = '{% if oView.hasDemoShopMode() %}option_check{% else %}option_auto{% endif %}';
|
|
let oldElem;
|
|
|
|
function _groupExp(el) {
|
|
let _cur = el.parentNode;
|
|
|
|
if (_cur.className === "exp") _cur.className = "";
|
|
else _cur.className = "exp";
|
|
}
|
|
|
|
function changeElemColor(elem)
|
|
{
|
|
if (!oldElem && oldElemId) {
|
|
oldElem = document.getElementById(oldElemId);
|
|
}
|
|
|
|
if (oldElem) {
|
|
oldElem.className = 'installoption';
|
|
}
|
|
|
|
elem.className = 'installoption checked';
|
|
oldElem = elem;
|
|
}
|
|
|
|
function showDescText(linkid)
|
|
{
|
|
//textid = linkid.replace('_desclink', '_desctext');
|
|
let iHeight = '160px';
|
|
document.getElementById('auto_desclink').style.display = 'none';
|
|
document.getElementById('auto_desctext').style.display = 'block';
|
|
document.getElementById('option_auto').style.height = iHeight;
|
|
document.getElementById('manually_desclink').style.display = 'none';
|
|
document.getElementById('manually_desctext').style.display = 'block';
|
|
document.getElementById('option_manually').style.height = iHeight;
|
|
document.getElementById('check_desclink').style.display = 'none';
|
|
document.getElementById('check_desctext').style.display = 'block';
|
|
document.getElementById('option_check').style.height = iHeight;
|
|
document.getElementById('skip_desclink').style.display = 'none';
|
|
document.getElementById('skip_desctext').style.display = 'block';
|
|
document.getElementById('option_skip').style.height = iHeight;
|
|
}
|
|
|
|
function changeOption(optionid, frameelem)
|
|
{
|
|
document.getElementById(optionid).checked = true;
|
|
changeElemColor(frameelem);
|
|
}
|
|
|
|
function showProcessing()
|
|
{
|
|
document.getElementById('mask').className = 'on';
|
|
document.getElementById('popup2').className = 'd3loader-2 on';
|
|
}
|
|
-->
|
|
</script>
|
|
|
|
<form name="transfer" id="transfer" action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="oxid" value="{{ oxid }}">
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="actshop" value="{{ actshopobj.getId() }}">
|
|
<input type="hidden" name="editlanguage" value="{{ editlanguage }}">
|
|
</form>
|
|
|
|
<div id="mask" class="{% if oView.getAction() == 'autoinstall' and oView.requireUpdate() %}on{% endif %}"></div>
|
|
<div id="popup2" class="d3loader-2 {% if oView.getAction() == 'autoinstall' and oView.requireUpdate() %}on{% endif %}">
|
|
<div class="d3loader-spinner">
|
|
<div class="d3loader-circle-1"></div>
|
|
<div class="d3loader-circle-2"></div>
|
|
<div class="d3loader-circle-3"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>{{ translate({ ident: "D3_CFG_MOD_UPDATE_TITLE" }) }}</h2>
|
|
|
|
<div class="updatedesc">
|
|
{% if oView.getHideSkip() %}
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_SELECTDESC" }) }}
|
|
{% else %}
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_DESC" }) }}
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if oView.requireUpdate() and (oView.getAction() == 'manualyinstall' or oView.getAction() == 'autoinstall') %}
|
|
{{ oView.getStepCountMessage() }}<br>
|
|
{% endif %}
|
|
|
|
{% if oView.hasSkipHashes() %}
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
{% if isset(sCheckMethod) %}
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
{% else %}
|
|
<input type="hidden" name="sCheckMethod" value="">
|
|
{% endif %}
|
|
{% if isset(sUpdateMethod) %}
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
{% else %}
|
|
<input type="hidden" name="sUpdateMethod" value="">
|
|
{% endif %}
|
|
{% if isset(sUpdateMethod) %}
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
{% else %}
|
|
<input type="hidden" name="sUpdateClass" value="">
|
|
{% endif %}
|
|
<input type="hidden" name="fnc" value="delskiphashs">
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_HASSKIPHASHES" }) }}<br>
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_DELSKIPHASHES" }) }}
|
|
</button>
|
|
</span>
|
|
</form>
|
|
<div style="float: none; clear: both;"></div>
|
|
<hr>
|
|
{% endif %}
|
|
|
|
{% if oView.requireUpdate() %}
|
|
{% if oView.getModCfgUpdateRequiredMessage() %}
|
|
<ol class="steps">
|
|
<li>
|
|
<span>
|
|
<textarea readonly="readonly">{{ oView.getModCfgUpdateRequiredMessage() }}</textarea>
|
|
</span>
|
|
</li>
|
|
<li>
|
|
<span>
|
|
<label>{{ translate({ ident: "D3_CFG_MOD_UPDATE_JOB_BREAK" }) }}</label>
|
|
</span>
|
|
</li>
|
|
</ol>
|
|
{% elseif not oView.getAction() %}
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_CHOOSESTEP" }) }}<br>
|
|
|
|
{% if oView.hasDemoShopMode() %}
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_DEMOSHOP" }) }}<br>
|
|
{% endif %}
|
|
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post" style="float: left; margin: 20px 0; width: 800px;">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
{% if isset(sCheckMethod) %}
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
{% else %}
|
|
<input type="hidden" name="sCheckMethod" value="">
|
|
{% endif %}
|
|
{% if isset(sUpdateMethod) %}
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
{% else %}
|
|
<input type="hidden" name="sUpdateMethod" value="">
|
|
{% endif %}
|
|
{% if isset(sUpdateClass) %}
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
{% else %}
|
|
<input type="hidden" name="sUpdateClass" value="">
|
|
{% endif %}
|
|
|
|
<div class="installoption {% if not oView.hasDemoShopMode() %}checked{% endif %}" id="option_auto" {% if not oView.hasDemoShopMode() %}onclick="changeOption('autoinstall', this);"{% endif %}>
|
|
<input type="radio" name="fnc" value="autoinstall" id="autoinstall" {% if oView.hasDemoShopMode() %} disabled {% else %} onchange="changeElemColor(parentNode);" checked="checked"{% endif %}>
|
|
<h4>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_AUTOINSTALL" }) }}</h4>
|
|
<div id="auto_desclink" class="desclink" onclick="showDescText(this.id); return false;">{{ translate({ ident: "D3_CFG_MOD_UPDATE_MOREINFO" }) }}</div>
|
|
<div id="auto_desctext" class="invisible">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_AUTOINSTALL_DESC" }) }}</div>
|
|
</div>
|
|
<div class="installoption" id="option_manually" {% if not oView.hasDemoShopMode() %}onclick="changeOption('manualyinstall', this);"{% endif %}>
|
|
<input type="radio" name="fnc" value="manualyinstall" id="manualyinstall" {% if oView.hasDemoShopMode() %} disabled {% else %} onchange="changeElemColor(parentNode);" {% endif %}>
|
|
<h4>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_MANUALYINSTALL" }) }}</h4>
|
|
<div id="manually_desclink" class="desclink" onclick="showDescText(this.id); return false;">{{ translate({ ident: "D3_CFG_MOD_UPDATE_MOREINFO" }) }}</div>
|
|
<div id="manually_desctext" class="invisible">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_MANUALYINSTALL_DESC" }) }}</div>
|
|
</div>
|
|
<div class="installoption {% if oView.hasDemoShopMode() %}checked{% endif %}" id="option_check" onclick="changeOption('checklist', this);">
|
|
<input type="radio" {% if oView.hasDemoShopMode() %} checked {% endif %} name="fnc" value="checklist" id="checklist" onchange="changeElemColor(parentNode);">
|
|
<h4>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_CHECKLIST" }) }}</h4>
|
|
<div id="check_desclink" class="desclink" onclick="showDescText(this.id); return false;">{{ translate({ ident: "D3_CFG_MOD_UPDATE_MOREINFO" }) }}</div>
|
|
<div id="check_desctext" class="invisible">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_CHECKLIST_DESC" }) }}</div>
|
|
<div>
|
|
<input type="checkbox" id="checkasfile" name="checkasfile"><label for="checkasfile">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_CHECK_SAVEASFILE" }) }}</label>
|
|
</div>
|
|
</div>
|
|
{% if not oView.getHideSkip() %}
|
|
<div class="installoption" id="option_skip" onclick="changeOption('skipupdate', this);">
|
|
<input type="radio" name="fnc" value="skipupdate" id="skipupdate" onchange="changeElemColor(parentNode);">
|
|
<h4>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP" }) }}</h4>
|
|
<div id="skip_desclink" class="desclink" onclick="showDescText(this.id); return false;">{{ translate({ ident: "D3_CFG_MOD_UPDATE_MOREINFO" }) }}</div>
|
|
<div id="skip_desctext" class="invisible">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP_DESC" }) }}</div>
|
|
<div>
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP_RANGE1" }) }}
|
|
<input type="text" name="intervalValue" size="3" maxlength="4" value="1" style="margin: 0;">
|
|
<select class="edittext" name="intervalType" style="margin: 0;">
|
|
<option value="day">{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_DAYS" }) }}</option>
|
|
<option value="hour" selected>{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_HOURS" }) }}</option>
|
|
<option value="minute">{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_MINS" }) }}</option>
|
|
</select>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP_RANGE2" }) }}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div style="float: none; clear: both;"></div>
|
|
|
|
{% elseif oView.getAction() == 'checklist' or oView.getAction() == 'manualyinstall' %}
|
|
{% if oView.getCheckList() %}
|
|
<ol class="steps">
|
|
{% for key, aCheckItem in oView.getCheckList() %}
|
|
<li>
|
|
<span>
|
|
<label for="{{ key }}">{{ oView.getCheckItemDesc(aCheckItem.type) }}</label>
|
|
{% if aCheckItem.log %}
|
|
<br><textarea id="{{ key }}" readonly="readonly">{{ aCheckItem.log }}</textarea>
|
|
{% endif %}
|
|
</span>
|
|
</li>
|
|
{% endfor %}
|
|
</ol>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if oView.getUpdateBreak() %}
|
|
{% endif %}
|
|
|
|
{% if oView.getAction() == 'manualyinstall' %}
|
|
<div class="installnavigation">
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post" id="manualyinstallform">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
<input type="hidden" name="fnc" value="manualyinstall">
|
|
<input type="hidden" name="exectype" value="{{ oView.getAction() }}">
|
|
<input type="hidden" name="setExecute" value="0">
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
<input type="hidden" name="blReset" value="1">
|
|
|
|
{% if oView.getUserSelections() %}
|
|
{% for iKey, oSelection in oView.getUserSelections() %}
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit" onclick="showProcessing(); document.getElementById('manualyinstallform').setExecute.value = '1'; document.getElementById('manualyinstallform').fnc.value = 'manualyinstall'; document.getElementById('manualyinstallform').sUpdateMethod.value = '{{ oSelection.getMethodName() }}'; document.getElementById('manualyinstallform').submit();">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: oSelection.getTranslationIdent() }) }}
|
|
</button>
|
|
</span>
|
|
{% endfor %}
|
|
{% else %}
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit" onclick="showProcessing(); document.getElementById('manualyinstallform').setExecute.value = '1'; document.getElementById('manualyinstallform').fnc.value = 'manualyinstall'; document.getElementById('manualyinstallform').submit();">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEPCONTINUE" }) }}
|
|
</button>
|
|
</span>
|
|
{% endif %}
|
|
<span class="d3modcfg_btn icon d3color-blue">
|
|
<button type="submit" onclick="document.getElementById('manualyinstallform').setExecute.value = '0'; document.getElementById('manualyinstallform').fnc.value = 'sessionskip'; document.getElementById('manualyinstallform').submit();">
|
|
<i class="fas fa-arrow-right fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_SESSIONSKIP" }) }}
|
|
</button>
|
|
</span>
|
|
<span class="d3modcfg_btn icon d3color-yellow">
|
|
<button type="submit" onclick="document.getElementById('manualyinstallform').setExecute.value = '0'; document.getElementById('manualyinstallform').fnc.value = 'everskip'; document.getElementById('manualyinstallform').submit();">
|
|
<i class="fas fa-arrow-right fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_SKIPEVER" }) }}
|
|
</button>
|
|
</span>
|
|
</form>
|
|
|
|
{% elseif oView.getUpdateBreak() and oView.getAction() != 'autoinstall' %}
|
|
<div class="installnavigation">
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
<input type="hidden" name="fnc" value="{{ oView.getAction() }}">
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
<input type="hidden" name="blReset" value="1">
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_MULTICONTINUE" }) }}
|
|
</button>
|
|
</span>
|
|
</form>
|
|
{% elseif not oView.getAction() and false == oView.getModCfgUpdateRequiredMessage() %}
|
|
<div class="installnavigation">
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit" onclick="showProcessing();">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_START" }) }}
|
|
</button>
|
|
</span>
|
|
{% elseif oView.getModCfgUpdateRequiredMessage() %}
|
|
<div class="installnavigation">
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
<input type="hidden" name="fnc" value="skipupdate">
|
|
<input type="hidden" name="blReset" value="1">
|
|
<span class="d3modcfg_btn icon d3color-orange">
|
|
<button type="submit">
|
|
<i class="far fa-clock fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP" }) }}
|
|
</button>
|
|
</span>
|
|
<label for="intervalValue">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP_RANGE1" }) }}</label>
|
|
<input type="text" name="intervalValue" id="intervalValue" size="3" maxlength="4" value="5" style="margin: 0;">
|
|
<select class="edittext" name="intervalType" id="intervalType" style="margin: 0;">
|
|
<option value="day">{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_DAYS" }) }}</option>
|
|
<option value="hour">{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_HOURS" }) }}</option>
|
|
<option value="minute" selected>{{ translate({ ident: "D3_LOG_CFG_INTERVALMAX_MINS" }) }}</option>
|
|
</select>
|
|
<label for="intervalType">{{ translate({ ident: "D3_CFG_MOD_UPDATE_STEP_SKIP_RANGE2" }) }}</label>
|
|
</form>
|
|
{% else %}
|
|
<div class="installnavigation">
|
|
{% endif %}
|
|
|
|
{% if oView.getError() %}
|
|
<h2>{{ translate({ ident: "D3_CFG_MOD_UPDATE_JOB_ERROR" }) }}</h2>
|
|
<div class="updatedesc">
|
|
{{ oView.getErrorMessageText() }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if oView.getAction() and oView.getAction() != 'autoinstall' %}
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit">
|
|
<i class="fas fa-home fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_MULTIBACK" }) }}
|
|
</button>
|
|
</span>
|
|
</form>
|
|
{% elseif oView.getError() %}
|
|
{% if oView.getCheckList() %}
|
|
<ol class="steps">
|
|
{% for key, aCheckItem in oView.getCheckList() %}
|
|
<li>
|
|
<span>
|
|
<label for="{{ key }}">{{ oView.getCheckItemDesc(aCheckItem.type) }}</label>
|
|
{% if aCheckItem.log %}
|
|
<br><textarea id="{{ key }}" readonly="readonly">{{ aCheckItem.log }}</textarea>
|
|
{% endif %}
|
|
</span>
|
|
</li>
|
|
{% endfor %}
|
|
</ol>
|
|
{% endif %}
|
|
<div class="installnavigation">
|
|
<form action="{{ oViewConf.getSelfLink()|raw }}" method="post">
|
|
{{ oViewConf.getHiddenSid()|raw }}
|
|
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName()|raw }}">
|
|
<input type="hidden" name="formercl" value="{{ oView.getFormerClassName() }}">
|
|
<input type="hidden" name="formeritem" value="{{ oView.getFormerItem() }}">
|
|
<input type="hidden" name="blHideSkip" value="{{ oView.getHideSkip() }}">
|
|
<input type="hidden" name="fnc" value="{{ oView.getAction() }}">
|
|
<input type="hidden" name="sCheckMethod" value="{{ sCheckMethod }}">
|
|
<input type="hidden" name="sUpdateMethod" value="{{ sUpdateMethod }}">
|
|
<input type="hidden" name="sUpdateClass" value="{{ sUpdateClass }}">
|
|
<span class="d3modcfg_btn icon d3color-green">
|
|
<button type="submit">
|
|
<i class="fas fa-check-circle fa-inverse"></i>{{ translate({ ident: "D3_CFG_MOD_UPDATE_MULTICONTINUE" }) }}
|
|
</button>
|
|
</span>
|
|
</form>
|
|
</div>
|
|
{% elseif oView.getAction() %}
|
|
<h2>{{ translate({ ident: "D3_CFG_MOD_UPDATE_WAIT" }) }}</h2>
|
|
{% endif %}
|
|
</div>
|
|
{% else %}
|
|
{{ translate({ ident: "D3_CFG_MOD_UPDATE_NOUPDATE" }) }}
|
|
{{ oView.getBackLinkText() }}
|
|
{% endif %}
|
|
|
|
{% include "@d3modcfg_lib/admin/inc/inc.html.twig" %}
|
|
|
|
<script type="text/javascript">
|
|
if (parent.parent) {
|
|
parent.parent.sShopTitle = "{{ actshopobj.oxshops__oxname.getRawValue()|addslashes }}";
|
|
parent.parent.sMenuItem = "{{ "d3mxcfg"|translate|striptags }}";
|
|
parent.parent.sMenuSubItem = "{{ "D3_INSTALL"|translate|striptags }}";
|
|
{% if isset(_act) %}
|
|
parent.parent.sWorkArea = "{{ _act }}";
|
|
{% else %}
|
|
parent.parent.sWorkArea = "";
|
|
{% endif %}
|
|
parent.parent.setTitle();
|
|
}
|
|
</script>
|
|
|
|
{% if oView.getAction() == 'autoinstall' and not oView.getError() %}
|
|
<script type='text/javascript'>
|
|
{% if oView.getRefreshUrl() == oView.getFormerClassUrl() %}
|
|
top.oxid.admin.reloadNavigation('{{ oViewConf.getActiveShopId() }}');
|
|
{% endif %}
|
|
document.location = '{{ oView.getRefreshUrl() }}';
|
|
</script>
|
|
{% endif %} |