Merge pull request #15563 from mauriciofauth/bootstrap-cards

Convert main panels to Bootstrap cards
This commit is contained in:
Maurício Meneghini Fauth 2019-11-10 10:07:43 -03:00 committed by GitHub
commit ce38c4548a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 217 additions and 295 deletions

View File

@ -785,7 +785,7 @@ AJAX.registerOnload('config.js', function () {
$(document).on('click', 'div.click-hide-message', function () {
$(this)
.hide()
.parent('.group')
.parent('.card-body')
.css('height', '')
.next('form')
.show();
@ -818,7 +818,7 @@ function savePrefsToLocalStorage (form) {
updatePrefsDate();
$('div.localStorage-empty').hide();
$('div.localStorage-exists').show();
var group = $form.parent('.group');
var group = $form.parent('.card-body');
group.css('height', group.height() + 'px');
$form.hide('fast');
$form.prev('.click-hide-message').show('fast');

View File

@ -10,23 +10,28 @@
{{ sync_favorite_tables|raw }}
<div class="container-fluid">
<div class="row">
<div id="main_pane_left" class="col-7 col-xs-12">
<div class="col-7 col-xs-12">
{% if has_server %}
{% if is_demo %}
<div class="group">
<h2>{% trans 'phpMyAdmin Demo Server' %}</h2>
<p class="cfg_dbg_demo">
<div class="card mt-4">
<div class="card-header">
{% trans 'phpMyAdmin Demo Server' %}
</div>
<div class="card-body">
{% filter format('<a href="url.php?url=https://demo.phpmyadmin.net/" target="_blank" rel="noopener noreferrer">demo.phpmyadmin.net</a>')|raw %}
{% trans %}
You are using the demo server. You can do anything here, but please do not change root, debian-sys-maint and pma users. More information is available at %s.
{% endtrans %}
{% endfilter %}
</p>
</div>
</div>
{% endif %}
<div class="group">
<h2>{% trans 'General settings' %}</h2>
<div class="card mt-4">
<div class="card-header">
{% trans 'General settings' %}
</div>
<div class="card-body">
<ul>
{% if has_server_selection %}
<li id="li_select_server" class="no_bullets">
@ -66,11 +71,15 @@
{% endif %}
{{ user_preferences is not empty ? user_preferences|raw }}
</ul>
</div>
</div>
{% endif %}
<div class="group">
<h2>{% trans 'Appearance settings' %}</h2>
<div class="card mt-4">
<div class="card-header">
{% trans 'Appearance settings' %}
</div>
<div class="card-body">
<ul>
{% if language_selector is not empty %}
<li id="li_select_lang" class="no_bullets">
@ -86,13 +95,17 @@
</li>
{% endif %}
</ul>
</div>
</div>
</div>
<div id="main_pane_right" class="col-5 col-xs-12">
<div class="col-5 col-xs-12">
{% if database_server is not empty %}
<div class="group">
<h2>{% trans 'Database server' %}</h2>
<div class="card mt-4">
<div class="card-header">
{% trans 'Database server' %}
</div>
<div class="card-body">
<ul>
<li id="li_server_info">
{% trans 'Server:' %}
@ -125,12 +138,16 @@
</span>
</li>
</ul>
</div>
</div>
{% endif %}
{% if web_server is not empty or php_info is not empty %}
<div class="group">
<h2>{% trans 'Web server' %}</h2>
<div class="card mt-4">
<div class="card-header">
{% trans 'Web server' %}
</div>
<div class="card-body">
<ul>
{% if web_server is not empty %}
<li id="li_web_server_software">
@ -156,11 +173,15 @@
{{ php_info|raw }}
{% endif %}
</ul>
</div>
</div>
{% endif %}
<div class="group pmagroup">
<h2>phpMyAdmin</h2>
<div class="card mt-4">
<div class="card-header">
phpMyAdmin
</div>
<div class="card-body">
<ul>
<li id="li_pma_version"{{ is_version_checked ? ' class="jsversioncheck"' }}>
{% trans 'Version information:' %}
@ -197,6 +218,7 @@
</a>
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -5,10 +5,13 @@
<div class="row">
<div id="maincontainer" class="container-fluid">
<div class="row">
<div id="main_pane_left" class="col-12 col-md-7">
<div class="group">
<h2> {% trans 'Import' %} </h2>
<form class="group-cnt prefs-form disableAjax" name="prefs_import" action="{{ url('/preferences/manage') }}" method="post"
<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">
{{ generate_hidden_max_file_size(max_upload_size) }}
{{ get_hidden_inputs() }}
@ -42,27 +45,33 @@
<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="group">
<h2>{% trans 'More settings' %}</h2>
<div class="group-cnt">
{{ '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 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 id="main_pane_right" class="col-12 col-md-5">
<div class="group">
<h2>{% trans 'Export' %}</h2>
<div class="click-hide-message group-cnt hide">
<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="group-cnt prefs-form disableAjax" name="prefs_export"
<form class="prefs-form disableAjax" name="prefs_export"
action="{{ url('/preferences/manage') }}" method="post">
{{ get_hidden_inputs() }}
<div>
@ -98,16 +107,21 @@
<br>
<input class="btn btn-primary" type="submit" name="submit_export" value="{% trans 'Go' %}">
</form>
</div>
</div>
<div class="group">
<h2>{% trans 'Reset' %}</h2>
<form class="group-cnt prefs-form disableAjax" name="prefs_reset"
<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>

View File

@ -1,11 +1,17 @@
<div class="group">
<h2>{% trans "Configure two-factor authentication" %}</h2>
<div class="group-cnt">
<form method="post" action="{{ url('/preferences/twofactor') }}">
{{ 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 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/twofactor') }}">
{{ 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,12 +1,18 @@
<div class="group">
<h2>{% trans "Confirm disabling two-factor authentication" %}</h2>
<div class="group-cnt">
<form method="post" action="{{ url('/preferences/twofactor') }}">
{{ "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 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/twofactor') }}">
{{ "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,9 +1,11 @@
<div class="group row">
<h2>
{% trans "Two-factor authentication status" %}
{{ show_docu('two_factor') }}
</h2>
<div class="group-cnt">
<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>
@ -23,13 +25,19 @@
{% 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="group row">
<h2>{{ backend_name }}</h2>
<div class="group-cnt">
<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>
<form method="post" action="{{ url('/preferences/twofactor') }}">
@ -37,12 +45,18 @@
<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="group row">
<h2>{% trans "Configure two-factor authentication" %}</h2>
<div class="group-cnt">
<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/twofactor') }}">
{{ get_hidden_inputs() }}
{% for backend in backends %}
@ -55,6 +69,8 @@
{% endfor %}
<input class="btn btn-secondary" type="submit" value="{% trans "Configure two-factor authentication" %}">
</form>
</div>
</div>
</div>
</div>
{% endif %}

View File

@ -1020,10 +1020,6 @@ label.col-3.d-flex.align-items-center {
margin: 5px 2px;
}
.cfg_dbg_demo {
margin: 0.5em 1em 0.5em 1em;
}
.central_columns_navigation {
padding: 1.5% 0 !important;
}
@ -2035,60 +2031,6 @@ div.sqlvalidate {
background: $bg-one;
}
#main_pane_left {
width: 60%;
min-width: 260px;
float: $left;
padding-top: 1em;
}
#main_pane_right {
overflow: hidden;
min-width: 160px;
padding-top: 1em;
}
.group {
border: 1px solid #999;
background: #f3f3f3;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
@if $direction == rtl {
-moz-box-shadow: -2px 2px 5px #ccc;
-webkit-box-shadow: -2px 2px 5px #ccc;
box-shadow: -2px 2px 5px #ccc;
} @else {
-moz-box-shadow: 2px 2px 5px #ccc;
-webkit-box-shadow: 2px 2px 5px #ccc;
box-shadow: 2px 2px 5px #ccc;
}
margin-bottom: 1em;
padding-bottom: 1em;
h2 {
background-color: #bbb;
padding: 0.1em 0.3em;
margin-top: 0;
color: #fff;
font-size: 1.6em;
font-weight: normal;
text-shadow: 0 1px 0 #777;
-moz-box-shadow: 1px 1px 15px #999 inset;
-webkit-box-shadow: 1px 1px 15px #999 inset;
box-shadow: 1px 1px 15px #999 inset;
}
}
.group-cnt {
padding: 0;
padding-#{$left}: 0.5em;
display: inline-block;
width: 98%;
}
textarea#partitiondefinition {
height: 3em;
}
@ -4132,11 +4074,6 @@ body .ui-dialog {
}
@media only screen and (max-width: 768px) {
// For mobile phones:
#main_pane_left {
width: 100%;
}
ul {
&#topmenu,
&.tabs {

View File

@ -2195,44 +2195,6 @@ div.sqlvalidate,
direction: ltr;
}
#main_pane_left {
width: 60%;
min-width: 260px;
float: $left;
padding-top: 1em;
}
#main_pane_right {
overflow: hidden;
min-width: 160px;
padding-top: 1em;
padding-#{$left}: 3em;
}
.group {
margin-bottom: 1em;
padding-bottom: 1em;
input[type="submit"] {
margin-#{$left}: 0;
}
h2 {
color: $navi-background;
font-size: 2.8em;
font-weight: normal;
font-family: $font-family-light;
margin-top: 0;
margin-bottom: 0.6em;
}
}
.group-cnt {
padding: 0 0 0 0.5em;
display: inline-block;
width: 98%;
}
textarea#partitiondefinition {
height: 3em;
}
@ -4306,3 +4268,15 @@ body {
float: left;
}
}
// Bootstrap
.card-header {
font-size: 2.8em;
font-family: $font-family-light;
padding: 0;
}
.card-body ul {
padding-#{$left}: 0;
}

View File

@ -162,3 +162,7 @@ $font-size-base: 0.8rem;
$btn-border-radius: 0;
$btn-line-height: 1;
$btn-padding-x: 0.5rem;
$card-border-width: 0;
$card-cap-color: $navi-background;
$card-cap-bg: $main-background;

View File

@ -765,10 +765,6 @@ form.login label {
margin: 5px 2px;
}
.cfg_dbg_demo {
margin: 0.5em 1em 0.5em 1em;
}
.central_columns_navigation {
padding: 1.5% 0 !important;
}
@ -1623,37 +1619,6 @@ div.sqlvalidate {
background: $bg-one;
}
#main_pane_left {
width: 60%;
min-width: 260px;
float: $left;
padding-top: 1em;
}
#main_pane_right {
overflow: hidden;
min-width: 160px;
padding-top: 1em;
padding-#{$left}: 1em;
}
.group {
border-#{$left}: 0.3em solid $th-background;
margin-bottom: 1em;
h2 {
background: $th-background;
padding: 0.1em 0.3em;
margin-top: 0;
}
}
.group-cnt {
padding: 0 0 0 0.5em;
display: inline-block;
width: 98%;
}
textarea#partitiondefinition {
height: 3em;
}
@ -3687,16 +3652,6 @@ body {
}
@media only screen and (max-width: 768px) {
#main_pane_left {
width: 100%;
}
#main_pane_right {
padding-top: 0;
padding-#{$left}: 1px;
padding-#{$right}: 1px;
}
ul {
&#topmenu,
&.tabs {
@ -3806,3 +3761,19 @@ body {
#filter_query_text {
vertical-align: baseline;
}
// Bootstrap
.card {
border-top: none;
border-bottom: none;
border-#{$right}: none;
}
.card-header {
padding-top: 0.1em;
padding-bottom: 0.1em;
font-weight: bold;
font-size: 120%;
border: 0;
}

View File

@ -58,3 +58,11 @@ $th-color: #000;
$bg-one: #e5e5e5;
// table data row background, alternate
$bg-two: #d5d5d5;
// Bootstrap
$card-border-radius: 0;
$card-border-width: 0.3em;
$card-border-color: $th-background;
$card-cap-bg: $th-background;
$card-bg: $main-background;

View File

@ -1040,10 +1040,6 @@ label.col-3.d-flex.align-items-center {
margin: 5px 2px;
}
.cfg_dbg_demo {
margin: 0.5em 1em 0.5em 1em;
}
.central_columns_navigation {
padding: 1.5% 0 !important;
}
@ -2063,60 +2059,6 @@ div.sqlvalidate {
background: $bg-one;
}
#main_pane_left {
width: 60%;
min-width: 260px;
float: $left;
padding-top: 1em;
}
#main_pane_right {
overflow: hidden;
min-width: 160px;
padding-top: 1em;
}
.group {
border: 1px solid #999;
background: #f3f3f3;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
@if $direction == rtl {
-moz-box-shadow: -2px 2px 5px #ccc;
-webkit-box-shadow: -2px 2px 5px #ccc;
box-shadow: -2px 2px 5px #ccc;
} @else {
-moz-box-shadow: 2px 2px 5px #ccc;
-webkit-box-shadow: 2px 2px 5px #ccc;
box-shadow: 2px 2px 5px #ccc;
}
margin-bottom: 1em;
padding-bottom: 1em;
h2 {
background-color: #bbb;
padding: 0.1em 0.3em;
margin-top: 0;
color: #fff;
font-size: 1.6em;
font-weight: normal;
text-shadow: 0 1px 0 #777;
-moz-box-shadow: 1px 1px 15px #999 inset;
-webkit-box-shadow: 1px 1px 15px #999 inset;
box-shadow: 1px 1px 15px #999 inset;
}
}
.group-cnt {
padding: 0;
padding-#{$left}: 0.5em;
display: inline-block;
width: 98%;
}
textarea#partitiondefinition {
height: 3em;
}
@ -4159,29 +4101,7 @@ body .ui-dialog {
overflow: hidden;
}
// Bootstrap
.btn-primary {
font-weight: $font-weight-bold;
}
.btn-primary,
.btn-secondary {
border-color: #aaa;
text-shadow: 0 1px 0 #fff;
background-image: linear-gradient(#f8f8f8, #d8d8d8);
&:hover {
background-image: linear-gradient(#fff, #ddd);
}
}
@media only screen and (max-width: 768px) {
// For mobile phones:
#main_pane_left {
width: 100%;
}
ul {
&#topmenu,
&.tabs {
@ -4287,3 +4207,42 @@ body .ui-dialog {
#filter_query_text {
vertical-align: baseline;
}
// Bootstrap
.btn-primary {
font-weight: $font-weight-bold;
}
.btn-primary,
.btn-secondary {
border-color: #aaa;
text-shadow: 0 1px 0 #fff;
background-image: linear-gradient(#f8f8f8, #d8d8d8);
&:hover {
background-image: linear-gradient(#fff, #ddd);
}
}
.card {
@if $direction == rtl {
-moz-box-shadow: -2px 2px 5px #ccc;
-webkit-box-shadow: -2px 2px 5px #ccc;
box-shadow: -2px 2px 5px #ccc;
} @else {
-moz-box-shadow: 2px 2px 5px #ccc;
-webkit-box-shadow: 2px 2px 5px #ccc;
box-shadow: 2px 2px 5px #ccc;
}
}
.card-header {
padding-top: 0.1em;
padding-bottom: 0.1em;
font-size: 1.6em;
text-shadow: 0 1px 0 #777;
-moz-box-shadow: 1px 1px 15px #999 inset;
-webkit-box-shadow: 1px 1px 15px #999 inset;
box-shadow: 1px 1px 15px #999 inset;
}

View File

@ -70,3 +70,8 @@ $secondary: #ddd;
$btn-border-radius: 0.85rem;
$btn-line-height: 1.15;
$card-border-color: #999;
$card-bg: #f3f3f3;
$card-cap-bg: #bbb;
$card-cap-color: #fff;