Switched layout from `flex column` to `flex row` to be responsive and adaptive\n + corrected `timestamp` into history's view

This commit is contained in:
xdrm-brackets 2017-01-10 17:26:50 +01:00
parent 4493bf341b
commit 8f747d6e55
4 changed files with 468 additions and 543 deletions

View File

@ -292,18 +292,19 @@
/* [2-2] INLINE-ROW pour afficher des lignes
=========================================================*/
& > section.fstart{
flex-direction: column;
flex-wrap: nowrap;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
.searchbar{
flex: 1em 0 0;
width: calc( 100% - 3em - 2*2em );
flex: auto 1 1;
}
}
& > section.active > .inline-row{ flex: auto 1 1; }
& > section > .inline-row{
width: calc( 100% - 4em - 2*1em );

View File

@ -14,25 +14,20 @@
/* [3] Formulaires
=========================================================*/
/* (1) Champs de texte */
/* (2) Boutons */
}
/* (2) Boutons */ }
#WRAPPER > #CONTAINER > section {
display: none;
flex-grow: 1;
}
flex-grow: 1; }
#WRAPPER > #CONTAINER > section.active {
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
flex-wrap: wrap; }
#WRAPPER > #CONTAINER > section.active .inline-box {
flex: 0 0 1;
}
flex: 0 0 1; }
#WRAPPER > #CONTAINER > section.active .inline-row {
flex: 3em 0 1;
}
flex: 3em 0 1; }
#WRAPPER > #CONTAINER > section.active .searchbar {
display: inline-block;
position: relative;
@ -44,11 +39,9 @@
border: 1px solid #b1b1b1;
background: #fff url("/src/static/sub-menu-side/search@b1b1b1.svg") 0.5em center no-repeat;
background-size: 1em;
transition: border .4s ease-in-out;
}
transition: border .4s ease-in-out; }
#WRAPPER > #CONTAINER > section.active .searchbar:hover, #WRAPPER > #CONTAINER > section.active .searchbar:focus {
border-color: #5630ed;
}
border-color: #5630ed; }
#WRAPPER > #CONTAINER > section.active .error {
display: inline-block;
position: relative;
@ -60,8 +53,7 @@
border: 1px solid #d52918;
background: #d52918;
color: #fff;
text-shadow: 1px 1px #a72013;
}
text-shadow: 1px 1px #a72013; }
#WRAPPER > #CONTAINER > section > .inline-box, #WRAPPER > #CONTAINER > section > .inline-row {
display: inline-block;
position: relative;
@ -76,41 +68,33 @@
/* (3) Adresse mail */
/* (4) Groupes */
/* (5) Lien vers la modification */
/* (6) Lien vers la suppression */
}
/* (6) Lien vers la suppression */ }
#WRAPPER > #CONTAINER > section > .inline-box.hidden, #WRAPPER > #CONTAINER > section > .inline-row.hidden {
display: none;
}
display: none; }
#WRAPPER > #CONTAINER > section > .inline-box a, #WRAPPER > #CONTAINER > section > .inline-row a {
text-decoration: none;
color: inherit;
}
color: inherit; }
#WRAPPER > #CONTAINER > section > .inline-box.selected, #WRAPPER > #CONTAINER > section > .inline-row.selected {
border: 1px solid #7362ff;
transition: box-shadow .2s ease-in-out;
}
transition: box-shadow .2s ease-in-out; }
#WRAPPER > #CONTAINER > section > .inline-box.selected:hover, #WRAPPER > #CONTAINER > section > .inline-row.selected:hover {
box-shadow: 2px 2px 7px #aaa;
}
box-shadow: 2px 2px 7px #aaa; }
#WRAPPER > #CONTAINER > section > .inline-box .title, #WRAPPER > #CONTAINER > section > .inline-row .title {
display: inline-block;
font-size: 1.15em;
font-weight: bold;
color: #ea4c06;
white-space: nowrap;
}
white-space: nowrap; }
#WRAPPER > #CONTAINER > section > .inline-box .title > span, #WRAPPER > #CONTAINER > section > .inline-row .title > span {
font-size: .8em;
color: #333;
}
color: #333; }
#WRAPPER > #CONTAINER > section > .inline-box .code,
#WRAPPER > #CONTAINER > section > .inline-box .mail, #WRAPPER > #CONTAINER > section > .inline-row .code,
#WRAPPER > #CONTAINER > section > .inline-row .mail {
display: block;
margin: 1em;
color: #333;
white-space: nowrap;
}
white-space: nowrap; }
#WRAPPER > #CONTAINER > section > .inline-box .code svg,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg, #WRAPPER > #CONTAINER > section > .inline-row .code svg,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg {
@ -121,25 +105,21 @@
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg path#stylisable, #WRAPPER > #CONTAINER > section > .inline-row .code svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stylisable {
fill: #333 !important;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg path#stroke-stylisable, #WRAPPER > #CONTAINER > section > .inline-row .code svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stroke-stylisable {
stroke: #333 !important;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .groups, #WRAPPER > #CONTAINER > section > .inline-row .groups {
display: block;
margin: 1em;
color: #333;
}
color: #333; }
#WRAPPER > #CONTAINER > section > .inline-box .groups svg, #WRAPPER > #CONTAINER > section > .inline-row .groups svg {
display: inline-block;
position: relative;
@ -148,12 +128,10 @@
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .groups svg path, #WRAPPER > #CONTAINER > section > .inline-row .groups svg path {
fill: #333 !important;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .groups > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span {
display: inline-block;
position: relative;
@ -165,12 +143,10 @@
box-shadow: inset 0 0 2px #fafafa;
background-color: #f9f9f9;
color: #333;
cursor: default;
}
cursor: default; }
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.add-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.add-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.add-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.add-member {
border-radius: 3px;
cursor: pointer;
}
cursor: pointer; }
#WRAPPER > #CONTAINER > section > .inline-box .groups > span > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span > span.rem-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span > span.rem-member {
display: block;
position: absolute;
@ -186,11 +162,9 @@
background-size: auto 70%;
background-color: #f9f9f9;
color: inherit;
cursor: pointer;
}
cursor: pointer; }
#WRAPPER > #CONTAINER > section > .inline-box .groups > span > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span > span.rem-member:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span > span.rem-member:hover {
background-image: url("/src/static/sub-menu-side/remove@d52918.svg");
}
background-image: url("/src/static/sub-menu-side/remove@d52918.svg"); }
#WRAPPER > #CONTAINER > section > .inline-box .link_edit,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove, #WRAPPER > #CONTAINER > section > .inline-row .link_edit,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove {
@ -200,8 +174,7 @@
width: 1em;
height: 1em;
margin-left: 1em;
cursor: pointer;
}
cursor: pointer; }
#WRAPPER > #CONTAINER > section > .inline-box .link_edit > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_edit > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove > svg {
@ -209,26 +182,22 @@
height: 100%;
fill: #ddd !important;
transition: fill .4s ease-in-out;
pointer-events: none;
}
pointer-events: none; }
#WRAPPER > #CONTAINER > section > .inline-box .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #2193e6 !important;
}
fill: #2193e6 !important; }
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #d52918 !important;
}
fill: #d52918 !important; }
#WRAPPER > #CONTAINER > section.fstart {
flex-direction: column;
flex-wrap: nowrap;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
align-items: center; }
#WRAPPER > #CONTAINER > section.fstart .searchbar {
flex: 1em 0 0;
width: calc( 100% - 3em - 2*2em );
}
flex: auto 1 1; }
#WRAPPER > #CONTAINER > section.active > .inline-row {
flex: auto 1 1; }
#WRAPPER > #CONTAINER > section > .inline-row {
width: calc( 100% - 4em - 2*1em );
display: flex;
@ -236,23 +205,19 @@
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
overflow: hidden;
}
overflow: hidden; }
#WRAPPER > #CONTAINER > section > .inline-row > span {
display: flex;
flex-direction: column;
justify-content: space-around;
flex: 100% 1 1;
border-left: 1px solid #ddd;
text-align: center;
}
text-align: center; }
#WRAPPER > #CONTAINER > section > .inline-row > span:first-child {
border-left: 0;
}
border-left: 0; }
#WRAPPER > #CONTAINER > section > .inline-row button {
flex: auto;
width: 5em;
}
width: 5em; }
#WRAPPER > #CONTAINER > section > form, #WRAPPER > #CONTAINER .form {
display: inline-block;
position: relative;
@ -263,30 +228,24 @@
border-color: #d52918;
box-shadow: 0 0 1px #b7b7b7;
background-color: #fff;
transform: translateX(-50%);
}
transform: translateX(-50%); }
#WRAPPER > #CONTAINER > section > form.valid, #WRAPPER > #CONTAINER .form.valid {
border-color: #27a560;
}
border-color: #27a560; }
#WRAPPER > #CONTAINER > section > form.neutral, #WRAPPER > #CONTAINER .form.neutral {
border-color: #2193e6;
}
border-color: #2193e6; }
#WRAPPER > #CONTAINER > section > form.search, #WRAPPER > #CONTAINER .form.search {
border-color: #2193e6;
}
border-color: #2193e6; }
#WRAPPER > #CONTAINER > section > form .edit_search_view,
#WRAPPER > #CONTAINER > section > form .remove_search_view, #WRAPPER > #CONTAINER .form .edit_search_view,
#WRAPPER > #CONTAINER .form .remove_search_view {
display: inline-block;
width: 100%;
text-align: center;
color: #aaaaaa;
}
color: #aaaaaa; }
#WRAPPER > #CONTAINER > section > form .edit_search_view span,
#WRAPPER > #CONTAINER > section > form .remove_search_view span, #WRAPPER > #CONTAINER .form .edit_search_view span,
#WRAPPER > #CONTAINER .form .remove_search_view span {
color: #888888;
}
color: #888888; }
#WRAPPER > #CONTAINER input[type=text],
#WRAPPER > #CONTAINER input[type=mail],
#WRAPPER > #CONTAINER input[type=password],
@ -301,8 +260,7 @@
border-radius: 3px;
border: 1px solid #d7dde8;
color: #2f3033;
transition: border .4s ease-in-out;
}
transition: border .4s ease-in-out; }
#WRAPPER > #CONTAINER input[type=text]:focus, #WRAPPER > #CONTAINER input[type=text]:hover,
#WRAPPER > #CONTAINER input[type=mail]:focus,
#WRAPPER > #CONTAINER input[type=mail]:hover,
@ -318,16 +276,13 @@
#WRAPPER > #CONTAINER input.invalid[type=password]:hover,
#WRAPPER > #CONTAINER select.invalid:focus,
#WRAPPER > #CONTAINER select.invalid:hover {
border-color: #d52918;
}
border-color: #d52918; }
#WRAPPER > #CONTAINER select {
width: 100%;
display: block;
background: #fff;
}
background: #fff; }
#WRAPPER > #CONTAINER select option {
padding: .5em;
}
padding: .5em; }
#WRAPPER > #CONTAINER .valid > input[type=text]:focus, #WRAPPER > #CONTAINER .valid > input[type=text]:hover,
#WRAPPER > #CONTAINER .valid > input[type=mail]:focus,
#WRAPPER > #CONTAINER .valid > input[type=mail]:hover,
@ -343,8 +298,7 @@
#WRAPPER > #CONTAINER input.valid[type=password]:hover,
#WRAPPER > #CONTAINER select.valid:focus,
#WRAPPER > #CONTAINER select.valid:hover {
border-color: #27a560;
}
border-color: #27a560; }
#WRAPPER > #CONTAINER .neutral > input[type=text]:focus, #WRAPPER > #CONTAINER .neutral > input[type=text]:hover,
#WRAPPER > #CONTAINER .neutral > input[type=mail]:focus,
#WRAPPER > #CONTAINER .neutral > input[type=mail]:hover,
@ -360,8 +314,7 @@
#WRAPPER > #CONTAINER input.neutral[type=password]:hover,
#WRAPPER > #CONTAINER select.neutral:focus,
#WRAPPER > #CONTAINER select.neutral:hover {
border-color: #2193e6;
}
border-color: #2193e6; }
#WRAPPER > #CONTAINER .search > input[type=text]:focus, #WRAPPER > #CONTAINER .search > input[type=text]:hover,
#WRAPPER > #CONTAINER .search > input[type=mail]:focus,
#WRAPPER > #CONTAINER .search > input[type=mail]:hover,
@ -375,8 +328,7 @@
#WRAPPER > #CONTAINER input.search[type=mail]:hover,
#WRAPPER > #CONTAINER input.search[type=password]:focus,
#WRAPPER > #CONTAINER input.search[type=password]:hover {
border-color: #5630ed;
}
border-color: #5630ed; }
#WRAPPER > #CONTAINER button,
#WRAPPER > #CONTAINER button.invalid,
#WRAPPER > #CONTAINER .invalid > button {
@ -389,8 +341,7 @@
background: #d52918 center center no-repeat;
color: #fff;
transition: background .4s ease-in-out;
transform: translateX(-50%);
}
transform: translateX(-50%); }
#WRAPPER > #CONTAINER button:hover, #WRAPPER > #CONTAINER button:focus, #WRAPPER > #CONTAINER button:disabled,
#WRAPPER > #CONTAINER button.invalid:hover,
#WRAPPER > #CONTAINER button.invalid:focus,
@ -399,72 +350,60 @@
#WRAPPER > #CONTAINER .invalid > button:focus,
#WRAPPER > #CONTAINER .invalid > button:disabled {
background-color: #fff;
color: #d52918;
}
color: #d52918; }
#WRAPPER > #CONTAINER button.valid,
#WRAPPER > #CONTAINER .valid > button {
border-color: #27a560;
background-color: #27a560;
}
background-color: #27a560; }
#WRAPPER > #CONTAINER button.valid:hover, #WRAPPER > #CONTAINER button.valid:focus, #WRAPPER > #CONTAINER button.valid:disabled,
#WRAPPER > #CONTAINER .valid > button:hover,
#WRAPPER > #CONTAINER .valid > button:focus,
#WRAPPER > #CONTAINER .valid > button:disabled {
background-color: #fff;
color: #27a560;
}
color: #27a560; }
#WRAPPER > #CONTAINER button.neutral,
#WRAPPER > #CONTAINER .neutral > button {
border-color: #2193e6;
background-color: #2193e6;
}
background-color: #2193e6; }
#WRAPPER > #CONTAINER button.neutral:hover, #WRAPPER > #CONTAINER button.neutral:focus, #WRAPPER > #CONTAINER button.neutral:disabled,
#WRAPPER > #CONTAINER .neutral > button:hover,
#WRAPPER > #CONTAINER .neutral > button:focus,
#WRAPPER > #CONTAINER .neutral > button:disabled {
background-color: #fff;
color: #2193e6;
}
color: #2193e6; }
#WRAPPER > #CONTAINER button.search,
#WRAPPER > #CONTAINER .search > button {
border-color: #5630ed;
background-color: #5630ed;
}
background-color: #5630ed; }
#WRAPPER > #CONTAINER button.search:hover, #WRAPPER > #CONTAINER button.search:focus, #WRAPPER > #CONTAINER button.search:disabled,
#WRAPPER > #CONTAINER .search > button:hover,
#WRAPPER > #CONTAINER .search > button:focus,
#WRAPPER > #CONTAINER .search > button:disabled {
background-color: #fff;
color: #5630ed;
}
color: #5630ed; }
#WRAPPER > #CONTAINER .invalid > button.active,
#WRAPPER > #CONTAINER button.invalid.active,
#WRAPPER > #CONTAINER button.active {
background-color: #fff;
background-image: url("/src/static/container/active@d52918.svg") !important;
background-size: 1em auto;
color: transparent !important;
}
color: transparent !important; }
#WRAPPER > #CONTAINER button.valid.active,
#WRAPPER > #CONTAINER .valid > button.active {
background-image: url("/src/static/container/active@27a560.svg") !important;
}
background-image: url("/src/static/container/active@27a560.svg") !important; }
#WRAPPER > #CONTAINER button.neutral.active,
#WRAPPER > #CONTAINER .neutral > button.active {
background-image: url("/src/static/container/active@2193e6.svg") !important;
}
background-image: url("/src/static/container/active@2193e6.svg") !important; }
#WRAPPER > #CONTAINER button.search.active,
#WRAPPER > #CONTAINER .search > button.active {
background-image: url("/src/static/container/active@5630ed.svg") !important;
}
background-image: url("/src/static/container/active@5630ed.svg") !important; }
#WRAPPER > #CONTAINER hr.OR[data-label] {
display: block;
position: relative;
width: 100%;
height: 0;
border: 0;
border-bottom: 1px dashed #d52918;
}
border-bottom: 1px dashed #d52918; }
#WRAPPER > #CONTAINER hr.OR[data-label]:before {
content: attr(data-label);
display: inline-block;
@ -474,32 +413,25 @@
padding: 0 1em;
background-color: #fff;
color: #d52918;
transform: translateX(-50%) translatey(-50%);
}
transform: translateX(-50%) translatey(-50%); }
#WRAPPER > #CONTAINER .valid > hr.OR,
#WRAPPER > #CONTAINER hr.OR.valid {
border-bottom: 1px dashed #27a560;
}
border-bottom: 1px dashed #27a560; }
#WRAPPER > #CONTAINER .valid > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.valid:before {
color: #27a560;
}
color: #27a560; }
#WRAPPER > #CONTAINER .neutral > hr.OR,
#WRAPPER > #CONTAINER hr.OR.neutral {
border-bottom: 1px dashed #2193e6;
}
border-bottom: 1px dashed #2193e6; }
#WRAPPER > #CONTAINER .neutral > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.neutral:before {
color: #2193e6;
}
color: #2193e6; }
#WRAPPER > #CONTAINER .search > hr.OR,
#WRAPPER > #CONTAINER hr.OR.search {
border-bottom: 1px dashed #5630ed;
}
border-bottom: 1px dashed #5630ed; }
#WRAPPER > #CONTAINER .search > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.search:before {
color: #5630ed;
}
color: #5630ed; }
/* [4] Tableau à cocher
=========================================================*/
@ -509,8 +441,7 @@ article.check-table {
flex-wrap: wrap;
justify-content: space-between;
border-radius: 3px;
border: 1px solid #ddd;
}
border: 1px solid #ddd; }
article.check-table > div {
display: flex;
flex-direction: row;
@ -522,22 +453,18 @@ article.check-table > div {
background: #f8f8f8;
border-bottom: 1px solid #eee;
transition: background .2s ease-in-out;
overflow: hidden;
}
overflow: hidden; }
article.check-table > div:nth-child(2n) {
background: #fdfdfd;
}
background: #fdfdfd; }
article.check-table > div > span {
flex: 100%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
/* (1) Gestion du checkbox hack */
}
/* (1) Gestion du checkbox hack */ }
article.check-table > div > span input[type='checkbox'] {
display: none;
}
display: none; }
article.check-table > div > span input[type='checkbox'] + label[for] {
display: inline-block;
position: absolute;
@ -546,10 +473,8 @@ article.check-table > div > span input[type='checkbox'] + label[for] {
background: url("/src/static/container/checkbox.svg") center center no-repeat;
background-size: 100% auto;
transition: box-shadow .2s ease-in-out;
cursor: pointer;
}
cursor: pointer; }
article.check-table > div > span input[type='checkbox']:checked + label[for] {
background-image: url("/src/static/container/checkbox@checked.svg");
}
background-image: url("/src/static/container/checkbox@checked.svg"); }
/*# sourceMappingURL=container.css.map */

