Merge pull request #16521 from mauriciofauth/bootstrap-5

Upgrade Bootstrap to version 5
This commit is contained in:
Maurício Meneghini Fauth 2020-12-21 15:49:37 -03:00 committed by GitHub
commit c1932b785f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
65 changed files with 363 additions and 307 deletions

View File

@ -1,13 +1,15 @@
# https://github.com/browserslist/browserslist#readme
>= 1%
last 1 major version
>= 0.5%
last 2 major versions
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30
Chrome >= 60
Firefox >= 60
# needed since Legacy Edge still has usage; 79 was the first Chromium Edge version
# should be removed in the future when its usage drops or when it's moved to dead browsers
not Edge < 79
Firefox ESR
iOS >= 10
Safari >= 10
Android >= 6
not Explorer <= 11

View File

@ -2,6 +2,8 @@ phpMyAdmin - ChangeLog
======================
5.2.0 (not yet released)
- issue #16521 Upgrade Bootstrap to version 5
- issue #16521 Drop support for Internet Explorer and others
5.1.0 (not yet released)
- issue #15350 Change Media (MIME) type references to Media type

View File

@ -56,5 +56,10 @@ Web browser
To access phpMyAdmin you need a web browser with cookies and JavaScript
enabled.
You need a browser which is supported by jQuery 2.0, see
<https://jquery.com/browser-support/>.
You need a browser which is supported by Bootstrap 4.5, see
<https://getbootstrap.com/docs/4.5/getting-started/browsers-devices/>.
.. versionchanged:: 5.2.0
You need a browser which is supported by Bootstrap 5.0, see
<https://getbootstrap.com/docs/5.0/getting-started/browsers-devices/>.

View File

@ -35,7 +35,7 @@
'class': 'nav-link dropdown-toggle',
'id': 'navbarDropdown',
'role': 'button',
'data-toggle': 'dropdown',
'data-bs-toggle': 'dropdown',
'aria-haspopup': 'true',
'aria-expanded': 'false'
}).text(Messages.strMore);
@ -47,7 +47,7 @@
var $submenu = $('<li></li>', { 'class': 'nav-item dropdown d-none' })
.append(link)
.append($('<ul></ul>', {
'class': 'dropdown-menu dropdown-menu-right',
'class': 'dropdown-menu dropdown-menu-end',
'aria-labelledby': 'navbarDropdown'
}));
$container.append($submenu);

View File

