Update website

This commit is contained in:
Guilhem Lavaux 2025-02-11 21:30:02 +01:00
parent 0a686aeb9a
commit c4ffa0f6ee
4360 changed files with 1727 additions and 718385 deletions

View file

@ -1,15 +0,0 @@
<div id="prefs_autoload" class="alert alert-primary d-print-none hide" role="alert">
<form action="{{ url('/preferences/manage') }}" method="post" class="disableAjax">
{{ hidden_inputs|raw }}
<input type="hidden" name="json" value="">
<input type="hidden" name="submit_import" value="1">
<input type="hidden" name="return_url" value="{{ return_url }}">
{% trans %}
Your browser has phpMyAdmin configuration for this domain. Would you like to import it for current session?
{% endtrans %}
<br>
<a href="#yes">{% trans "Yes" %}</a>
/ <a href="#no">{% trans "No" %}</a>
/ <a href="#delete">{% trans "Delete settings" %}</a>
</form>
</div>

View file

@ -1,8 +0,0 @@
{{ error|raw }}
{% if has_errors %}
<div class="alert alert-danger config-form" role="alert">
<strong>{% trans 'Cannot save settings, submitted form contains errors!' %}</strong>
{{ errors|raw }}
</div>
{% endif %}
{{ form|raw }}

View file

@ -1,62 +0,0 @@
<div class="container-fluid">
<div class="row">
<ul id="user_prefs_tabs" class="nav nav-pills m-2">
<li class="nav-item">
<a href="{{ url('/preferences/manage') }}" class="nav-link{{ route == '/preferences/manage' ? ' active' }}">
{% trans 'Manage your settings' %}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/two-factor') }}" class="nav-link{{ route == '/preferences/two-factor' ? ' active' }}">
{% trans 'Two-factor authentication' %}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/features') }}" class="nav-link{{ route == '/preferences/features' ? ' active' }}">
{{ get_icon('b_tblops', 'Features'|trans, false, false, 'TabsMode') }}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/sql') }}" class="nav-link{{ route == '/preferences/sql' ? ' active' }}">
{{ get_icon('b_sql', 'SQL queries'|trans, false, false, 'TabsMode') }}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/navigation') }}" class="nav-link{{ route == '/preferences/navigation' ? ' active' }}">
{{ get_icon('b_select', 'Navigation panel'|trans, false, false, 'TabsMode') }}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/main-panel') }}" class="nav-link{{ route == '/preferences/main-panel' ? ' active' }}">
{{ get_icon('b_props', 'Main panel'|trans, false, false, 'TabsMode') }}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/export') }}" class="nav-link{{ route == '/preferences/export' ? ' active' }}">
{{ get_icon('b_export', 'Export'|trans, false, false, 'TabsMode') }}
</a>
</li>
<li class="nav-item">
<a href="{{ url('/preferences/import') }}" class="nav-link{{ route == '/preferences/import' ? ' active' }}">
{{ get_icon('b_import', 'Import'|trans, false, false, 'TabsMode') }}
</a>
</li>
</ul>
</div>
{% if is_saved %}
{{ 'Configuration has been saved.'|trans|raw_success }}
{% endif %}
{% if not has_config_storage %}
{% apply format('<a href="' ~ get_docu_link('setup', 'linked-tables') ~ '" target="_blank" rel="noopener noreferrer">', '</a>')|notice %}
{% trans 'Your preferences will be saved for current session only. Storing them permanently requires %sphpMyAdmin configuration storage%s.' %}
{% endapply %}
{% endif %}

View file

@ -1,20 +0,0 @@
{{ 'Configuration contains incorrect data for some fields.'|trans|error }}
<div class="config-form">
{{ form_errors|raw }}
</div>
<form action="{{ url('/preferences/manage') }}" method="post" class="disableAjax">
{{ get_hidden_inputs() }}
<input type="hidden" name="json" value="{{ json }}">
<input type="hidden" name="fix_errors" value="1">
{% if import_merge is not empty %}
<input type="hidden" name="import_merge" value="1">
{% endif %}
{% if return_url %}
<input type="hidden" name="return_url" value="{{ return_url }}">
{% endif %}
<p>
{% trans 'Do you want to import remaining settings?' %}
</p>
<input class="btn btn-secondary" type="submit" name="submit_import" value="{{ 'Yes'|trans }}">
<input class="btn btn-secondary" type="submit" name="submit_ignore" value="{{ 'No'|trans }}">
</form>

View file

