This commit is contained in:
89
templates/Maketank/install/form.html.twig
Normal file
89
templates/Maketank/install/form.html.twig
Normal file
@@ -0,0 +1,89 @@
|
||||
<!-- language select -->
|
||||
<form action="{{ pagecontent.form.formaction }}" method="get">
|
||||
<div class="row mb-3">
|
||||
<label for="language" class="col-sm-4 col-form-label">{{ lng('install.language') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-select" id="language" name="language">
|
||||
{% for lngfile,lngname in pagecontent.form.languages %}
|
||||
<option value="{{ lngfile }}" {% if lngfile == pagecontent.form.activelang %} selected="selected" {% endif %}>{{ lngname }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<aside class="text-end">
|
||||
<input type="hidden" name="check" value="1"/>
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="chooselang">{{ lng('install.lngbtn_go') }}</button>
|
||||
</aside>
|
||||
</form>
|
||||
<!-- main install form -->
|
||||
<div class="alert alert-primary mt-md-3" role="alert">{{ lng('install.welcometext')|raw }}</div>
|
||||
{% if pagecontent.form.result is not empty %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
{% for emsg in pagecontent.form.result %}
|
||||
<p>{{ emsg }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<form action="{{ pagecontent.form.formaction }}" method="post">
|
||||
{% for fdata in pagecontent.form.data %}
|
||||
<fieldset>
|
||||
<legend>{{ fdata.title }}</legend>
|
||||
{% for field in fdata.fields %}
|
||||
{% if field is iterable %}
|
||||
{% if field.type is defined %}
|
||||
{% if field.type == 'text' or field.type == 'password' %}
|
||||
<div class="row mb-3">
|
||||
<label for="{{ field.id }}" class="col-sm-4 col-form-label">{{ field.label|raw }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="{{ field.type }}" class="form-control {% if field.style == 'red' %}is-invalid{% endif %}" id="{{ field.id }}" name="{{ field.name }}" value="{{ field.value }}" {% if field.required %} required {% endif %}/>
|
||||
</div>
|
||||
</div>
|
||||
{% elseif field.type == 'select' %}
|
||||
<div class="row mb-3">
|
||||
<label for="{{ field.id }}" class="col-sm-4 col-form-label">{{ field.label|raw }}</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-select {% if field.style == 'red' %}is-invalid{% endif %}" id="{{ field.id }}" name="{{ field.name }}" {% if field.required %} required {% endif %}>
|
||||
{% for opts in field.options %}
|
||||
<option value="{{ opts.value }}" {% if opts.selected %} selected="selected" {% endif %}>{{ opts.label }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{% elseif field.type == 'checkbox' %}
|
||||
<div class="row mb-3">
|
||||
<label for="{{ field.id }}" class="col-sm-4 col-form-label">{{ field.label|raw }}</label>
|
||||
<div class="col-sm-8">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input {% if field.style == 'red' %}is-invalid{% endif %}" type="checkbox" value="{{ field.value }}" id="{{ field.id }}" name="{{ field.name }}" {% if field.checked %} checked="checked" {% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-4 col-form-label">{{ field.label|raw }}</label>
|
||||
<div class="col-sm-8">
|
||||
{% for radios in field.fields %}
|
||||
<div class="form-check">
|
||||
<input class="form-check-input {% if field.style == 'red' %}is-invalid{% endif %}" type="radio" name="{{ radios.name }}" id="{{ radios.id }}" value="{{ radios.value }}" {% if radios.checked %}checked="checked"{% endif %}>
|
||||
<label class="form-check-label" for="{{ radios.id }}">
|
||||
{{ radios.label }}
|
||||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
{% endfor %}
|
||||
<aside class="text-end mt-3">
|
||||
<input type="hidden" name="check" value="1"/>
|
||||
<input type="hidden" name="language" value="{{ pagecontent.form.activelang }}"/>
|
||||
<input type="hidden" name="installstep" value="1"/>
|
||||
<button class="btn btn-lg btn-success" type="submit" name="submitbutton">
|
||||
{{ lng('click_here_to_continue') }} »
|
||||
</button>
|
||||
</aside>
|
||||
</form>
|
||||
0
templates/Maketank/install/index.html
Normal file
0
templates/Maketank/install/index.html
Normal file
126
templates/Maketank/install/index.html.twig
Normal file
126
templates/Maketank/install/index.html.twig
Normal file
@@ -0,0 +1,126 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container max-w-lg flex align-content-center mt-5">
|
||||
<img src="{{ basehref|default('') }}templates/Froxlor/assets/img/logo.png" class="mb-5" alt="{{ lng('install.slogan') }}"/>
|
||||
|
||||
{% if error is not null %}
|
||||
<div class="alert alert-danger mb-4">{{ error }}</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="row text-center gx-0">
|
||||
<div class="col p-3{{ setup.step == 0 ? ' bg-white shadow rounded-top' : '' }}">
|
||||
<i class="far fa-circle{{ setup.step > 0 ? '-check' : '' }}"></i>
|
||||
{% if setup.step > 0 %}<a href="?step=0" class="text-decoration-none">{{ lng('install.preflight') }}</a>{% else %}{{ lng('install.preflight') }}{% endif %}
|
||||
</div>
|
||||
<div class="col p-3{{ setup.step == 1 ? ' bg-white shadow rounded-top' : '' }}">
|
||||
<i class="far fa-circle{{ setup.step > 1 ? '-check' : '' }}"></i>
|
||||
{% if setup.step > 1 %}<a href="?step=1" class="text-decoration-none">{{ lng('install.database.top') }}</a>{% else %}{{ lng('install.database.top') }}{% endif %}
|
||||
</div>
|
||||
<div class="col p-3{{ setup.step == 2 ? ' bg-white shadow rounded-top' : '' }}">
|
||||
<i class="far fa-circle{{ setup.step > 2 ? '-check' : '' }}"></i>
|
||||
{% if setup.step > 2 %}<a href="?step=2" class="text-decoration-none">{{ lng('install.admin.top') }}</a>{% else %}{{ lng('install.admin.top') }}{% endif %}
|
||||
</div>
|
||||
<div class="col p-3{{ setup.step == 3 ? ' bg-white shadow rounded-top' : '' }}">
|
||||
<i class="far fa-circle{{ setup.step > 3 ? '-check' : '' }}"></i>
|
||||
{% if setup.step > 3 %}<a href="?step=3" class="text-decoration-none">{{ lng('install.system.top') }}</a>{% else %}{{ lng('install.system.top') }}{% endif %}
|
||||
</div>
|
||||
<div class="col p-3{{ setup.step == 4 ? ' bg-white shadow rounded-top' : '' }}">
|
||||
<i class="far fa-circle{{ setup.step > 4 ? '-check' : '' }}"></i>
|
||||
{% if setup.step > 4 %}<a href="?step=4" class="text-decoration-none">{{ lng('install.install.top') }}</a>{% else %}{{ lng('install.install.top') }}{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card border-0 shadow">
|
||||
<div class="card-body p-5">
|
||||
<form method="post" action="?step={{ setup.step }}">
|
||||
{% if setup.step > 0 %}
|
||||
<div class="d-block d-lg-flex justify-content-between align-items-center mb-3">
|
||||
<h4 class="mb-3 mb-lg-0">{{ section.title }}</h4>
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="switchInstallMode" {% if extended is defined and extended %}checked{% endif %}>
|
||||
<label class="form-check-label" for="switchInstallMode">{% if extended is defined and extended %}{{ lng('install.switchmode_basic') }}{% else %}{{ lng('install.switchmode_advanced') }}{% endif %}</label>
|
||||
</div>
|
||||
</div>
|
||||
<p class="lead">{{ section.description|raw }}</p>
|
||||
<hr />
|
||||
|
||||
{% import "Froxlor/form/formfields.html.twig" as formfields %}
|
||||
|
||||
{% for id, field in section.fields %}
|
||||
{% if field.advanced is defined and field.advanced == true and extended == false %}
|
||||
{# hide advanced fields #}
|
||||
{% set field = field|merge({'type': 'hidden'}) %}
|
||||
{% endif %}
|
||||
{{ formfields.field(id, field) }}
|
||||
{% endfor %}
|
||||
|
||||
<div class="d-flex {% if setup.step < setup.max_steps %}justify-content-between{% else %}justify-content-end{% endif %} mt-4">
|
||||
{% if setup.step < setup.max_steps %}
|
||||
<a href="?step={{ setup.step - 1 }}" class="btn btn-secondary">« {{ lng('panel.back') }}</a>
|
||||
<button type="submit" name="submit" class="btn btn-primary">{{ lng('panel.next') }} »</button>
|
||||
{% else %}
|
||||
<span id="submitAuto"><i class="fas fa-spinner fa-pulse"></i> {{ lng('install.install.waitforconfig') }}</span>
|
||||
<button id="submitManual" type="submit" name="submit" class="btn btn-success d-none">{{ lng('install.install.top') }} »</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<h4 class="mb-3">{{ lng('install.dependency_check.title') }}</h4>
|
||||
<p class="lead">{{ lng('install.dependency_check.description') }}</p>
|
||||
|
||||
<p class="lead {{ preflight.criticals ? 'text-danger' : preflight.suggestions ? 'text-warning' : 'text-success'}}">
|
||||
<i class="{{ preflight.criticals ? 'fa-solid fa-triangle-exclamation' : preflight.suggestions ? 'fa-solid fa-circle-info' : 'far fa-circle-check' }}"></i>
|
||||
{{ preflight.text }}
|
||||
</p>
|
||||
|
||||
{% if preflight.criticals %}
|
||||
<p class="text-muted">{{ lng('install.critical_error') }}</p>
|
||||
<ul>
|
||||
{% for ctype, critical in preflight.criticals %}
|
||||
{% if ctype == 'wrong_ownership' %}
|
||||
<li>{{ lng('install.errors.' ~ ctype, [critical.user, critical.group]) }}</li>
|
||||
{% elseif ctype == 'missing_extensions' %}
|
||||
<li>{{ lng('install.errors.' ~ ctype) }}<ul>
|
||||
{% for missext in critical %}
|
||||
<li>{{ missext }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>{{ critical|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% if preflight.suggestions %}
|
||||
<p class="text-muted">{{ lng('install.suggestions') }}</p>
|
||||
<ul>
|
||||
{% for ctype, suggestion in preflight.suggestions %}
|
||||
{% if ctype == 'missing_extensions' %}
|
||||
<li>{{ lng('install.errors.suggestedextensions') }}<ul>
|
||||
{% for missext in suggestion %}
|
||||
<li>{{ missext }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>{{ suggestion|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
<div class="d-flex justify-content-end mt-4">
|
||||
{% if preflight.criticals %}
|
||||
<a href="" class="btn btn-secondary"><i class="fa-solid fa-arrow-rotate-left"></i> {{ lng('install.check_again') }}</a>
|
||||
{% else %}
|
||||
<a href="?step=1" class="btn btn-primary">{{ lng('install.start_installation') }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
48
templates/Maketank/install/update.html.twig
Normal file
48
templates/Maketank/install/update.html.twig
Normal file
@@ -0,0 +1,48 @@
|
||||
{% extends "Froxlor/userarea.html.twig" %}
|
||||
|
||||
{% block heading %}
|
||||
<div>
|
||||
<h5 class="mb-1">
|
||||
<i class="fa-solid fa-download me-1"></i>
|
||||
{{ lng('update.update') }}
|
||||
</h5>
|
||||
<span class="text-muted">{{ lng('update.description') }}</span>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card table-responsive">
|
||||
<div class="card-body">
|
||||
<table class="table table-borderless align-middle mb-0 px-3">
|
||||
<tbody>
|
||||
{% for check in checks %}
|
||||
<tr class="{% if check.result == 1 %}table-danger{% elseif check.result == 2 %}table-warning{% endif %}">
|
||||
<td class="w-75" scope="row">{{ check.title }}</td>
|
||||
<td class="col-auto text-end{% if check.result == 0 %} text-success{% endif %}">
|
||||
<span class="d-none d-md-inline">{{ check.result_txt }}</span>
|
||||
{% if check.result == 0 %} <i class="fa-solid fa-check-circle" {% elseif check.result == 2 %}<span class="d-md-none"> ???</span>{% elseif check.result == 1 %}<span class="d-md-none"> !!!</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if check.result_desc is not empty %}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<span>{{ check.result_desc|raw }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="row pt-md-3">
|
||||
<div class="col-12 text-end mt-4 mt-md-0">
|
||||
<a class="btn btn-lg btn-block btn-primary" href="admin_index.php">
|
||||
{{ lng('success.clickheretocontinue') }}
|
||||
»
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user