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,
$apply_skin = true, $networkmap = false, $only_src = false,
$relative = false, $options = false) {
$relative = false, $options = false, $big_icons = false) {
$subfolter = 'os_icons';
$subfolder = 'os_icons';
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);
$os_name = get_os_name ($id_os);
if (empty ($icon)) {
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);
}
else {
@ -637,13 +637,13 @@ function ui_print_os_icon ($id_os, $name = true, $return = false,
}
else if ($apply_skin) {
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 {
if (!isset($options['title'])) {
$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

View File

@ -708,19 +708,19 @@ a.ui-link-inherit {
/* Active class used as the "on" state across all themes
-----------------------------------------------------------------------------------------------------------*/
.ui-btn-active {
border: 1px solid #2373a5 /*{global-active-border}*/;
border: 1px solid #82B92E /*{global-active-border}*/;
background: #5393c5 /*{global-active-background-color}*/;
font-weight: bold;
color: #fff /*{global-active-color}*/;
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;
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-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{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: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{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: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/);
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( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/);
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-btn-active:visited,
@ -1042,9 +1042,9 @@ a.ui-link-inherit {
}
.ui-focus,
.ui-btn:focus {
-moz-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 #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
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 #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{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-search.ui-focus {
@ -1123,10 +1123,29 @@ div.ui-mobile-viewport { overflow-x: hidden; }
.ui-header > .ui-btn-icon-notext,
.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; }
.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-footer .ui-title { margin: .6em 15px .8em; }
.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-footer .ui-title {
margin: .6em 15px .8em;
}
/* 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 */
.ui-corner-all > .ui-header: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-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-inset .ui-collapsible-heading { margin: 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;
}
.ui-dialog-contain > .ui-content {
padding: 15px;
padding: 5px 5px 0px 5px;
}
.ui-dialog-contain > .ui-footer {
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 */
@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 */
.ui-table-reflow.ui-responsive {
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 */
/* 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 th {
width: 100%;
@ -3153,6 +3172,15 @@ div.ui-slider-switch.ui-mini {
float: 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 */
.ui-panel {

View File

@ -34,6 +34,10 @@ body {
}
.agent_graphs, .events_bar {
padding-top: 10px;
}
#tactical1 *, #tactical2 * {
font-weight: bold;
}
@ -520,11 +524,32 @@ table.event_details td.cell_event_name {
}
.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 {
float: left;
.agent_list_ips {
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 {
@ -544,8 +569,8 @@ table.event_details td.cell_event_name {
}
#list_agents td {
height: 35px;
padding-top: 20px;
height: 25px;
padding-top: 10px;
}
.agents_tiny_stats_tactical {
@ -554,7 +579,33 @@ table.event_details td.cell_event_name {
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_3 .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_3,
#list_agents .cell_6,
#list_agents .cell_7 {
display: inline !important;
float: none !important;
@ -594,7 +644,7 @@ table.event_details td.cell_event_name {
}
#list_agents .show_collapside {
display: inline !important;
display: none !important;
}
#list_agents .cell_1,
@ -605,16 +655,24 @@ table.event_details td.cell_event_name {
}
#list_agents .cell_0 .ui-link {
font-size: 15px;
font-size: 12px;
}
#list_agents .cell_6 .show_collapside {
display: inline !important;
display: none !important;
}
.agents_tiny_stats * {
font-size: 12px !important;
}
#list_agent_Modules td {
padding-top: 7px !important;
}
.agents_tiny_stats {
float: right;
}
}
/* For mobiles */
@ -738,7 +796,7 @@ table.event_details td.cell_event_name {
/*END-----------Visual maps 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_5 .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_4 .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 {
@ -766,18 +834,43 @@ table.event_details td.cell_event_name {
white-space: nowrap;
}
#list_Modules .cell_1,
#list_Modules .cell_2,
#list_Modules .cell_3 {
display: none !important;
}
#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;
}
#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;
}
#list_agent_Modules td.cell_0 > span.tiny {
display: none;
}
#list_Modules .cell_5 img {
float: left;
}
@ -809,7 +906,7 @@ table.event_details td.cell_event_name {
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 .cell_2,
#list_agent_Modules .cell_3 {
@ -877,7 +974,7 @@ li.ui-btn {
float: left;
}
@media screen and (max-width: 25em) {
@media screen and (max-width: 34.99em) {
.ui-table th, .ui-table td {
padding: 8px !important;
padding-left: 3px;
@ -924,7 +1021,7 @@ li.ui-btn {
height: 28px !important;
}
@media screen and (max-width: 25em)
@media screen and (max-width: 35em)
{
.events .status_row {
display: none;
@ -939,12 +1036,12 @@ li.ui-btn {
min-width: 50%;
}
.agents_tiny_stats, .agents_last_contact {
.agents_last_contact {
float: right;
}
}
@media screen and (min-width: 25em)
@media screen and (min-width: 35em)
{
.events .cell_0 .event_link{
display: none;
@ -1028,7 +1125,7 @@ li.ui-btn {
}
.event_name {
font-size: 18px !important;
font-size: 15px !important;
}
.login_logo img {
@ -1050,7 +1147,7 @@ li.ui-btn {
}
.event_name {
font-size: 15px;
font-size: 12px;
font-weight: bold;
}
@ -1199,6 +1296,11 @@ span.nobold * {
line-height: 1.1em;
}
.events_timestamp > img {
vertical-align: middle;
margin-left: 10px;
}
.events_agent {
float: left;
}
@ -1258,3 +1360,15 @@ DIV.nodata_container {
.ui-table-reflow.ui-responsive {
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) {
$table_row = array();
foreach ($row as $key => $value) {
if (!in_array($key, $this->head)) {
$this->head[] = $key;
}
@ -843,45 +844,40 @@ class Table {
$html = '';
$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";
$html .= "<tr>\n";
//Empty head for white space between rows in the responsive vertical layout
$html .= "<th class='head_horizontal'></th>\n";
foreach ($this->head as $head) {
$html .= "<th class='head_horizontal'>" . $head . "</th>\n";
if ($this->head) {
$html .= "<thead>";
$html .= "<tr>";
//Empty head for white space between rows in the responsive vertical layout
//~ $html .= "<th class='head_horizontal'></th>";
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) {
$class = '';
if (isset($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
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) {
$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 .= "</table>\n";
$html .= "</tbody>";
$html .= "</table>";
return $html;
}

View File

@ -114,92 +114,123 @@ class Agent {
$ui->showFooter(false);
$ui->beginContent();
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 {
$ui->contentBeginGrid();
if ($this->agent['disabled']) {
$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 {
$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 ($this->agent['disabled']) {
$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 {
$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') .
//~ ': ' . 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');
ob_start();
$html = '<div class="agent_graphs">';
$html .= "<b>" . __('Modules by status') . "</b><br />";
$html .= graph_agent_status ($this->id, 160, 160, true);
$graph_js = ob_get_clean();
$html = $graph_js . $html;
unset($this->agent['fired_count']);
if ($this->agent['total_count'] > 0) {
$html .= '<span class="agents_tiny_stats agents_tiny_stats_tactical">' . reporting_tiny_stats($this->agent, true) . ' </span><br>';
}
$html .= "<b>" . __('Events (24h)') . "</b><br /><br />";
$html .= '<div id="events_bar"></div>';
$html .= '<br>';
$html .= '</div>';
ob_start();
$html = '<div class="agent_graphs">';
$html .= "<b>" . __('Modules by status') . "</b>";
$html .= graph_agent_status ($this->id, 160, 160, true);
$graph_js = ob_get_clean();
$html = $graph_js . $html;
unset($this->agent['fired_count']);
if ($this->agent['total_count'] > 0) {
$html .= '<div class="agents_tiny_stats agents_tiny_stats_tactical">' .
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->contentEndGrid();
if ($system->getConfig('metaconsole'))
metaconsole_restore_db();
$modules = new Modules();
if ($system->getConfig('metaconsole'))
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_modules' => true, 'status' => -1);
else
$filters = array('id_agent' => $this->id, 'all_modules' => true, 'status' => -1);
$modules->setFilters($filters);
$modules->disabledColumns(array('agent'));
$ui->contentBeginCollapsible(__('Modules'));
@ -208,19 +239,24 @@ class Agent {
if ($system->getConfig('metaconsole')) {
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
}
}
$alerts = new Alerts();
if ($system->getConfig('metaconsole'))
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_alerts' => true);
else
$filters = array('id_agent' => $this->id, 'all_alerts' => true);
$alerts->setFilters($filters);
$alerts->disabledColumns(array('agent'));
$ui->contentBeginCollapsible(__('Alerts'));
$ui->contentCollapsibleAddItem($alerts->listAlertsHtml(true));
$ui->contentEndCollapsible();
if ($system->getConfig('metaconsole'))
metaconsole_restore_db();
$events = new Events();
$events->addJavascriptDialog();

View File

@ -325,7 +325,7 @@ class Agents {
$row[7] = $row[__('Modules')] =
'<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"]);
$now = time ();

View File

@ -105,7 +105,7 @@ class Events {
$status_icon = html_print_image($img_st, true, false, false, false, false, true);
$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) {
$agent_name = __('System');
@ -115,7 +115,7 @@ class Events {
}
$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;
@ -966,10 +966,10 @@ class Events {
var new_rows = \"\";
$.each(data.events, function(key, event) {
new_rows = \"<tr class='events \" + event[2] + \"'>\" +
\"<td class='cell_0'>\" +
\"<td class='cell_0' style='vertical-align:middle;'>\" +
event[0] +
\"</td>\" +
\"<td>\" + event[1] + \"</td>\" +
\"<td style='vertical-align:middle;'>\" + event[1] + \"</td>\" +
\"</tr>\" + new_rows;
});

View File

@ -84,7 +84,7 @@ class ModuleGraph {
$this->height = (int)$system->getRequest('height', 0);
//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
@ -279,37 +279,34 @@ class ModuleGraph {
ob_start();
?>
<script type="text/javascript">
$(document).bind('ready', function() {
$(document).ready(function() {
function load_graph() {
$("#loading_graph").show();
$("#graph_content").html($('#loading_graph').html())
.height(($(window).height()
var heigth = $(document).height()
- $(".ui-header").height()
- $(".ui-collapsible").height()
- 55) + "px").width($(".ui-collapsible").width() + "px");
ajax_get_graph($("#id_module").val());
- 55;
var width = $(document).width() - 25;
ajax_get_graph($("#id_module").val(), heigth, width);
}
load_graph();
// Detect orientation change to refresh dinamic content
$(window).on({
orientationchange: function(e) {
// Reload dinamic content
load_graph();
}
window.addEventListener("resize", function() {
// Reload dinamic content
load_graph();
});
});
function ajax_get_graph(id) {
function ajax_get_graph(id, heigth_graph, width_graph) {
postvars = {};
postvars["action"] = "ajax";
postvars["parameter1"] = "module_graph";
postvars["parameter2"] = "get_graph";
postvars["width"] = $("#graph_content").width();
postvars["height"] = $("#graph_content").height();
postvars["width"] = width_graph;
postvars["height"] = heigth_graph;
postvars["draw_alerts"] = ($("input[name = 'draw_alerts']").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"));
if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_NOT_NORMAL)) {
$this->status = AGENT_MODULE_STATUS_NOT_NORMAL;
if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_ALL)) {
$this->status = AGENT_MODULE_STATUS_ALL;
}
else {
$this->default = false;
@ -443,8 +443,49 @@ class Modules {
foreach ($modules_db as $module) {
$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[__('Module name')] =
$row[__('Module name')] = '<span class="tiny" style="margin-right: 5px;">' . $image_status . '</span>' .
'<span class="data module_name">' .
ui_print_truncate_text($module['module_name'], 30, false) .
"</span>";
@ -455,6 +496,7 @@ class Modules {
ui_print_truncate_text($module['agent_name'], 50, false) .
'</span>';
}
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
$module['module_type'] > 23) && $module['module_type'] != 100)) {
$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')";
if ($is_snapshot) {
if (is_image_data($module["datos"])) {
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
html_print_image("images/photo.png", true,
array("border" => '0',
"alt" => "",
"title" => __("Snapshot view"))) . '</a> &nbsp;&nbsp;';
if (is_image_data($module["datos"])) {
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
html_print_image("images/photo.png", true,
array("border" => '0',
"alt" => "",
"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());
}
else {
foreach ($listModules['modules'] as $key => $module) {
$listModules['modules'][$key][__('Status')] .=
'<span style="display: none;" class="show_collapside">' .
$listModules['modules'][$key][__('Data')] .
'</span>';
}
//~ foreach ($listModules['modules'] as $key => $module) {
//~ $listModules['modules'][$key][__('Status')] .=
//~ '<span style="display: none;" class="show_collapside">' .
//~ $listModules['modules'][$key][__('Data')] .
//~ '</span>';
//~ }
$table = new Table();
$table->id = 'list_agent_Modules';
@ -710,9 +748,8 @@ class Modules {
else {
$.each(data.modules, function(key, module) {
$(\"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[0] + \"</td>\" +
\"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[1] + \"</td>\" +
\"<td class='cell_1'><b class='ui-table-cell-label'>" . __('Module name') . "</b>\" + module[1] + \"</td>\" +
\"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[0] + \"</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_4'><b class='ui-table-cell-label'>" . __('Timestamp') . "</b>\" + module[6] + \"</td>\" +

View File

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