@ -496,7 +496,7 @@ AJAX.registerOnload('sql.js', function () {
var $varDiv = $('#bookmarkVariables');
$varDiv.empty();
for (var i = 1; i <= varCount; i++) {
$varDiv.append($('<div class="form-group">'));
$varDiv.append($('<div class="mb-3">'));
$varDiv.append($('<label for="bookmarkVariable' + i + '">' + Functions.sprintf(Messages.strBookmarkVariable, i) + '</label>'));
$varDiv.append($('<input class="form-control" type="text" size="10" name="bookmark_variable[' + i + ']" id="bookmarkVariable' + i + '">'));
$varDiv.append($('</div>'));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1343,7 +1343,7 @@ class Results
$display_params = $this->properties['display_params'];
// 1. Displays the full/partial text button (part 1)...
$button_html .= '<thead class="thead-light"><tr>' . "\n";
$button_html .= '<thead class="table-light"><tr>' . "\n";
$emptyPreCondition = $displayParts['edit_lnk'] != self::NO_EDIT_OR_DELETE
&& $displayParts['del_lnk'] != self::NO_EDIT_OR_DELETE;

View File

@ -131,11 +131,11 @@ class Innodb extends StorageEngine
. ' OR Variable_name = \'Innodb_page_size\';';
$status = $dbi->fetchResult($sql, 0, 1);
$output = '<table class="table table-light table-striped table-hover w-auto float-left">' . "\n"
$output = '<table class="table table-light table-striped table-hover w-auto float-start caption-top">' . "\n"
. ' <caption>' . "\n"
. ' ' . __('Buffer Pool Usage') . "\n"
. ' </caption>' . "\n"
. ' <tfoot class="thead-light">' . "\n"
. ' <tfoot class="table-light">' . "\n"
. ' <tr>' . "\n"
. ' <th colspan="2">' . "\n"
. ' ' . __('Total:') . ' '
@ -158,7 +158,7 @@ class Innodb extends StorageEngine
. ' <tbody>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Free pages') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_free'],
0
@ -167,7 +167,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Dirty pages') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_dirty'],
0
@ -176,7 +176,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Pages containing data') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_data'],
0
@ -185,7 +185,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Pages to be flushed') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_flushed'],
0
@ -194,7 +194,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Busy pages') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_misc'],
0
@ -206,7 +206,7 @@ class Innodb extends StorageEngine
if (isset($status['Innodb_buffer_pool_pages_latched'])) {
$output .= ' <tr>'
. ' <th scope="row">' . __('Latched pages') . '</th>'
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_pages_latched'],
0
@ -217,14 +217,14 @@ class Innodb extends StorageEngine
$output .= ' </tbody>' . "\n"
. '</table>' . "\n\n"
. '<table class="table table-light table-striped table-hover w-auto ml-4 float-left">' . "\n"
. '<table class="table table-light table-striped table-hover w-auto ms-4 float-start caption-top">' . "\n"
. ' <caption>' . "\n"
. ' ' . __('Buffer Pool Activity') . "\n"
. ' </caption>' . "\n"
. ' <tbody>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Read requests') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_read_requests'],
0
@ -233,7 +233,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Write requests') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_write_requests'],
0
@ -242,7 +242,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Read misses') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_reads'],
0
@ -251,7 +251,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Write waits') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. Util::formatNumber(
$status['Innodb_buffer_pool_wait_free'],
0
@ -260,7 +260,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Read misses in %') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. ($status['Innodb_buffer_pool_read_requests'] == 0
? '---'
: htmlspecialchars(
@ -275,7 +275,7 @@ class Innodb extends StorageEngine
. ' </tr>' . "\n"
. ' <tr>' . "\n"
. ' <th scope="row">' . __('Write waits in %') . '</th>' . "\n"
. ' <td class="text-monospace text-right">'
. ' <td class="font-monospace text-end">'
. ($status['Innodb_buffer_pool_write_requests'] == 0
? '---'
: htmlspecialchars(

View File

@ -235,7 +235,7 @@ class StorageEngine
$ret .= ' </td>' . "\n"
. ' <th scope="row">' . htmlspecialchars($details['title']) . '</th>'
. "\n"
. ' <td class="text-monospace text-right">';
. ' <td class="font-monospace text-end">';
switch ($details['type']) {
case PMA_ENGINE_DETAILS_TYPE_SIZE:
$parsed_size = $this->resolveTypeSize($details['value']);

View File

@ -13,8 +13,9 @@
"@babel/cli": "^7.12.10",
"@babel/core": "^7.12.10",
"@babel/preset-env": "^7.12.10",
"@popperjs/core": "^2.6.0",
"blueimp-md5": "^2.18.0",
"bootstrap": "4.5.3",
"bootstrap": "5.0.0-beta1",
"codemirror": "5.58.3",
"jquery": "3.5.1",
"jquery-debounce-throttle": "^1.0.6-rc.0",
@ -31,7 +32,6 @@
"kbwood-jquery-svg": "https://github.com/kbwood/svg/archive/1.5.0.tar.gz",
"locutus.sprintf": "^2.0.14-code-lts.2",
"ol": "6.4.3",
"popper.js": "^1.16.1",
"sass": "^1.30.0",
"stickyfilljs": "2.1.0",
"tablesorter": "^2.31.3",

View File

@ -9,7 +9,7 @@
<input type="hidden" name="add_new_column" value="add_new_column">
<div class="table-responsive">
<table class="table table-light">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th class="" title="" data-column="name">
@ -213,7 +213,7 @@
<table id="table_columns" class="table table-light table-striped table-hover tablesorter">
{% set class = 'column_heading' %}
{% set title = 'Click to sort.' | trans %}
<thead class="thead-light">
<thead class="table-light">
<tr>
<th class="{{ class }}"></th>
<th class="hide"></th>

View File

@ -12,7 +12,7 @@
</div>
<table class="table table-light table-striped table-hover{{ items is empty ? ' hide' }}">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Name' %}</th>

View File

@ -8,14 +8,14 @@
<div class="card mb-2">
<div class="card-header">{{ get_icon('b_comment', 'Database comment'|trans, true) }}</div>
<div class="card-body">
<div class="form-row">
<div class="row g-3">
<div class="col-auto">
<label class="sr-only" for="databaseCommentInput">{% trans 'Database comment' %}</label>
<label class="visually-hidden" for="databaseCommentInput">{% trans 'Database comment' %}</label>
<input class="form-control textfield" id="databaseCommentInput" type="text" name="comment" value="{{ db_comment }}">
</div>
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>
@ -28,7 +28,7 @@
<div class="card mb-2">
<div class="card-header">{{ get_icon('b_table_add', 'Create table'|trans, true) }}</div>
<div class="card-body">
<div class="form-row">
<div class="row g-3">
<div class="col-auto">
<label for="exampleInputEmail1">{% trans 'Name' %}</label>
<input class="form-control" type="text" id="exampleInputEmail1" name="table" required>
@ -40,7 +40,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans "Go" %}">
</div>
</div>
@ -59,9 +59,9 @@
<div class="card mb-2">
<div class="card-header">{{ get_icon('b_edit', 'Rename database to'|trans, true) }}</div>
<div class="card-body">
<div class="form-group form-row">
<div class="mb-3 row g-3">
<div class="col-auto">
<label class="sr-only" for="new_db_name">{% trans 'New database name' %}</label>
<label class="visually-hidden" for="new_db_name">{% trans 'New database name' %}</label>
<input class="form-control textfield" id="new_db_name" type="text" name="newname" maxlength="64" required>
</div>
</div>
@ -77,7 +77,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>
@ -122,14 +122,14 @@
<div class="card mb-2">
<div class="card-header">{{ get_icon('b_edit', 'Copy database to'|trans, true) }}</div>
<div class="card-body">
<div class="form-group form-row">
<div class="mb-3 row g-3">
<div class="col-auto">
<label class="sr-only" for="renameDbNameInput">{% trans 'Database name' %}</label>
<label class="visually-hidden" for="renameDbNameInput">{% trans 'Database name' %}</label>
<input class="form-control textfield" id="renameDbNameInput" type="text" maxlength="64" name="newname" required>
</div>
</div>
<div class="form-group">
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="what" id="whatRadio1" value="structure">
<label class="form-check-label" for="whatRadio1">
@ -186,7 +186,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" name="submit_copy" value="{% trans 'Go' %}">
</div>
</div>
@ -198,9 +198,9 @@
<div class="card mb-2">
<div class="card-header">{{ get_icon('s_asci', 'Collation'|trans, true) }}</div>
<div class="card-body">
<div class="form-group form-row">
<div class="mb-3 row g-3">
<div class="col-auto">
<label class="sr-only" for="select_db_collation">{% trans 'Collation' %}</label>
<label class="visually-hidden" for="select_db_collation">{% trans 'Collation' %}</label>
<select class="form-control" lang="en" dir="ltr" name="db_collation" id="select_db_collation">
<option value=""></option>
{% for charset in charsets %}
@ -226,7 +226,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>

View File

@ -11,7 +11,7 @@
<div class="table-responsive jsresponsive">
<table class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th scope="col">{% trans 'User name' %}</th>

View File

@ -24,7 +24,7 @@
</div>
<table class="table table-light table-striped table-hover{{ items is empty ? ' hide' }}">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Name' %}</th>

View File

@ -1,4 +1,4 @@
<tfoot id="tbl_summary_row" class="thead-light">
<tfoot id="tbl_summary_row" class="table-light">
<tr>
<th class="d-print-none"></th>
<th class="tbl_num text-nowrap">
@ -34,7 +34,7 @@
{% else %}
{% set cell_text = row_count_sum %}
{% endif %}
<th class="value tbl_rows text-monospace text-right">{{ cell_text }}</th>
<th class="value tbl_rows font-monospace text-end">{{ cell_text }}</th>
{% if not (properties_num_columns > 1) %}
{# MySQL <= 5.5.2 #}
{% set default_engine = dbi.fetchValue('SELECT @@storage_engine;') %}
@ -60,12 +60,12 @@
{% set sum = format_byte_down(sum_size, 3, 1) %}
{% set sum_formatted = sum[0] %}
{% set sum_unit = sum[1] %}
<th class="value tbl_size text-monospace text-right">{{ sum_formatted }} {{ sum_unit }}</th>
<th class="value tbl_size font-monospace text-end">{{ sum_formatted }} {{ sum_unit }}</th>
{% set overhead = format_byte_down(overhead_size, 3, 1) %}
{% set overhead_formatted = overhead[0] %}
{% set overhead_unit = overhead[1] %}
<th class="value tbl_overhead text-monospace text-right">{{ overhead_formatted }} {{ overhead_unit }}</th>
<th class="value tbl_overhead font-monospace text-end">{{ overhead_formatted }} {{ overhead_unit }}</th>
{% endif %}
{% if show_charset %}
@ -75,17 +75,17 @@
<th></th>
{% endif %}
{% if show_creation %}
<th class="value tbl_creation text-monospace text-right">
<th class="value tbl_creation font-monospace text-end">
{{ create_time_all }}
</th>
{% endif %}
{% if show_last_update %}
<th class="value tbl_last_update text-monospace text-right">
<th class="value tbl_last_update font-monospace text-end">
{{ update_time_all }}
</th>
{% endif %}
{% if show_last_check %}
<th class="value tbl_last_check text-monospace text-right">
<th class="value tbl_last_check font-monospace text-end">
{{ check_time_all }}
</th>
{% endif %}

View File

@ -96,7 +96,7 @@
{# Content to be appended into 'tbl_rows' cell.
If row count is approximate, display it as an anchor to get real count. #}
<td class="value tbl_rows text-monospace text-right"
<td class="value tbl_rows font-monospace text-end"
data-table="{{ current_table['TABLE_NAME'] }}">
{% if approx_rows %}
<a href="{{ url('/database/structure/real-row-count', {
@ -130,12 +130,12 @@
{% endif %}
{% if is_show_stats %}
<td class="value tbl_size text-monospace text-right">
<td class="value tbl_size font-monospace text-end">
<a href="{{ url('/table/structure', table_url_params) }}#showusage">
<span>{{ formatted_size }}</span>&nbsp;<span class="unit">{{ unit }}</span>
</a>
</td>
<td class="value tbl_overhead text-monospace text-right">
<td class="value tbl_overhead font-monospace text-end">
{{ overhead|raw }}
</td>
{% endif %}
@ -163,32 +163,32 @@
{% endif %}
{% if show_creation %}
<td class="value tbl_creation text-monospace text-right">
<td class="value tbl_creation font-monospace text-end">
{{ create_time }}
</td>
{% endif %}
{% if show_last_update %}
<td class="value tbl_last_update text-monospace text-right">
<td class="value tbl_last_update font-monospace text-end">
{{ update_time }}
</td>
{% endif %}
{% if show_last_check %}
<td class="value tbl_last_check text-monospace text-right">
<td class="value tbl_last_check font-monospace text-end">
{{ check_time }}
</td>
{% endif %}
{% elseif table_is_view %}
<td class="value tbl_rows text-monospace text-right">-</td>
<td class="value tbl_rows font-monospace text-end">-</td>
<td class="nowrap">
{% trans 'View' %}
</td>
<td class="nowrap">---</td>
{% if is_show_stats %}
<td class="value tbl_size text-monospace text-right">-</td>
<td class="value tbl_overhead text-monospace text-right">-</td>
<td class="value tbl_size font-monospace text-end">-</td>
<td class="value tbl_overhead font-monospace text-end">-</td>
{% endif %}
{% if show_charset %}
<td></td>
@ -197,13 +197,13 @@
<td></td>
{% endif %}
{% if show_creation %}
<td class="value tbl_creation text-monospace text-right">-</td>
<td class="value tbl_creation font-monospace text-end">-</td>
{% endif %}
{% if show_last_update %}
<td class="value tbl_last_update text-monospace text-right">-</td>
<td class="value tbl_last_update font-monospace text-end">-</td>
{% endif %}
{% if show_last_check %}
<td class="value tbl_last_check text-monospace text-right">-</td>
<td class="value tbl_last_check font-monospace text-end">-</td>
{% endif %}
{% else %}

View File

@ -2,7 +2,7 @@
{{ get_hidden_inputs(db) }}
<div class="table-responsive">
<table class="table table-light table-striped table-hover table-sm w-auto">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th class="d-print-none"></th>
<th>{{ sortable_table_header('Table'|trans, 'table') }}</th>

View File

@ -7,7 +7,7 @@
id="trackedForm" class="ajax">
{{ get_hidden_inputs(db) }}
<table id="versions" class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Table' %}</th>
@ -148,7 +148,7 @@
id="untrackedForm" class="ajax">
{{ get_hidden_inputs(db) }}
<table id="noversions" class="table table-light table-striped table-hover w-auto">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Table' %}</th>

View File

@ -12,7 +12,7 @@
</div>
<table class="table table-light table-striped table-hover{{ items is empty ? ' hide' }}">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Name' %}</th>

View File

@ -32,7 +32,7 @@
</legend>
{% if is_arbitrary_server_allowed %}
<div class="item form-row">
<div class="item row g-3">
<label for="input_servername" class="col-4 d-flex align-items-center" title="{% trans 'You can enter hostname/IP address and port separated by space.' %}">
{% trans 'Server:' %}
</label>
@ -43,7 +43,7 @@
</div>
{% endif %}
<div class="item form-row">
<div class="item row g-3">
<label for="input_username" class="col-4 d-flex align-items-center">
{% trans 'Username:' %}
</label>
@ -52,7 +52,7 @@
</div>
</div>
<div class="item form-row">
<div class="item row g-3">
<label for="input_password" class="col-4 d-flex align-items-center">
{% trans 'Password:' %}
</label>
@ -62,7 +62,7 @@
</div>
{% if has_servers %}
<div class="item form-row">
<div class="item row g-3">
<label for="select_server" class="col-4 d-flex align-items-center">
{% trans 'Server choice:' %}
</label>

View File

@ -8,7 +8,7 @@
<div class="table-responsive">
<table class="table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Collation' %}</th>
<th scope="col">{% trans 'Description' %}</th>
@ -29,7 +29,7 @@
<td>
{{ collation.name }}
{% if collation.is_default %}
<span class="sr-only">{% trans '(default)' %}</span>
<span class="visually-hidden">{% trans '(default)' %}</span>
{% endif %}
</td>
<td>{{ collation.description }}</td>

View File

@ -95,7 +95,7 @@
{{ get_hidden_inputs(url_params) }}
<div class="table-responsive row">
<table class="table table-striped table-hover w-auto">
<thead class="thead-light">
<thead class="table-light">
<tr>
{% if is_drop_allowed %}
<th></th>
@ -250,7 +250,7 @@
{% endfor %}
</tbody>
<tfoot class="thead-light">
<tfoot class="table-light">
<tr>
<th colspan="{{ is_drop_allowed ? '3' : '2' }}">
{% trans 'Total:' %}

View File

@ -8,7 +8,7 @@
<div class="table-responsive">
<table class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Storage Engine' %}</th>
<th scope="col">{% trans 'Description' %}</th>

View File

@ -17,11 +17,11 @@
{% for type, list in plugins %}
<div class="row">
<div class="table-responsive col-12">
<table class="table table-light table-striped table-hover" id="plugins-{{ clean_types[type] }}">
<table class="table table-light table-striped table-hover caption-top" id="plugins-{{ clean_types[type] }}">
<caption>
{{ type }}
</caption>
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Plugin' %}</th>
<th scope="col">{% trans 'Description' %}</th>

View File

@ -9,7 +9,7 @@
</legend>
<table class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{{ type_label }}</th>
<th scope="col">{% trans 'Privileges' %}</th>

View File

@ -114,28 +114,28 @@
{% trans 'Create a new user account with the same privileges and …' %}
</legend>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="radio" name="mode" id="mode_4" value="4" checked>
<label class="form-check-label" for="mode_4">
{% trans '… keep the old one.' %}
</label>
</div>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="radio" name="mode" id="mode_1" value="1">
<label class="form-check-label" for="mode_1">
{% trans '… delete the old one from the user tables.' %}
</label>
</div>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="radio" name="mode" id="mode_2" value="2">
<label class="form-check-label" for="mode_2">
{% trans '… revoke all active privileges from the old one and delete it afterwards.' %}
</label>
</div>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="radio" name="mode" id="mode_3" value="3">
<label class="form-check-label" for="mode_3">
{% trans '… delete the old one from the user tables and reload the privileges afterwards.' %}

View File

@ -2,7 +2,7 @@
{{ get_hidden_inputs() }}
<div class="table-responsive">
<table id="userRightsTable" class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th scope="col">{% trans 'User name' %}</th>
@ -138,7 +138,7 @@
</label>
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input type="hidden" name="mode" value="2">
<input id="buttonGo" class="btn btn-primary ajax" type="submit" name="delete" value="{% trans 'Go' %}">
</div>

View File

@ -8,7 +8,7 @@
{% if data is empty %}
{{ 'Not enough privilege to view the advisor.'|trans|error }}
{% else %}
<button type="button" class="btn btn-secondary mb-4" data-toggle="modal" data-target="#advisorInstructionsModal">
<button type="button" class="btn btn-secondary mb-4" data-bs-toggle="modal" data-bs-target="#advisorInstructionsModal">
{{ get_icon('b_help', 'Instructions'|trans) }}
</button>
@ -17,9 +17,7 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="advisorInstructionsModalLabel">{% trans 'Advisor system' %}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="{% trans 'Close' %}">
<span aria-hidden="true">&times;</span>
</button>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Close' %}"></button>
</div>
<div class="modal-body">
<p>
@ -44,7 +42,7 @@
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">{% trans 'Close' %}</button>
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">{% trans 'Close' %}</button>
</div>
</div>
</div>
@ -68,7 +66,7 @@
{% for rule in data.fired %}
<div class="card">
<div class="card-header" id="heading{{ loop.index }}">
<button class="btn btn-link{{ not loop.first ? ' collapsed' }}" type="button" data-toggle="collapse" data-target="#collapse{{ loop.index }}" aria-expanded="{{ loop.first ? 'true' : 'false' }}" aria-controls="collapse{{ loop.index }}">
<button class="btn btn-link{{ not loop.first ? ' collapsed' }}" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{ loop.index }}" aria-expanded="{{ loop.first ? 'true' : 'false' }}" aria-controls="collapse{{ loop.index }}">
{{ rule.issue }}
</button>
</div>

View File

@ -1,6 +1,6 @@
<div class="responsivetable row">
<table id="tableprocesslist" class="table table-light table-striped table-hover sortable">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans 'Processes' %}</th>
{% for column in columns %}
@ -44,7 +44,7 @@
{% trans 'Kill' %}
</a>
</td>
<td class="text-monospace text-right">{{ row.id }}</td>
<td class="font-monospace text-end">{{ row.id }}</td>
<td>{{ row.user }}</td>
<td>{{ row.host }}</td>
<td>
@ -55,7 +55,7 @@
{% endif %}
</td>
<td>{{ row.command }}</td>
<td class="text-monospace text-right">{{ row.time }}</td>
<td class="font-monospace text-end">{{ row.time }}</td>
<td>{{ row.state }}</td>
<td>{{ row.progress }}</td>
<td>{{ row.info|raw }}</td>

View File

@ -32,7 +32,7 @@
<col class="valuecol" span="3">
</colgroup>
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Statements' %}</th>
<th scope="col">{% trans %}#{% notes %}# = Amount of queries{% endtrans %}</th>
@ -45,9 +45,9 @@
{% for query in queries %}
<tr>
<th scope="row">{{ query.name }}</th>
<td class="text-monospace text-right">{{ format_number(query.value, 5, 0, true) }}</td>
<td class="text-monospace text-right">{{ format_number(query.per_hour, 4, 1, true) }}</td>
<td class="text-monospace text-right">{{ format_number(query.percentage, 0, 2) }}</td>
<td class="font-monospace text-end">{{ format_number(query.value, 5, 0, true) }}</td>
<td class="font-monospace text-end">{{ format_number(query.per_hour, 4, 1, true) }}</td>
<td class="font-monospace text-end">{{ format_number(query.percentage, 0, 2) }}</td>
</tr>
{% endfor %}
</tbody>

View File

@ -8,7 +8,7 @@
<div class="row justify-content-between">
<table class="table table-light table-striped table-hover col-12 col-md-5">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">
{% trans 'Traffic' %}
@ -23,15 +23,15 @@
{% for each_traffic in traffic %}
<tr>
<th scope="row">{{ each_traffic.name }}</th>
<td class="text-monospace text-right">{{ each_traffic.number }}</td>
<td class="text-monospace text-right">{{ each_traffic.per_hour }}</td>
<td class="font-monospace text-end">{{ each_traffic.number }}</td>
<td class="font-monospace text-end">{{ each_traffic.per_hour }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="table table-light table-striped table-hover col-12 col-md-6">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Connections' %}</th>
<th scope="col">#</th>
@ -44,9 +44,9 @@
{% for connection in connections %}
<tr>
<th>{{ connection.name }}</th>
<td class="text-monospace text-right">{{ connection.number }}</td>
<td class="text-monospace text-right">{{ connection.per_hour }}</td>
<td class="text-monospace text-right">{{ connection.percentage }}</td>
<td class="font-monospace text-end">{{ connection.number }}</td>
<td class="font-monospace text-end">{{ connection.per_hour }}</td>
<td class="font-monospace text-end">{{ connection.percentage }}</td>
</tr>
{% endfor %}
</tbody>

View File

@ -67,7 +67,7 @@
<col class="valuecol">
<col class="descrcol">
</colgroup>
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Variable' %}</th>
<th scope="col">{% trans 'Value' %}</th>
@ -82,7 +82,7 @@
{{ variable.doc|raw }}
</th>
<td class="value text-monospace text-right">
<td class="value font-monospace text-end">
<span class="formatted">
{% if variable.has_alert %}
<span class="{{ variable.is_alert ? 'attention' : 'allfine' }}">

View File

@ -3,7 +3,7 @@
<form name="userGroupsForm" id="userGroupsForm" action="{{ action|raw }}" method="post">
{{ hidden_inputs|raw }}
<table class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr class="text-nowrap">
<th scope="col">
{% trans 'User groups' %}

View File

@ -25,11 +25,11 @@
<div class="table-responsive">
<table id="serverVariables" class="table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th scope="col">{% trans 'Action' %}</th>
<th scope="col">{% trans 'Variable' %}</th>
<th scope="col" class="text-right">{% trans 'Value' %}</th>
<th scope="col" class="text-end">{% trans 'Value' %}</th>
</tr>
</thead>
@ -45,7 +45,7 @@
</span>
{% endif %}
</td>
<td class="var-name font-weight-bold">
<td class="var-name fw-bold">
{% if variable.doc_link != null %}
<span title="{{ variable.name|replace({'_': ' '}) }}">
{{ variable.doc_link|raw }}
@ -54,7 +54,7 @@
{{ variable.name|replace({'_': ' '}) }}
{% endif %}
</td>
<td class="var-value text-right text-monospace{{ is_superuser ? ' editable' }}">
<td class="var-value text-end font-monospace{{ is_superuser ? ' editable' }}">
{% if variable.is_escaped %}
{{ variable.value|raw }}
{% else %}
@ -67,7 +67,7 @@
<tr class="var-row" data-filter-row="{{ variable.name|upper }}">
<td></td>
<td class="var-name font-italic">{{ variable.name|replace({'_': ' '}) }} ({% trans 'Session value' %})</td>
<td class="var-value text-right text-monospace">{{ variable.session_value }}</td>
<td class="var-value text-end font-monospace">{{ variable.session_value }}</td>
</tr>
{% endif %}
{% endfor %}

View File

@ -24,7 +24,7 @@
<tr>
<td>{{ loop.index }}</td>
<td>{{ state.status }}</td>
<td class="text-right">
<td class="text-end">
{{ state.duration }}s
<span class="rawvalue hide">{{ state.duration_raw }}</span>
</td>
@ -65,15 +65,15 @@
{% for name, stats in profiling.states %}
<tr>
<td>{{ name }}</td>
<td class="text-right">
<td class="text-end">
{{ format_number(stats.total_time, 3, 1) }}s
<span class="rawvalue hide">{{ stats.total_time }}</span>
</td>
<td class="text-right">
<td class="text-end">
{{ format_number(100 * (stats.total_time / profiling.total_time), 0, 2) }}%
</td>
<td class="text-right">{{ stats.calls }}</td>
<td class="text-right">
<td class="text-end">{{ stats.calls }}</td>
<td class="text-end">
{{ format_number(stats.total_time / stats.calls, 3, 1) }}s
<span class="rawvalue hide">
{{ (stats.total_time / stats.calls)|number_format(8, '.', '') }}

View File

@ -16,7 +16,7 @@
<div id="queryfieldscontainer">
<div class="row">
<div class="col">
<div class="form-group">
<div class="mb-3">
<textarea class="form-control" tabindex="100" name="sql_query" id="sqlquery" cols="{{ textarea_cols }}" rows="{{ textarea_rows }}"
{{- textarea_auto_select ? ' onclick="Functions.selectContent(this, sqlBoxLocked, true);"' }} aria-label="{% trans 'SQL query' %}">
{{- query -}}
@ -26,7 +26,7 @@
<div class="btn-toolbar" role="toolbar">
{% if columns_list is not empty %}
<div class="btn-group mr-2" role="group">
<div class="btn-group me-2" role="group">
<input type="button" value="SELECT *" id="selectall" class="btn btn-secondary button sqlbutton">
<input type="button" value="SELECT" id="select" class="btn btn-secondary button sqlbutton">
<input type="button" value="INSERT" id="insert" class="btn btn-secondary button sqlbutton">
@ -35,7 +35,7 @@
</div>
{% endif %}
<div class="btn-group mr-2" role="group">
<div class="btn-group me-2" role="group">
<input type="button" value="{% trans 'Clear' %}" id="clear" class="btn btn-secondary button sqlbutton">
{% if codemirror_enable %}
<input type="button" value="{% trans 'Format' %}" id="format" class="btn btn-secondary button sqlbutton">
@ -45,7 +45,7 @@
<input type="button" value="{% trans 'Get auto-saved query' %}" id="saved" class="btn btn-secondary button sqlbutton">
</div>
<div class="form-group mt-3">
<div class="my-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="parameterized" id="parameterized">
<label class="form-check-label" for="parameterized">
@ -54,13 +54,13 @@
</label>
</div>
</div>
<div class="form-group" id="parametersDiv"></div>
<div class="mb-3" id="parametersDiv"></div>
</div>
{% if columns_list is not empty %}
<div class="col-xl-2 col-lg-3">
<div class="form-group">
<label class="sr-only" for="fieldsSelect">{% trans 'Columns' %}</label>
<div class="mb-3">
<label class="visually-hidden" for="fieldsSelect">{% trans 'Columns' %}</label>
<select class="form-control" id="fieldsSelect" name="dummy" size="{{ textarea_rows }}" ondblclick="Functions.insertValueQuery()" multiple>
{% for field in columns_list %}
<option value="{{ backquote(field['Field']) }}"
@ -80,51 +80,63 @@
</div>
{% if has_bookmark %}
<div class="form-inline">
<div class="form-group">
<label for="bkm_label">{% trans 'Bookmark this SQL query:' %}</label>
<div class="row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label class="form-label" for="bkm_label">{% trans 'Bookmark this SQL query:' %}</label>
</div>
<div class="col-6">
<input class="form-control" type="text" name="bkm_label" id="bkm_label" tabindex="110" value="">
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="bkm_all_users" tabindex="111" id="id_bkm_all_users" value="true">
<label class="form-check-label" for="id_bkm_all_users">{% trans 'Let every user access this bookmark' %}</label>
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="bkm_all_users" tabindex="111" id="id_bkm_all_users" value="true">
<label class="form-check-label" for="id_bkm_all_users">{% trans 'Let every user access this bookmark' %}</label>
</div>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="bkm_replace" tabindex="112" id="id_bkm_replace" value="true">
<label class="form-check-label" for="id_bkm_replace">{% trans 'Replace existing bookmark of same name' %}</label>
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="bkm_replace" tabindex="112" id="id_bkm_replace" value="true">
<label class="form-check-label" for="id_bkm_replace">{% trans 'Replace existing bookmark of same name' %}</label>
</div>
</div>
</div>
{% endif %}
</div>
<div class="card-footer">
<div class="row">
<div class="form-inline col">
<div class="input-group mr-2">
<div class="input-group-prepend">
<span class="input-group-text">{% trans 'Delimiter' %}</span>
</div>
<label class="sr-only" for="id_sql_delimiter">{% trans 'Delimiter' %}</label>
<div class="row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<div class="input-group me-2">
<span class="input-group-text">{% trans 'Delimiter' %}</span>
<label class="visually-hidden" for="id_sql_delimiter">{% trans 'Delimiter' %}</label>
<input class="form-control" type="text" name="sql_delimiter" tabindex="131" size="3" value="{{ delimiter }}" id="id_sql_delimiter">
</div>
</div>
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="show_query" value="1" id="checkbox_show_query" tabindex="132">
<label class="form-check-label" for="checkbox_show_query">{% trans 'Show this query here again' %}</label>
</div>
</div>
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="retain_query_box" value="1" id="retain_query_box" tabindex="133"
{{- retain_query_box ? ' checked' }}>
<label class="form-check-label" for="retain_query_box">{% trans 'Retain query box' %}</label>
</div>
</div>
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="rollback_query" value="1" id="rollback_query" tabindex="134">
<label class="form-check-label" for="rollback_query">{% trans 'Rollback when finished' %}</label>
</div>
</div>
<div class="col-12">
<div class="form-check">
<input type="hidden" name="fk_checks" value="0">
<input class="form-check-input" type="checkbox" name="fk_checks" id="fk_checks" value="1"{{ is_foreign_key_check ? ' checked' }}>
@ -132,8 +144,8 @@
</div>
</div>
<div class="form-inline col-auto">
<input class="btn btn-primary ml-1" type="submit" id="button_submit_query" name="SQL" tabindex="200" value="{% trans 'Go' %}">
<div class="col-12">
<input class="btn btn-primary ms-1" type="submit" id="button_submit_query" name="SQL" tabindex="200" value="{% trans 'Go' %}">
</div>
</div>
</div>
@ -144,9 +156,11 @@
<div class="card mb-3">
<div class="card-header">{% trans 'Bookmarked SQL query' %}</div>
<div class="card-body">
<div class="form-inline">
<div class="form-group">
<label for="id_bookmark">{% trans 'Bookmark:' %}</label>
<div class="row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label class="form-label" for="id_bookmark">{% trans 'Bookmark:' %}</label>
</div>
<div class="col-6">
<select class="form-control" name="id_bookmark" id="id_bookmark">
<option value="">&nbsp;</option>
{% for bookmark in bookmarks %}
@ -160,15 +174,15 @@
</select>
</div>
<div class="form-check form-check-inline">
<div class="form-check form-check-inline col-12">
<input class="form-check-input" type="radio" name="action_bookmark" value="0" id="radio_bookmark_exe" checked>
<label class="form-check-label" for="radio_bookmark_exe">{% trans 'Submit' %}</label>
</div>
<div class="form-check form-check-inline">
<div class="form-check form-check-inline col-12">
<input class="form-check-input" type="radio" name="action_bookmark" value="1" id="radio_bookmark_view">
<label class="form-check-label" for="radio_bookmark_view">{% trans 'View only' %}</label>
</div>
<div class="form-check form-check-inline">
<div class="form-check form-check-inline col-12">
<input class="form-check-input" type="radio" name="action_bookmark" value="2" id="radio_bookmark_del">
<label class="form-check-label" for="radio_bookmark_del">{% trans 'Delete' %}</label>
</div>
@ -177,11 +191,11 @@
<div class="hide">
{% trans 'Variables' %}
{{ show_docu('faq', 'faqbookmark') }}
<div class="form-inline" id="bookmarkVariables"></div>
<div class="row row-cols-auto" id="bookmarkVariables"></div>
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-secondary" type="submit" name="SQL" id="button_submit_bookmark" value="{% trans 'Go' %}">
</div>
</div>

View File

@ -17,7 +17,7 @@
{% for row in rows %}
<tr>
<td>{{ row.Table }}</td>
<td class="text-right">
<td class="text-end">
{% if row.Checksum is not null %}
{{ row.Checksum }}
{% else %}

View File

@ -8,9 +8,9 @@
<div class="card mb-2">
<div class="card-header">{% trans 'Alter table order by' %}</div>
<div class="card-body">
<div class="form-row">
<div class="row g-3">
<div class="col-auto">
<label class="sr-only" for="tableOrderFieldSelect">{% trans 'Column' %}</label>
<label class="visually-hidden" for="tableOrderFieldSelect">{% trans 'Column' %}</label>
<select id="tableOrderFieldSelect" class="form-control" name="order_field" aria-describedby="tableOrderFieldSelectHelp">
{% for column in columns %}
<option value="{{ column.Field }}">{{ column.Field }}</option>
@ -34,7 +34,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>
@ -49,7 +49,7 @@
<div class="card mb-2">
<div class="card-header">{% trans 'Move table to (database.table)' %}</div>
<div class="card-body">
<div class="form-group form-row">
<div class="mb-3 row g-3">
<div class="col-auto">
<div class="input-group">
{% if database_list is not empty %}
@ -61,9 +61,7 @@
{% else %}
<input id="moveTableDatabaseInput" class="form-control" type="text" maxlength="100" name="target_db" value="{{ db }}" aria-label="{% trans 'Database' %}">
{% endif %}
<div class="input-group-prepend input-group-append">
<span class="input-group-text">.</span>
</div>
<span class="input-group-text">.</span>
<input class="form-control" type="text" required="required" name="new_name" maxlength="64" value="{{ table }}" aria-label="{% trans 'Table' %}">
</div>
</div>
@ -84,7 +82,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" name="submit_move" value="{% trans 'Go' %}">
</div>
</div>
@ -102,12 +100,14 @@
<div class="card mb-2">
<div class="card-header">{% trans 'Table options' %}</div>
<div class="card-body">
<div class="form-group form-inline">
<div class="form-group">
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label for="renameTableInput">{% trans 'Rename table to' %}</label>
<input class="form-control mx-2" id="renameTableInput" type="text" name="new_name" maxlength="64" value="{{ table }}" required>
</div>
<div class="form-check">
<div class="col-6">
<input class="form-control" id="renameTableInput" type="text" name="new_name" maxlength="64" value="{{ table }}" required>
</div>
<div class="form-check col-12">
<input class="form-check-input" type="checkbox" name="adjust_privileges" value="1" id="checkbox_privileges_table_options"
{%- if has_privileges %} checked{% else %} title="
{%- trans 'You don\'t have sufficient privileges to perform this operation; Please refer to the documentation for more details.' %}" disabled{% endif %}>
@ -118,102 +118,126 @@
</div>
</div>
<div class="form-group form-inline">
<label for="tableCommentsInput">{% trans 'Table comments' %}</label>
<input class="form-control ml-2" id="tableCommentsInput" type="text" name="comment" maxlength="2048" value="{{ table_comment }}">
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label for="tableCommentsInput">{% trans 'Table comments' %}</label>
</div>
<div class="col-6">
<input class="form-control" id="tableCommentsInput" type="text" name="comment" maxlength="2048" value="{{ table_comment }}">
</div>
</div>
<div class="form-group form-inline">
<label class="text-nowrap" for="newTableStorageEngineSelect">
{% trans 'Storage engine' %}
{{ show_mysql_docu('Storage_engines') }}
</label>
<select class="form-control ml-2" name="new_tbl_storage_engine" id="newTableStorageEngineSelect">
{% for engine in storage_engines %}
<option value="{{ engine.name }}"{% if engine.comment is not empty %} title="{{ engine.comment }}"{% endif %}
{{- engine.name|lower == storage_engine|lower or (storage_engine is empty and engine.is_default) ? ' selected' }}>
{{- engine.name -}}
</option>
{% endfor %}
</select>
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label class="text-nowrap" for="newTableStorageEngineSelect">
{% trans 'Storage engine' %}
{{ show_mysql_docu('Storage_engines') }}
</label>
</div>
<div class="col-6">
<select class="form-control" name="new_tbl_storage_engine" id="newTableStorageEngineSelect">
{% for engine in storage_engines %}
<option value="{{ engine.name }}"{% if engine.comment is not empty %} title="{{ engine.comment }}"{% endif %}
{{- engine.name|lower == storage_engine|lower or (storage_engine is empty and engine.is_default) ? ' selected' }}>
{{- engine.name -}}
</option>
{% endfor %}
</select>
</div>
</div>
<div class="form-group form-inline">
<label for="collationSelect">{% trans 'Collation' %}</label>
<select class="form-control mx-2" id="collationSelect" lang="en" dir="ltr" name="tbl_collation">
<option value=""></option>
{% for charset in charsets %}
<optgroup label="{{ charset.getName() }}" title="{{ charset.getDescription() }}">
{% for collation in collations[charset.getName()] %}
<option value="{{ collation.getName() }}" title="{{ collation.getDescription() }}"{{ tbl_collation == collation.getName() ? ' selected' }}>
{{ collation.getName() }}
</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label for="collationSelect">{% trans 'Collation' %}</label>
</div>
<div class="col-6">
<select class="form-control" id="collationSelect" lang="en" dir="ltr" name="tbl_collation">
<option value=""></option>
{% for charset in charsets %}
<optgroup label="{{ charset.getName() }}" title="{{ charset.getDescription() }}">
{% for collation in collations[charset.getName()] %}
<option value="{{ collation.getName() }}" title="{{ collation.getDescription() }}"{{ tbl_collation == collation.getName() ? ' selected' }}>
{{ collation.getName() }}
</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</div>
<div class="form-check">
<div class="form-check col-12 ms-3">
<input class="form-check-input" type="checkbox" name="change_all_collations" value="1" id="checkbox_change_all_collations">
<label class="form-check-label" for="checkbox_change_all_collations">{% trans 'Change all column collations' %}</label>
</div>
</div>
{% if has_pack_keys %}
<div class="form-group form-inline">
<label for="new_pack_keys">PACK_KEYS</label>
<select class="form-control ml-2" name="new_pack_keys" id="new_pack_keys">
<option value="DEFAULT"{{ pack_keys == 'DEFAULT' ? ' selected' }}>DEFAULT</option>
<option value="0"{{ pack_keys == '0' ? ' selected' }}>0</option>
<option value="1"{{ pack_keys == '1' ? ' selected' }}>1</option>
</select>
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-6">
<label for="new_pack_keys">PACK_KEYS</label>
</div>
<div class="col-6">
<select class="form-control" name="new_pack_keys" id="new_pack_keys">
<option value="DEFAULT"{{ pack_keys == 'DEFAULT' ? ' selected' }}>DEFAULT</option>
<option value="0"{{ pack_keys == '0' ? ' selected' }}>0</option>
<option value="1"{{ pack_keys == '1' ? ' selected' }}>1</option>
</select>
</div>
</div>
{% endif %}
{% if has_checksum_and_delay_key_write %}
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="checkbox" name="new_checksum" id="new_checksum" value="1"{{ checksum == '1' ? ' checked' }}>
<label class="form-check-label" for="new_checksum">CHECKSUM</label>
</div>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="checkbox" name="new_delay_key_write" id="new_delay_key_write" value="1"{{ delay_key_write == '1' ? ' checked' }}>
<label class="form-check-label" for="new_delay_key_write">DELAY_KEY_WRITE</label>
</div>
{% endif %}
{% if has_transactional_and_page_checksum %}
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="checkbox" name="new_transactional" id="new_transactional" value="1"{{ transactional == '1' ? ' checked' }}>
<label class="form-check-label" for="new_transactional">TRANSACTIONAL</label>
</div>
<div class="form-group form-check">
<div class="mb-3 form-check">
<input class="form-check-input" type="checkbox" name="new_page_checksum" id="new_page_checksum" value="1"{{ page_checksum == '1' ? ' checked' }}>
<label class="form-check-label" for="new_page_checksum">PAGE_CHECKSUM</label>
</div>
{% endif %}
{% if has_auto_increment %}
<div class="form-group form-inline">
<label for="auto_increment_opt">AUTO_INCREMENT</label>
<input class="form-control ml-2" id="auto_increment_opt" type="number" name="new_auto_increment" value="{{ auto_increment }}">
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<label for="auto_increment_opt">AUTO_INCREMENT</label>
</div>
<div class="col-12">
<input class="form-control" id="auto_increment_opt" type="number" name="new_auto_increment" value="{{ auto_increment }}">
</div>
</div>
{% endif %}
{% if row_formats is not empty %}
<div class="form-group form-inline">
<label for="new_row_format">ROW_FORMAT</label>
<select class="form-control ml-2" id="new_row_format" name="new_row_format">
{% for row_format in row_formats %}
<option value="{{ row_format }}"{{ row_format == row_format_current|upper ? ' selected' }}>{{ row_format }}</option>
{% endfor %}
</select>
<div class="mb-3 row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<label for="new_row_format">ROW_FORMAT</label>
</div>
<div class="col-12">
<select class="form-control" id="new_row_format" name="new_row_format">
{% for row_format in row_formats %}
<option value="{{ row_format }}"{{ row_format == row_format_current|upper ? ' selected' }}>{{ row_format }}</option>
{% endfor %}
</select>
</div>
</div>
{% endif %}
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>
@ -226,7 +250,7 @@
<div class="card mb-2">
<div class="card-header">{% trans 'Copy table to (database.table)' %}</div>
<div class="card-body">
<div class="form-group form-row">
<div class="mb-3 row g-3">
<div class="col-auto">
<div class="input-group">
{% if database_list is not empty %}
@ -238,15 +262,13 @@
{% else %}
<input class="form-control" type="text" maxlength="100" name="target_db" value="{{ db }}" aria-label="{% trans 'Database' %}">
{% endif %}
<div class="input-group-prepend input-group-append">
<span class="input-group-text">.</span>
</div>
<span class="input-group-text">.</span>
<input class="form-control" type="text" name="new_name" maxlength="64" value="{{ table }}" aria-label="{% trans 'Table' %}" required>
</div>
</div>
</div>
<div class="form-group">
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="what" id="whatRadio1" value="structure">
<label class="form-check-label" for="whatRadio1">
@ -267,7 +289,7 @@
</div>
</div>
<div class="form-group">
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="drop_if_exists" value="true" id="checkbox_drop">
<label class="form-check-label" for="checkbox_drop">{{ 'Add %s'|trans|format('DROP TABLE') }}</label>
@ -302,7 +324,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" name="submit_copy" value="{% trans 'Go' %}">
</div>
</div>
@ -432,7 +454,7 @@
</div>
<div class="card-body">
<div class="form-group">
<div class="mb-3">
<label for="partition_name">{% trans 'Partition' %}</label>
<select class="form-control" id="partition_name" name="partition_name[]" multiple required>
{% for partition in partitions %}
@ -441,7 +463,7 @@
</select>
</div>
<div class="form-group form-check-inline">
<div class="mb-3 form-check-inline">
{% for value, description in partitions_choices %}
<div class="form-check">
<input class="form-check-input" type="radio" name="partition_operation" id="partitionOperationRadio{{ value|capitalize }}" value="{{ value }}"{{ value == 'ANALYZE' ? ' checked' }}>
@ -457,7 +479,7 @@
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>

View File

@ -7,12 +7,16 @@
<div class="card mb-2">
<div class="card-header">{% trans 'Operations' %}</div>
<div class="card-body">
<div class="form-inline">
<label for="newNameInput">{% trans 'Rename view to' %}</label>
<input id="newNameInput" class="form-control ml-2" type="text" name="new_name" onfocus="this.select()" value="{{ table }}" required>
<div class="row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<label for="newNameInput">{% trans 'Rename view to' %}</label>
</div>
<div class="col-12">
<input id="newNameInput" class="form-control" type="text" name="new_name" onfocus="this.select()" value="{{ table }}" required>
</div>
</div>
</div>
<div class="card-footer text-right">
<div class="card-footer text-end">
<input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
</div>
</div>

View File

@ -13,7 +13,7 @@
<div class="table-responsive-md jsresponsive">
<table class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'User name' %}</th>

View File

@ -9,7 +9,7 @@
<legend>{% trans 'Foreign key constraints' %}</legend>
<div class="table-responsive-md jsresponsive">
<table class="relationalTable table table-light table-striped">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans 'Actions' %}</th>
<th>{% trans 'Constraint properties' %}</th>
@ -112,7 +112,7 @@
{{ show_docu('config', 'cfg_Servers_relation') }}
</legend>
<table class="relationalTable table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans 'Column' %}</th>
<th>

View File

@ -30,7 +30,7 @@
</legend>
<div class="table-responsive-md jsresponsive">
<table class="table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
{% if geom_column_flag %}
<th>{% trans 'Function' %}</th>

View File

@ -18,7 +18,7 @@
<p>
{% endif %}
<table class="table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th colspan="2">#</th>
<th>{% trans 'Partition' %}</th>

View File

@ -15,7 +15,7 @@
<div class="table-responsive-md">
<table id="tablestructure" class="table table-light table-striped table-hover">
{# Table header #}
<thead class="thead-light">
<thead class="table-light">
<tr>
<th class="print_ignore"></th>
<th>#</th>
@ -334,7 +334,7 @@
{% if not tbl_is_view and not db_is_system_schema %}
{# Only display propose table structure for MySQL < 8.0 #}
{% if mysql_int_version < 80000 or is_mariadb %}
<a class="mr-0" href="{{ url('/sql') }}" data-post="{{ get_common({
<a class="me-0" href="{{ url('/sql') }}" data-post="{{ get_common({
'db': db,
'table': table,
'sql_query': 'SELECT * FROM ' ~ backquote(table) ~ ' PROCEDURE ANALYSE()',
@ -408,7 +408,7 @@
<div class="table-responsive jsresponsive">
<table class="table table-light table-striped table-hover table-sm" id="table_index">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th colspan="3" class="print_ignore">{% trans 'Action' %}</th>
<th>{% trans 'Keyname' %}</th>
@ -498,7 +498,7 @@
{% endif %}
</fieldset>
<fieldset class="tblFooters print_ignore text-left">
<fieldset class="tblFooters print_ignore text-start">
<form action="{{ url('/table/indexes') }}" method="post">
{{ get_hidden_inputs(db, table) }}
<input type="hidden" name="create_index" value="1">

View File

@ -10,7 +10,7 @@
<a id="showusage"></a>
{% if not tbl_is_view and not db_is_system_schema %}
<table class="table table-light table-striped table-hover table-sm w-auto">
<table class="table table-light table-striped table-hover table-sm w-auto caption-top">
<caption>{% trans 'Space usage' %}</caption>
<tbody>
<tr>
@ -56,7 +56,7 @@
or tbl_storage_engine == 'MARIA'
or tbl_storage_engine == 'BDB')
or (tbl_storage_engine == 'INNODB' and innodb_file_per_table == true) %}
<tfoot class="thead-light">
<tfoot class="table-light">
<tr class="print_ignore">
<th colspan="3" class="center">
<a href="{{ url('/sql') }}" data-post="{{ get_common({
@ -76,7 +76,7 @@
{% set avg_size = avg_size is defined ? avg_size : null %}
{% set avg_unit = avg_unit is defined ? avg_unit : null %}
<table class="table table-light table-striped table-hover table-sm w-auto">
<table class="table table-light table-striped table-hover table-sm w-auto caption-top">
<caption>{% trans 'Row statistics' %}</caption>
<tbody>
{% if showtable['Row_format'] is defined %}

View File

@ -22,7 +22,7 @@
<form method="post" action="{{ url('/table/tracking') }}" name="versionsForm" id="versionsForm" class="ajax">
{{ get_hidden_inputs(db, table) }}
<table id="versions" class="table table-light table-striped table-hover table-sm">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th></th>
<th>{% trans 'Version' %}</th>

View File

@ -1,5 +1,5 @@
<table id="{{ table_id }}" class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans %}#{% context %}Number{% endtrans %}</th>
<th>{% trans 'Date' %}</th>

View File

@ -1,6 +1,6 @@
<h3>{% trans 'Structure' %}</h3>
<table id="tablestructure" class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans %}#{% context %}Number{% endtrans %}</th>
<th>{% trans 'Column' %}</th>

