[BS5] add responsive tabs and more

This commit is contained in:
FreddleSpl0it
2022-06-06 20:38:24 +02:00
parent f13530d8a1
commit cb6a5d4069
67 changed files with 786 additions and 409 deletions

View File

@@ -1,9 +1,14 @@
<div role="tabpanel" class="tab-pane fade show active" id="tab-config-admins" role="tabpanel" aria-labelledby="tab-config-admins">
<div class="card mb-4">
<div class="card-header bg-danger text-white">{{ lang.admin.admin_details }}</div>
<div class="card-body">
<div class="card-header bg-danger text-white d-flex">
<button class="btn d-md-none text-white flex-grow-1 text-start" data-bs-target="#collapse-tab-config-admins" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-admins">
{{ lang.admin.admin_details }}
</button>
<span class="d-none d-md-block">{{ lang.admin.admin_details }}</span>
</div>
<div id="collapse-tab-config-admins" class="card-body collapse show" data-bs-parent="#admin-content">
<table id="adminstable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">
<div class="mass-actions-admin mb-4">
<div class="btn-group">
<a class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary" id="toggle_multi_select_all" data-id="admins" href="#"><i class="bi bi-check-all"></i> {{ lang.mailbox.toggle_all }}</a>
<a class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary dropdown-toggle" data-bs-toggle="dropdown" href="#">{{ lang.mailbox.quick_actions }}</a>
@@ -32,7 +37,7 @@
<br>
</div>
</div>
<div class="row">
<div class="row mb-3">
<div class="col-sm-3 col-5 text-end">{{ lang.tfa.set_tfa }}:</div>
<div class="col-sm-9 col-7">
<select data-style="btn btn-sm dropdown-toggle bs-placeholder btn-secondary" data-width="fit" id="selectTFA" class="selectpicker" title="{{ lang.tfa.select }}">
@@ -48,7 +53,7 @@
<legend style="margin-top:20px">
<i class="bi bi-shield-fill-check"></i>
{{ lang.fido2.fido2_auth }}</legend><hr />
<div class="row">
<div class="row mb-3">
<div class="col-sm-3 col-12 text-sm-end text-start mb-4">{{ lang.fido2.known_ids }}:</div>
<div class="col-sm-9 col-12">
<div class="table-responsive">
@@ -75,8 +80,8 @@
</div>
</div>
</div>
<br>
<div class="row" id="status-fido2">
<div class="row mb-3" id="status-fido2">
<div class="col-sm-3 col-5 text-end">{{ lang.fido2.register_status }}:</div>
<div class="col-sm-9 col-7">
<div id="fido2-alerts">-</div>
@@ -88,7 +93,7 @@
<i style="font-size:10pt;" class="bi bi-plus-square"></i> {{ lang.admin.guid_and_license }}
</legend>
<hr />
<div id="license" class="collapse">
<div id="license" class="collapse mb-5">
<form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
<div class="row">
<label class="control-label col-sm-3" for="guid">{{ lang.admin.guid }}:</label>
@@ -127,7 +132,7 @@
<p class="text-muted">{{ lang.admin.api_info|raw }}</p>
</div>
<div class="col-lg-6">
<div class="card">
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title"><i class="bi bi-file-earmark-arrow-down"></i> {{ lang.admin.api_read_only }}</h4>
</div>
@@ -172,7 +177,7 @@
</div>
</div>
<div class="col-lg-6">
<div class="card">
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title"><i class="bi bi-file-earmark-diff"></i> {{ lang.admin.api_read_write }}</h4>
</div>
@@ -222,8 +227,13 @@
</div>
<div class="card mb-4">
<div class="card-header">{{ lang.admin.domain_admins }}</div>
<div class="card-body">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-dadmins" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-dadmins">
{{ lang.admin.domain_admins }}
</button>
<span class="d-none d-md-block">{{ lang.admin.domain_admins }}</span>
</div>
<div id="collapse-tab-config-dadmins" class="card-body collapse" data-bs-parent="#admin-content">
<table id="domainadminstable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">
<div class="btn-group">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-customize" role="tabpanel" aria-labelledby="tab-config-customize">
<div class="card">
<div class="card-header">{{ lang.admin.customize }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-customize" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-customize">
{{ lang.admin.customize }}
</button>
<span class="d-none d-md-block">{{ lang.admin.customize }}</span>
</div>
<div id="collapse-tab-config-customize" class="card-body collapse" data-bs-parent="#admin-content">
<legend><i class="bi bi-file-image"></i> {{ lang.admin.change_logo }}</legend><hr />
<p class="text-muted">{{ lang.admin.logo_info }}</p>
<form class="form-inline" role="form" method="post" enctype="multipart/form-data">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-dkim" role="tabpanel" aria-labelledby="tab-config-dkim">
<div class="card">
<div class="card-header">{{ lang.admin.dkim_keys }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-dkim" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-dkim">
{{ lang.admin.dkim_keys }}
</button>
<span class="d-none d-md-block">{{ lang.admin.dkim_keys }}</span>
</div>
<div id="collapse-tab-config-dkim" class="card-body collapse" data-bs-parent="#admin-content">
<div class="btn-group" data-bs-toggle="button" style="margin-bottom: 20px;">
<a class="btn btn-sm btn-xs-third d-block d-sm-inline btn-secondary active" href="#" data-bs-toggle="collapse" data-bs-target=".dkim_key_valid">{{ lang.admin.dkim_key_valid }}</a>
<a class="btn btn-sm btn-xs-third d-block d-sm-inline btn-secondary active" href="#" data-bs-toggle="collapse" data-bs-target=".dkim_key_unused">{{ lang.admin.dkim_key_unused }}</a>

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-f2b" role="tabpanel" aria-labelledby="tab-config-f2b">
<div class="card">
<div class="card-header">{{ lang.admin.f2b_parameters }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-f2b" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-f2b">
{{ lang.admin.f2b_parameters }}
</button>
<span class="d-none d-md-block">{{ lang.admin.f2b_parameters }}</span>
</div>
<div id="collapse-tab-config-f2b" class="card-body collapse" data-bs-parent="#admin-content">
<form class="form" data-id="f2b" role="form" method="post">
<div class="mb-4">
<label for="f2b_ban_time">{{ lang.admin.f2b_ban_time }}:</label>

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-fwdhosts" role="tabpanel" aria-labelledby="tab-config-fwdhosts">
<div class="card">
<div class="card-header">{{ lang.admin.forwarding_hosts }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-fwdhosts" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-fwdhosts">
{{ lang.admin.forwarding_hosts }}
</button>
<span class="d-none d-md-block">{{ lang.admin.forwarding_hosts }}</span>
</div>
<div id="collapse-tab-config-fwdhosts" class="card-body collapse" data-bs-parent="#admin-content">
<p style="margin-bottom:40px">{{ lang.admin.forwarding_hosts_hint }}</p>
<table id="forwardinghoststable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-oauth2" role="tabpanel" aria-labelledby="tab-config-oauth2">
<div class="card">
<div class="card-header">{{ lang.admin.oauth2_apps }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-oauth2" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-oauth2">
{{ lang.admin.oauth2_apps }}
</button>
<span class="d-none d-md-block">{{ lang.admin.oauth2_apps }}</span>
</div>
<div id="collapse-tab-config-oauth2" class="card-body collapse" data-bs-parent="#admin-content">
<p>{{ lang.admin.oauth2_info|raw }}</p>
<table id="oauth2clientstable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-password-policy" role="tabpanel" aria-labelledby="tab-config-password-policy">
<div class="card">
<div class="card-header">{{ lang.admin.password_policy }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-password-policy" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-password-policy">
{{ lang.admin.password_policy }}
</button>
<span class="d-none d-md-block">{{ lang.admin.password_policy }}</span>
</div>
<div id="collapse-tab-config-password-policy" class="card-body collapse" data-bs-parent="#admin-content">
<form class="form-horizontal" data-id="passwordpolicy" role="form" method="post">
{% for name, value in password_complexity %}
{% if name == 'length' %}

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-quarantine" role="tabpanel" aria-labelledby="tab-config-quarantine">
<div class="card">
<div class="card-header">{{ lang.admin.quarantine }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-quarantine" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-quarantine">
{{ lang.admin.quarantine }}
</button>
<span class="d-none d-md-block">{{ lang.admin.quarantine }}</span>
</div>
<div id="collapse-tab-config-quarantine" class="card-body collapse" data-bs-parent="#admin-content">
{% if not q_data.retention_size or not q_data.max_size %}
<div class="alert alert-info">{{ lang.quarantine.disabled_by_config }}</div>
{% endif %}

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-quota" role="tabpanel" aria-labelledby="tab-config-quota">
<div class="card">
<div class="card-header">{{ lang.admin.quota_notifications }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-quota" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-quota">
{{ lang.admin.quota_notifications }}
</button>
<span class="d-none d-md-block">{{ lang.admin.quota_notifications }}</span>
</div>
<div id="collapse-tab-config-quota" class="card-body collapse" data-bs-parent="#admin-content">
<p>{{ lang.admin.quota_notifications_info }}</p>
<form class="form" role="form" data-id="quota_notification" method="post">
<div class="row mb-4">
@@ -26,7 +31,7 @@
<hr />
<div id="quota_template" class="collapse">
<!-- <small>{{ lang.admin.quota_notifications_vars }}</small><br><br>-->
<textarea autocorrect="off" spellcheck="false" autocapitalize="none" class="form-control textarea-code collapse in" rows="20" name="html_tmpl">{{ qn_data.html_tmpl|raw }}</textarea>
<textarea autocorrect="off" spellcheck="false" autocapitalize="none" class="form-control textarea-code" rows="20" name="html_tmpl">{{ qn_data.html_tmpl|raw }}</textarea>
</div>
</div>
</div>

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-rsettings" role="tabpanel" aria-labelledby="tab-config-rsettings">
<div class="card">
<div class="card-header">{{ lang.admin.rspamd_settings_map }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-rsettings" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-rsettings">
{{ lang.admin.rspamd_settings_map }}
</button>
<span class="d-none d-md-block">{{ lang.admin.rspamd_settings_map }}</span>
</div>
<div id="collapse-tab-config-rsettings" class="card-body collapse" data-bs-parent="#admin-content">
<legend data-bs-target="#active_settings_map" style="cursor:pointer" unselectable="on" data-bs-toggle="collapse">
<i style="font-size:10pt;" class="bi bi-plus-square"></i> {{ lang.admin.active_rspamd_settings_map }}
</legend>

View File

@@ -1,9 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-rspamd" role="tabpanel" aria-labelledby="tab-config-rspamd">
<div class="card">
<div class="card-header">
<h3 class="card-title">Rspamd UI</h3>
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-rspamd" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-rspamd">
Rspamd UI
</button>
<span class="d-none d-md-block">Rspamd UI</span>
</div>
<div class="card-body">
<div id="collapse-tab-config-rspamd" class="card-body collapse" data-bs-parent="#admin-content">
<div class="row">
<div class="col-12 d-flex d-sm-none mb-4">
<img class="img-responsive mx-auto" src="/img/rspamd_logo.png" alt="Rspamd UI">

View File

@@ -1,9 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-globalfilter-regex" role="tabpanel" aria-labelledby="tab-globalfilter-regex">
<div class="card">
<div class="card-header">
{{ lang.admin.rspamd_global_filters }}
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-regex" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-regex">
{{ lang.admin.rspamd_global_filters }}
</button>
<span class="d-none d-md-block">{{ lang.admin.rspamd_global_filters }}</span>
</div>
<div class="card-body">
<div id="collapse-tab-config-regex" class="card-body collapse" data-bs-parent="#admin-content">
<p>{{ lang.admin.rspamd_global_filters_info }}</p>
<div id="confirm_show_rspamd_global_filters"{% if show_rspamd_global_filters %} class="d-none"{% endif %}>
<div class="row">
@@ -36,8 +39,10 @@
</div>
<div class="row">
<div class="offset-sm-3 col-sm-9">
<button class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary validate_rspamd_regex" data-regex-map="{{ rspamd_regex_map.map }}" href="#">{{ lang.add.validate }}</button>
<button class="btn btn-sm btn-xs-half d-block d-sm-inline btn-success submit_rspamd_regex" data-action="edit_selected" data-id="{{ rspamd_regex_map.map }}" data-item="{{ rspamd_regex_map.map }}" data-api-url='edit/rspamd-map' data-api-attr='{}' href="#" disabled>{{ lang.edit.save }}</button>
<div class="btn-group">
<button class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary validate_rspamd_regex" data-regex-map="{{ rspamd_regex_map.map }}" href="#">{{ lang.add.validate }}</button>
<button class="btn btn-sm btn-xs-half d-block d-sm-inline btn-success submit_rspamd_regex" data-action="edit_selected" data-id="{{ rspamd_regex_map.map }}" data-item="{{ rspamd_regex_map.map }}" data-api-url='edit/rspamd-map' data-api-attr='{}' href="#" disabled>{{ lang.edit.save }}</button>
</div>
</div>
</div>
</form>

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-config-ldap-admins" role="tabpanel" aria-labelledby="tab-config-ldap-admins">
<div class="card">
<div class="card-header">{{ lang.admin.admins_ldap }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-config-ldap-admins" data-bs-toggle="collapse" aria-controls="ollapse-tab-config-ldap-admins">
{{ lang.admin.admins_ldap }}
</button>
<span class="d-none d-md-block">{{ lang.admin.admins_ldap }}</span>
</div>
<div id="collapse-tab-config-ldap-admins" class="card-body collapse" data-bs-parent="#admin-content">
</div>
</div>
</div>

View File

@@ -1,12 +1,15 @@
<div role="tabpanel" class="tab-pane fade" id="tab-mailq" role="tabpanel" aria-labelledby="tab-mailq">
<div class="card">
<div class="card mb-4">
<div class="card-header d-flex">
{{ lang.admin.queue_manager }} <span class="badge bg-info table-lines"></span>
<button class="btn d-md-none flex-grow-1 text-start me-2" data-bs-target="#collapse-tab-mailq" data-bs-toggle="collapse" aria-controls="ollapse-tab-mailq">
{{ lang.admin.queue_manager }} <span class="badge bg-info table-lines"></span>
</button>
<span class="d-none d-md-block">{{ lang.admin.queue_manager }} <span class="badge bg-info table-lines"></span></span>
<div class="btn-group ms-auto">
<button class="btn btn-xs btn-secondary refresh_table" data-draw="draw_queue" data-table="queuetable">{{ lang.admin.refresh }}</button>
</div>
</div>
<div class="card-body">
<div id="collapse-tab-mailq" class="card-body collapse" data-bs-parent="#admin-content">
<table id="queuetable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">
<div class="btn-group">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-routing" role="tabpanel" aria-labelledby="tab-routing">
<div class="card mb-4">
<div class="card-header">{{ lang.admin.relayhosts }}</div>
<div class="card-body">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-routing" data-bs-toggle="collapse" aria-controls="ollapse-tab-routing">
{{ lang.admin.relayhosts }}
</button>
<span class="d-none d-md-block">{{ lang.admin.relayhosts }}</span>
</div>
<div id="collapse-tab-routing" class="card-body collapse" data-bs-parent="#admin-content">
<p style="margin-bottom:40px">{{ lang.admin.relayhosts_hint|raw }}</p>
<table id="relayhoststable" class="table table-striped dt-responsive w-100"></table>
<div class="mass-actions-admin">
@@ -41,8 +46,13 @@
</div>
<div class="card mb-4">
<div class="card-header">{{ lang.admin.transport_maps }}</div>
<div class="card-body">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-maps" data-bs-toggle="collapse" aria-controls="ollapse-tab-maps">
{{ lang.admin.transport_maps }}
</button>
<span class="d-none d-md-block">{{ lang.admin.transport_maps }}</span>
</div>
<div id="collapse-tab-maps" class="card-body collapse" data-bs-parent="#admin-content">
<p style="margin-bottom:40px">{{ lang.admin.transports_hint|raw }}</p>
<table class="table table-striped table-condensed" id="transportstable"></table>
<div class="mass-actions-admin">

View File

@@ -1,7 +1,12 @@
<div role="tabpanel" class="tab-pane fade" id="tab-sys-mails" role="tabpanel" aria-labelledby="tab-sys-mails">
<div class="card">
<div class="card-header">{{ lang.admin.sys_mails }}</div>
<div class="card-body">
<div class="card mb-4">
<div class="card-header d-flex">
<button class="btn d-md-none flex-grow-1 text-start" data-bs-target="#collapse-tab-sys-mails" data-bs-toggle="collapse" aria-controls="ollapse-tab-sys-mails">
{{ lang.admin.sys_mails }}
</button>
<span class="d-none d-md-block">{{ lang.admin.sys_mails }}</span>
</div>
<div id="collapse-tab-sys-mails" class="card-body collapse" data-bs-parent="#admin-content">
<form class="form-horizontal" autocapitalize="none" data-id="admin" autocorrect="off" role="form" method="post">
<div class="row mb-2">
<label class="control-label col-sm-2 text-sm-end" for="admin_mass_from">{{ lang.admin.from }}:</label>