@ -1,131 +0,0 @@
{{ error|raw }}
<script type="text/javascript">
{{ get_js_value("Messages.strSavedOn", 'Saved on: @DATE@'|trans) }}
</script>
<div class="row">
<div id="maincontainer" class="container-fluid">
<div class="row">
<div class="col-12 col-md-7">
<div class="card mt-4">
<div class="card-header">
{% trans 'Import' %}
</div>
<div class="card-body">
<form class="prefs-form disableAjax" name="prefs_import" action="{{ url('/preferences/manage') }}" method="post"
enctype="multipart/form-data">
{{ get_hidden_inputs() }}
<input type="hidden" name="MAX_FILE_SIZE" value="{{ max_upload_size }}">
<input type="hidden" name="json" value="">
<input type="radio" id="import_text_file" name="import_type" value="text_file" checked="checked">
<label for="import_text_file"> {% trans 'Import from file' %} </label>
<div id="opts_import_text_file" class="prefsmanage_opts">
<label for="input_import_file"> {% trans 'Browse your computer:' %} </label>
<input type="file" name="import_file" id="input_import_file">
</div>
<input type="radio" id="import_local_storage" name="import_type" value="local_storage"
disabled="disabled">
<label for="import_local_storage"> {% trans 'Import from browser\'s storage' %} </label>
<div id="opts_import_local_storage" class="prefsmanage_opts disabled">
<div class="localStorage-supported">
{% trans 'Settings will be imported from your browser\'s local storage.' %}
<br>
<div class="localStorage-exists">
{% trans 'Saved on: @DATE@' %}
</div>
<div class="localStorage-empty">
{{ 'You have no saved settings!'|trans|notice }}
</div>
</div>
<div class="localStorage-unsupported">
{{ 'This feature is not supported by your web browser'|trans|notice }}
</div>
</div>
<input type="checkbox" id="import_merge" name="import_merge">
<label for="import_merge"> {% trans 'Merge with current configuration' %} </label>
<br><br>
<input class="btn btn-primary" type="submit" name="submit_import" value="{{ 'Go'|trans }}">
</form>
</div>
</div>
{% if exists_setup_and_not_exists_config %}
{# show only if setup script is available, allows to disable this message #}
{# by simply removing setup directory #}
{# Also do not show in config exists (and setup would refuse to work) #}
<div class="card mt-4">
<div class="card-header">
{% trans 'More settings' %}
</div>
<div class="card-body">
{{ 'You can set more settings by modifying config.inc.php, eg. by using %sSetup script%s.'|trans|format('<a href="setup/index.php" target="_blank">','</a>')|raw }}
{{ show_docu('setup', 'setup-script') }}
</div>
</div>
{% endif %}
</div>
<div class="col-12 col-md-5">
<div class="card mt-4">
<div class="card-header">
{% trans 'Export' %}
</div>
<div class="card-body">
<div class="click-hide-message hide">
{{ 'Configuration has been saved.'|trans|raw_success }}
</div>
<form class="prefs-form disableAjax" name="prefs_export"
action="{{ url('/preferences/manage') }}" method="post">
{{ get_hidden_inputs() }}
<div>
<input type="radio" id="export_text_file" name="export_type"
value="text_file" checked="checked">
<label for="export_text_file">
{% trans 'Save as JSON file' %}
</label><br>
<input type="radio" id="export_php_file" name="export_type" value="php_file">
<label for="export_php_file">
{% trans 'Save as PHP file' %}
</label><br>
<input type="radio" id="export_local_storage" name="export_type" value="local_storage"
disabled="disabled">
<label for="export_local_storage">
{% trans 'Save to browser\'s storage' %}
</label>
</div>
<div id="opts_export_local_storage"
class="prefsmanage_opts disabled">
<span class="localStorage-supported">
{% trans 'Settings will be saved in your browser\'s local storage.' %}
<div class="localStorage-exists">
<b>
{% trans 'Existing settings will be overwritten!' %}
</b>
</div>
</span>
<div class="localStorage-unsupported">
{{ 'This feature is not supported by your web browser'|trans|notice }}
</div>
</div>
<br>
<input class="btn btn-primary" type="submit" name="submit_export" value="{% trans 'Go' %}">
</form>
</div>
</div>
<div class="card mt-4">
<div class="card-header">
{% trans 'Reset' %}
</div>
<div class="card-body">
<form class="prefs-form disableAjax" name="prefs_reset"
action="{{ url('/preferences/manage') }}" method="post">
{{ get_hidden_inputs() }}
{% trans 'You can reset all your settings and restore them to default values.' %}
<br><br>
<input class="btn btn-secondary" type="submit" name="submit_clear" value="{% trans 'Reset' %}">
</form>
</div>
</div>
</div>
</div>
<br class="clearfloat">
</div>
</div>
</div>

View file

@ -1,17 +0,0 @@
<div class="row">
<div class="col">
<div class="card mt-4">
<div class="card-header">
{% trans "Configure two-factor authentication" %}
</div>
<div class="card-body">
<form method="post" action="{{ url('/preferences/two-factor') }}">
{{ get_hidden_inputs() }}
<input type="hidden" name="2fa_configure" value="{{ configure }}">
{{ form|raw }}
<input class="btn btn-secondary" type="submit" value="{% trans "Enable two-factor authentication" %}">
</form>
</div>
</div>
</div>
</div>

View file

@ -1,18 +0,0 @@
<div class="row">
<div class="col">
<div class="card mt-4">
<div class="card-header">
{% trans "Confirm disabling two-factor authentication" %}
</div>
<div class="card-body">
<form method="post" action="{{ url('/preferences/two-factor') }}">
{{ "By disabling two factor authentication you will be again able to login using password only."|trans|notice }}
{{ get_hidden_inputs() }}
{{ form|raw }}
<input type="hidden" name="2fa_remove" value="1">
<input class="btn btn-secondary" type="submit" value="{% trans "Disable two-factor authentication" %}">
</form>
</div>
</div>
</div>
</div>

View file

@ -1,104 +0,0 @@
<div class="row">
<div class="col">
<div class="card mt-4">
<div class="card-header">
{% trans "Two-factor authentication status" %}
{{ show_docu('two_factor') }}
</div>
<div class="card-body">
{% if enabled %}
{% if num_backends == 0 %}
<p>{% trans "Two-factor authentication is not available, please install optional dependencies to enable authentication backends." %}</p>
<p>{% trans "Following composer packages are missing:" %}</p>
<ul>
{% for item in missing %}
<li><code>{{ item.dep }}</code> ({{ item.class }})</li>
{% endfor %}
</ul>
{% else %}
{% if backend_id %}
<p>{% trans "Two-factor authentication is available and configured for this account." %}</p>
{% else %}
<p>{% trans "Two-factor authentication is available, but not configured for this account." %}</p>
{% endif %}
{% if missing|length > 0 %}
<p>
{{ 'Please install optional dependencies to enable more authentication backends.'|trans }}
{{ 'Following composer packages are missing:'|trans }}
</p>
<ul>
{% for item in missing %}
<li><code>{{ item.dep }}</code> ({{ item.class }})</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
{% else %}
<p>{% trans "Two-factor authentication is not available, enable phpMyAdmin configuration storage to use it." %}</p>
{% endif %}
</div>
</div>
</div>
</div>
{% if backend_id %}
<div class="row">
<div class="col">
<div class="card mt-4">
<div class="card-header">
{{ backend_name }}
</div>
<div class="card-body">
<p>{% trans "You have enabled two factor authentication." %}</p>
<p>{{ backend_description }}</p>
{% if backend_id == 'key' %}
<div class="alert alert-danger" role="alert">
<h4 class="alert-heading">{{ 'Deprecated!'|trans }}</h4>
<p>{{ 'The FIDO U2F API has been deprecated in favor of the Web Authentication API (WebAuthn).'|trans }}</p>
<p class="mb-0">
{{ 'You can still use Firefox to authenticate your account using the FIDO U2F API, however it\'s recommended that you use the WebAuthn authentication instead.'|trans }}
</p>
</div>
{% endif %}
<form method="post" action="{{ url('/preferences/two-factor') }}">
{{ get_hidden_inputs() }}
<input class="btn btn-secondary" type="submit" name="2fa_remove" value="
{%- trans "Disable two-factor authentication" %}">
</form>
</div>
</div>
</div>
</div>
{% elseif num_backends > 0 %}
<div class="row">
<div class="col">
<div class="card mt-4">
<div class="card-header">
{% trans "Configure two-factor authentication" %}
</div>
<div class="card-body">
<form method="post" action="{{ url('/preferences/two-factor') }}">
{{ get_hidden_inputs() }}
{% for backend in backends %}
<label class="d-block">
<input type="radio" name="2fa_configure" value="{{ backend["id"] }}"
{{- backend["id"] == "" ? ' checked' }}>
<strong>{{ backend["name"] }}</strong>
<p>
{%- if backend['id'] == 'key' -%}
<span class="text-danger">
{{ 'The FIDO U2F API has been deprecated in favor of the Web Authentication API (WebAuthn).'|trans }}
</span>
<br>
{%- endif -%}
{{ backend["description"] }}
</p>
</label>
{% endfor %}
<input class="btn btn-secondary" type="submit" value="{% trans "Configure two-factor authentication" %}">
</form>
</div>
</div>
</div>
</div>
{% endif %}