View File

@ -1,6 +1,6 @@
<h3>{% trans 'Indexes' %}</h3>
<table id="tablestructure_indexes" class="table table-light table-striped table-hover">
<thead class="thead-light">
<thead class="table-light">
<tr>
<th>{% trans 'Keyname' %}</th>
<th>{% trans 'Type' %}</th>

View File

@ -30,7 +30,7 @@
</legend>
<table class="table table-light table-striped table-hover table-sm" id="tableFieldsId">
<thead class="thead-light">
<thead class="table-light">
<tr>
{% if geom_column_flag %}
<th>{% trans 'Function' %}</th>

View File

@ -1,6 +1,6 @@
<div id="topmenucontainer" class="menucontainer">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-label="
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-label="
{%- trans %}Toggle navigation{% notes %}Show or hide the menu using the hamburger style button{% endtrans %}" aria-controls="navbarNav" aria-expanded="false">
<span class="navbar-toggler-icon"></span>
</button>
@ -11,7 +11,7 @@
<a class="nav-link text-nowrap" href="{{ url(tab.route, url_params|merge(tab.args ?? [])) }}">
{{ get_icon(tab.icon, tab.text, false, true, 'TabsMode') }}
{% if tab.active %}
<span class="sr-only">{% trans %}(current){% notes %}Current page{% endtrans %}</span>
<span class="visually-hidden">{% trans %}(current){% notes %}Current page{% endtrans %}</span>
{% endif %}
</a>
</li>

