mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 21:28:08 +01:00
Miglioramento timeline
This commit is contained in:
parent
79c3c7b369
commit
cf309b3632
@ -180,6 +180,9 @@ if (Modules::getPermission($permesso) == 'r' || Modules::getPermission($permesso
|
||||
|
||||
// Inserimento iniziale
|
||||
if (starts_with(post('op'), 'add')) {
|
||||
// Informazioni di log
|
||||
Filter::set('get', 'id_record', $id_record);
|
||||
|
||||
foreach ($values as $key => $value) {
|
||||
$dbo->insert('zz_field_record', [
|
||||
'id_record' => $id_record,
|
||||
|
@ -364,7 +364,7 @@ span.form-control {
|
||||
.info-box-text {
|
||||
white-space: normal;
|
||||
overflow: auto;
|
||||
font-size: 12px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.colorpicker,
|
||||
@ -536,11 +536,9 @@ input.small-width {
|
||||
width: 90%;
|
||||
margin-top: 20px
|
||||
}
|
||||
|
||||
.main-header .logo {
|
||||
.main-header .logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
.content-wrapper,
|
||||
.right-side,
|
||||
@ -583,27 +581,34 @@ input.small-width {
|
||||
margin: 5%;
|
||||
}
|
||||
}
|
||||
.callout a{
|
||||
text-decoration: none;
|
||||
|
||||
.callout a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.dropdown-menu{
|
||||
|
||||
.dropdown-menu {
|
||||
min-width: 130px;
|
||||
}
|
||||
|
||||
/*fix per tabs editor */
|
||||
.nav-tabs-custom > .nav-tabs > li{
|
||||
border-top: 3px solid #ddd;
|
||||
|
||||
.nav-tabs-custom>.nav-tabs>li {
|
||||
border-top: 3px solid #ddd;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a{
|
||||
border-right-color: #f4f4f4;
|
||||
border-right-width : 1px;
|
||||
border-left-width : 0px;
|
||||
|
||||
.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a {
|
||||
border-right-color: #f4f4f4;
|
||||
border-right-width: 1px;
|
||||
border-left-width: 0px;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li.header{
|
||||
padding:0px;
|
||||
|
||||
.nav-tabs-custom>.nav-tabs>li.header {
|
||||
padding: 0px;
|
||||
}
|
||||
.nav-tabs-custom > .nav-tabs > li{
|
||||
margin-bottom:-1px;
|
||||
margin-right: 0px;
|
||||
|
||||
.nav-tabs-custom>.nav-tabs>li {
|
||||
margin-bottom: -1px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.ui-autocomplete {
|
||||
@ -618,6 +623,169 @@ input.small-width {
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
.parsley-errors-list{
|
||||
.parsley-errors-list {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/** TIMELINE */
|
||||
|
||||
.timeline {
|
||||
list-style: none;
|
||||
padding: 20px 0 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.timeline:before {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
content: " ";
|
||||
width: 3px;
|
||||
background-color: #eeeeee;
|
||||
left: 50%;
|
||||
margin-left: -4.5px;
|
||||
}
|
||||
|
||||
.timeline>li {
|
||||
margin-bottom: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.timeline>li:before,
|
||||
.timeline>li:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.timeline>li:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.timeline>li:before,
|
||||
.timeline>li:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.timeline>li:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.timeline>li>.timeline-panel {
|
||||
width: 50%;
|
||||
float: left;
|
||||
border: 1px solid #d4d4d4;
|
||||
border-radius: 2px;
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
|
||||
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
|
||||
}
|
||||
|
||||
.timeline>li.timeline-inverted+li:not(.timeline-inverted),
|
||||
.timeline>li:not(.timeline-inverted)+li.timeline-inverted {
|
||||
margin-top: -60px;
|
||||
}
|
||||
|
||||
.timeline>li:not(.timeline-inverted) {
|
||||
padding-right: 90px;
|
||||
}
|
||||
|
||||
.timeline>li.timeline-inverted {
|
||||
padding-left: 90px;
|
||||
}
|
||||
|
||||
.timeline>li>.timeline-panel:before {
|
||||
position: absolute;
|
||||
top: 26px;
|
||||
right: -15px;
|
||||
display: inline-block;
|
||||
border-top: 15px solid transparent;
|
||||
border-left: 15px solid #ccc;
|
||||
border-right: 0 solid #ccc;
|
||||
border-bottom: 15px solid transparent;
|
||||
content: " ";
|
||||
}
|
||||
|
||||
.timeline>li>.timeline-panel:after {
|
||||
position: absolute;
|
||||
top: 27px;
|
||||
right: -14px;
|
||||
display: inline-block;
|
||||
border-top: 14px solid transparent;
|
||||
border-left: 14px solid #fff;
|
||||
border-right: 0 solid #fff;
|
||||
border-bottom: 14px solid transparent;
|
||||
content: " ";
|
||||
}
|
||||
|
||||
.timeline>li>.timeline-badge {
|
||||
color: #fff;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
font-size: 1.4em;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 50%;
|
||||
margin-left: -25px;
|
||||
background-color: #999999;
|
||||
z-index: 100;
|
||||
border-top-right-radius: 50%;
|
||||
border-top-left-radius: 50%;
|
||||
border-bottom-right-radius: 50%;
|
||||
border-bottom-left-radius: 50%;
|
||||
}
|
||||
|
||||
.timeline>li.timeline-inverted>.timeline-panel {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.timeline>li.timeline-inverted>.timeline-panel:before {
|
||||
border-left-width: 0;
|
||||
border-right-width: 15px;
|
||||
left: -15px;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.timeline>li.timeline-inverted>.timeline-panel:after {
|
||||
border-left-width: 0;
|
||||
border-right-width: 14px;
|
||||
left: -14px;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.timeline-badge.primary {
|
||||
background-color: #2e6da4 !important;
|
||||
}
|
||||
|
||||
.timeline-badge.success {
|
||||
background-color: #3f903f !important;
|
||||
}
|
||||
|
||||
.timeline-badge.warning {
|
||||
background-color: #f0ad4e !important;
|
||||
}
|
||||
|
||||
.timeline-badge.danger {
|
||||
background-color: #d9534f !important;
|
||||
}
|
||||
|
||||
.timeline-badge.info {
|
||||
background-color: #5bc0de !important;
|
||||
}
|
||||
|
||||
.timeline-title {
|
||||
margin-top: 0;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.timeline-body>p,
|
||||
.timeline-body>ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.timeline-body>p+p {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
50
editor.php
50
editor.php
@ -74,7 +74,7 @@ if (empty($records)) {
|
||||
// Tab per le informazioni sulle operazioni
|
||||
if (Auth::admin()) {
|
||||
echo '
|
||||
<li>
|
||||
<li class="bg-warning">
|
||||
<a data-toggle="tab" href="#tab_info" id="link-tab_info">'.tr('Info').'</a>
|
||||
</li>';
|
||||
}
|
||||
@ -220,13 +220,55 @@ if (empty($records)) {
|
||||
if (Auth::admin()) {
|
||||
echo '
|
||||
<div id="tab_info" class="tab-pane">
|
||||
<ul>';
|
||||
<ul class="timeline">';
|
||||
|
||||
$operations = $dbo->fetchArray('SELECT `zz_operations`.*, `zz_users`.`username` FROM `zz_operations` JOIN `zz_users` ON `zz_operations`.`id_utente` = `zz_users`.`id` WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record).' ORDER BY `created_at` DESC LIMIT 200');
|
||||
$operations = $dbo->fetchArray('SELECT `zz_operations`.*, `zz_users`.`username` FROM `zz_operations` JOIN `zz_users` ON `zz_operations`.`id_utente` = `zz_users`.`id` WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record).' ORDER BY `created_at` ASC LIMIT 200');
|
||||
|
||||
foreach ($operations as $operation) {
|
||||
$description = $operation['op'];
|
||||
$icon = 'pencil-square-o';
|
||||
$color = null;
|
||||
$timeline = null;
|
||||
|
||||
switch ($operation['op']) {
|
||||
case 'add':
|
||||
$description = tr('Creazione');
|
||||
$icon = 'plus';
|
||||
$color = 'success';
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
$description = tr('Modifica');
|
||||
$icon = 'pencil';
|
||||
$color = 'info';
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$description = tr('Eliminazione');
|
||||
$icon = 'times';
|
||||
$color = 'danger';
|
||||
break;
|
||||
|
||||
default:
|
||||
$timeline = ' class="timeline-inverted"';
|
||||
break;
|
||||
}
|
||||
|
||||
echo '
|
||||
<li>'.$operation['username'].': '.$operation['op'].' - '.Translator::timestampToLocale($operation['created_at']).'</li>';
|
||||
<li'.$timeline.'>
|
||||
<div class="timeline-badge '.$color.'"><i class="fa fa-'.$icon.'"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">'.$description.'</h4>
|
||||
<p><small class="text-muted"><i class="fa fa-clock-o"></i> '.Translator::timestampToLocale($operation['created_at']).'</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>'.tr('Utente: _USER_', [
|
||||
'_USER_' => $operation['username'],
|
||||
]).'</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
Loading…
Reference in New Issue
Block a user