Add changes of visual mobile version of pandora. Gitlab: #148

This commit is contained in:
m-lopez-f 2017-02-13 16:06:17 +01:00 committed by mlopez
parent 56d609ccdc
commit 3779167593
27 changed files with 409 additions and 201 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

View File

@ -615,20 +615,20 @@ function ui_print_group_icon_path ($id_group, $return = false, $path = "images/g
*/ */
function ui_print_os_icon ($id_os, $name = true, $return = false, function ui_print_os_icon ($id_os, $name = true, $return = false,
$apply_skin = true, $networkmap = false, $only_src = false, $apply_skin = true, $networkmap = false, $only_src = false,
$relative = false, $options = false) { $relative = false, $options = false, $big_icons = false) {
$subfolder = 'os_icons';
$subfolter = 'os_icons';
if ($networkmap) { if ($networkmap) {
$subfolter = 'networkmap'; $subfolder = 'networkmap';
} }
if ($big_icons)
$subfolder .= '/so_big_icons';
$icon = (string) db_get_value ('icon_name', 'tconfig_os', 'id_os', (int) $id_os); $icon = (string) db_get_value ('icon_name', 'tconfig_os', 'id_os', (int) $id_os);
$os_name = get_os_name ($id_os); $os_name = get_os_name ($id_os);
if (empty ($icon)) { if (empty ($icon)) {
if ($only_src) { if ($only_src) {
$output = html_print_image("images/" . $subfolter . "/unknown.png", $output = html_print_image("images/" . $subfolder . "/unknown.png",
true, $options, true, $relative, false, true); true, $options, true, $relative, false, true);
} }
else { else {
@ -637,13 +637,13 @@ function ui_print_os_icon ($id_os, $name = true, $return = false,
} }
else if ($apply_skin) { else if ($apply_skin) {
if ($only_src) { if ($only_src) {
$output = html_print_image("images/" . $subfolter . "/" . $icon, true, $options, true, $relative, false, true); $output = html_print_image("images/" . $subfolder . "/" . $icon, true, $options, true, $relative, false, true);
} }
else { else {
if (!isset($options['title'])) { if (!isset($options['title'])) {
$options['title'] = $os_name; $options['title'] = $os_name;
} }
$output = html_print_image("images/" . $subfolter . "/" . $icon, true, $options, false, $relative, false, true); $output = html_print_image("images/" . $subfolder . "/" . $icon, true, $options, false, $relative, false, true);
} }
} }
else else

View File

@ -708,19 +708,19 @@ a.ui-link-inherit {
/* Active class used as the "on" state across all themes /* Active class used as the "on" state across all themes
-----------------------------------------------------------------------------------------------------------*/ -----------------------------------------------------------------------------------------------------------*/
.ui-btn-active { .ui-btn-active {
border: 1px solid #2373a5 /*{global-active-border}*/; border: 1px solid #82B92E /*{global-active-border}*/;
background: #5393c5 /*{global-active-background-color}*/; background: #5393c5 /*{global-active-background-color}*/;
font-weight: bold; font-weight: bold;
color: #fff /*{global-active-color}*/; color: #fff /*{global-active-color}*/;
cursor: pointer; cursor: pointer;
text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/; text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #82B92E /*{global-active-shadow-color}*/;
text-decoration: none; text-decoration: none;
background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ background-image: -webkit-gradient(linear, left top, left bottom, from( #82B92E /*{global-active-background-start}*/), to( #82B92E /*{global-active-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ background-image: -webkit-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */ background-image: -moz-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */ background-image: -ms-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */ background-image: -o-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); background-image: linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/);
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
} }
.ui-btn-active:visited, .ui-btn-active:visited,
@ -1042,9 +1042,9 @@ a.ui-link-inherit {
} }
.ui-focus, .ui-focus,
.ui-btn:focus { .ui-btn:focus {
-moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; -moz-box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
-webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; -webkit-box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
} }
.ui-input-text.ui-focus, .ui-input-text.ui-focus,
.ui-input-search.ui-focus { .ui-input-search.ui-focus {
@ -1123,10 +1123,29 @@ div.ui-mobile-viewport { overflow-x: hidden; }
.ui-header > .ui-btn-icon-notext, .ui-header > .ui-btn-icon-notext,
.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; } .ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; }
.ui-header-fixed > .ui-btn-icon-notext { top: 7px;} .ui-header-fixed > .ui-btn-icon-notext { top: 7px;}
.ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 30% .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } .ui-header .ui-title, .ui-footer .ui-title {
.ui-footer .ui-title { margin: .6em 15px .8em; } min-height: 1.1em;
text-align: center;
font-size: 16px;
display: block;
margin: .6em 30% .8em;
padding: 0;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
outline: 0 !important;
}
.ui-footer .ui-title {
margin: .6em 15px .8em;
}
/* content area*/ /* content area*/
.ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; } .ui-content {
border-width: 0;
overflow: hidden;
overflow-x: hidden;
padding: 5px 5px 0px 5px;
}
/* corner styling for dialogs and popups */ /* corner styling for dialogs and popups */
.ui-corner-all > .ui-header:first-child, .ui-corner-all > .ui-header:first-child,
.ui-corner-all > .ui-content:first-child, .ui-corner-all > .ui-content:first-child,
@ -2128,7 +2147,7 @@ label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin
.ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } .ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
.ui-hide-label .ui-btn.ui-submit { width: auto; display: block; } .ui-hide-label .ui-btn.ui-submit { width: auto; display: block; }
} }
.ui-collapsible-inset { margin: .5em 0; } .ui-collapsible-inset { margin: .5em 2px 1px; width:99%;}
.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; } .ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; }
.ui-collapsible-inset .ui-collapsible-heading { margin: 0; } .ui-collapsible-inset .ui-collapsible-heading { margin: 0; }
.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; } .ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; }
@ -2294,7 +2313,7 @@ label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin
padding: 0; padding: 0;
} }
.ui-dialog-contain > .ui-content { .ui-dialog-contain > .ui-content {
padding: 15px; padding: 5px 5px 0px 5px;
} }
.ui-dialog-contain > .ui-footer { .ui-dialog-contain > .ui-footer {
z-index: 10; z-index: 10;
@ -3120,7 +3139,7 @@ div.ui-slider-switch.ui-mini {
} }
} }
/* Breakpoint to show as a standard table at 560px (25em x 16px) or wider */ /* Breakpoint to show as a standard table at 560px (25em x 16px) or wider */
@media ( min-width: 25em ) { @media ( min-width: 34.99em ) {
/* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */ /* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */
.ui-table-reflow.ui-responsive { .ui-table-reflow.ui-responsive {
display: table-row-group; display: table-row-group;
@ -3143,7 +3162,7 @@ div.ui-slider-switch.ui-mini {
} }
/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */ /* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */
/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/ /* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/
@media ( max-width: 25em ) { @media ( max-width: 34.98em ) {
.ui-table-reflow.ui-responsive td, .ui-table-reflow.ui-responsive td,
.ui-table-reflow.ui-responsive th { .ui-table-reflow.ui-responsive th {
width: 100%; width: 100%;
@ -3153,6 +3172,15 @@ div.ui-slider-switch.ui-mini {
float: left; float: left;
clear: left; clear: left;
} }
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_0 {
width: 52% !important;
}
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_1 {
width: 15% !important;
}
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_4 {
width: 33% !important;
}
} }
/* panel */ /* panel */
.ui-panel { .ui-panel {

View File

@ -34,6 +34,10 @@ body {
} }
.agent_graphs, .events_bar {
padding-top: 10px;
}
#tactical1 *, #tactical2 * { #tactical1 *, #tactical2 * {
font-weight: bold; font-weight: bold;
} }
@ -520,11 +524,32 @@ table.event_details td.cell_event_name {
} }
.agent_details { .agent_details {
line-height: 35px; padding: 10px 0px 10px 0px;
}
.agent_details > img {
vertical-align: middle;
width: 20px;
}
.agent_os{
float: right;
position: absolute;
top: 0px;
right: 0px;
padding: 10px;
} }
.agent_details img { .agent_list_ips {
float: left; padding: 10px 0px 10px 0px;
}
.agent_list_ips > img {
vertical-align: middle;
width: 20px;
}
.agent_last_contact {
padding: 10px 0px 10px 0px;
}
.agent_description {
padding: 10px 0px 10px 0px;
} }
.agent_name { .agent_name {
@ -544,8 +569,8 @@ table.event_details td.cell_event_name {
} }
#list_agents td { #list_agents td {
height: 35px; height: 25px;
padding-top: 20px; padding-top: 10px;
} }
.agents_tiny_stats_tactical { .agents_tiny_stats_tactical {
@ -554,7 +579,33 @@ table.event_details td.cell_event_name {
width: 100%; width: 100%;
} }
@media screen and (max-width: 25em) { @media screen and (max-width: 34.99em) {
#list_agents td {
height: 35px;
padding-top: 7px;
display: table-cell;
clear: none;
padding-left: 0px !important;
padding-right: 0px !important;
}
#list_agents td.cell_0 {
width: 45%;
border-top: 0px none;
}
#list_agents td.cell_0>span.tiny>img {
width: 5px;
height: 30px;
margin-top: -6px;
margin-left: 0px;
}
#list_agents td.cell_5 {
width: 30%;
}
#list_agents td.cell_6 {
width: 25%;
}
#list_agents .cell_2 .ui-table-cell-label, #list_agents .cell_2 .ui-table-cell-label,
#list_agents .cell_3 .ui-table-cell-label, #list_agents .cell_3 .ui-table-cell-label,
#list_agents .cell_6 .ui-table-cell-label, #list_agents .cell_6 .ui-table-cell-label,
@ -572,7 +623,6 @@ table.event_details td.cell_event_name {
#list_agents .cell_2, #list_agents .cell_2,
#list_agents .cell_3, #list_agents .cell_3,
#list_agents .cell_6,
#list_agents .cell_7 { #list_agents .cell_7 {
display: inline !important; display: inline !important;
float: none !important; float: none !important;
@ -594,7 +644,7 @@ table.event_details td.cell_event_name {
} }
#list_agents .show_collapside { #list_agents .show_collapside {
display: inline !important; display: none !important;
} }
#list_agents .cell_1, #list_agents .cell_1,
@ -605,16 +655,24 @@ table.event_details td.cell_event_name {
} }
#list_agents .cell_0 .ui-link { #list_agents .cell_0 .ui-link {
font-size: 15px; font-size: 12px;
} }
#list_agents .cell_6 .show_collapside { #list_agents .cell_6 .show_collapside {
display: inline !important; display: none !important;
} }
.agents_tiny_stats * { .agents_tiny_stats * {
font-size: 12px !important; font-size: 12px !important;
} }
#list_agent_Modules td {
padding-top: 7px !important;
}
.agents_tiny_stats {
float: right;
}
} }
/* For mobiles */ /* For mobiles */
@ -738,7 +796,7 @@ table.event_details td.cell_event_name {
/*END-----------Visual maps styles---------------------------------------*/ /*END-----------Visual maps styles---------------------------------------*/
/*INIT-----------Modules styles---------------------------------------*/ /*INIT-----------Modules styles---------------------------------------*/
@media screen and (max-width: 25em) { @media screen and (max-width: 34.99em) {
#list_Modules .cell_1 .ui-table-cell-label, #list_Modules .cell_1 .ui-table-cell-label,
#list_Modules .cell_5 .ui-table-cell-label, #list_Modules .cell_5 .ui-table-cell-label,
#list_Modules .cell_6 .ui-table-cell-label { #list_Modules .cell_6 .ui-table-cell-label {
@ -755,7 +813,17 @@ table.event_details td.cell_event_name {
#list_Modules .cell_3 .ui-table-cell-label, #list_Modules .cell_3 .ui-table-cell-label,
#list_Modules .cell_4 .ui-table-cell-label, #list_Modules .cell_4 .ui-table-cell-label,
#list_Modules .cell_5 .ui-table-cell-label { #list_Modules .cell_5 .ui-table-cell-label {
display: none; display: none !important;
}
#list_Modules td {
height: 35px;
padding-top: 7px;
display: table-cell;
clear: none;
float: none;
padding-left: 0px !important;
padding-right: 0px !important;
} }
#list_Modules .show_collapside { #list_Modules .show_collapside {
@ -766,18 +834,43 @@ table.event_details td.cell_event_name {
white-space: nowrap; white-space: nowrap;
} }
#list_Modules .cell_1,
#list_Modules .cell_2, #list_Modules .cell_2,
#list_Modules .cell_3 { #list_Modules .cell_3 {
display: none !important; display: none !important;
} }
#list_Modules .cell_0 .show_collapside, #list_Modules .cell_0 .show_collapside,
#list_Modules .cell_1 .show_collapside { #list_Modules .cell_1 .show_collapside,
#list_Modules .cell_4 .show_collapside,
#list_Modules .cell_5 .show_collapside {
display: none !important; display: none !important;
} }
#list_Modules .cell_0 .ui-link { #list_Modules .cell_0 .ui-link {
font-size: 15px; font-size: 12px;
}
#list_Modules .cell_0{
width: 50%;
border-top: 0px none;
}
#list_Modules .cell_4{
width: 25%;
}
#list_Modules .cell_5{
width: 25%;
}
}
#list_Modules td.cell_0>span.tiny>img {
width: 5px;
height: 30px;
margin-top: -5px;
margin-left: 0px;
float: left;
}
#list_Modules .module_name {
font-size: 12px !important;
} }
} }
@ -795,6 +888,10 @@ table.event_details td.cell_event_name {
padding-top: 20px; padding-top: 20px;
} }
#list_agent_Modules td.cell_0 > span.tiny {
display: none;
}
#list_Modules .cell_5 img { #list_Modules .cell_5 img {
float: left; float: left;
} }
@ -809,7 +906,7 @@ table.event_details td.cell_event_name {
line-height: 20px; line-height: 20px;
} }
@media screen and (max-width: 25em) { @media screen and (max-width: 34.99em) {
#list_agent_Modules .ui-table-cell-label, #list_agent_Modules .ui-table-cell-label,
#list_agent_Modules .cell_2, #list_agent_Modules .cell_2,
#list_agent_Modules .cell_3 { #list_agent_Modules .cell_3 {
@ -877,7 +974,7 @@ li.ui-btn {
float: left; float: left;
} }
@media screen and (max-width: 25em) { @media screen and (max-width: 34.99em) {
.ui-table th, .ui-table td { .ui-table th, .ui-table td {
padding: 8px !important; padding: 8px !important;
padding-left: 3px; padding-left: 3px;
@ -924,7 +1021,7 @@ li.ui-btn {
height: 28px !important; height: 28px !important;
} }
@media screen and (max-width: 25em) @media screen and (max-width: 35em)
{ {
.events .status_row { .events .status_row {
display: none; display: none;
@ -939,12 +1036,12 @@ li.ui-btn {
min-width: 50%; min-width: 50%;
} }
.agents_tiny_stats, .agents_last_contact { .agents_last_contact {
float: right; float: right;
} }
} }
@media screen and (min-width: 25em) @media screen and (min-width: 35em)
{ {
.events .cell_0 .event_link{ .events .cell_0 .event_link{
display: none; display: none;
@ -1028,7 +1125,7 @@ li.ui-btn {
} }
.event_name { .event_name {
font-size: 18px !important; font-size: 15px !important;
} }
.login_logo img { .login_logo img {
@ -1050,7 +1147,7 @@ li.ui-btn {
} }
.event_name { .event_name {
font-size: 15px; font-size: 12px;
font-weight: bold; font-weight: bold;
} }
@ -1199,6 +1296,11 @@ span.nobold * {
line-height: 1.1em; line-height: 1.1em;
} }
.events_timestamp > img {
vertical-align: middle;
margin-left: 10px;
}
.events_agent { .events_agent {
float: left; float: left;
} }
@ -1258,3 +1360,15 @@ DIV.nodata_container {
.ui-table-reflow.ui-responsive { .ui-table-reflow.ui-responsive {
display: table !important; display: table !important;
} }
.widget_agent_module > th {
background-color: #373737;
}
#list_agent_Modules >tbody > tr > td {
clear: none;
vertical-align: middle;
padding: 0px;
}
#list_agent_Modules > tbody > tr > td.cell_0 {
border-top: 0px none;
}

View File

@ -780,6 +780,7 @@ class Table {
foreach ($data as $id => $row) { foreach ($data as $id => $row) {
$table_row = array(); $table_row = array();
foreach ($row as $key => $value) { foreach ($row as $key => $value) {
if (!in_array($key, $this->head)) { if (!in_array($key, $this->head)) {
$this->head[] = $key; $this->head[] = $key;
} }
@ -843,45 +844,40 @@ class Table {
$html = ''; $html = '';
$html = "<table data-role='table' id='" . $this->id . "' " . $html = "<table data-role='table' id='" . $this->id . "' " .
"data-mode='reflow' class='" . $this->class_table . " ui-responsive table-stroke'>\n"; "data-mode='reflow' class='" . $this->class_table . " ui-responsive table-stroke'>";
$html .= "<thead>\n"; if ($this->head) {
$html .= "<tr>\n"; $html .= "<thead>";
//Empty head for white space between rows in the responsive vertical layout $html .= "<tr>";
$html .= "<th class='head_horizontal'></th>\n"; //Empty head for white space between rows in the responsive vertical layout
foreach ($this->head as $head) { //~ $html .= "<th class='head_horizontal'></th>";
$html .= "<th class='head_horizontal'>" . $head . "</th>\n"; foreach ($this->head as $head) {
$html .= "<th class='head_horizontal'>" . $head . "</th>";
}
$html .= "</tr>";
$html .= "</thead>";
} }
$html .= "</tr>\n";
$html .= "</thead>\n";
$html .= "<tbody>\n"; $html .= "<tbody>";
foreach ($this->rows as $key => $row) { foreach ($this->rows as $key => $row) {
$class = ''; $class = '';
if (isset($this->rowClass[$key])) { if (isset($this->rowClass[$key])) {
$class = $this->rowClass[$key]; $class = $this->rowClass[$key];
} }
$html .= "<tr class='" . $class . "'>\n"; $html .= "<tr class='" . $class . "'>";
//Empty head for white space between rows in the responsive vertical layout //Empty head for white space between rows in the responsive vertical layout
if (isset($this->row_heads[$key])) {
$html .= "<th class='head_vertical'>" . $this->row_heads[$key] . "</th>\n";
}
elseif ($this->row_keys_as_head_row) {
$html .= "<th class='head_vertical'>" . $key . "</th>\n";
}
else {
$html .= "<th class='head_vertical' style='font-size: 0px'></th>\n";
}
foreach ($row as $key_cell => $cell) { foreach ($row as $key_cell => $cell) {
$html .= "<td class='cell_" . $key_cell . "'>" . $cell . "</td>\n"; $html .= "<td class='cell_" . $key_cell . "'>" . $cell . "</td>";
} }
$html .= "</tr>\n";
$html .= "</tr>";
} }
$html .= "</tbody>\n"; $html .= "</tbody>";
$html .= "</table>\n"; $html .= "</table>";
return $html; return $html;
} }

View File

@ -114,92 +114,123 @@ class Agent {
$ui->showFooter(false); $ui->showFooter(false);
$ui->beginContent(); $ui->beginContent();
if (empty($this->agent)) { if (empty($this->agent)) {
$ui->contentAddHtml('<span style="color: red;">' . __('No agent found') . '</span>'); $ui->contentAddHtml('<span style="color: red;">' .
__('No agent found') . '</span>');
} }
else { else {
$ui->contentBeginGrid(); $ui->contentBeginGrid();
if ($this->agent['disabled']) { if ($this->agent['disabled']) {
$agent_name = "<em>" . $agent_name . "</em>" . ui_print_help_tip(__('Disabled'), true); $agent_name = "<em>" . $agent_name . "</em>" .
} ui_print_help_tip(__('Disabled'), true);
else if ($this->agent['quiet']) { }
$agent_name = "<em>" . $agent_name . "&nbsp;" . html_print_image("images/dot_green.disabled.png", true, array("border" => '0', "title" => __('Quiet'), "alt" => "")) . "</em>"; else if ($this->agent['quiet']) {
} $agent_name = "<em>" . $agent_name . "&nbsp;" .
else { html_print_image("images/dot_green.disabled.png",
$agent_name = $agent_name; true, array("border" => '0', "title" => __('Quiet'), "alt" => "")) . "</em>";
} }
else {
$agent_name = $agent_name;
if ($system->getConfig('metaconsole')) { }
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
$addresses = agents_get_addresses($this->agent['id_tagente']);
}
else
$addresses = agents_get_addresses($this->id);
if ($system->getConfig('metaconsole'))
metaconsole_restore_db();
$address = $this->agent['direccion'];
foreach ($addresses as $k => $add) {
if ($add == $address) {
unset($addresses[$k]);
}
}
$ip = html_print_image('images/world.png', true, array('title' => __('IP address'))) . '&nbsp;&nbsp;';
$ip .= empty($address) ? '<em>' . __('N/A') . '</em>' : $address;
if (!empty($addresses)) {
$ip .= ui_print_help_tip(__('Other IP addresses').': <br>'.implode('<br>',$addresses), true);
}
$ip .= '<br />';
$last_contact = '<b>' . __('Last contact') . '</b>:&nbsp;'
.ui_print_timestamp ($this->agent["ultimo_contacto"], true) . '<br />';
$description = '<b>' . __('Description') . ':</b><br>';
if (empty($agent["comentarios"])) {
$description .= '<i>' . __('N/A') . '</i>';
}
else {
$description .= $this->agent["comentarios"];
}
$html = '<div class="agent_details">';
$html .= ui_print_group_icon ($this->agent["id_grupo"], true, "groups_small", "", false) . '&nbsp;&nbsp;';
$html .= '<span class="agent_name">' . $agent_name . '</span><br />';
$html .= $ip;
$html .= $last_contact;
$html .= $description;
$html .= '</div>';
if ($system->getConfig('metaconsole')) { if ($system->getConfig('metaconsole')) {
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']); metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
} //~ $addresses = agents_get_addresses($this->agent['id_tagente']);
}
else
$addresses = agents_get_addresses($this->id);
if ($system->getConfig('metaconsole'))
metaconsole_restore_db();
$address = $this->agent['direccion'];
//~ foreach ($addresses as $k => $add) {
//~ if ($add == $address) {
//~ unset($addresses[$k]);
//~ }
//~ }
//~ $ip = html_print_image('images/world.png',
//~ true, array('title' => __('IP address'))) .
//~ '&nbsp;&nbsp;';
$ip .= empty($address) ? '<em>' . __('N/A') .
'</em>' : $address;
//~ if (!empty($addresses)) {
//~ $ip .= ui_print_help_tip(__('Other IP addresses') .
//~ ': ' . implode(', ',$addresses), true);
//~ }
$last_contact = '<b>' . __('Last contact') .
'</b>:&nbsp;' .
ui_print_timestamp ($this->agent["ultimo_contacto"], true);
//~ $description = '<b>' . __('Description') . ':</b>&nbsp;';
if (empty($agent["comentarios"])) {
$description .= '<i>' . __('N/A') . '</i>';
}
else {
$description .= $this->agent["comentarios"];
}
$html = '<div class="agent_details" style:"float:left;">';
$html .= '<span class="agent_name">' . $agent_name .
'</span>';
$html .= '</div>';
$html .= '<div class="agent_os">' . ui_print_os_icon ($this->agent["id_os"], false, true,
true, false, false, false, false, true) . '</div>';
$html .= '<div class="agent_list_ips">';
$html .= $ip . ' - ' .
groups_get_name ($this->agent["id_grupo"], true);
$html .= '</div>
<div class="agent_last_contact">';
$html .= $last_contact;
$html .= '</div>
<div class="agent_description">';
$html .= $description;
$html .= '</div>';
if ($system->getConfig('metaconsole')) {
metaconsole_connect(null,
$this->agent['id_tmetaconsole_setup']);
}
$ui->contentGridAddCell($html, 'agent_details'); $ui->contentGridAddCell($html, 'agent_details');
ob_start();
$html = '<div class="agent_graphs">'; ob_start();
$html .= "<b>" . __('Modules by status') . "</b><br />";
$html .= graph_agent_status ($this->id, 160, 160, true); $html = '<div class="agent_graphs">';
$graph_js = ob_get_clean(); $html .= "<b>" . __('Modules by status') . "</b>";
$html = $graph_js . $html; $html .= graph_agent_status ($this->id, 160, 160, true);
unset($this->agent['fired_count']); $graph_js = ob_get_clean();
if ($this->agent['total_count'] > 0) { $html = $graph_js . $html;
$html .= '<span class="agents_tiny_stats agents_tiny_stats_tactical">' . reporting_tiny_stats($this->agent, true) . ' </span><br>';
} unset($this->agent['fired_count']);
$html .= "<b>" . __('Events (24h)') . "</b><br /><br />";
$html .= '<div id="events_bar"></div>'; if ($this->agent['total_count'] > 0) {
$html .= '<br>'; $html .= '<div class="agents_tiny_stats agents_tiny_stats_tactical">' .
$html .= '</div>'; reporting_tiny_stats($this->agent, true, 'agent', '&nbsp;') . ' </div>';
}
$html .= '</div>';
$html .= '<div class="events_bar">';
$html .= "<b>" . __('Events (24h)') . "</b>";
$html .= '<div id="events_bar"></div>';
$html .= '</div>';
$ui->contentGridAddCell($html, 'agent_graphs'); $ui->contentGridAddCell($html, 'agent_graphs');
$ui->contentEndGrid(); $ui->contentEndGrid();
if ($system->getConfig('metaconsole')) if ($system->getConfig('metaconsole'))
metaconsole_restore_db(); metaconsole_restore_db();
$modules = new Modules(); $modules = new Modules();
if ($system->getConfig('metaconsole')) if ($system->getConfig('metaconsole'))
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_modules' => true, 'status' => -1); $filters = array('id_agent' => $this->agent['id_tagente'], 'all_modules' => true, 'status' => -1);
else else
$filters = array('id_agent' => $this->id, 'all_modules' => true, 'status' => -1); $filters = array('id_agent' => $this->id, 'all_modules' => true, 'status' => -1);
$modules->setFilters($filters); $modules->setFilters($filters);
$modules->disabledColumns(array('agent')); $modules->disabledColumns(array('agent'));
$ui->contentBeginCollapsible(__('Modules')); $ui->contentBeginCollapsible(__('Modules'));
@ -208,19 +239,24 @@ class Agent {
if ($system->getConfig('metaconsole')) { if ($system->getConfig('metaconsole')) {
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']); metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
} }
$alerts = new Alerts(); $alerts = new Alerts();
if ($system->getConfig('metaconsole')) if ($system->getConfig('metaconsole'))
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_alerts' => true); $filters = array('id_agent' => $this->agent['id_tagente'], 'all_alerts' => true);
else else
$filters = array('id_agent' => $this->id, 'all_alerts' => true); $filters = array('id_agent' => $this->id, 'all_alerts' => true);
$alerts->setFilters($filters); $alerts->setFilters($filters);
$alerts->disabledColumns(array('agent')); $alerts->disabledColumns(array('agent'));
$ui->contentBeginCollapsible(__('Alerts')); $ui->contentBeginCollapsible(__('Alerts'));
$ui->contentCollapsibleAddItem($alerts->listAlertsHtml(true)); $ui->contentCollapsibleAddItem($alerts->listAlertsHtml(true));
$ui->contentEndCollapsible(); $ui->contentEndCollapsible();
if ($system->getConfig('metaconsole')) if ($system->getConfig('metaconsole'))
metaconsole_restore_db(); metaconsole_restore_db();
$events = new Events(); $events = new Events();
$events->addJavascriptDialog(); $events->addJavascriptDialog();

View File

@ -325,7 +325,7 @@ class Agents {
$row[7] = $row[__('Modules')] = $row[7] = $row[__('Modules')] =
'<span class="show_collapside" style="vertical-align: 0%; display: none; font-weight: bolder;">' . __('Modules') . ' </span>' . '<span class="show_collapside" style="vertical-align: 0%; display: none; font-weight: bolder;">' . __('Modules') . ' </span>' .
'<span class="agents_tiny_stats">' . reporting_tiny_stats($agent, true) . ' </span>'; '<span class="agents_tiny_stats">' . reporting_tiny_stats($agent, true, 'agent', '&nbsp;') . ' </span>';
$last_time = strtotime ($agent["ultimo_contacto"]); $last_time = strtotime ($agent["ultimo_contacto"]);
$now = time (); $now = time ();

View File

@ -105,7 +105,7 @@ class Events {
$status_icon = html_print_image($img_st, true, false, false, false, false, true); $status_icon = html_print_image($img_st, true, false, false, false, false, true);
$row = array(); $row = array();
$row[] = '<b class="ui-table-cell-label">' . __('Event Name') . '</b><a href="javascript: openDetails(' . $event['id_evento'] . ')"><div class="event_name">' . io_safe_output($event['evento']) . '</div></a>'; $row[] = '<b class="ui-table-cell-label">' . __('Event Name') . '</b><a href="javascript: openDetails(' . $event['id_evento'] . ')"><div class="event_name">' . io_safe_output(str_replace(array('&nbsp;','&#20;'), ' ', $event['evento'])) . '</div></a>';
if ($event["id_agente"] == 0) { if ($event["id_agente"] == 0) {
$agent_name = __('System'); $agent_name = __('System');
@ -115,7 +115,7 @@ class Events {
} }
$row_1 = '<span class="events_agent">' . $agent_name . '</span>'; $row_1 = '<span class="events_agent">' . $agent_name . '</span>';
$row_1 .= '<span class="events_timestamp">' . $status_icon . '<br>' . ui_print_timestamp ($event['timestamp_rep'], true, array('units' => 'tiny')) . '</span>'; $row_1 .= '<span class="events_timestamp">' . ui_print_timestamp ($event['timestamp_rep'], true, array('units' => 'tiny')) . $status_icon . '</span>';
$row[] = $row_1; $row[] = $row_1;
@ -966,10 +966,10 @@ class Events {
var new_rows = \"\"; var new_rows = \"\";
$.each(data.events, function(key, event) { $.each(data.events, function(key, event) {
new_rows = \"<tr class='events \" + event[2] + \"'>\" + new_rows = \"<tr class='events \" + event[2] + \"'>\" +
\"<td class='cell_0'>\" + \"<td class='cell_0' style='vertical-align:middle;'>\" +
event[0] + event[0] +
\"</td>\" + \"</td>\" +
\"<td>\" + event[1] + \"</td>\" + \"<td style='vertical-align:middle;'>\" + event[1] + \"</td>\" +
\"</tr>\" + new_rows; \"</tr>\" + new_rows;
}); });

View File

@ -84,7 +84,7 @@ class ModuleGraph {
$this->height = (int)$system->getRequest('height', 0); $this->height = (int)$system->getRequest('height', 0);
//Sancho says "put the height to 1/2 for to make more beautyful" //Sancho says "put the height to 1/2 for to make more beautyful"
//$this->height = $this->height / 2; $this->height = $this->height / 1.5;
$this->height -= 80; //Correct the height $this->height -= 80; //Correct the height
@ -279,37 +279,34 @@ class ModuleGraph {
ob_start(); ob_start();
?> ?>
<script type="text/javascript"> <script type="text/javascript">
$(document).bind('ready', function() { $(document).ready(function() {
function load_graph() { function load_graph() {
$("#loading_graph").show(); $("#loading_graph").show();
$("#graph_content").html($('#loading_graph').html()) var heigth = $(document).height()
.height(($(window).height()
- $(".ui-header").height() - $(".ui-header").height()
- $(".ui-collapsible").height() - $(".ui-collapsible").height()
- 55) + "px").width($(".ui-collapsible").width() + "px"); - 55;
var width = $(document).width() - 25;
ajax_get_graph($("#id_module").val()); ajax_get_graph($("#id_module").val(), heigth, width);
} }
load_graph(); load_graph();
// Detect orientation change to refresh dinamic content // Detect orientation change to refresh dinamic content
$(window).on({ window.addEventListener("resize", function() {
orientationchange: function(e) { // Reload dinamic content
// Reload dinamic content load_graph();
load_graph();
}
}); });
}); });
function ajax_get_graph(id) { function ajax_get_graph(id, heigth_graph, width_graph) {
postvars = {}; postvars = {};
postvars["action"] = "ajax"; postvars["action"] = "ajax";
postvars["parameter1"] = "module_graph"; postvars["parameter1"] = "module_graph";
postvars["parameter2"] = "get_graph"; postvars["parameter2"] = "get_graph";
postvars["width"] = $("#graph_content").width(); postvars["width"] = width_graph;
postvars["height"] = $("#graph_content").height(); postvars["height"] = heigth_graph;
postvars["draw_alerts"] = ($("input[name = 'draw_alerts']").is(":checked"))?1:0; postvars["draw_alerts"] = ($("input[name = 'draw_alerts']").is(":checked"))?1:0;
postvars["draw_events"] = ($("input[name = 'draw_events']").is(":checked"))?1:0; postvars["draw_events"] = ($("input[name = 'draw_events']").is(":checked"))?1:0;

View File

@ -117,8 +117,8 @@ class Modules {
} }
$this->status = $system->getRequest('status', __("Status")); $this->status = $system->getRequest('status', __("Status"));
if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_NOT_NORMAL)) { if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_ALL)) {
$this->status = AGENT_MODULE_STATUS_NOT_NORMAL; $this->status = AGENT_MODULE_STATUS_ALL;
} }
else { else {
$this->default = false; $this->default = false;
@ -443,8 +443,49 @@ class Modules {
foreach ($modules_db as $module) { foreach ($modules_db as $module) {
$row = array(); $row = array();
$image_status = '';
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
$module['module_type'] > 23) && $module['module_type'] != 100)) {
$image_status = ui_print_status_image(STATUS_MODULE_NO_DATA,
__('NOT INIT'), true);
}
elseif ($module["estado"] == 0) {
$image_status = ui_print_status_image(STATUS_MODULE_OK,
__('NORMAL') . ": " . $module["datos"], true);
}
elseif ($module["estado"] == 1) {
$image_status = ui_print_status_image(STATUS_MODULE_CRITICAL,
__('CRITICAL') . ": " . $module["datos"], true);
}
elseif ($module["estado"] == 2) {
$image_status = ui_print_status_image(STATUS_MODULE_WARNING,
__('WARNING') . ": " . $module["datos"], true);
}
else {
$last_status = modules_get_agentmodule_last_status(
$module['id_agente_modulo']);
switch($last_status) {
case 0:
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
__('UNKNOWN') . " - " . __('Last status') . " " .
__('NORMAL') . ": " . $module["datos"], true);
break;
case 1:
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
__('UNKNOWN') . " - " . __('Last status') ." " .
__('CRITICAL') . ": " . $module["datos"], true);
break;
case 2:
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
__('UNKNOWN') . " - " . __('Last status') . " " .
__('WARNING') . ": " . $module["datos"], true);
break;
}
}
$row[0] = $row[0] =
$row[__('Module name')] = $row[__('Module name')] = '<span class="tiny" style="margin-right: 5px;">' . $image_status . '</span>' .
'<span class="data module_name">' . '<span class="data module_name">' .
ui_print_truncate_text($module['module_name'], 30, false) . ui_print_truncate_text($module['module_name'], 30, false) .
"</span>"; "</span>";
@ -455,6 +496,7 @@ class Modules {
ui_print_truncate_text($module['agent_name'], 50, false) . ui_print_truncate_text($module['agent_name'], 50, false) .
'</span>'; '</span>';
} }
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 || if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
$module['module_type'] > 23) && $module['module_type'] != 100)) { $module['module_type'] > 23) && $module['module_type'] != 100)) {
$row[5] = $row[__('Status')] = ui_print_status_image(STATUS_MODULE_NO_DATA, $row[5] = $row[__('Status')] = ui_print_status_image(STATUS_MODULE_NO_DATA,
@ -559,34 +601,30 @@ class Modules {
"&refr=" . $module["module_interval"]."','".$handle."','width=700, height=480')"; "&refr=" . $module["module_interval"]."','".$handle."','width=700, height=480')";
if ($is_snapshot) { if ($is_snapshot) {
if (is_image_data($module["datos"])) {
if (is_image_data($module["datos"])) { $row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' . html_print_image("images/photo.png", true,
html_print_image("images/photo.png", true, array("border" => '0',
array("border" => '0', "alt" => "",
"alt" => "", "title" => __("Snapshot view"))) . '</a> &nbsp;&nbsp;';
"title" => __("Snapshot view"))) . '</a> &nbsp;&nbsp;'; }
else {
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
html_print_image("images/default_list.png", true,
array("border" => '0',
"alt" => "",
"title" => __("Snapshot view"))) . '</a> &nbsp;&nbsp;';
}
}
else {
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">' .
'<span style="display: none;" class="show_collapside">' .
$row[__('Status')] . '&nbsp;&nbsp;</span>' .
'<a data-ajax="false" class="ui-link" ' .
'href="index.php?page=module_graph&id=' .
$module['id_agente_modulo'] . '&id_agent=' .
$this->id_agent . '">' . $output . '</a>' . '</span>';
} }
else {
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
html_print_image("images/default_list.png", true,
array("border" => '0',
"alt" => "",
"title" => __("Snapshot view"))) . '</a> &nbsp;&nbsp;';
}
}
else{
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">' .
'<span style="display: none;" class="show_collapside">' .
$row[__('Status')] . '&nbsp;&nbsp;</span>' .
'<a data-ajax="false" class="ui-link" ' .
'href="index.php?page=module_graph&id=' .
$module['id_agente_modulo'] . '&id_agent=' .
$this->id_agent . '">' . $output . '</a>' . '</span>';
}
/* /*
@ -643,12 +681,12 @@ class Modules {
$ui->contentAddHtml($table->getHTML()); $ui->contentAddHtml($table->getHTML());
} }
else { else {
foreach ($listModules['modules'] as $key => $module) { //~ foreach ($listModules['modules'] as $key => $module) {
$listModules['modules'][$key][__('Status')] .= //~ $listModules['modules'][$key][__('Status')] .=
'<span style="display: none;" class="show_collapside">' . //~ '<span style="display: none;" class="show_collapside">' .
$listModules['modules'][$key][__('Data')] . //~ $listModules['modules'][$key][__('Data')] .
'</span>'; //~ '</span>';
} //~ }
$table = new Table(); $table = new Table();
$table->id = 'list_agent_Modules'; $table->id = 'list_agent_Modules';
@ -710,9 +748,8 @@ class Modules {
else { else {
$.each(data.modules, function(key, module) { $.each(data.modules, function(key, module) {
$(\"table#list_Modules tbody\").append(\"<tr>\" + $(\"table#list_Modules tbody\").append(\"<tr>\" +
\"<th class='head_vertical'></th>\" + \"<td class='cell_1'><b class='ui-table-cell-label'>" . __('Module name') . "</b>\" + module[1] + \"</td>\" +
\"<td class='cell_1'><b class='ui-table-cell-label'>" . __('Module name') . "</b>\" + module[0] + \"</td>\" + \"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[0] + \"</td>\" +
\"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[1] + \"</td>\" +
\"<td class='cell_2'><b class='ui-table-cell-label'>" . __('Status') . "</b>\" + module[5] + \"</td>\" + \"<td class='cell_2'><b class='ui-table-cell-label'>" . __('Status') . "</b>\" + module[5] + \"</td>\" +
\"<td class='cell_3'><b class='ui-table-cell-label'>" . __('Interval') . "</b>\" + module[4] + \"</td>\" + \"<td class='cell_3'><b class='ui-table-cell-label'>" . __('Interval') . "</b>\" + module[4] + \"</td>\" +
\"<td class='cell_4'><b class='ui-table-cell-label'>" . __('Timestamp') . "</b>\" + module[6] + \"</td>\" + \"<td class='cell_4'><b class='ui-table-cell-label'>" . __('Timestamp') . "</b>\" + module[6] + \"</td>\" +

View File

@ -207,7 +207,7 @@ class Tactical {
} }
else { else {
max_height = $('#tactical2 .tactical_set').height(); max_height = $('#tactical2 .tactical_set').height();
$('#tactical1').height(max_height); //~ $('#tactical1').height(max_height);
} }
} }