View File

@ -59,7 +59,7 @@ class CollationsControllerTest extends AbstractTestCase
'utf8_general_ci',
$actual
);
$this->assertStringContainsString('<span class="sr-only">(default)</span>', $actual);
$this->assertStringContainsString('<span class="visually-hidden">(default)</span>', $actual);
$this->assertStringContainsString(
'<td>Unicode, case-insensitive</td>',
$actual

View File

@ -98,12 +98,12 @@ class StatusControllerTest extends AbstractTestCase
);
//$bytes_received
$this->assertStringContainsString(
'<td class="text-monospace text-right">' . $bytesReceived . ' B',
'<td class="font-monospace text-end">' . $bytesReceived . ' B',
$html
);
//$bytes_sent
$this->assertStringContainsString(
'<td class="text-monospace text-right">' . $bytesSent . ' B',
'<td class="font-monospace text-end">' . $bytesSent . ' B',
$html
);
@ -126,7 +126,7 @@ class StatusControllerTest extends AbstractTestCase
);
//Max_used_connections
$this->assertStringContainsString(
'<td class="text-monospace text-right">' . $maxUsedConnections,
'<td class="font-monospace text-end">' . $maxUsedConnections,
$html
);
$this->assertStringContainsString(
@ -135,7 +135,7 @@ class StatusControllerTest extends AbstractTestCase
);
//Aborted_connects
$this->assertStringContainsString(
'<td class="text-monospace text-right">' . $abortedConnections,
'<td class="font-monospace text-end">' . $abortedConnections,
$html
);
$this->assertStringContainsString(

View File

@ -140,11 +140,11 @@ class InnodbTest extends AbstractTestCase
public function testGetPageBufferpool(): void
{
$this->assertEquals(
'<table class="table table-light table-striped table-hover w-auto float-left">' . "\n" .
'<table class="table table-light table-striped table-hover w-auto float-start caption-top">' . "\n" .
' <caption>' . "\n" .
' Buffer Pool Usage' . "\n" .
' </caption>' . "\n" .
' <tfoot class="thead-light">' . "\n" .
' <tfoot class="table-light">' . "\n" .
' <tr>' . "\n" .
' <th colspan="2">' . "\n" .
' Total: 4,096&nbsp;pages / 65,536&nbsp;KiB' . "\n" .
@ -154,61 +154,61 @@ class InnodbTest extends AbstractTestCase
' <tbody>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Free pages</th>' . "\n" .
' <td class="text-monospace text-right">0</td>' . "\n" .
' <td class="font-monospace text-end">0</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Dirty pages</th>' . "\n" .
' <td class="text-monospace text-right">0</td>' . "\n" .
' <td class="font-monospace text-end">0</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Pages containing data</th>' . "\n" .
' <td class="text-monospace text-right">0' . "\n" .
' <td class="font-monospace text-end">0' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Pages to be flushed</th>' . "\n" .
' <td class="text-monospace text-right">0' . "\n" .
' <td class="font-monospace text-end">0' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Busy pages</th>' . "\n" .
' <td class="text-monospace text-right">0' . "\n" .
' <td class="font-monospace text-end">0' . "\n" .
'</td>' . "\n" .
' </tr> </tbody>' . "\n" .
'</table>' . "\n\n" .
'<table class="table table-light table-striped table-hover w-auto ml-4 float-left">' . "\n" .
'<table class="table table-light table-striped table-hover w-auto ms-4 float-start caption-top">' . "\n" .
' <caption>' . "\n" .
' Buffer Pool Activity' . "\n" .
' </caption>' . "\n" .
' <tbody>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Read requests</th>' . "\n" .
' <td class="text-monospace text-right">64' . "\n" .
' <td class="font-monospace text-end">64' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Write requests</th>' . "\n" .
' <td class="text-monospace text-right">64' . "\n" .
' <td class="font-monospace text-end">64' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Read misses</th>' . "\n" .
' <td class="text-monospace text-right">32' . "\n" .
' <td class="font-monospace text-end">32' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Write waits</th>' . "\n" .
' <td class="text-monospace text-right">0' . "\n" .
' <td class="font-monospace text-end">0' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Read misses in %</th>' . "\n" .
' <td class="text-monospace text-right">50 %' . "\n" .
' <td class="font-monospace text-end">50 %' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' <tr>' . "\n" .
' <th scope="row">Write waits in %</th>' . "\n" .
' <td class="text-monospace text-right">0 %' . "\n" .
' <td class="font-monospace text-end">0 %' . "\n" .
'</td>' . "\n" .
' </tr>' . "\n" .
' </tbody>' . "\n" .

View File

@ -6,12 +6,12 @@
.form-check {
padding-left: inherit;
padding-right: $form-check-input-gutter;
padding-right: $form-check-padding-start;
}
.form-check-input {
margin-left: inherit;
margin-right: -$form-check-input-gutter;
margin-right: $form-check-padding-start * -1;
}
//

View File

@ -1,11 +1,16 @@
// scss-docs-start import-stack
// Configuration
@import "../../../node_modules/bootstrap/scss/functions";
@import "../../../node_modules/bootstrap/scss/variables";
@import "../../../node_modules/bootstrap/scss/mixins";
@import "../../../node_modules/bootstrap/scss/utilities";
// Layout & components
@import "../../../node_modules/bootstrap/scss/root";
@import "../../../node_modules/bootstrap/scss/reboot";
@import "../../../node_modules/bootstrap/scss/type";
//@import "../../../node_modules/bootstrap/scss/images";
@import "../../../node_modules/bootstrap/scss/code";
@import "../../../node_modules/bootstrap/scss/containers";
@import "../../../node_modules/bootstrap/scss/grid";
@import "../../../node_modules/bootstrap/scss/tables";
@import "../../../node_modules/bootstrap/scss/forms";
@ -13,24 +18,27 @@
@import "../../../node_modules/bootstrap/scss/transitions";
@import "../../../node_modules/bootstrap/scss/dropdown";
@import "../../../node_modules/bootstrap/scss/button-group";
@import "../../../node_modules/bootstrap/scss/input-group";
@import "../../../node_modules/bootstrap/scss/custom-forms";
@import "../../../node_modules/bootstrap/scss/nav";
@import "../../../node_modules/bootstrap/scss/navbar";
@import "../../../node_modules/bootstrap/scss/card";
@import "../../../node_modules/bootstrap/scss/accordion";
@import "../../../node_modules/bootstrap/scss/breadcrumb";
//@import "../../../node_modules/bootstrap/scss/pagination";
@import "../../../node_modules/bootstrap/scss/pagination";
@import "../../../node_modules/bootstrap/scss/badge";
//@import "../../../node_modules/bootstrap/scss/jumbotron";
@import "../../../node_modules/bootstrap/scss/alert";
//@import "../../../node_modules/bootstrap/scss/progress";
//@import "../../../node_modules/bootstrap/scss/media";
@import "../../../node_modules/bootstrap/scss/list-group";
@import "../../../node_modules/bootstrap/scss/close";
//@import "../../../node_modules/bootstrap/scss/toasts";
@import "../../../node_modules/bootstrap/scss/modal";
//@import "../../../node_modules/bootstrap/scss/tooltip";
//@import "../../../node_modules/bootstrap/scss/popover";
//@import "../../../node_modules/bootstrap/scss/carousel";
@import "../../../node_modules/bootstrap/scss/utilities";
@import "../../../node_modules/bootstrap/scss/print";
@import "bootstrap-rtl";
@import "../../../node_modules/bootstrap/scss/spinners";
// Helpers
@import "../../../node_modules/bootstrap/scss/helpers";
// Utilities
@import "../../../node_modules/bootstrap/scss/utilities/api";
// scss-docs-end import-stack

View File

@ -4,7 +4,7 @@
.breadcrumb-item {
+ .breadcrumb-comment {
padding-left: $breadcrumb-item-padding;
padding-left: $breadcrumb-item-padding-x;
}
.icon {

View File

@ -51,6 +51,7 @@ $enable-transitions: false;
// Breadcrumbs
$breadcrumb-bg: #e9ecef;
$breadcrumb-padding-y: 0.5rem;
$breadcrumb-margin-bottom: 0;
$breadcrumb-border-radius: 0;

View File

@ -22,7 +22,7 @@
}
+ .breadcrumb-comment {
padding-left: $breadcrumb-item-padding;
padding-left: $breadcrumb-item-padding-x;
}
.icon {

View File

@ -4,7 +4,7 @@
vertical-align: middle;
}
.thead-light {
.table-light {
th {
font-family: $font-family-bold;
font-weight: normal;

View File

@ -5,7 +5,7 @@
.breadcrumb-item {
+ .breadcrumb-comment {
padding-left: $breadcrumb-item-padding;
padding-left: $breadcrumb-item-padding-x;
}
.icon {

View File

@ -21,7 +21,7 @@
.table-hover {
tbody tr {
@include hover() {
&:hover {
background: linear-gradient(#ced6df, #b6c6d7);
}
}

View File

@ -1149,6 +1149,11 @@
"@nodelib/fs.scandir" "2.1.3"
fastq "^1.6.0"
"@popperjs/core@^2.6.0":
version "2.6.0"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f"
integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==
"@stylelint/postcss-css-in-js@^0.37.2":
version "0.37.2"
resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2"
@ -1409,10 +1414,10 @@ blueimp-md5@^2.18.0:
resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935"
integrity sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==
bootstrap@4.5.3:
version "4.5.3"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz#c6a72b355aaf323920be800246a6e4ef30997fe6"
integrity sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==
bootstrap@5.0.0-beta1:
version "5.0.0-beta1"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.0.0-beta1.tgz#18135001a452b3ec38b344ac638a1f9549285ee7"
integrity sha512-UrHApw/WRmT7l2rlDdn5iXr7Jps/LlMZtJlLn9G41aGDfss48hyDeYyHtX1C6NHKVcmdUarGG+ve0LZB5iHyTQ==
brace-expansion@^1.1.7:
version "1.1.11"
@ -3377,11 +3382,6 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
popper.js@^1.16.1:
version "1.16.1"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"