View File

@ -63,7 +63,7 @@
$selected = Table::get('history')
->join('id_machine', $mac)
->select('timestamp', Rows::SEL_MAX)
->select('id_history', Rows::SEL_COUNT, Rows::SEL_DISTINCT)
->select('id_history')
->fetch();
@ -76,12 +76,12 @@
foreach($selected as $m=>$mac){
echo "<article class='inline-row'>";
echo "<article class='inline-row' data-history='".$mac['id_history']."'>";
echo "<span class='title'><span>#".$mac['name']."</span></span>";
echo "<span>";
echo "<span>".date('d/m/Y H:i:s', $mac['last'])."</span>";
echo "<span>".date('d/m/Y H:i:s', $mac['timestamp'])."</span>";
echo "<span style='color:#aaa;'>Il y a xx jours et yy heures</span>";
echo "</span>";

View File

@ -49,8 +49,7 @@
<nav id='MENU-SIDE'>
<span data-link='profile' data-desc='Profil' class='mb' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/profile.svg'); ?></span>
<span data-link='history' data-desc='Tableau de bord' class='apart' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/history.svg'); ?></span>
<span data-link='history' data-desc='Journal des accès' class='apart' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/history.svg'); ?></span>
<span data-link='machines' data-desc='Systèmes' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/device.svg'); ?></span>
<span data-link='users' data-desc='Utilisateurs' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/users.svg'); ?></span>
<span data-link='groups' data-desc='Gestion des groupes' ><?= file_get_contents(__PUBLIC__.'/src/static/menu-side/groups.svg'); ?></span>