From 220ad47b3f13b42ecb4617ce6a583e86b0c07a49 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Thu, 26 Mar 2015 13:12:48 +0100 Subject: [PATCH 001/191] Change menu and visual any views, tiquets: #1815,#1702 --- .../general/firts_task/collections.php | 44 +++ .../general/firts_task/fields_manager.php | 44 +++ .../general/firts_task/map_builder.php | 44 +++ .../general/firts_task/network_map.php | 44 +++ .../general/firts_task/recon_view.php | 27 ++ .../general/firts_task/service_list.php | 44 +++ .../general/firts_task/snmp_filters.php | 44 +++ pandora_console/general/firts_task/tags.php | 44 +++ pandora_console/general/main_menu.php | 28 +- .../godmode/servers/servers.build_table.php | 6 +- pandora_console/images/icono_exclamacion.png | Bin 0 -> 394 bytes .../images/icono_grande_reconserver.png | Bin 0 -> 2737 bytes pandora_console/include/styles/firts_task.css | 52 ++++ pandora_console/include/styles/menu.css | 168 +++++++---- pandora_console/include/styles/pandora.css | 119 ++++---- pandora_console/operation/menu.php | 69 +++-- .../operation/servers/recon_view.php | 280 +++++++++--------- 17 files changed, 751 insertions(+), 306 deletions(-) create mode 100755 pandora_console/general/firts_task/collections.php create mode 100755 pandora_console/general/firts_task/fields_manager.php create mode 100755 pandora_console/general/firts_task/map_builder.php create mode 100755 pandora_console/general/firts_task/network_map.php create mode 100755 pandora_console/general/firts_task/recon_view.php create mode 100755 pandora_console/general/firts_task/service_list.php create mode 100755 pandora_console/general/firts_task/snmp_filters.php create mode 100755 pandora_console/general/firts_task/tags.php create mode 100755 pandora_console/images/icono_exclamacion.png create mode 100755 pandora_console/images/icono_grande_reconserver.png create mode 100755 pandora_console/include/styles/firts_task.css diff --git a/pandora_console/general/firts_task/collections.php b/pandora_console/general/firts_task/collections.php new file mode 100755 index 0000000000..796a2b092b --- /dev/null +++ b/pandora_console/general/firts_task/collections.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/fields_manager.php b/pandora_console/general/firts_task/fields_manager.php new file mode 100755 index 0000000000..0183930a98 --- /dev/null +++ b/pandora_console/general/firts_task/fields_manager.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/map_builder.php b/pandora_console/general/firts_task/map_builder.php new file mode 100755 index 0000000000..70fcbb153e --- /dev/null +++ b/pandora_console/general/firts_task/map_builder.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/network_map.php b/pandora_console/general/firts_task/network_map.php new file mode 100755 index 0000000000..0d8b9f79fc --- /dev/null +++ b/pandora_console/general/firts_task/network_map.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/recon_view.php b/pandora_console/general/firts_task/recon_view.php new file mode 100755 index 0000000000..639262a5d7 --- /dev/null +++ b/pandora_console/general/firts_task/recon_view.php @@ -0,0 +1,27 @@ + + +
+
+
+
+
+
+ __('Recon server')));?> +
+
+

+

ICMP (pings), + SNMP (detecting the topology of networks and their interfaces), and other customized + type. You can define your own customized recon script.'); ?>

+
+ +
+
+
+
diff --git a/pandora_console/general/firts_task/service_list.php b/pandora_console/general/firts_task/service_list.php new file mode 100755 index 0000000000..0de64ad7e1 --- /dev/null +++ b/pandora_console/general/firts_task/service_list.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/snmp_filters.php b/pandora_console/general/firts_task/snmp_filters.php new file mode 100755 index 0000000000..f3c24b3f5c --- /dev/null +++ b/pandora_console/general/firts_task/snmp_filters.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/firts_task/tags.php b/pandora_console/general/firts_task/tags.php new file mode 100755 index 0000000000..53108b4467 --- /dev/null +++ b/pandora_console/general/firts_task/tags.php @@ -0,0 +1,44 @@ + + +
+
+

This is a Table

+
+
+
+

Heading 1

+
+
+

Heading 2

+
+
+

Heading 3

+
+
+
+ +
+

Row 1 Column 2

+
+
+

Row 1 Column 3

+
+
+
+
+

Row 2 Column 1

+
+
+

Row 2 Column 2

+
+
+

Row 2 Column 3

+
+
+
diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 63f98df5db..dbed853ccc 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -34,7 +34,7 @@ if ($autohidden_menu) { // Menu container prepared to autohide menu echo '
'; -echo '
:: '.__('Operation').' ::
'; +//echo '
:: '.__('Operation').' ::
'; require ("operation/menu.php"); //Check all enterprise ACL used in godmenu items to print menu headers @@ -47,12 +47,12 @@ if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "EW") || check_acl ($config['id_user'], 0, "DW")) { - echo '
:: '.__('Administration').' ::
'; + //echo '
:: '.__('Administration').' ::
'; } require ("godmode/menu.php"); -require ("links_menu.php"); +//require ("links_menu.php"); echo '
'; //menu_container @@ -67,9 +67,10 @@ if (isset($config['fixed_header'])) { $config_fixed_header = $config['fixed_header']; } ?> + + + diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index c2f3274361..34aa45c9bd 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -37,7 +37,7 @@ if ($servers === false) { return; } -$table->width = '98%'; +$table->width = '100%'; $table->size = array (); $table->style = array (); @@ -50,7 +50,7 @@ $table->align[4] = 'center'; $table->align[5] = 'center'; $table->align[8] = 'center'; -$table->title = __('Tactical server information'); +//$table->title = __('Tactical server information'); $table->titleclass = 'tabletitle'; $table->titlestyle = 'text-transform:uppercase;'; @@ -162,5 +162,5 @@ if ($tiny) { unset($table->head[8]); } -html_print_table ($table); +ui_toggle(html_print_table ($table,true), __('Tactical server information')); ?> diff --git a/pandora_console/images/icono_exclamacion.png b/pandora_console/images/icono_exclamacion.png new file mode 100755 index 0000000000000000000000000000000000000000..896f2396e8b5ffe2db5616e41619001421b0deb4 GIT binary patch literal 394 zcmV;50d@X~P)0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzEJ;K`RCwBAV1R-D|Nkc(yfghjKmfr7 z7=a@HK@5NZf=U0s@N^@H`p*axfJ!a^2p|Rw0FvE#qw_yZ6%&ZyVBv#FI)I4t|DgaR z2oOLhT9LqeWC;hD=)%)U|3R)rHi3nak?{b`G<_+51_4ef2CM*T(tapbfQbVH5McyV z-GJu61eintvg43|1B#cLcIu&MXToP4Nb&=WW3QZvEO!At8W1rD1WYgnG=4y)On~wk z00N8=i?=|55CF0Thy{T70T3Sq;tfDOA8>`m{Qty(1ayt}(N%!L3=}lTk%|P?gCiJf z5=MM+u<+sw#Q;zwut5EU0o28u7=HZu45S@#8E}CKl(c}1Ms%5r&o(kVe0PT7=BxeK oGzOvs9?%&AAiod@tbSw@09eyr4+^lyr2qf`07*qoM6N<$g0QcZ#sB~S literal 0 HcmV?d00001 diff --git a/pandora_console/images/icono_grande_reconserver.png b/pandora_console/images/icono_grande_reconserver.png new file mode 100755 index 0000000000000000000000000000000000000000..aa2caff45a00227da5d0856438b26f0146d142db GIT binary patch literal 2737 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 img.toggle{ - visibility: visible; + #visibility: visible; z-index: 1; /* Positions it on top of the rest */ } @@ -135,6 +136,7 @@ background-color: #daedae; background-position: 4px 4px; background-repeat: no-repeat; + cursor: pointer; } .menu li.links { @@ -144,86 +146,89 @@ /* Icons specified here */ #icon_oper-networkconsole { - background-image: url(../../images/op_network.png); + background: url(../../images/op_network.png) no-repeat 50% 50%; } #icon_oper-agents { - background-image: url(../../images/op_monitoring.png); + border-top-right-radius: 5px; + border-right-style: solid; + border-right-width: 0px; + background: url(../../images/op_monitoring.png) no-repeat 50% 50%; } #icon_oper-events { - background-image: url(../../images/op_events.png); + background: url(../../images/op_events.png) no-repeat 50% 50%; } /* users */ #icon_oper-users { - background-image: url(../../images/op_workspace.png); + background: url(../../images/op_workspace.png) no-repeat 50% 50%; } /* trap console */ #icon_oper-snmpc, #icon_god-snmpc { - background-image: url(../../images/op_snmp.png); + background: url(../../images/op_snmp.png) no-repeat 50% 50%; } #icon_oper-reporting { - background-image: url(../../images/op_reporting.png); + background: url(../../images/op_reporting.png) no-repeat 50% 50%; } #icon_oper-gismaps { - background-image: url(../../images/op_gis.png); + background: url(../../images/op_gis.png) no-repeat 50% 50%; } #icon_oper-netflow { - background-image: url(../../images/op_netflow.png); + background: url(../../images/op_netflow.png) no-repeat 50% 50%; } #icon_oper-extensions, #icon_god-extensions { - background-image: url(../../images/extensions.png); + background: url(../../images/extensions.png) no-repeat 50% 50%; } /* Godmode images */ #icon_god-gismaps { - background-image: url(../../images/gm_gis.png); + background: url(../../images/gm_gis.png) no-repeat 50% 50%; } #icon_god-agents { - background-image: url(../../images/gm_monitoring.png); + background: url(../../images/gm_monitoring.png) no-repeat 50% 50%; } #icon_god-massive { - background-image: url(../../images/gm_massive_operations.png); + background: url(../../images/gm_massive_operations.png) no-repeat 50% 50%; } #icon_god-services { - background-image: url(../../images/box.png); + background: url(../../images/box.png) no-repeat 50% 50%; } #icon_god-modules { - background-image: url(../../images/gm_modules.png); + background: url(../../images/gm_modules.png) no-repeat 50% 50%; } #icon_god-alerts { - background-image: url(../../images/gm_alerts.png); + background: url(../../images/gm_alerts.png) no-repeat 50% 50%; } #icon_god-dbmaint { - background-image: url(../../images/gm_db.png); + background: url(../../images/gm_db.png) no-repeat 50% 50%; } #icon_god-users { - background-image: url(../../images/gm_users.png); + background: url(../../images/gm_users.png) no-repeat 50% 50%; } #icon_god-reporting { - background-image: url(../../images/reporting_edit.png); + background: url(../../images/reporting_edit.png) no-repeat 50% 50%; } #icon_god-servers { - background-image: url(../../images/gm_servers.png); + background: url(../../images/gm_servers.png) no-repeat 50% 50%; } #icon_god-audit { - background-image: url(../../images/gm_log.png); + background: url(../../images/gm_log.png) no-repeat 50% 50%; } #icon_god-netflow { - background-image: url(../../images/gm_netflow.png); + background: url(../../images/gm_netflow.png) no-repeat 50% 50%; } #icon_god-setup { - background-image: url(../../images/gm_setup.png); + background: url(../../images/gm_setup.png) no-repeat 50% 50%; } #icon_god-policies { - background-image: url(../../images/gm_policies.png); + background: url(../../images/gm_policies.png) no-repeat 50% 50%; } #icon_oper-inventory { - background-image: url(../../images/page_white_text.png); + background: url(../../images/page_white_text.png) no-repeat 50% 50%; } #icon_god-tag { - background-image: url(../../images/tag_red.png); + background: url(../../images/tag_red.png) no-repeat 50% 50%; } #icon_god-events { - background-image: url(../../images/gm_events.png); + background: url(../../images/gm_events.png) no-repeat 50% 50%; } #menu_container { @@ -232,3 +237,40 @@ left: -80px; background-color: #AAA; } + + +ul { + margin: 0; + padding: 0; + list-style: none; + } + +ul li { + position: relative; + } + +li ul { + position: absolute; + left: 149px; /* Set 1px less than menu width */ + top: 0; + display: none; +} + +/* Styles for Menu Items */ +ul li a { + display: block; + text-decoration: none; + color: #777; + background: #fff; /* IE6 Bug */ + padding: 5px; + border: 1px solid #ccc; + border-bottom: 0; +} + +/* Fix IE. Hide from IE Mac \*/ +* html ul li { float: left; height: 1%; } +* html ul li a { height: 1%; } +/* End */ + +ul li a:hover { color: #E2144A; background: #f9f9f9; } /* Hover Styles */ +li ul li a { padding: 2px 5px; } /* Sub Menu Styles */ diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 9f87bb2574..65f631accf 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -40,7 +40,7 @@ body { } div#page { - background: #fafafa; + background: #FFF; background-image: none; } @@ -220,31 +220,22 @@ div#db_ftxt { } div#container { margin: 0 auto; - width: 960px; + min-width: 960px; text-align: left; #border-left: solid 2px #000; #border-right: solid 2px #000; #border-top: solid 2px #000; #margin-top: 5px; - background: #fafafa; + height: 2000px; + background: #FFF; } div#page { width: 960px; clear: both; } div#main { - background: #fafafa; - background-image: none; - width: 785px; - min-height: 700px; - float: right; - padding-left: 0px; - padding-top: 0px; - padding-bottom: 20px; - margin-bottom: 25px; - margin-top: 0px; - margin-left: 0px; - margin-right: 0px; + width: 90%; + margin: 0px 0px 0px 7%; } div#main_help { width: 100%; @@ -317,8 +308,9 @@ div#menu_container { } div#menu { - width: 175px; + width: 60px; float: left; + margin-top: 10px; } div#head { @@ -326,8 +318,11 @@ div#head { width: 100%; height: 62px; padding-top: 0px; - margin-bottom: 8px; + margin-bottom: 20px; background-color: #274C00; + border-bottom-style: solid; + border-bottom-width: 5px; + border-color: #80BA27; } .fixed_header { @@ -866,18 +861,18 @@ th { } tr.datos, tr.datost, tr.datosb , tr.datos_id, tr.datosf9 { - background-color: #eaeaea; + #background-color: #eaeaea; } tr.datos2, tr.datos2t, tr.datos2b, tr.datos2_id , tr.datos2f9 { - background-color: #f2f2f2; + #background-color: #f2f2f2; } tr.datos:hover, tr.datost:hover, tr.datosb:hover, tr.datos_id:hover, tr.datosf9:hover, tr.datos2:hover, tr.datos2t:hover, tr.datos2b:hover, tr.datos2_id:hover, tr.datos2f9:hover { - background-color: #efefef; + #background-color: #efefef; } /* Checkbox styles */ @@ -1087,15 +1082,16 @@ div.title_line { background: #FAFAFA; } #menu_tab_frame_view { - background: #FAFAFA; + background: #FFF; } #menu_tab_frame, #menu_tab_frame_view { display: block !important; - border-bottom: 1px solid #b3b3b3; + border-bottom: 2px solid #80BA27; /* float:left; */ - margin-left: -8px; - min-height: 25px; + margin-left: 0px !important; + max-height: 31px; + min-height: 31px; padding-right: 28px; width: 100%; } @@ -1219,8 +1215,9 @@ div.title_line { } #menu_tab_left li a, #menu_tab_left li span { /* text-transform: uppercase; */ - padding: 3px 5px 2px 0px; + padding: 0px 0px 0px 0px; color: #fff; + font-size: 9pt; font-weight: bold; line-height: 18px; } @@ -1238,18 +1235,18 @@ div.title_line { #menu_tab_left ul.mn li.view { background: #82b92e; - max-width: 450px; - min-width: 300px; - padding: 2px 5px 0px; + max-width: 20%; + min-width: 15%; + padding: 5px 5px 0px; + text-align: center; + -moz-border-top-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; - -moz-border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - border-top-right-radius: 5px; - - -moz-border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - border-top-left-radius: 5px; - margin-left:0px; + -moz-border-top-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + margin-left:0px !important; overflow-y: hidden; } @@ -1372,17 +1369,17 @@ span.rmess, span.nrmess { table.databox { background-color: #f9faf9; - border-spacing: 2px; - -moz-box-shadow: 1px 1px 1px #DDD !important; - -webkit-box-shadow: 1px 1px 1px #DDD !important; - box-shadow: 1px 1px 1px #DDD !important; + border-spacing: 0px; + -moz-box-shadow: 0px 0px 0px #DDD !important; + -webkit-box-shadow: 0px 0px 0px #DDD !important; + box-shadow: 0px 0px 0px #DDD !important; } .databox td, .databox th { - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - border: 0px solid #fff; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + border: 0px none #fff; } .databox th { @@ -1898,12 +1895,7 @@ div.warn { padding: 2px 1px 6px 25px; } -.menu li, .menu li.selected, .menu li.not_selected { - display: block; - min-height: 33px; - border-bottom: 1px solid #424242; - vertical-align: middle; -} + .submenu_not_selected { font-weight: normal !important; @@ -1912,6 +1904,7 @@ div.warn { /* Submenus havent borders */ .submenu_not_selected, .submenu_selected, .submenu2 { border: 0px !important; + min-height: 0px !important; } /* Pandora width style theme */ @@ -1923,13 +1916,6 @@ div#page { width: auto; } div#main { - width: auto; - float: none; - margin-top: 10px; - margin-left: 185px; - margin-right: 10px; - padding-bottom: 10px; - background: #ECECEC; min-width: 720px; } div#head { @@ -1960,7 +1946,8 @@ div#steps_clean { width: 100%; padding-right: 0px; margin-left: 0px !important; - height: 27px; + margin-bottom: 15px; + height: 31px; } div#events_list { float: left; @@ -2271,12 +2258,6 @@ td.datos_greyf9, td.datos_bluef9, td.datos_greenf9, td.datos_redf9, td.datos_yel background-color: #fff !important; } -.submenu li, submenu_selected { - min-height: 25px !important; - /*height: 25px !important;*/ - padding-bottom: 0px; -} - ul.operation li a:hover { #font-weight: bold; } @@ -2331,12 +2312,22 @@ li.links a:hover { .menu li, .menu li.selected, .menu .li.not_selected { border-radius: 0px 0px 0px 0px; background-color: #373737 !important; + display: block; + min-height: 50px; + border-bottom: 0px none #424242; + vertical-align: middle; } #menu_tab li.separator { /* Empty */ } +.operation{ + border-top-right-radius: 5px; + border-right-style: solid; + border-right-width: 0px; +} + input#text-id_parent.ac_input, input, textarea, select { background-color: #ffffff !important; border: 1px solid #cbcbcb; diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 3452f0166b..12cc674fab 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -124,46 +124,51 @@ if (check_acl ($config['id_user'], 0, "RR")) { $sub["godmode/reporting/map_builder"]["refr"] = 60; } - $sub2 = array (); + $layouts = db_get_all_rows_in_table ('tlayout', 'name'); if ($layouts === false) { $layouts = array (); } - $id = (int) get_parameter ('id', -1); - - $firstLetterNameVisualToShow = array('_', ',', '[', '('); - - $sub2 = array(); - - foreach ($layouts as $layout) { - if (! check_acl ($config["id_user"], $layout["id_group"], "AR")) { - continue; - } - $name = io_safe_output($layout['name']); - if (empty($name)) { - $firstLetter = ''; - } - else { - $firstLetter = $name[0]; - } - if (!in_array($firstLetter, $firstLetterNameVisualToShow)) { - continue; - } - $sub2["operation/visual_console/render_view&id=".$layout["id"]]["text"] = mb_substr ($name, 0, 19); - $sub2["operation/visual_console/render_view&id=".$layout["id"]]["title"] = $name; - if (!empty($config['vc_refr'])) { - $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = $config['vc_refr']; - } - elseif (((int)get_parameter('refr', 0)) > 0) { - $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = (int)get_parameter('refr', 0); - } - else { - $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = 0; + else{ + $sub2 = array (); + $id = (int) get_parameter ('id', -1); + + $firstLetterNameVisualToShow = array('_', ',', '[', '('); + + $sub2 = array(); + + foreach ($layouts as $layout) { + if (! check_acl ($config["id_user"], $layout["id_group"], "AR")) { + continue; + } + $name = io_safe_output($layout['name']); + if (empty($name)) { + $firstLetter = ''; + } + else { + $firstLetter = $name[0]; + } + if (!in_array($firstLetter, $firstLetterNameVisualToShow)) { + continue; + } + $sub2["operation/visual_console/render_view&id=".$layout["id"]]["text"] = mb_substr ($name, 0, 19); + $sub2["operation/visual_console/render_view&id=".$layout["id"]]["title"] = $name; + if (!empty($config['vc_refr'])) { + $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = $config['vc_refr']; + } + elseif (((int)get_parameter('refr', 0)) > 0) { + $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = (int)get_parameter('refr', 0); + } + else { + $sub2["operation/visual_console/render_view&id=".$layout["id"]]["refr"] = 0; + } } + $sub["godmode/reporting/map_builder"]["sub2"] = $sub2; } - $sub["godmode/reporting/map_builder"]["sub2"] = $sub2; + + $sub["godmode/reporting/graphs"]["text"] = __('Custom graphs'); //Set godomode path diff --git a/pandora_console/operation/servers/recon_view.php b/pandora_console/operation/servers/recon_view.php index 0c2abf0526..b062a89fee 100644 --- a/pandora_console/operation/servers/recon_view.php +++ b/pandora_console/operation/servers/recon_view.php @@ -13,169 +13,169 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. - // Load global vars global $config; check_login (); -require_once ($config["homedir"] . '/include/functions_graph.php'); -require_once ($config["homedir"] . '/include/functions_servers.php'); -require_once ($config['homedir'] . "/include/functions_network_profiles.php"); - -if (check_acl ($config['id_user'], 0, "AW")) { - $options['manage']['text'] = "" . html_print_image("images/setup.png", true, array('title' => __('Manage'))) . ""; -} - -$options[]['text'] = "" . html_print_image("images/refresh_mc.png", true, array('title' => __('Refresh'))) . ""; - - -ui_print_page_header (__('Recon View'), "images/op_recon.png", false, "", false, $options); - - if (! check_acl ($config['id_user'], 0, "PM")) { db_pandora_audit("ACL Violation", "Trying to access recon task viewer"); require ("general/noaccess.php"); return; } - -$modules_server = 0; -$total_modules = 0; -$total_modules_data = 0; - -// -------------------------------- -// FORCE A RECON TASK -// -------------------------------- -if (check_acl ($config['id_user'], 0, "PM")) { - if (isset ($_GET["force"])) { - $id = (int) get_parameter_get ("force", 0); - - servers_force_recon_task($id); - } -} - - //Get all recon servers $servers = db_get_all_rows_sql('SELECT * FROM tserver WHERE server_type = 3'); if ($servers === false) { $servers = array (); - + return; } - -foreach ($servers as $serverItem) { - $id_server = $serverItem["id_server"]; - - - $server_name = servers_get_name ($id_server); - $recon_tasks = db_get_all_rows_field_filter ("trecon_task", "id_recon_server", $id_server); - - // Show network tasks for Recon Server - if ($recon_tasks === false) { - $recon_tasks = array (); +else{ + $recon_task = db_get_all_rows_sql('SELECT * FROM trecon_task'); + if ($recon_task === false) { + ui_print_page_header (__('Recon View'), "images/op_recon.png", false, "", false); + require_once ($config['homedir'] . "/general/firts_task/recon_view.php"); + return; } + else{ + require_once ($config["homedir"] . '/include/functions_graph.php'); + require_once ($config["homedir"] . '/include/functions_servers.php'); + require_once ($config['homedir'] . "/include/functions_network_profiles.php"); - $table->cellpadding = 4; - $table->cellspacing = 4; - $table->width = "99%"; - $table->class = "databox"; - $table->head = array (); - $table->data = array (); - $table->align = array (); - - $table->head[0] = __('Force'); - $table->align[0] = "center"; - - $table->head[1] = __('Task name'); - $table->align[1] = "center"; - - $table->head[2] = __('Interval'); - $table->align[2] = "center"; - - $table->head[3] = __('Network'); - $table->align[3] = "center"; - - $table->head[4] = __('Status'); - $table->align[4] = "center"; - - $table->head[5] = __('Template'); - $table->align[5] = "center"; - - $table->head[6] = __('Progress'); - $table->align[6] = "center"; - - $table->head[7] = __('Updated at'); - $table->align[7] = "center"; - - $table->head[8] = __('Edit'); - $table->align[8] = "center"; - - foreach ($recon_tasks as $task) { - $data = array (); - - if($task["disabled"] == 0) { - $data[0] = ''; - $data[0] .= html_print_image ("images/target.png", true, array ("title" => __('Force'))); - $data[0] .= ''; - } - else { - $data[0] = ''; - } - - $data[1] = ''. $task["name"].''; - - $data[2] = human_time_description_raw ($task["interval_sweep"]); - - if ($task["id_recon_script"] == 0){ - $data[3] = $task["subnet"]; - } - else { - $data[3] = __("N/A"); - } - - if ($task["status"] <= 0) { - $data[4] = __('Done'); - } - else { - $data[4] = __('Pending'); + if (check_acl ($config['id_user'], 0, "AW")) { + $options['manage']['text'] = "" . html_print_image("images/setup.png", true, array('title' => __('Manage'))) . ""; } - if ($task["id_recon_script"] == 0){ - // Network recon task - $data[5] = html_print_image ("images/network.png", true, array ("title" => __('Network recon task')))."  "; - $data[5] .= network_profiles_get_name ($task["id_network_profile"]); - } - else { - // APP recon task - $data[5] = html_print_image ("images/plugin.png", true). "  "; - $data[5] .= db_get_sql (sprintf("SELECT name FROM trecon_script WHERE id_recon_script = %d", $task["id_recon_script"])); - } - - if ($task["status"] <= 0 || $task["status"] > 100) { - $data[6] = "-"; - } - else { - $data[6] = progress_bar($task['status'], 100, 20, __('Progress').':'.$task["status"].'%', 1); - } - - $data[7] = ui_print_timestamp ($task["utimestamp"], true); + $options[]['text'] = "" . html_print_image("images/refresh_mc.png", true, array('title' => __('Refresh'))) . ""; - if (check_acl ($config["id_user"], $task["id_group"], "PM")) { - $data[8] = ''.html_print_image ("images/wrench_orange.png", true).''; + ui_print_page_header (__('Recon View'), "images/op_recon.png", false, "", false, $options); + + $modules_server = 0; + $total_modules = 0; + $total_modules_data = 0; + + // -------------------------------- + // FORCE A RECON TASK + // -------------------------------- + if (check_acl ($config['id_user'], 0, "PM")) { + if (isset ($_GET["force"])) { + $id = (int) get_parameter_get ("force", 0); + servers_force_recon_task($id); + } } - else { - $data[8] = ''; + + foreach ($servers as $serverItem) { + $id_server = $serverItem["id_server"]; + $server_name = servers_get_name ($id_server); + $recon_tasks = db_get_all_rows_field_filter ("trecon_task", "id_recon_server", $id_server); + + // Show network tasks for Recon Server + if ($recon_tasks === false) { + $recon_tasks = array (); + } + + $table->cellpadding = 4; + $table->cellspacing = 4; + $table->width = "99%"; + $table->class = "databox"; + $table->head = array (); + $table->data = array (); + $table->align = array (); + + $table->head[0] = __('Force'); + $table->align[0] = "center"; + + $table->head[1] = __('Task name'); + $table->align[1] = "center"; + + $table->head[2] = __('Interval'); + $table->align[2] = "center"; + + $table->head[3] = __('Network'); + $table->align[3] = "center"; + + $table->head[4] = __('Status'); + $table->align[4] = "center"; + + $table->head[5] = __('Template'); + $table->align[5] = "center"; + + $table->head[6] = __('Progress'); + $table->align[6] = "center"; + + $table->head[7] = __('Updated at'); + $table->align[7] = "center"; + + $table->head[8] = __('Edit'); + $table->align[8] = "center"; + + foreach ($recon_tasks as $task) { + $data = array (); + + if($task["disabled"] == 0) { + $data[0] = ''; + $data[0] .= html_print_image ("images/target.png", true, array ("title" => __('Force'))); + $data[0] .= ''; + } + else { + $data[0] = ''; + } + + $data[1] = ''. $task["name"].''; + + $data[2] = human_time_description_raw ($task["interval_sweep"]); + + if ($task["id_recon_script"] == 0){ + $data[3] = $task["subnet"]; + } + else { + $data[3] = __("N/A"); + } + + if ($task["status"] <= 0) { + $data[4] = __('Done'); + } + else { + $data[4] = __('Pending'); + } + + if ($task["id_recon_script"] == 0){ + // Network recon task + $data[5] = html_print_image ("images/network.png", true, array ("title" => __('Network recon task')))."  "; + $data[5] .= network_profiles_get_name ($task["id_network_profile"]); + } + else { + // APP recon task + $data[5] = html_print_image ("images/plugin.png", true). "  "; + $data[5] .= db_get_sql (sprintf("SELECT name FROM trecon_script WHERE id_recon_script = %d", $task["id_recon_script"])); + } + + if ($task["status"] <= 0 || $task["status"] > 100) { + $data[6] = "-"; + } + else { + $data[6] = progress_bar($task['status'], 100, 20, __('Progress').':'.$task["status"].'%', 1); + } + + $data[7] = ui_print_timestamp ($task["utimestamp"], true); + + if (check_acl ($config["id_user"], $task["id_group"], "PM")) { + $data[8] = ''.html_print_image ("images/wrench_orange.png", true).''; + } + else { + $data[8] = ''; + } + array_push ($table->data, $data); + } + + if (empty ($table->data)) { + echo '
'.__("Server") . " " . $server_name . " " . __("has no recon tasks assigned").'
'; + } + else { + html_print_table ($table); + } + unset ($table); } - - array_push ($table->data, $data); } - - if (empty ($table->data)) { - echo '
'.__("This server has no recon tasks assigned").'
'; - } - else { - html_print_table ($table); - } - unset ($table); } ?> From edfaa25a9fff9fe04a21be40edf1ef88541f4c5a Mon Sep 17 00:00:00 2001 From: hkosaka Date: Mon, 30 Mar 2015 17:56:33 +0900 Subject: [PATCH 002/191] Add -C option to tentalce_server that enables SSL (to proxied server) without a client certificate. This option corresponds to tentacle_client's -c option. --- pandora_agents/unix/tentacle_server | 60 ++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/pandora_agents/unix/tentacle_server b/pandora_agents/unix/tentacle_server index 0d10a5baa8..e881246823 100755 --- a/pandora_agents/unix/tentacle_server +++ b/pandora_agents/unix/tentacle_server @@ -171,6 +171,9 @@ my $t_proxy_socket; # Proxy selected handler my $t_proxy_select; +# Use SSL for proxy, 1 true, 0 false +my $t_proxy_ssl = 0; + # Use libwrap, 1 true, 0 false my $t_use_libwrap = 0; @@ -206,11 +209,12 @@ sub print_help { print ("\t-t time\t\tTime-out for network operations in seconds (default ${t_timeout}s).\n"); print ("\t-v\t\tBe verbose.\n"); print ("\t-w\t\tPrompt for OpenSSL private key password.\n"); - print ("\t-x pwd\t\tServer password.\n\n"); - print ("\t-b proxy_ip_address\t\tProxied server address.\n\n"); - print ("\t-g proxy_port\t\tPort of proxied server.\n\n"); + print ("\t-x pwd\t\tServer password.\n"); + print ("\t-b proxy_ip_address\tProxied server address.\n"); + print ("\t-g proxy_port\t\tPort of proxied server.\n"); + print ("\t-C\t\tEnable SSL for proxy connection without a client certificate.\n"); print ("\t-T\t\tEnable tcpwrappers support.\n"); - print ("\t\t(To use this option, 'Authen::Libwrap' should be installed.)\n\n"); + print ("\t\t\t(To use this option, 'Authen::Libwrap' should be installed.)\n\n"); } ################################################################################ @@ -256,7 +260,7 @@ sub parse_options { my @t_addresses_tmp; # Get options - if (getopts ('a:b:c:de:f:g:hi:k:m:op:qr:s:S:t:Tvwx:', \%opts) == 0 || defined ($opts{'h'})) { + if (getopts ('a:b:c:Cde:f:g:hi:k:m:op:qr:s:S:t:Tvwx:', \%opts) == 0 || defined ($opts{'h'})) { print_help (); exit 1; } @@ -444,6 +448,15 @@ sub parse_options { } } + # Enable SSL without a client certificate + if (defined ($opts{'C'})) { + + require IO::Socket::SSL; + + $t_proxy_ssl = 1; + } + + # TCP wrappers support if (defined ($opts{'T'})) { if ($t_libwrap_installed) { @@ -658,6 +671,30 @@ sub start_ssl { print_log ("SSL started for " . $t_client_socket->sockhost ()); } +################################################################################ +## SUB start_proxy_ssl +## Convert the proxy socket to an IO::Socket::SSL socket. +################################################################################ +sub start_proxy_ssl { + my $err; + + if ($t_proxy_ssl != 1) { + return; + } + + IO::Socket::SSL->start_SSL ( + $t_proxy_socket, + SSL_verify_mode => 0x00, + ); + + $err = IO::Socket::SSL::errstr (); + if ($err ne '') { + error ($err); + } + + print_log ("proxy SSL started for " . $t_proxy_socket->sockhost ()); +} + ################################################################################ ## SUB accept_connections ## Manage incoming connections. @@ -749,6 +786,11 @@ sub serve_proxy_connection { # Start a connection with the other Tentacle Server open_proxy(); + + # Start SSL for proxy + if ($t_proxy_ssl == 1) { + start_proxy_ssl(); + } my $command; @@ -1582,6 +1624,14 @@ __END__ =item I<-x> pwd B. +=item I<-b proxy_ip_address> B address. + +=item I<-g proxy_port> B of proxied server. + +=item I<-C> Enable SSL for proxy without a client certificate. + +=item I<-T> Enable tcpwrappers support ('Authen::Libwrap' required). + =back =head1 EXIT STATUS From ed53b3c67bd57eb3ac4c78c344458bda58158882 Mon Sep 17 00:00:00 2001 From: hkosaka Date: Mon, 30 Mar 2015 18:29:44 +0900 Subject: [PATCH 003/191] Specify -C option to Launch tentacle_server when using SSL proxy mode. --- .../win32/pandora_windows_service.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pandora_agents/win32/pandora_windows_service.cc b/pandora_agents/win32/pandora_windows_service.cc index 2c5ec01bf6..1a60579675 100644 --- a/pandora_agents/win32/pandora_windows_service.cc +++ b/pandora_agents/win32/pandora_windows_service.cc @@ -322,7 +322,7 @@ Pandora_Windows_Service::killTentacleProxy() { int Pandora_Windows_Service::launchTentacleProxy() { - string server_ip, server_port, proxy_max_connections, proxy_timeout; + string server_ip, server_port, proxy_max_connections, proxy_timeout, server_ssl; string proxy_cmd; PROCESS_INFORMATION pi; STARTUPINFO si; @@ -331,6 +331,7 @@ Pandora_Windows_Service::launchTentacleProxy() { server_ip = conf->getValue("server_ip"); if (server_ip != "localhost") { + proxy_max_connections = conf->getValue("proxy_max_connection"); if (proxy_max_connections == "") { @@ -348,9 +349,18 @@ Pandora_Windows_Service::launchTentacleProxy() { if (server_port == "") { server_port = "41121"; } - - proxy_cmd = "tentacle_server.exe -b " + server_ip + " -g " + server_port + " -c " + proxy_max_connections + " -t " + proxy_timeout; - + + server_ssl = conf->getValue("server_ssl"); + + if (server_ssl == "1") { + proxy_cmd = "tentacle_server.exe -C"; + } + else { + proxy_cmd = "tentacle_server.exe"; + } + + proxy_cmd += " -b " + server_ip + " -g " + server_port + " -c " + proxy_max_connections + " -t " + proxy_timeout; + ZeroMemory (&si, sizeof (si)); ZeroMemory (&pi, sizeof (pi)); if (CreateProcess (NULL , (CHAR *)proxy_cmd.c_str (), NULL, NULL, FALSE, From 9920fa9a3fe9081c374a68b7f72b779f63cff8cd Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 30 Mar 2015 12:03:34 +0200 Subject: [PATCH 004/191] Fixed a missing tooltip --- pandora_console/include/ajax/module.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index e23f8fcc5f..7fdfc439aa 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -1038,6 +1038,14 @@ if ($list_modules) { .click (function () { return false; }); + $("a.relations_details").cluetip ({ + arrows: true, + attribute: 'href', + cluetipClass: 'default' + }) + .click (function () { + return false; + }); function toggle_full_value(id) { text = $("#hidden_value_module_" + id).html(); From 91b7bf19a5f47b8e8f79311738d5b0a5d340502c Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 30 Mar 2015 17:28:12 +0200 Subject: [PATCH 005/191] Added functions to help with the data assign to the variables --- pandora_console/include/functions.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index 1078940e0f..c70d6868d3 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -2318,4 +2318,26 @@ function set_pandora_error_for_header($message, $title = null) { $_SESSION["alert_msg"] .= ui_print_error_message($message_config, '', true); } + +function set_if_defined (&$var, $test) { + if (isset($test)) { + $var = $test; + + return true; + } + else { + return false; + } +} + +function set_unless_defined (&$var, $default) { + if (! isset($var)) { + $var = $default; + + return true; + } + else { + return false; + } +} ?> From f23e6ceacfb84da4b5f62bcdad530303d2cc78c4 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 08:36:54 +0200 Subject: [PATCH 006/191] Change label text in save filter events in metaconsole, tiquet: #2053 --- pandora_console/operation/events/events_list.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/operation/events/events_list.php b/pandora_console/operation/events/events_list.php index 103ca95919..64ad196346 100644 --- a/pandora_console/operation/events/events_list.php +++ b/pandora_console/operation/events/events_list.php @@ -233,7 +233,10 @@ if (check_acl ($config["id_user"], 0, "EW") || check_acl ($config["id_user"], 0, $table->rowid[1] = 'save_filter_row1'; $data[0] = __('Filter name') . $jump; $data[0] .= html_print_input_text ('id_name', '', '', 15, 255, true); - $data[1] = __('Filter group') . $jump; + if(defined('METACONSOLE')) + $data[1] = __('Group') . $jump; + else + $data[1] = __('Filter group') . $jump; # Fix : Only admin users can see group ALL $data[1] .= html_print_select_groups($config['id_user'], "ER", users_can_manage_group_all(), "id_group", $id_group, '', '', 0, true, false, false, 'w130', false, '', false, false, 'id_grupo', $strict_user); $table->data[] = $data; From 62c940986b7211d6a8ffb0755424a291eacbece2 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 09:18:46 +0200 Subject: [PATCH 007/191] Change menu and actions in this menu. --- pandora_console/general/main_menu.php | 35 +++++-- pandora_console/include/styles/menu.css | 16 +-- pandora_console/include/styles/pandora.css | 107 ++++++++++++--------- 3 files changed, 92 insertions(+), 66 deletions(-) diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index dbed853ccc..7d83254f37 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -234,20 +234,35 @@ $(document).ready( function() { diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 9d0703c42b..2820e20cb6 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -32,7 +32,7 @@ margin: 0; } .menu li.selected { - background-color: #d9fb86 !important; + background-color: #80BA27 !important; } .menu li a { @@ -70,7 +70,7 @@ li:hover ul { display: block; } margin: 0px 0px 0px 0px; position: absolute; z-index: 999; - left: 60px; + left: 44px; min-height: 30px; height: 30px; width: 160px; @@ -133,7 +133,6 @@ li:hover ul { display: block; } } .menu .menu_icon, .menu li.links { - background-color: #daedae; background-position: 4px 4px; background-repeat: no-repeat; cursor: pointer; @@ -249,9 +248,8 @@ ul li { position: relative; } -li ul { +.menu li ul { position: absolute; - left: 149px; /* Set 1px less than menu width */ top: 0; display: none; } @@ -259,12 +257,6 @@ li ul { /* Styles for Menu Items */ ul li a { display: block; - text-decoration: none; - color: #777; - background: #fff; /* IE6 Bug */ - padding: 5px; - border: 1px solid #ccc; - border-bottom: 0; } /* Fix IE. Hide from IE Mac \*/ @@ -272,5 +264,5 @@ ul li a { * html ul li a { height: 1%; } /* End */ -ul li a:hover { color: #E2144A; background: #f9f9f9; } /* Hover Styles */ +ul li a:hover { color: #E2144A; } /* Hover Styles */ li ul li a { padding: 2px 5px; } /* Sub Menu Styles */ diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 65f631accf..c9f905f152 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -235,7 +235,8 @@ div#page { } div#main { width: 90%; - margin: 0px 0px 0px 7%; + margin: 0px 5% 0px 0%; + float: right; } div#main_help { width: 100%; @@ -308,7 +309,7 @@ div#menu_container { } div#menu { - width: 60px; + width: 45px; float: left; margin-top: 10px; } @@ -1132,14 +1133,14 @@ div.title_line { } #menu_tab li.tab_operation, #menu_tab li.tab_godmode { - padding-left: 4px; + padding-left: 2px; } #menu_tab li.tab_godmode a, #menu_tab a.tab_godmode { background: #666; - padding-left: 3px; - padding-right: 3px; - min-height: 23px; + padding-left: 4px; + padding-right: 4px; + min-height: 27px; } #menu_tab li.tab_godmode.nomn_high a, #menu_tab a.tab_godmode.nomn_high, @@ -1150,9 +1151,9 @@ div.title_line { #menu_tab li.tab_operation a, #menu_tab a.tab_operation { background: #82b92e; - padding-left: 3px; - padding-right: 3px; - min-height: 23px; + padding-left: 4px; + padding-right: 4px; + min-height: 27px; } #menu_tab li.tab_operation.nomn_high a, #menu_tab a.tab_operation.nomn_high, @@ -1235,8 +1236,8 @@ div.title_line { #menu_tab_left ul.mn li.view { background: #82b92e; - max-width: 20%; - min-width: 15%; + max-width: 40%; + min-width: 20%; padding: 5px 5px 0px; text-align: center; -moz-border-top-right-radius: 3px; @@ -1252,9 +1253,9 @@ div.title_line { #menu_tab_left ul.mn li.nomn { background: #666; - width: 450px; - min-width: 300px; - padding: 1px 5px; + max-width: 40%; + min-width: 20%; + padding: 5px 5px 0px; -moz-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; @@ -1364,7 +1365,6 @@ span.rmess, span.nrmess { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; - padding: 8px 8px 8px 8px; } table.databox { @@ -1375,11 +1375,12 @@ table.databox { box-shadow: 0px 0px 0px #DDD !important; } -.databox td, .databox th { +.databox td { -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; - border: 0px none #fff; + border: 0px none #E2E2E2; + } .databox th { @@ -1405,9 +1406,10 @@ table.databox { } .tactical_set{ - background: #ECECEC; - border: 0px; - margin-top: -4px; + background: #FFF; + border: 1px solid #E2E2E2; + margin-left: 10%; + width: 71%; } /* For use in Netflow */ @@ -1933,15 +1935,6 @@ div#steps_clean { display:none; } -#main>div, #main>table, #main>fieldset, #main>form, #main>a, #main>h4 { - margin-left: 10px; - margin-right: 8px; -} - -#main>form { - #width: 100%; -} - #menu_tab_frame, #menu_tab_frame_view { width: 100%; padding-right: 0px; @@ -1974,7 +1967,7 @@ div#logo_text3 { padding-top: 0px; } .pagination { - margin-top: 4px; + margin-top: 15px; } .pagination * { margin-left: 0px !important; @@ -2169,7 +2162,7 @@ tr.group_view_data, .group_view_data { } tr.group_view_crit, .group_view_crit { - background-color: #f85858; + background-color: #FC4444; color: #fff; } @@ -2177,46 +2170,46 @@ tr.group_view_norm, .group_view_norm, tr.group_view_normal, .group_view_normal { #background-color: #ffffff; } tr.group_view_ok, .group_view_ok { - background-color: #6EB432; + background-color: #80BA27; color: #fff; } tr.group_view_not_init, .group_view_not_init, tr.group_view_not_init, .group_view_not_init { - background-color: #5AB7E5; + background-color: #5BB6E5; color: #fff !important; } tr.group_view_warn, .group_view_warn, tr.group_view_warn.a, a.group_view_warn, tr.a.group_view_warn { - background-color: #ffea59; + background-color: #FAD403; color: #3F3F3F !important; } a.group_view_warn { - color: #3F3F3F !important; + color: #FAD403 !important; } tr.group_view_alrm, .group_view_alrm { - background-color: #FF8800; + background-color: #FFA631; color: #FFF; } tr.group_view_unk, .group_view_unk { - background-color: #AAAAAA; + background-color: #B2B2B2 ; color: #fff; } /* classes for event priorities. Sits now in functions.php */ .datos_green, .datos_greenf9, .datos_green a, .datos_greenf9 a, .datos_green * { - background-color: #6EB432; + background-color: #80BA27; color: #fff; } .datos_red, .datos_redf9, .datos_red a, .datos_redf9 a, .datos_red *{ - background-color: #f85858; + background-color: #FC4444; color: #fff !important; } .datos_yellow, .datos_yellowf9, .datos_yellow * { - background-color: #ffea59; + background-color: #FAD403; color: #111; } @@ -2250,7 +2243,6 @@ td.datos_greyf9, td.datos_bluef9, td.datos_greenf9, td.datos_redf9, td.datos_yel } .menu li.selected { - background-color: #B1B1B1 !important; font-weight: bold; } @@ -2263,7 +2255,7 @@ ul.operation li a:hover { } ul.operation ul.submenu li a:hover { - background: #222 url('../../images/menu_op_mark.png') repeat-y right; + background: #373737 url('../../images/menu_op_mark.png') repeat-y right; #font-weight: bold; } @@ -2302,14 +2294,14 @@ li.links a:hover { } .operation.ul, ul.operation .operation ul { - background-color: #00ff00 !important; + background-color: #373737 !important; } .menu ul { background-color: #555 !important; } -.menu li, .menu li.selected, .menu .li.not_selected { +.menu li, .menu .li.not_selected { border-radius: 0px 0px 0px 0px; background-color: #373737 !important; display: block; @@ -2865,6 +2857,33 @@ table#policy_modules td * { text-align: left; } +.status_tactical{ + width: 78%; + margin-left: 10%; + background-color: #FFF !important; + padding: 10px; + border: 1px solid #E2E2E2; + margin-top: 5%; + text-align: left; +} + +.status_tactical img { + border: 3px solid #000; + border-radius: 100px; + +} + +#sumary{ + color: #FFF; + margin: 15px; + padding: 10px 30px; + font-size: 20px; + font-weight: bold; + height: 66px; + width: 191px; + border-radius: 2px; +} + /* The items with the class 'spinner' will rotate */ /* Not supported on IE9 and below */ From 16679256e93b91aa50cfcc9ebdf5ecb2a4c8c4a9 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 09:28:06 +0200 Subject: [PATCH 008/191] Change visual of any views --- pandora_console/general/logon_ok.php | 16 +++++-- pandora_console/general/main_menu.php | 4 +- .../operation/agentes/group_view.php | 37 +++++++++++++- .../operation/agentes/tactical.php | 48 ++++++++----------- 4 files changed, 68 insertions(+), 37 deletions(-) diff --git a/pandora_console/general/logon_ok.php b/pandora_console/general/logon_ok.php index 593ac220c7..46a85c96eb 100644 --- a/pandora_console/general/logon_ok.php +++ b/pandora_console/general/logon_ok.php @@ -28,7 +28,7 @@ check_login (); require_once ("include/functions_reporting.php"); require_once ($config["homedir"] . '/include/functions_graph.php'); -ui_print_page_header (__('Welcome to Pandora FMS Web Console')); +ui_print_page_header (__('Welcome to Pandora FMS Web Console'),'',false,"",false); if (tags_has_user_acl_tags()) { ui_print_tags_warning(); @@ -36,7 +36,7 @@ if (tags_has_user_acl_tags()) { ?> - +
'; //Left column -echo '
@@ -61,7 +61,13 @@ if (tags_has_user_acl_tags()) { // Indicators $tdata = array(); - $tdata[0] = reporting_get_stats_indicators($data); + $stats = reporting_get_stats_indicators($data, 120, 10,false); + $status = ''; + foreach ( $stats as $stat ) { + $status .= '" ; + } + $status .= '
' . $stat['title'] . '' . '' . $stat['graph'] . "
'; + $table->data[0][0] = $status; $table->rowclass[] = ''; $table->data[] = $tdata; @@ -74,7 +80,7 @@ if (tags_has_user_acl_tags()) { // Modules by status $tdata = array(); - $tdata[0] = reporting_get_stats_modules_status($data); + $tdata[0] = reporting_get_stats_modules_status($data,180, 100); $table->rowclass[] = ''; $table->data[] = $tdata; @@ -114,7 +120,7 @@ if (tags_has_user_acl_tags()) { //////////////////NEWS BOARD///////////////////////////// echo '
'; - echo ''; + echo '
'; echo ''; if ($config["prominent_time"] == "timestamp") { $comparation_suffix = ""; diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 7d83254f37..b89d59d346 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -242,9 +242,10 @@ $(document).ready( function() { handsIn = 1; openTime = new Date().getTime(); if( typeof(table_noHover) != 'undefined') - if ("ul#sub"+table_hover[0].id != "ul#sub"+table_noHover[0].id) + if ( "ul#sub"+table_hover[0].id != "ul#sub"+table_noHover[0].id ) $("ul#sub"+table_noHover[0].id).hide(); $("ul#sub"+table_hover[0].id).show(); + }).mouseout(function(){ table_noHover = $(this); handsIn = 0; @@ -255,7 +256,6 @@ $(document).ready( function() { $("ul#sub"+table_hover[0].id).hide(); } }, 3500); - }); $(document).ready(function(){ diff --git a/pandora_console/operation/agentes/group_view.php b/pandora_console/operation/agentes/group_view.php index 5a07676711..af8d14a4ff 100644 --- a/pandora_console/operation/agentes/group_view.php +++ b/pandora_console/operation/agentes/group_view.php @@ -77,11 +77,46 @@ if ($count == 1) { unset($result_groups[0]); } } + +$total_agentes = 0; +$monitor_ok = 0; +$monitor_warning = 0; +$monitor_critical = 0; +$agents_unknown = 0; +foreach ($result_groups as $data) { + $total_agentes += $data["_total_agents_"]; + $monitor_ok += $data["_monitors_ok_"]; + $monitor_warning += $data["_monitors_warning_"]; + $monitor_critical += $data["_monitors_critical_"]; + $monitor_unknown += $data["_monitors_unknown_"]; +} +$total = $monitor_ok + $monitor_warning + $monitor_critical; +//$total_ok = format_numeric (($total_agentes / $monitor_ok / 100), 1); +$total_ok = format_numeric (($monitor_ok*100)/$total,0); +$total_warning = format_numeric (($monitor_warning*100)/$total,0); +$total_critical = format_numeric (($monitor_critical*100)/$total,0); +$total_unknown = format_numeric (($monitor_unknown*100)/$total,0); +echo '
' . __('News board') . '
'; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; +echo "
" . __("Summary of the status groups") . "
"; + echo "". $total_critical ."%"; + echo "". $total_warning ."%"; + echo "". $total_ok ."%"; + echo "". $total_unknown ."%"; + echo "
"; + + + ui_pagination($count); if (!empty($result_groups)) { - echo ''; + echo '
'; echo ""; echo ""; echo ""; diff --git a/pandora_console/operation/agentes/tactical.php b/pandora_console/operation/agentes/tactical.php index f45cd4439a..8f45c86cec 100644 --- a/pandora_console/operation/agentes/tactical.php +++ b/pandora_console/operation/agentes/tactical.php @@ -49,7 +49,7 @@ else { } // Header -ui_print_page_header (__("Tactical view"), "images/op_monitoring.png", false, "", false, $updated_time); +ui_print_page_header (__("Tactical view"), "", false, "", false, $updated_time); $all_data = group_get_groups_list($config['id_user'], $user_strict, 'AR', true, false, 'tactical'); @@ -172,23 +172,19 @@ $table->head = array (); $table->data = array (); $table->style = array (); -$table->data[0][0] = reporting_get_stats_indicators($data, 120, 20); +$table->head[0] = '' . __('Report of State') . ''; +$stats = reporting_get_stats_indicators($data, 120, 10,false); +$status = '
" . __("Force") . "" . __("Group") . "
'; +foreach ( $stats as $stat ) { + $status .= '" ; +} +$status .= '
' . $stat['title'] . '' . '' . $stat['graph'] . "
'; +$table->data[0][0] = $status; $table->rowclass[] = ''; -html_print_table ($table); -unset($table); - // --------------------------------------------------------------------- // Monitor checks // --------------------------------------------------------------------- -$table->width = "100%"; -$table->class = ""; -$table->cellpadding = 4; -$table->cellspacing = 4; -$table->border = 0; -$table->head = array (); -$table->data = array (); -$table->style = array (); $data_agents = array( __('Critical') => $data['monitor_critical'], @@ -198,36 +194,29 @@ $data_agents = array( __('Not init') => $data['monitor_not_init'] ); -$table->data[0][0] = reporting_get_stats_alerts($data); -$table->data[0][0] .= reporting_get_stats_modules_status($data, 180, 100, false, $data_agents); -$table->data[0][0] .= reporting_get_stats_agents_monitors($data); +$table->data[1][0] = reporting_get_stats_alerts($data); +$table->data[2][0] .= reporting_get_stats_modules_status($data, 180, 100, false, $data_agents); +$table->data[3][0] .= reporting_get_stats_agents_monitors($data); $table->rowclass[] = ''; -html_print_table($table); + // --------------------------------------------------------------------- // Server performance // --------------------------------------------------------------------- if ($is_admin) { - $table->width = "99%"; - $table->class = ""; - $table->cellpadding = 4; - $table->cellspacing = 4; - $table->border = 0; - $table->head = array (); - $table->data = array (); - $table->style = array (); - $table->data[0][0] = reporting_get_stats_servers(false); + $table->data[4][0] = reporting_get_stats_servers(false); $table->rowclass[] = ''; - html_print_table($table); } +html_print_table($table); + echo '
'; +echo ''; // --------------------------------------------------------------------- @@ -240,7 +229,8 @@ if (!empty($acltags)) { $tags_condition = tags_get_acl_tags_event_condition($acltags, false, $user_strict); if (!empty($tags_condition)) { - events_print_event_table ("estado<>1 AND ($tags_condition)", 10, "100%"); + $events = events_print_event_table ("estado<>1 AND ($tags_condition)", 10, "100%",true); + ui_toggle($events, __('Latest events')); } } From 92b1be06abc4c9a76fe690acdb26403ae4531d80 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 09:52:27 +0200 Subject: [PATCH 009/191] Change visual of Group View --- pandora_console/include/styles/pandora.css | 12 ++++++++ .../operation/agentes/group_view.php | 30 +++++++++++-------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index c9f905f152..0dce7e22d5 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2884,6 +2884,18 @@ table#policy_modules td * { border-radius: 2px; } +.databox.data td{ + padding-left: 10px; + border: 1px solid #E2E2E2; +} + +.difference{ + border-left-width: 2px; + border-left-style: solid; + border-right-width: 2px; + border-right-style: solid; + border-color: #E2E2E2; +} /* The items with the class 'spinner' will rotate */ /* Not supported on IE9 and below */ diff --git a/pandora_console/operation/agentes/group_view.php b/pandora_console/operation/agentes/group_view.php index af8d14a4ff..f1d0b90fe2 100644 --- a/pandora_console/operation/agentes/group_view.php +++ b/pandora_console/operation/agentes/group_view.php @@ -116,20 +116,26 @@ ui_pagination($count); if (!empty($result_groups)) { - echo ''; + echo '
'; echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; foreach ($result_groups as $data) { // Calculate entire row color From e90406abaf40101a300a1934b5f138ab9f4f3dae Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 10:25:43 +0200 Subject: [PATCH 010/191] Hide data of agent/module when search again or new search. tiquet: #2052 --- pandora_console/operation/tree.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/operation/tree.php b/pandora_console/operation/tree.php index c83b3f3751..12a69aed64 100755 --- a/pandora_console/operation/tree.php +++ b/pandora_console/operation/tree.php @@ -235,7 +235,8 @@ enterprise_hook('close_meta_frame'); $("form#tree_search").submit(function(e) { e.preventDefault(); - + $(".tree-element-detail-content").hide(); + $(".tree-controller-detail-recipient").hide(); processTreeSearch(); }); From 973f0c3e2eb69e30f6380eb4e0706a70faed35c6 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 12:23:40 +0200 Subject: [PATCH 011/191] Error fixes and improvements --- .../include/functions_networkmap.php | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/pandora_console/include/functions_networkmap.php b/pandora_console/include/functions_networkmap.php index e02aa75f8a..36dea7e0d6 100644 --- a/pandora_console/include/functions_networkmap.php +++ b/pandora_console/include/functions_networkmap.php @@ -689,7 +689,6 @@ function networkmap_generate_dot_groups ($pandora_name, $group = 0, } $filter['id_grupo'] = $id_groups; - $filter['id_group'] = $id_groups; } else { if ($strict_user) { @@ -746,10 +745,12 @@ function networkmap_generate_dot_groups ($pandora_name, $group = 0, if ($depth != 'group') { if ($strict_user) { $filter['group_by'] = 'tagente.nombre'; + $filter['id_group'] = $filter['id_grupo']; $fields = array ('tagente.id_grupo, tagente.nombre, tagente.id_os, tagente.id_agente, tagente.normal_count, tagente.warning_count, tagente.critical_count, tagente.unknown_count, tagente.total_count, tagente.notinit_count'); $agents = tags_get_all_user_agents (false, $config['id_user'], $acltags, $filter, $fields, false, $strict_user, true); + unset($filter['id_group']); } else { // Get agents data $agents = agents_get_agents ($filter, @@ -1491,36 +1492,40 @@ function networkmap_get_filter ($layout) { * * @return mixed New networkmap id if created. False if it could not be created. */ -function networkmap_create_networkmap ($name, $type = 'topology', $layout = 'radial', $nooverlap = true, $simple = false, $regenerate = true, $font_size = 12, $id_group = 0, $id_module_group = 0, $depth = 'all', $only_modules_with_alerts = false, $hide_policy_modules = false, $zoom = 1, $distance_nodes = 2.5, $center = 0, $text_filter = '', $dont_show_subgroups = 0, $show_groups = false, $show_modules = false, $pandoras_children = false) { - +function networkmap_create_networkmap ($values) { global $config; - $values = array(); + // The name is required + if (! isset($values['name'])) + return false; - $values['name'] = $name; - $values['type'] = $type; - $values['layout'] = $layout; - $values['nooverlap'] = $nooverlap; - $values['simple'] = $simple; - $values['regenerate'] = $regenerate; - $values['font_size'] = $font_size; - $values['id_group'] = $id_group; - $values['id_module_group'] = $id_module_group; - $values['depth'] = $depth; - $values['only_modules_with_alerts'] = $only_modules_with_alerts; - $values['hide_policy_modules'] = $hide_policy_modules; - $values['zoom'] = $zoom; - $values['distance_nodes'] = $distance_nodes; - $values['center'] = $center; - $values['id_user'] = $config['id_user']; - $values['text_filter'] = $text_filter; - $values['dont_show_subgroups'] = $dont_show_subgroups; - - $values['pandoras_children'] = $pandoras_children; - $values['show_groups'] = $show_groups; - $values['show_modules'] = $show_modules; - - $values['server_name'] = ""; + // Set defaults for the empty values + set_unless_defined ($values['type'], 'topology'); + set_unless_defined ($values['layout'], 'radial'); + set_unless_defined ($values['nooverlap'], true); + set_unless_defined ($values['simple'], false); + set_unless_defined ($values['regenerate'], true); + set_unless_defined ($values['font_size'], 12); + set_unless_defined ($values['store_group'], 0); + set_unless_defined ($values['id_group'], 0); + set_unless_defined ($values['regenerate'], true); + set_unless_defined ($values['id_module_group'], 0); + set_unless_defined ($values['depth'], 'all'); + set_unless_defined ($values['only_modules_with_alerts'], false); + set_unless_defined ($values['hide_policy_modules'], false); + set_unless_defined ($values['zoom'], 1); + set_unless_defined ($values['distance_nodes'], 2.5); + set_unless_defined ($values['center'], 0); + set_unless_defined ($values['id_user'], $config['id_user']); + set_unless_defined ($values['text_filter'], ''); + set_unless_defined ($values['regenerate'], true); + set_unless_defined ($values['dont_show_subgroups'], 0); + set_unless_defined ($values['show_groups'], false); + set_unless_defined ($values['pandoras_children'], false); + set_unless_defined ($values['show_modules'], false); + set_unless_defined ($values['show_snmp_modules'], 0); + set_unless_defined ($values['l2_network'], 0); + set_unless_defined ($values['server_name'], ''); return @db_process_sql_insert('tnetwork_map', $values); } From 9bb62f1f43e9a1128d1d64f4f8cc0ed6bb399866 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 12:26:29 +0200 Subject: [PATCH 012/191] Added the new way to store the maps in groups and ACL improvements --- .../mobile/operation/networkmap.php | 17 +- .../mobile/operation/networkmaps.php | 10 +- .../operation/agentes/networkmap.dinamic.php | 2 +- .../operation/agentes/networkmap.groups.php | 2 +- .../operation/agentes/networkmap.php | 167 +++++++++++------- .../operation/agentes/networkmap.topology.php | 2 +- .../operation/agentes/networkmap_list.php | 24 +-- 7 files changed, 139 insertions(+), 85 deletions(-) diff --git a/pandora_console/mobile/operation/networkmap.php b/pandora_console/mobile/operation/networkmap.php index 52fcb677e4..c5d5e39006 100755 --- a/pandora_console/mobile/operation/networkmap.php +++ b/pandora_console/mobile/operation/networkmap.php @@ -21,15 +21,20 @@ class Networkmap { private $id = 0; private $network_map = null; - function __construct() { + function __construct($id = false) { $system = System::getInstance(); - if ($system->checkACL($this->acl)) { + if ($id === false) + $this->getFilters(); + else + $this->id = $id; + + $store_group = db_get_value('store_group', + 'tnetwork_map', 'id_networkmap', $this->id); + + if ($store_group !== false + && $system->checkACL($this->acl, $store_group)) $this->correct_acl = true; - } - else { - $this->correct_acl = false; - } } public function ajax($parameter2 = false) { diff --git a/pandora_console/mobile/operation/networkmaps.php b/pandora_console/mobile/operation/networkmaps.php index b1d96e5ae1..33b72c39e1 100755 --- a/pandora_console/mobile/operation/networkmaps.php +++ b/pandora_console/mobile/operation/networkmaps.php @@ -168,10 +168,10 @@ class Networkmaps { $where['order'] = 'type'; if ($this->group != '0') { - $where['id_group'] = $this->group; + $where['store_group'] = $this->group; } else { - $where['id_group'] = array_keys(users_get_groups()); + $where['store_group'] = array_keys(users_get_groups()); } if ($this->type != '0') @@ -184,13 +184,17 @@ class Networkmaps { } $list = array(); foreach ($network_maps as $networkmap) { + // ACL + if (! $system->checkACL("AR", $networkmap['store_group'])) + continue; + // If enterprise not loaded then skip this code if ($networkmap['type'] == 'policies' and (!defined('PANDORA_ENTERPRISE'))) continue; $row = array(); $row[__('Name')] = '' . io_safe_output($networkmap['name']) . ''; $row[__('Type')] = $networkmap['type']; - $row[__('Group')] = ui_print_group_icon($networkmap["id_group"], true, "groups_small", "" , false); + $row[__('Group')] = ui_print_group_icon($networkmap["store_group"], true, "groups_small", "" , false); $list[] = $row; } diff --git a/pandora_console/operation/agentes/networkmap.dinamic.php b/pandora_console/operation/agentes/networkmap.dinamic.php index 2f8d2849de..a51d659a48 100755 --- a/pandora_console/operation/agentes/networkmap.dinamic.php +++ b/pandora_console/operation/agentes/networkmap.dinamic.php @@ -19,7 +19,7 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "AR")) { +if (! check_acl ($config['id_user'], $store_group, "AR")) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap.groups.php b/pandora_console/operation/agentes/networkmap.groups.php index bb85d2ecb4..d21830cd02 100644 --- a/pandora_console/operation/agentes/networkmap.groups.php +++ b/pandora_console/operation/agentes/networkmap.groups.php @@ -19,7 +19,7 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "AR")) { +if (! check_acl ($config['id_user'], $store_group, "AR")) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap.php b/pandora_console/operation/agentes/networkmap.php index a7975bc167..8b9de395c0 100644 --- a/pandora_console/operation/agentes/networkmap.php +++ b/pandora_console/operation/agentes/networkmap.php @@ -66,35 +66,44 @@ if ($add_networkmap) { $font_size = 12; $text_filter = ''; $dont_show_subgroups = false; + $store_group = 0; $group = 0; $module_group = 0; $center = 0; $name = $activeTab; + $show_snmp_modules = 0; + $l2_network = 0; $check = db_get_value('name', 'tnetwork_map', 'name', $name); $sql = db_get_value_filter('COUNT(name)', 'tnetwork_map', array('name' => "%$name")); - if ($check) { - $id_networkmap = networkmap_create_networkmap("($sql) ".$name, - $activeTab, $layout, $nooverlap, $simple, $regen, - $font_size, $group, $module_group, $depth, $modwithalerts, - $hidepolicymodules, $zoom, $ranksep, $center, $text_filter, - $dont_show_subgroups); + $values = array( + 'name' => ($check ? "($sql) $name" : $name), + 'type' => $activeTab, + 'layout' => $layout, + 'nooverlap' => $nooverlap, + 'simple' => $simple, + 'regenerate' => $regen, + 'font_size' => $font_size, + 'store_group' => $store_group, + 'id_group' => $group, + 'id_module_group' => $module_group, + 'depth' => $depth, + 'only_modules_with_alerts' => $modwithalerts, + 'hide_policy_modules' => $hidepolicymodules, + 'zoom' => $zoom, + 'distance_nodes' => $ranksep, + 'text_filter' => $text_filter, + 'dont_show_subgroups' => $dont_show_subgroups, + 'center' => $center, + 'show_snmp_modules' => $show_snmp_modules, + 'l2_network' => $l2_network + ); + $id_networkmap = networkmap_create_networkmap($values); - $message = ui_print_result_message ($id_networkmap, - __('Network map created successfully'), - __('Could not create network map'), '', true); - } - else { - $id_networkmap = networkmap_create_networkmap($name, $activeTab, - $layout, $nooverlap, $simple, $regen, $font_size, $group, - $module_group, $depth, $modwithalerts, $hidepolicymodules, - $zoom, $ranksep, $center, $text_filter, $dont_show_subgroups); - - $message = ui_print_result_message ($id_networkmap, - __('Network map created successfully'), - __('Could not create network map'), '', true); - } + $message = ui_print_result_message ($id_networkmap, + __('Network map created successfully'), + __('Could not create network map'), '', true); } if ($save_networkmap || $update_networkmap) { @@ -112,6 +121,7 @@ if ($save_networkmap || $update_networkmap) { $font_size = (int) get_parameter ('font_size', 12); $text_filter = get_parameter ('text_filter', ''); $dont_show_subgroups = (bool)get_parameter ('dont_show_subgroups', 0); + $store_group = (int) get_parameter ('store_group', 0); $group = (int) get_parameter ('group', 0); $module_group = (int) get_parameter ('module_group', 0); $center = (int) get_parameter ('center', 0); @@ -126,7 +136,8 @@ if ($save_networkmap || $update_networkmap) { 'nooverlap' => $nooverlap, 'simple' => $simple, 'regenerate' => $regen, - 'font_size' => $font_size, + 'font_size' => $font_size, + 'store_group' => $store_group, 'id_group' => $group, 'id_module_group' => $module_group, 'depth' => $depth, @@ -177,6 +188,7 @@ if (!$update_networkmap && !$save_networkmap && $id_networkmap != 0) { $font_size = $networkmap_data['font_size']; $text_filter = $networkmap_data['text_filter']; $dont_show_subgroups = $networkmap_data['dont_show_subgroups']; + $store_group = $networkmap_data['store_group']; $group = $networkmap_data['id_group']; $module_group = $networkmap_data['id_module_group']; $center = $networkmap_data['center']; @@ -252,6 +264,7 @@ if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, 'tab=' . $activeTab . '&' . 'save_networkmap=1&' . 'name=' . $name . '&' . + 'store_group=' . $store_group . '&' . 'group=' . $group . '&' . 'layout=' . $layout . '&' . 'nooverlap=' . $nooverlap . '&' . @@ -328,84 +341,88 @@ $layout_array = array ( $options_form = '
'; +// Fill an array with the form inputs +$form_elems = array(); - -unset($table); -$table->width = '98%'; -$table->class = 'databox'; -$table->data = array(); -$table->data[0][] = __('Name:') . ' ' . +// Name +$element = __('Name') . ' ' . html_print_input_text ('name', $name, '', 25, 50, true); -if ($activeTab == 'groups'){ - $table->data[0][0] .= clippy_context_help("topology_group"); -} -$table->data[0][] = __('Group:') . ' ' . +if ($activeTab == 'groups') + $element .= clippy_context_help("topology_group"); +$form_elems[] = $element; + +// Store group +$form_elems[] = __('Store group') . ' ' . + html_print_select_groups(false, 'AR', false, 'store_group', $store_group, '', 'All', 0, true); + +// Group +$form_elems[] = __('Group') . ' ' . html_print_select_groups(false, 'AR', false, 'group', $group, '', 'All', 0, true); + +// Module group if ($activeTab == 'groups' || $activeTab == 'policies' || $activeTab == 'radial_dynamic') { - $table->data[0][] = __('Module group') . ' ' . + $form_elems[] = __('Module group') . ' ' . html_print_select_from_sql (' SELECT id_mg, name FROM tmodule_group', 'module_group', $module_group, '', 'All', 0, true); } +// Interfaces if ($activeTab == 'topology') { - $table->data[0][] = __('Show interfaces') . ' ' . + $form_elems[] = __('Show interfaces') . ' ' . html_print_checkbox ('show_snmp_modules', '1', $show_snmp_modules, true); } +// Layout if ($activeTab != 'dinamic' && $activeTab != 'radial_dynamic') { - $table->data[0][] = __('Layout') . ' ' . + $form_elems[] = __('Layout') . ' ' . html_print_select ($layout_array, 'layout', $layout, '', '', '', true); } +// Depth if ($activeTab == 'groups') { $depth_levels = array( 'all' => __('All'), 'agent' => __('Agents'), 'group' => __('Groups')); - $table->data[0][] = __('Depth') . ' ' . - html_print_select ($depth_levels, 'depth', $depth, '', '', '', true, false, false); -} - -if ($activeTab == 'policies') { - $depth_levels = array( - 'all' => __('All'), - 'agent' => __('Agents'), - 'policy' => __('Policies')); - $table->data[0][] = __('Depth') . ' ' . + $form_elems[] = __('Depth') . ' ' . html_print_select ($depth_levels, 'depth', $depth, '', '', '', true, false, false); } +// No overlap if ($activeTab != 'dinamic' && $activeTab != 'radial_dynamic') { - $table->data[1][] = __('No Overlap') . ' ' . + $form_elems[] = __('No Overlap') . ' ' . html_print_checkbox ('nooverlap', '1', $nooverlap, true); } -if (($activeTab == 'groups' || $activeTab == 'policies') && - $depth == 'all') { - $table->data[1][] = __('Only modules with alerts') . ' ' . +// Modules with alerts +if (($activeTab == 'groups' || $activeTab == 'policies') && $depth == 'all') { + $form_elems[] = __('Only modules with alerts') . ' ' . html_print_checkbox ('modwithalerts', '1', $modwithalerts, true); - - if ($activeTab == 'groups') { - if ($config['enterprise_installed']) { - $table->data[1][] = __('Hide policy modules') . ' ' . - html_print_checkbox ('hidepolicymodules', '1', $hidepolicymodules, true); - } +} + +// Hide policy modules +if ($activeTab == 'groups') { + if ($config['enterprise_installed']) { + $form_elems[] = __('Hide policy modules') . ' ' . + html_print_checkbox ('hidepolicymodules', '1', $hidepolicymodules, true); } } +// Simple if ($activeTab != 'dinamic' && $activeTab != 'radial_dynamic') { - $table->data[1][] = __('Simple') . ' ' . + $form_elems[] = __('Simple') . ' ' . html_print_checkbox ('simple', '1', $simple, true); } +// Regenerate if ($activeTab != 'dinamic' && $activeTab != 'radial_dynamic') { - $table->data[1][] = __('Regenerate') . ' ' . + $form_elems[] = __('Regenerate') . ' ' . html_print_checkbox ('regen', '1', $regen, true); } +// Zoom if ($pure == "1") { - // Zoom $zoom_array = array ( '1' => 'x1', '1.2' => 'x2', @@ -415,38 +432,62 @@ if ($pure == "1") { '5' => 'x10', ); - $table->data[1][] = __('Zoom') . ' ' . + $form_elems[] = __('Zoom') . ' ' . html_print_select ($zoom_array, 'zoom', $zoom, '', '', '', true, false, false, false); } +// Font if ($activeTab != 'dinamic' && $activeTab != 'radial_dynamic') { - $table->data[1][] = __('Font') . ' ' . + $form_elems[] = __('Font') . ' ' . html_print_input_text ('font_size', $font_size, $alt = 'Font size (in pt)', 2, 4, true); } +// Free text if ($activeTab != 'radial_dynamic') { - $table->data[2][] = __('Free text for search (*):') . ' ' . + $form_elems[] = __('Free text for search (*):') . ' ' . html_print_input_text('text_filter', $text_filter, '', 30, 100, true); } +// Don't show subgroups if (($activeTab == 'groups') || ($activeTab == 'topology')) { - $table->data[2][] = __('Don\'t show subgroups:') . + $form_elems[] = __('Don\'t show subgroups:') . ui_print_help_tip(__('Only run with it is filter for any group'), true) . ' ' . html_print_checkbox ('dont_show_subgroups', '1', $dont_show_subgroups, true); } +// L2 network if ($activeTab == 'topology') { - $table->data[2][] = __('L2 network interfaces') . ' ' . + $form_elems[] = __('L2 network interfaces') . ' ' . html_print_checkbox ('l2_network', '1', $l2_network, true); } +// Distance between nodes if ($nooverlap == 1) { - $table->data[2][] = __('Distance between nodes') . ' ' . + $form_elems[] = __('Distance between nodes') . ' ' . html_print_input_text ('ranksep', $ranksep, __('Separation between elements in the map (in Non-overlap mode)'), 3, 4, true); } +unset($table); +$table->width = '98%'; +$table->class = 'databox'; +$table->data = array(); + +$max_col = 5; +$col = 0; +$row = 0; + +foreach ($form_elems as $key => $element) { + if ($col >= $max_col) { + $col = 0; + $row++; + } + + $table->data[$row][$col] = $element; + $col++; +} + $options_form .= html_print_input_hidden('update_networkmap',1, true) . html_print_input_hidden('hidden_options',0, true); $options_form .= html_print_table ($table, true); diff --git a/pandora_console/operation/agentes/networkmap.topology.php b/pandora_console/operation/agentes/networkmap.topology.php index ad587e79f4..f9799e84a0 100644 --- a/pandora_console/operation/agentes/networkmap.topology.php +++ b/pandora_console/operation/agentes/networkmap.topology.php @@ -19,7 +19,7 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "AR")) { +if (! check_acl ($config['id_user'], $store_group, "AR")) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index 6cef0715fe..aac56b6c8a 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -170,12 +170,12 @@ $id_groups = array_keys(users_get_groups()); // Create filter $where = array(); -$where['id_group'] = $id_groups; +$where['store_group'] = $id_groups; // Order by type field $where['order'] = 'type'; if (!empty($group_search)) - $where['id_group'] = $group_search; + $where['store_group'] = $group_search; if ($type_search != '0') $where['type'] = $type_search; @@ -183,11 +183,6 @@ if ($type_search != '0') //Check for maps only visible for this user $user_info = users_get_user_by_id($config['id_user']); -//If the user is not admin only user map are shown. -//if (!$user_info['is_admin']) { -// $where['id_user'] = $config['id_user']; -//} - $network_maps = db_get_all_rows_filter('tnetwork_map', $where); if ($network_maps === false) { @@ -197,6 +192,10 @@ if ($network_maps === false) { else { $table->data = array(); foreach ($network_maps as $network_map) { + // ACL + if (!check_acl ($config['id_user'], $network_map['store_group'], "RR")) + continue; + // If enterprise not loaded then skip this code if ($network_map['type'] == 'policies' and (!defined('PANDORA_ENTERPRISE'))) continue; @@ -204,18 +203,23 @@ else { if (($network_map['type'] == 'radial_dynamic' || $network_map['type'] == 'policies') && ($strict_user)) { continue; } - + $data = array(); $data[0] = '' . $network_map['name'] . ''; $data[1] = $network_map['type']; + $data[2] = ui_print_group_icon ($network_map['store_group'], true); - $data[2] = ui_print_group_icon ($network_map['id_group'], true); - if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) { + if (check_acl ($config['id_user'], $network_map['store_group'], "RW") || check_acl ($config['id_user'], $network_map['store_group'], "RM")) { $data[3] = '' . html_print_image("images/config.png", true) . ''; $data[4] = '' . html_print_image('images/cross.png', true) . ''; // The value of the checkbox will be the networkmap id to recover it in js to perform the massive deletion $data[5] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true); } + else { + $data[3] = ''; + $data[4] = ''; + $data[5] = ''; + } $table->data[] = $data; } From 521845ee9121c2237dc7dba2af0684f02aecf3f9 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 13:30:16 +0200 Subject: [PATCH 013/191] ACL improvements --- .../operation/agentes/networkmap_list.php | 48 ++++++++----------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index aac56b6c8a..2bb25c7211 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -38,35 +38,29 @@ if (is_ajax()) { $delete_networkmaps = (bool) get_parameter('delete_networkmaps'); if ($delete_networkmaps) { - if ( check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM") ) { - if (check_acl ($config['id_user'], 0, "RM")) { - $result = false; - $results = array(); - $ids_networkmap = (array) get_parameter ('ids_networkmap'); - foreach ($ids_networkmap as $id) { - $results[$id] = (bool) networkmap_delete_networkmap($id); - } - echo json_encode($results); - return; - } - else{ - if (check_acl ($config['id_user'], 0, "RW")) { - $result = false; - $results = array(); - $ids_networkmap = (array) get_parameter ('ids_networkmap'); - foreach ($ids_networkmap as $id) { - $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); - } - echo json_encode($results); - return; - } + + $results = array(); + $ids_networkmap = (array) get_parameter('ids_networkmap'); + + foreach ($ids_networkmap as $id) { + $store_group = (int) db_get_value('store_group', 'tnetwork_map', 'id_networkmap',$id_networkmap); + + if (check_acl ($config['id_user'], $store_group, "RM")) { + $results[$id] = (bool) networkmap_delete_networkmap($id); + } + else if (check_acl ($config['id_user'], $store_group, "RW")) { + $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); } - }else{ - db_pandora_audit("ACL Violation", - "Trying to access Networkmap deletion"); - echo json_encode(-1); - return; } + + // None permission + if (!empty($ids_networkmap) && empty($results)) { + db_pandora_audit("ACL Violation", "Trying to access Networkmap deletion"); + $results = -1; + } + + echo json_encode($results); + return; } return; } From c0bc9ad1368710b60229e7fad74b434c9f47635d Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 14:11:17 +0200 Subject: [PATCH 014/191] Added a padding to the graph to prevent the text cut --- pandora_console/include/functions_networkmap.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/functions_networkmap.php b/pandora_console/include/functions_networkmap.php index 36dea7e0d6..4cb7f70233 100644 --- a/pandora_console/include/functions_networkmap.php +++ b/pandora_console/include/functions_networkmap.php @@ -1430,12 +1430,13 @@ function networkmap_open_graph ($layout, $nooverlap, $pure, $zoom, $ranksep, $fo $size = $size_x . ',' . $size_y; // BEWARE: graphwiz DONT use single ('), you need double (") - $head = "graph networkmap { bgcolor=\"transparent\"; labeljust=l; margin=0; "; + $head = "graph networkmap { bgcolor=\"transparent\"; labeljust=l; margin=0; pad=\"0.75,0.75\";"; if ($nooverlap != '') { $head .= "overlap=\"$overlap\";"; $head .= "ranksep=\"$ranksep\";"; $head .= "outputorder=edgesfirst;"; - } + } + $head .= "ratio=fill;"; $head .= "root=0;"; $head .= "size=\"$size\";"; From a756ef1ab58e69f63a85d2cf098aeea30c3e2a6c Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 14:46:43 +0200 Subject: [PATCH 015/191] Fixed filter by name module in tree view, Node and Meta. tiquet: 2056 --- pandora_console/include/class/Tree.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php index fa566c0ee6..cdfdb95cd0 100644 --- a/pandora_console/include/class/Tree.class.php +++ b/pandora_console/include/class/Tree.class.php @@ -367,7 +367,8 @@ class Tree { AND ta.id_grupo = tg.id_grupo $group_acl $agent_search_filter - $agent_status_filter"; + $agent_status_filter + $module_search_filter"; $counter_columns = $this->getAgentCounterColumnsSql($agent_table); if (!empty($counter_columns)) $columns .= ", $counter_columns"; @@ -385,6 +386,7 @@ class Tree { $group_acl $agent_search_filter $agent_status_filter + $module_search_filter GROUP BY tg.id_grupo ORDER BY $order_fields"; } @@ -407,6 +409,7 @@ class Tree { $group_acl $agent_search_filter $agent_status_filter + $module_search_filter GROUP BY ta.id_agente ORDER BY $order_fields"; } From 722c95c4705a2165a94ae61504192ca8a579dcdf Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 17:30:53 +0200 Subject: [PATCH 016/191] Replaced the old tooltip for the jquery widget version in the networkmaps section --- .../include/functions_networkmap.php | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/pandora_console/include/functions_networkmap.php b/pandora_console/include/functions_networkmap.php index 4cb7f70233..e50d25a870 100644 --- a/pandora_console/include/functions_networkmap.php +++ b/pandora_console/include/functions_networkmap.php @@ -28,10 +28,6 @@ require_once ('functions_agents.php'); require_once($config['homedir'] . "/include/functions_modules.php"); require_once($config['homedir'] . "/include/functions_groups.php"); ui_require_css_file ('cluetip'); -$hack_metaconsole = ''; -if (defined('METACONSOLE')) - $hack_metaconsole = '../../'; -ui_require_jquery_file ('cluetip', $hack_metaconsole . 'include/javascript/'); // Check if a node descends from a given node function networkmap_is_descendant ($node, $ascendant, $parents) { @@ -1796,14 +1792,44 @@ function networkmap_get_new_nodes_from_ip_mask($ip_mask, $fields = array(), $str ?> From 72af6134a1e64b56b9bcba8f028800fc3412cd13 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Tue, 31 Mar 2015 18:10:13 +0200 Subject: [PATCH 017/191] Improved a jquery selector --- pandora_console/include/functions_networkmap.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pandora_console/include/functions_networkmap.php b/pandora_console/include/functions_networkmap.php index e50d25a870..a1e0f9c2cf 100644 --- a/pandora_console/include/functions_networkmap.php +++ b/pandora_console/include/functions_networkmap.php @@ -1816,11 +1816,8 @@ function networkmap_get_new_nodes_from_ip_mask($ip_mask, $fields = array(), $str elem.data('jqXHR', jqXHR); } - $(".ui-tooltip>.ui-tooltip-content").each(function(index, element) { - // Temporal fix. Add the cluetip styles/ - if (! $(element).hasClass("cluetip-default")) - $(element).addClass("cluetip-default"); - }); + $(".ui-tooltip>.ui-tooltip-content:not(.cluetip-default)") + .addClass("cluetip-default"); }, close: function (evt, ui) { var elem = $(this); From 0e29cc520e5534dc08c0b26fd5020d63d0c5aac7 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 31 Mar 2015 17:26:22 +0200 Subject: [PATCH 018/191] Change visual of node --- pandora_console/general/header.php | 64 ++++++++------- pandora_console/general/main_menu.php | 41 ++++++++-- .../godmode/agentes/configurar_agente.php | 6 +- pandora_console/include/styles/firts_task.css | 4 +- pandora_console/include/styles/menu.css | 3 +- pandora_console/include/styles/pandora.css | 79 +++++++++++++------ 6 files changed, 128 insertions(+), 69 deletions(-) diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index f0e69a6ae3..edaeebbbba 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -71,6 +71,37 @@ config_check(); $table->styleTable = 'margin: auto; margin-top: 0px;'; $table->rowclass[0] = ''; + // Search bar + $search_bar = ''; + if (!isset($config['search_keywords'])) { + $search_bar .= ''; + } + else { + if (strlen($config['search_keywords']) == 0) + $search_bar .= ''; + else + $search_bar .= ''; + } + + $search_bar .= ''; + + //$search_bar .= 'onClick="javascript: document.quicksearch.submit()"'; + + $search_bar .= ""; + $search_bar .= ''; + + $table->data[0]['searchbar'] = $search_bar; + // Servers check $servers = array(); $servers["all"] = (int) db_get_value ('COUNT(id_server)','tserver'); @@ -262,39 +293,6 @@ config_check(); $table->data[0][9] .= ''; } - - - // Search bar - $search_bar = '
'; - if (!isset($config['search_keywords'])) { - $search_bar .= ''; - } - else { - if (strlen($config['search_keywords']) == 0) - $search_bar .= ''; - else - $search_bar .= ''; - } - - $search_bar .= ''; - - //$search_bar .= 'onClick="javascript: document.quicksearch.submit()"'; - - $search_bar .= ""; - $search_bar .= ''; - - $table->data[0]['searchbar'] = $search_bar; - $table->data[0][11] = ui_print_help_tip (__("Blank characters are used as AND conditions"), true); html_print_table($table); diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index b89d59d346..f667e246f2 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -235,25 +235,47 @@ $(document).ready( function() { diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index be8db775eb..53a058765e 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -1578,9 +1578,9 @@ echo ''; // Set the position and width of the subtab function agent_wizard_tab_setup() { - $('#agent_wizard_subtabs').css('left', $('.agent_wizard_tab').offset().left) - $('#agent_wizard_subtabs').css('top', $('.agent_wizard_tab').offset().top + $('.agent_wizard_tab').height() + 4) - $('#agent_wizard_subtabs').css('width', $('.agent_wizard_tab').width() + 6) + $('#agent_wizard_subtabs').css('left', $('.agent_wizard_tab').offset().left-14) + $('#agent_wizard_subtabs').css('top', $('.agent_wizard_tab').offset().top + $('.agent_wizard_tab').height() + 7) + $('#agent_wizard_subtabs').css('width', $('.agent_wizard_tab').width() + 26) } function agent_wizard_tab_show() { diff --git a/pandora_console/include/styles/firts_task.css b/pandora_console/include/styles/firts_task.css index 72d4752b4b..1658e370e5 100755 --- a/pandora_console/include/styles/firts_task.css +++ b/pandora_console/include/styles/firts_task.css @@ -2,10 +2,9 @@ { margin-top: 30px; left: 20px; - padding-top: 0.5px; width: 60%; height: 35em; - background-color: #FFF; + background-color: #ececec; border-radius: 3px 3px 3px 3px; } @@ -22,7 +21,6 @@ .image_task { margin: 30px 0px 0px 50px; - background-color: #FFF; } .text_task diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 2820e20cb6..e5e092b41c 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -51,7 +51,7 @@ li:hover ul { display: block; } .submenu_text{ background-repeat: no-repeat !important; - padding: 10px; + padding: 9px; margin-left: 0px; color: #fff; width: 88%; @@ -74,6 +74,7 @@ li:hover ul { display: block; } min-height: 30px; height: 30px; width: 160px; + opacity: 0.5; } .submenu2{ diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 0dce7e22d5..0d74c45ac4 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -226,7 +226,7 @@ div#container { #border-right: solid 2px #000; #border-top: solid 2px #000; #margin-top: 5px; - height: 2000px; + height: auto; background: #FFF; } div#page { @@ -235,7 +235,7 @@ div#page { } div#main { width: 90%; - margin: 0px 5% 0px 0%; + margin: 0px 4% 0px 0%; float: right; } div#main_help { @@ -1079,12 +1079,6 @@ div.title_line { -khtml-opacity: 0.5; } -#menu_tab_frame { - background: #FAFAFA; -} -#menu_tab_frame_view { - background: #FFF; -} #menu_tab_frame, #menu_tab_frame_view { display: block !important; @@ -1133,32 +1127,32 @@ div.title_line { } #menu_tab li.tab_operation, #menu_tab li.tab_godmode { - padding-left: 2px; + #padding-left: 2px; } #menu_tab li.tab_godmode a, #menu_tab a.tab_godmode { - background: #666; - padding-left: 4px; - padding-right: 4px; - min-height: 27px; + #background: #666; + #padding-left: 4px; + #padding-right: 4px; + #min-height: 27px; } #menu_tab li.tab_godmode.nomn_high a, #menu_tab a.tab_godmode.nomn_high, #menu_tab li.tab_godmode a:hover, #menu_tab a.tab_godmode:hover { - background: #555555; + #background: #555555; } #menu_tab li.tab_operation a, #menu_tab a.tab_operation { - background: #82b92e; - padding-left: 4px; - padding-right: 4px; - min-height: 27px; + #background: #82b92e; + #padding-left: 4px; + #padding-right: 4px; + #min-height: 27px; } #menu_tab li.tab_operation.nomn_high a, #menu_tab a.tab_operation.nomn_high, #menu_tab li.tab_operation a:hover, #menu_tab a.tab_operation:hover { - background: #3F3F3F; + #background: #3F3F3F; } @@ -1273,7 +1267,7 @@ div.title_line { } #menu_tab_frame *, #menu_tab_frame_view *{ - margin: 0px 0px 0px 0px !important; + #margin: 0px 0px 0px 0px !important; } span.users { @@ -2305,7 +2299,7 @@ li.links a:hover { border-radius: 0px 0px 0px 0px; background-color: #373737 !important; display: block; - min-height: 50px; + min-height: 35px; border-bottom: 0px none #424242; vertical-align: middle; } @@ -2592,7 +2586,21 @@ ul.subsubmenu { -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px; - background: #555555; + background: #ECECEC !important; +} + +ul.subsubmenu li{ + background-color: #ECECEC; + font-weight: bold; + text-decoration: none; + font-size: 14px; + border-color: #E2E2E2; + border-style: solid; + border-width: 1px; +} + +ul.subsubmenu li a{ + padding: 0px 10px 5px; } div#agent_wizard_subtabs { @@ -2897,6 +2905,33 @@ table#policy_modules td * { border-color: #E2E2E2; } + +#menu_tab li.nomn, #menu_tab li.nomn_high { + background-color: #ECECEC; + padding: 0px 10px 3px; + font-weight: bold; + text-decoration: none; + font-size: 14px; + border-color: #E2E2E2; + border-style: solid; + border-width: 1px; + margin-top: -10px; +} + +#menu_tab li.nomn_high, #menu_tab li.nomn_high span { + color: #FFF; + background-color: #FFF; +} + +#menu_tab li.tab_operation a, #menu_tab a.tab_operation{ + background: none !important ; +} + + +.databox.filters td{ + padding: 10px; +} + /* The items with the class 'spinner' will rotate */ /* Not supported on IE9 and below */ .spinner { From fae014e57012ec887a6993688276587591a0eb7f Mon Sep 17 00:00:00 2001 From: Vanessa Gil Date: Wed, 1 Apr 2015 11:09:04 +0200 Subject: [PATCH 019/191] Update translations. --- pandora_console/include/languages/ar.mo | Bin 117978 -> 117978 bytes pandora_console/include/languages/ar.po | 8 +- pandora_console/include/languages/ca.mo | Bin 319917 -> 319917 bytes pandora_console/include/languages/ca.po | 74 +----- pandora_console/include/languages/cs.mo | Bin 133777 -> 133777 bytes pandora_console/include/languages/cs.po | 8 +- pandora_console/include/languages/de.mo | Bin 365169 -> 365169 bytes pandora_console/include/languages/de.po | 92 +------ pandora_console/include/languages/el.mo | Bin 19096 -> 19096 bytes pandora_console/include/languages/el.po | 2 +- pandora_console/include/languages/en_GB.mo | Bin 335303 -> 337740 bytes pandora_console/include/languages/en_GB.po | 129 +++------- pandora_console/include/languages/es.mo | Bin 382851 -> 388158 bytes pandora_console/include/languages/es.po | 277 +++++++-------------- pandora_console/include/languages/fr.mo | Bin 339467 -> 342589 bytes pandora_console/include/languages/fr.po | 204 +++++---------- pandora_console/include/languages/it.mo | Bin 75068 -> 75068 bytes pandora_console/include/languages/it.po | 2 +- pandora_console/include/languages/ja.mo | Bin 413529 -> 413529 bytes pandora_console/include/languages/ja.po | 94 +------ pandora_console/include/languages/nl.mo | Bin 316572 -> 316572 bytes pandora_console/include/languages/nl.po | 71 +----- pandora_console/include/languages/pl.mo | Bin 82219 -> 82219 bytes pandora_console/include/languages/pl.po | 2 +- pandora_console/include/languages/pt.mo | Bin 109893 -> 109893 bytes pandora_console/include/languages/pt.po | 8 +- pandora_console/include/languages/pt_BR.mo | Bin 324533 -> 324533 bytes pandora_console/include/languages/pt_BR.po | 73 +----- pandora_console/include/languages/ru.mo | Bin 420160 -> 420160 bytes pandora_console/include/languages/ru.po | 71 +----- pandora_console/include/languages/sk.mo | Bin 106257 -> 106257 bytes pandora_console/include/languages/sk.po | 5 +- pandora_console/include/languages/tr.mo | Bin 35371 -> 35371 bytes pandora_console/include/languages/tr.po | 2 +- pandora_console/include/languages/zh_CN.mo | Bin 320121 -> 320121 bytes pandora_console/include/languages/zh_CN.po | 76 +----- 36 files changed, 204 insertions(+), 994 deletions(-) diff --git a/pandora_console/include/languages/ar.mo b/pandora_console/include/languages/ar.mo index eb795073421ba7fad0c2a13d03d00ada5203e686..20440215626063d09c697c24c073c982b2653875 100644 GIT binary patch delta 25 hcmcaLll|6A_6<${xJ+~n3>6H_t&EK~_x$ra2LOr63UL4c delta 25 hcmcaLll|6A_6<${xQum;OcV^wtW3=}_x$ra2LOs73VQ$m diff --git a/pandora_console/include/languages/ar.po b/pandora_console/include/languages/ar.po index d160812bd0..a667846ddf 100644 --- a/pandora_console/include/languages/ar.po +++ b/pandora_console/include/languages/ar.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" #: ../../godmode/menu.php:28 @@ -29388,9 +29388,6 @@ msgstr "" #~ msgid "Search value" #~ msgstr "البحث عن القيمة" -#~ msgid "OID:" -#~ msgstr "قائمة أوراكل إنترنت (OID" - #~ msgid "Read message" #~ msgstr "قراءة رسالة" @@ -29794,6 +29791,3 @@ msgstr "" #~ msgid "Total data" #~ msgstr "إجمالي البيانات" - -#~ msgid "Without permissions" -#~ msgstr "دون تصريح" diff --git a/pandora_console/include/languages/ca.mo b/pandora_console/include/languages/ca.mo index 7c24dcf791d0c2325db711bc26abe6e0317bad73..005914541be84d589ee987de6e2baf733b522d36 100644 GIT binary patch delta 34 qcmZ2`Sa|JW;f5B*Elh{La+&BF7%CW;TNxX+pZUtP{mfV9hpz$k?hg9^ delta 34 qcmZ2`Sa|JW;f5B*Elh{LavAFynJ5^VS(%!)pZUtP{mfV9hpz$lb`J#r diff --git a/pandora_console/include/languages/ca.po b/pandora_console/include/languages/ca.po index d3374b57a0..8abe824a2b 100644 --- a/pandora_console/include/languages/ca.po +++ b/pandora_console/include/languages/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:52+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:28+0000\n" "X-Generator: Launchpad (build 17413)\n" #: ../../general/links_menu.php:20 ../../godmode/menu.php:216 @@ -30237,12 +30237,6 @@ msgstr "Registres del sistema" #~ msgid "Id" #~ msgstr "Id" -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Delay (sec) / Mòduls retard" - -#~ msgid "Add module macro" -#~ msgstr "Afegir macro mòdul" - #~ msgid "Database sanity tool" #~ msgstr "Eina de base de dades del seny" @@ -30278,72 +30272,9 @@ msgstr "Registres del sistema" #~ msgid "Field 3" #~ msgstr "Camp 3" -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Esquerra en blanc per mòduls d'inventari de xarxa" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "" -#~ "Posi aquí la seva codi de seqüència de comandaments per al mòdul d'inventari" - -#~ msgid "Invalid license." -#~ msgstr "Invalid llicència." - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "Si us plau, poseu-vos en contacte amb Artica en info@artica.es d'una " -#~ "llicència vàlida." - -#~ msgid "Columns" -#~ msgstr "Columnes" - -#~ msgid "Agent and monitor information" -#~ msgstr "Agent i la informació del monitor" - -#~ msgid "No servers" -#~ msgstr "No hi ha servidors" - -#~ msgid "Event information" -#~ msgstr "De l'esdeveniment" - -#~ msgid "Without permissions" -#~ msgstr "Sense permisos" - -#~ msgid "disabled" -#~ msgstr "Deshabilitat" - -#~ msgid "Events replication is not enabled" -#~ msgstr "Replicació Esdeveniments no està habilitat" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "" -#~ "Replicació Esdeveniments no està configurat correctament per a aquest " -#~ "metaconsola" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "El servidor sembla estar configurat per replicar els esdeveniments, però cap " -#~ "esdeveniment s'ha rebut encara" - -#~ msgid "Unknown error" -#~ msgstr "Error desconegut" - -#~ msgid "Sort the agents by " -#~ msgstr "Classificar els agents de " - #~ msgid "Search value" #~ msgstr "Valor de Recerca" -#~ msgid "Custom data:" -#~ msgstr "Dades personalitzats:" - -#~ msgid "OID:" -#~ msgstr "OID:" - -#~ msgid "Type:" -#~ msgstr "Tipus:" - #~ msgid "Update manager settings" #~ msgstr "Actualització de valors del gestor" @@ -30369,9 +30300,6 @@ msgstr "Registres del sistema" #~ msgid "Code / binary directory" #~ msgstr "Codi / directori de binaris" -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "No hi ha agents en aquesta Agrupació" - #~ msgid "Current directory is not writable by HTTP Server" #~ msgstr "Directori actual no té permisos d'escriptura pel servidor HTTP" diff --git a/pandora_console/include/languages/cs.mo b/pandora_console/include/languages/cs.mo index b7a7d5246199acccbe351643198d16c7788c249d..9dffa69a78914cc111e831d484127cd1ea765c15 100644 GIT binary patch delta 28 kcmbO@m1E*mj)pCa2i&<#bPWs@49u;Jjkce1XFPrg0E~GF-2eap delta 28 kcmbO@m1E*mj)pCa2i&=gb&X6E49%=e&9`d000M03?cvk delta 37 tcmeykMC{`dv4$4L7N#xC-(0zjb&X6E49%=eP21d<+uT^Txv>`d000Nz3@iWu diff --git a/pandora_console/include/languages/de.po b/pandora_console/include/languages/de.po index 9e0e36eacf..304a61c83d 100644 --- a/pandora_console/include/languages/de.po +++ b/pandora_console/include/languages/de.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:52+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:28+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: \n" @@ -31086,9 +31086,6 @@ msgstr "System-Log" #~ msgid "No layouts found" #~ msgstr "Keine Layouts gefunden" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "MinMax.Al" #~ msgstr "MinMax.Al" @@ -31117,21 +31114,12 @@ msgstr "System-Log" #~ msgid "%d hour" #~ msgstr "%d Stunde" -#~ msgid "Custom data:" -#~ msgstr "Benutzerdefinierte Daten:" - #~ msgid "Download file" #~ msgstr "Datei herunterladen" -#~ msgid "Add module macro" -#~ msgstr "Modulmakro hinzufügen" - #~ msgid "Standard user" #~ msgstr "Standardbenutzer" -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Verzögerung (Sek.) / Module verzögert" - #~ msgid "Map element editor" #~ msgstr "Kartenelemente-Editor" @@ -31306,64 +31294,6 @@ msgstr "System-Log" #~ msgid "Event not validate" #~ msgstr "Ereignis nicht bestätigen" -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Fügen Sie hier ihren Skript-Code für das Bestandsmodul ein." - -#~ msgid "Invalid license." -#~ msgstr "Ungültige Lizenz" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "Bitte kontaktieren Sie Artica unter info@artica.es, um eine gültige Lizenz " -#~ "zu erhalten." - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Für Netzwerk-Bestandsmodule leer lassen." - -#~ msgid "Columns" -#~ msgstr "Spalten" - -#~ msgid "Agent and monitor information" -#~ msgstr "Beauftragten- und Überwachungsinformation" - -#~ msgid "No servers" -#~ msgstr "Keine Server" - -#~ msgid "Event information" -#~ msgstr "Ereignis-Information" - -#~ msgid "Without permissions" -#~ msgstr "Ohne Erlaubnisse" - -#~ msgid "disabled" -#~ msgstr "deaktiviert" - -#~ msgid "Events replication is not enabled" -#~ msgstr "Ereignis-Replikation ist nicht eingeschaltet." - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "" -#~ "Ereignis-Replikation ist nicht richtig für diese Meta-Konsole konfiguriert." - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "Der Server scheint richtig für die Replizierung von Ereignissen konfiguriert " -#~ "zu sein. Es sind bis jetzt nur noch keine Ereignisse empfangen worden." - -#~ msgid "Unknown error" -#~ msgstr "Unbekannter Fehler" - -#~ msgid "Sort the agents by " -#~ msgstr "Sortiere die Beauftragten nach " - -#~ msgid "Type:" -#~ msgstr "Typ :" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "Es gibt keine Beauftragten in dieser Gruppierung." - #~ msgid "Checking tagente_estado table" #~ msgstr "Prüfe 'tagente_estado'-Tabelle" @@ -31382,23 +31312,3 @@ msgstr "System-Log" #~ "Pandora FMS (Anzahl der Agenten und der laufenden Module). Wenn Sie das " #~ "unterbinden möchten, löschen Sie das Update Plugin oder die Adresse des " #~ "Remoteservers im Plugin." - -#~ msgid "Custom OID/Data" -#~ msgstr "Benutzerdefinierte OIDs / Daten" - -#~ msgid "Group by OID/IP" -#~ msgstr "Gruppieren nach OID / IP" - -#~ msgid "Contact Ártica ST at info@artica.es to get an auth key." -#~ msgstr "" -#~ "Bitte kontaktieren Sie Ártica ST durch 'info@artica.es', um einen " -#~ "Authentisierungsschlüssel zu erhalten." - -#~ msgid "Modules status" -#~ msgstr "Modulstatus" - -#~ msgid "Agents status" -#~ msgstr "Agentenstatus" - -#~ msgid "Alerts status" -#~ msgstr "Alarmstatus" diff --git a/pandora_console/include/languages/el.mo b/pandora_console/include/languages/el.mo index 2e6b2f0410d40857b20531050ea737d0a9a3b1d3..9727e7db5c7a492b0e5c9ed542eb3df5874b853f 100644 GIT binary patch delta 25 gcmbO+m2t*Y#tpifTqe2(h6)DeR>sDg%{3Dh0b_jz>i_@% delta 25 gcmbO+m2t*Y#tpifT*kUaCJKgTR;K2g%{3Dh0b|n!^#A|> diff --git a/pandora_console/include/languages/el.po b/pandora_console/include/languages/el.po index c7519bdf03..9861a8baf8 100644 --- a/pandora_console/include/languages/el.po +++ b/pandora_console/include/languages/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:30+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: el\n" diff --git a/pandora_console/include/languages/en_GB.mo b/pandora_console/include/languages/en_GB.mo index b8da06220cbb6dc88a35f98a26676a0de3e03fc3..c576c6a6ed31a07129647242476c731fd3618dbc 100644 GIT binary patch delta 99182 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 delta 97632 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

H9hVcCd;DBYg+0e~KQz?=S;%d>+1t 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 bbh_TS<&oXeGRD|EdD<2-Mi\n" +"PO-Revision-Date: 2015-03-27 14:57+0000\n" +"Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:30+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: \n" @@ -50,7 +50,7 @@ msgstr "QR code of the page" #: ../../general/header.php:134 ../../general/header.php:135 #: ../../include/functions_clippy.php:128 msgid "Pandora FMS assistant" -msgstr "" +msgstr "Pandora FMS assistant" #: ../../general/header.php:160 #: ../../enterprise/meta/general/main_header.php:298 @@ -521,6 +521,9 @@ msgid "" "learn more about Pandora FMS. Monitoring could be overwhelm, but take your " "time to learn how to use the power of Pandora FMS!" msgstr "" +"If this is your first time with Pandora FMS, we propose you a few links to " +"learn more about Pandora FMS. Monitoring could be overwhelm, but take your " +"time to learn how to use the power of Pandora FMS!" #: ../../general/login_help_dialog.php:51 #: ../../general/login_help_dialog.php:53 @@ -591,7 +594,7 @@ msgstr "You don't have access to this page" #: ../../general/noaccess.php:26 msgid "Access to this page is restricted" -msgstr "" +msgstr "Access to this page is restricted" #: ../../general/noaccess.php:31 ../../enterprise/meta/general/noaccess.php:29 #: ../../enterprise/meta/general/metaconsole_no_activated.php:21 @@ -605,6 +608,10 @@ msgid "" "\t\t\tPlease know that all attempts to access this page are recorded in " "security logs of Pandora System Database" msgstr "" +"Access to this page is restricted to authorised users only, please contact " +"system administrator if you need assistance.

\n" +"\t\t\tPlease know that all attempts to access this page are recorded in " +"security logs of Pandora System Database" #: ../../general/shortcut_bar.php:165 msgid "Press here to activate shortcut bar" @@ -747,11 +754,11 @@ msgstr "" #: ../../general/login_page.php:140 ../../mobile/include/user.class.php:295 #: ../../mobile/include/user.class.php:296 msgid "Authenticator code" -msgstr "" +msgstr "Authenticator code" #: ../../general/login_page.php:146 ../../mobile/include/user.class.php:300 msgid "Check code" -msgstr "" +msgstr "Check code" #: ../../general/login_page.php:154 msgid "View details" @@ -3869,25 +3876,25 @@ msgstr "Generated at" #: ../../mobile/include/user.class.php:171 #: ../../mobile/include/user.class.php:178 msgid "Double authentication failed" -msgstr "" +msgstr "Double authentication failed" #: ../../mobile/include/user.class.php:154 msgid "Secret code not found" -msgstr "" +msgstr "Secret code not found" #: ../../mobile/include/user.class.php:155 msgid "Please contact the administrator to reset your double authentication" -msgstr "" +msgstr "Please contact the administrator to reset your double authentication" #: ../../mobile/include/user.class.php:172 ../../index.php:217 #: ../../enterprise/meta/index.php:236 #: ../../include/ajax/double_auth.ajax.php:489 msgid "Invalid code" -msgstr "" +msgstr "Invalid code" #: ../../mobile/include/user.class.php:179 msgid "There was an error checking the code" -msgstr "" +msgstr "There was an error checking the code" #: ../../mobile/include/user.class.php:211 msgid "Login Failed" @@ -4262,7 +4269,7 @@ msgstr "Create" #: ../../godmode/reporting/visual_console_builder.data.php:72 msgid "Create visual console" -msgstr "" +msgstr "Create visual console" #: ../../godmode/reporting/visual_console_builder.data.php:79 #: ../../godmode/setup/os.builder.php:33 @@ -4682,11 +4689,11 @@ msgstr "Could not be created." #: ../../godmode/reporting/visual_console_builder.php:167 msgid "Successfully multiple delete." -msgstr "" +msgstr "Successfully multiple delete." #: ../../godmode/reporting/visual_console_builder.php:168 msgid "Unsuccessfull multiple delete." -msgstr "" +msgstr "Unsuccessfull multiple delete." #: ../../godmode/reporting/visual_console_builder.php:245 msgid "Successfully delete." @@ -4882,7 +4889,7 @@ msgstr "Icon" #: ../../include/functions_visual_map_editor.php:545 #: ../../include/functions_visual_map.php:2035 msgid "Box" -msgstr "" +msgstr "Box" #: ../../godmode/reporting/visual_console_builder.elements.php:190 #: ../../godmode/reporting/visual_console_builder.elements.php:572 @@ -5083,7 +5090,7 @@ msgstr "Filter" #: ../../enterprise/meta/advanced/metasetup.translate_string.php:148 #: ../../enterprise/meta/include/functions_networkmap_meta.php:84 msgid "Show Options" -msgstr "" +msgstr "Show Options" #: ../../godmode/reporting/reporting_builder.list_items.php:270 #: ../../godmode/agentes/module_manager.php:505 @@ -5560,7 +5567,7 @@ msgstr "Free text for search: " #: ../../godmode/reporting/reporting_builder.php:394 msgid "Show Option" -msgstr "" +msgstr "Show Option" #: ../../godmode/reporting/reporting_builder.php:469 #: ../../operation/reporting/custom_reporting.php:38 @@ -5751,7 +5758,7 @@ msgstr "Descending" #: ../../godmode/reporting/reporting_builder.item_editor.php:518 #: ../../enterprise/godmode/reporting/reporting_builder.template_item.php:1020 msgid "Item Editor" -msgstr "" +msgstr "Item Editor" #: ../../godmode/reporting/reporting_builder.item_editor.php:537 msgid "Not valid" @@ -5761,7 +5768,7 @@ msgstr "Not valid" #: ../../enterprise/godmode/reporting/reporting_builder.global.php:188 #: ../../enterprise/godmode/reporting/reporting_builder.template_item.php:1066 msgid "Last value" -msgstr "" +msgstr "Last value" #: ../../godmode/reporting/reporting_builder.item_editor.php:596 #: ../../godmode/reporting/reporting_builder.item_editor.php:2356 @@ -5774,6 +5781,9 @@ msgid "" "Information contained in this kind of reports will be always reporting the " "most recent information" msgstr "" +"Warning: period 0 reports cannot be used to show information back in time. " +"Information contained in this kind of reports will be always reporting the " +"most recent information" #: ../../godmode/reporting/reporting_builder.item_editor.php:610 #: ../../operation/integria_incidents/incident.incident.php:97 @@ -30650,15 +30660,9 @@ msgstr "System logfiles" #~ msgid "From the last" #~ msgstr "From the last" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "S" #~ msgstr "S" -#~ msgid "Custom data:" -#~ msgstr "Custom data:" - #~ msgid "Search text" #~ msgstr "Search text" @@ -30973,76 +30977,3 @@ msgstr "System logfiles" #~ msgid "Total Agents" #~ msgstr "Total Agents" - -#~ msgid "Sort the agents by " -#~ msgstr "Sort the agents by " - -#~ msgid "Type:" -#~ msgstr "Type:" - -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Delay(sec)/Modules delayed" - -#~ msgid "Add module macro" -#~ msgstr "Add module macro" - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Left blank for Network Inventory Modules." - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Please place your script code here for the inventory module." - -#~ msgid "Columns" -#~ msgstr "Columns" - -#~ msgid "Agent and monitor information" -#~ msgstr "Agent and monitor information" - -#~ msgid "Event information" -#~ msgstr "Event information" - -#~ msgid "No servers" -#~ msgstr "No servers" - -#~ msgid "Without permissions" -#~ msgstr "Without permissions" - -#~ msgid "disabled" -#~ msgstr "Disabled" - -#~ msgid "Events replication is not enabled" -#~ msgstr "Event replication is not enabled" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "Event replication is not properly configured for this metaconsole." - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "The server seems to be configured to replicate events, but no events have " -#~ "been received yet." - -#~ msgid "Unknown error" -#~ msgstr "Unknown error" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "There are no agents in this group." - -#~ msgid "Custom OID/Data" -#~ msgstr "Custom OID/Data" - -#~ msgid "Group by OID/IP" -#~ msgstr "Group by OID/IP" - -#~ msgid "Contact Ártica ST at info@artica.es to get an auth key." -#~ msgstr "Contact Ártica ST at info@artica.es to get an auth key." - -#~ msgid "Invalid license." -#~ msgstr "Invalid licence." - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "Please contact Artica at info@artica.es for a valid licence." - -#~ msgid "Report group" -#~ msgstr "Report group" diff --git a/pandora_console/include/languages/es.mo b/pandora_console/include/languages/es.mo index 6f534dd64fed2252b00aa4006521b57891e17aeb..7c6f29f54e21f85ec99d3b7263c07cc38887a506 100644 GIT binary patch delta 106406 zcmXWkci>l3AHeZ%yO5R?m45BLw}yr^wX~-eNkgH{S2Cg@q@*MgiD;-NNlKw4g*2pP zv@}SCP|y4QJ?Hu7bI|8Rrn}o!fD8>iRUpZz7c&7uc5pKegD%~zXN@KFOEzkl8Ilr z$WBG?8R-&Pa0q6^2V!|F`ocuagEKJ~F2)?V7IWekv3@^ZPx*8-tcQScdw2=yMsK3z@kFNnj!$R>aD96ZSzf z@i02z$yk#96SKU)kI;sG#;fskEdPzZnEv^6iR`3?HqZ&(=9y%ahuf{wTndR|mRM|c}L zpbpVqv3?L{Gv^O*aV-x#jA=M6`YyWNcAz8q8C?VapwDNT8_L(A9o>Ycx-6Q3T4*3m z(ady3+Z%!gG!e5o=To^bMYH0K`RK^rLJy9uSQL*(ubvkUo{DJ4UD4+Tpi?vn4R}$! zzYYy}3p)3EqK7eQBqz8qrRUKUXL>nAUMyM@T?;MHkqnDIiXNr2&~_H18CZ#)CmYbk z_!&CDLzr3FmBtnlvA#7r;%?}i-;2IC8cp$|*cj)c znK&5lA45AjhX$JY)zEG}bYRI6v7##4U_nFo;d->eT38HkL*E-5 z>&Ky=;iqDG5gN$*=v01z4s>t4|10Kk|6k(54zFDlBF&F3#uDg@<$ylC-KKBy3mfpg$xE@R533M&xe1rXO14X&8flBC$_0js)=wj;@9f+oI1iA|z zMHk;oXh18`_cz7zH?jO9I`ZG68Q%<3knhd7|I1Nf12E7l)G-#>w7@K1DiWOyqCTn>Hj<|G$Ba68_N-OvooL>pX-&fR9T!L#W8 z{tpc#^OBI6T4DV@!fznSRq;$n^JCp9>ve#Q2Yi>dBbHPV|Sw&nuf*Q|Esug zPQOPp@e?}Y-_VgN!|8hR8BXgWHedFX)NMB7`Au7wTg6nuwC z7r}2_II_$u!XLe|qc7%0A1sKzSPNaXtfChFiI#rXWUq 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 delta 102046 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\n" +"PO-Revision-Date: 2015-03-31 09:50+0000\n" +"Last-Translator: Carlos Moreno \n" "Language-Team: Español; Castellano <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:52+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:28+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: \n" @@ -597,7 +597,7 @@ msgstr "No tiene permiso para acceder a esta página" #: ../../general/noaccess.php:26 msgid "Access to this page is restricted" -msgstr "" +msgstr "El acceso a esta página es restringido" #: ../../general/noaccess.php:31 ../../enterprise/meta/general/noaccess.php:29 #: ../../enterprise/meta/general/metaconsole_no_activated.php:21 @@ -3890,7 +3890,7 @@ msgstr "" #: ../../enterprise/meta/index.php:236 #: ../../include/ajax/double_auth.ajax.php:489 msgid "Invalid code" -msgstr "" +msgstr "Código inválido" #: ../../mobile/include/user.class.php:179 msgid "There was an error checking the code" @@ -4269,7 +4269,7 @@ msgstr "Crear" #: ../../godmode/reporting/visual_console_builder.data.php:72 msgid "Create visual console" -msgstr "" +msgstr "Crear consola visual" #: ../../godmode/reporting/visual_console_builder.data.php:79 #: ../../godmode/setup/os.builder.php:33 @@ -5090,7 +5090,7 @@ msgstr "Filtro" #: ../../enterprise/meta/advanced/metasetup.translate_string.php:148 #: ../../enterprise/meta/include/functions_networkmap_meta.php:84 msgid "Show Options" -msgstr "" +msgstr "Mostrar opciones" #: ../../godmode/reporting/reporting_builder.list_items.php:270 #: ../../godmode/agentes/module_manager.php:505 @@ -5567,7 +5567,7 @@ msgstr "Texto libre de búsqueda " #: ../../godmode/reporting/reporting_builder.php:394 msgid "Show Option" -msgstr "" +msgstr "Mostrar Opciones" #: ../../godmode/reporting/reporting_builder.php:469 #: ../../operation/reporting/custom_reporting.php:38 @@ -5768,7 +5768,7 @@ msgstr "No válida" #: ../../enterprise/godmode/reporting/reporting_builder.global.php:188 #: ../../enterprise/godmode/reporting/reporting_builder.template_item.php:1066 msgid "Last value" -msgstr "" +msgstr "Último valor" #: ../../godmode/reporting/reporting_builder.item_editor.php:596 #: ../../godmode/reporting/reporting_builder.item_editor.php:2356 @@ -6193,7 +6193,7 @@ msgstr "Media" #: ../../godmode/reporting/reporting_builder.item_editor.php:1043 #: ../../enterprise/godmode/reporting/reporting_builder.template_item.php:1313 msgid "Only average" -msgstr "" +msgstr "Solo media" #: ../../godmode/reporting/reporting_builder.item_editor.php:1047 #: ../../godmode/massive/massive_edit_modules.php:440 @@ -6851,11 +6851,11 @@ msgstr "Actualizar perfil" #: ../../godmode/users/configure_profile.php:148 msgid "Update Profile" -msgstr "" +msgstr "Actualizar Perfil" #: ../../godmode/users/configure_profile.php:150 msgid "Create Profile" -msgstr "" +msgstr "Crear Perfil" #: ../../godmode/users/configure_profile.php:159 #: ../../godmode/users/configure_user.php:613 @@ -7153,11 +7153,11 @@ msgstr "El perfil no se puede añadir" #: ../../godmode/users/configure_user.php:422 msgid "Update User" -msgstr "" +msgstr "Actualizar Usuario" #: ../../godmode/users/configure_user.php:425 msgid "Create User" -msgstr "" +msgstr "Crear Usuario" #: ../../godmode/users/configure_user.php:442 #: ../../operation/users/user_edit.php:200 @@ -7320,7 +7320,7 @@ msgstr "El usuario sin permiso de acceso solo puede tener acceso al API" #: ../../godmode/users/configure_user.php:539 msgid "Strict ACL" -msgstr "" +msgstr "ACL Estricto" #: ../../godmode/users/configure_user.php:540 msgid "" @@ -8114,7 +8114,7 @@ msgstr "No se selección ningún agente" #: ../../godmode/massive/massive_delete_tags.php:107 msgid "No tag selected" -msgstr "" +msgstr "Ninguna etiqueta seleccionada" #: ../../godmode/massive/massive_edit_agents.php:95 msgid "No values changed" @@ -8535,7 +8535,7 @@ msgstr "Alertas en standby" #: ../../godmode/massive/massive_add_tags.php:43 msgid "No tags selected" -msgstr "" +msgstr "Ninguna etiqueta seleccionada" #: ../../godmode/massive/massive_delete_profiles.php:61 msgid "Not deleted. You must select an existing user" @@ -9006,7 +9006,7 @@ msgstr "Categoría creada con éxito" #: ../../godmode/category/edit_category.php:139 msgid "Update category" -msgstr "" +msgstr "Actualizar categoría" #: ../../godmode/category/edit_category.php:148 #: ../../godmode/category/category.php:98 @@ -9458,11 +9458,11 @@ msgstr "No se encontraron respuestas" #: ../../godmode/events/event_edit_filter.php:166 msgid "Update Filter" -msgstr "" +msgstr "Actualizar Filtro" #: ../../godmode/events/event_edit_filter.php:169 msgid "Create Filter" -msgstr "" +msgstr "Crear filtro" #: ../../godmode/events/event_edit_filter.php:179 #: ../../operation/events/events_list.php:234 @@ -9590,7 +9590,7 @@ msgstr "Respuestas" #: ../../godmode/events/event_responses.editor.php:63 msgid "Edit event responses" -msgstr "" +msgstr "Editar respuestas de eventos" #: ../../godmode/events/event_responses.editor.php:93 #: ../../enterprise/extensions/ipam/ipam_network.php:125 @@ -10529,7 +10529,7 @@ msgstr "" #: ../../godmode/agentes/module_manager_editor.php:467 #: ../../godmode/agentes/module_manager_editor_common.php:579 msgid "Custom macros" -msgstr "" +msgstr "Macros personalizadas" #: ../../godmode/agentes/module_manager_editor.php:469 msgid "Module relations" @@ -10602,11 +10602,11 @@ msgstr "Los ficheros conf o md5 han podido no ser borrados" #: ../../godmode/agentes/modificar_agente.php:143 msgid "Show Agents" -msgstr "" +msgstr "Mostrar Agentes" #: ../../godmode/agentes/modificar_agente.php:145 msgid "Everyone" -msgstr "" +msgstr "Todos" #: ../../godmode/agentes/modificar_agente.php:146 msgid "Only disabled" @@ -11392,7 +11392,7 @@ msgstr "Solo debe establecerse este valor en los módulos asíncronos" #: ../../godmode/agentes/module_manager_editor_common.php:501 msgid "Tags from policy" -msgstr "" +msgstr "Etiquetas desde política" #: ../../godmode/agentes/module_manager_editor_common.php:514 msgid "The module still stores data but the alerts and events will be stop" @@ -13296,13 +13296,13 @@ msgstr "" #: ../../enterprise/meta/advanced/metasetup.visual.php:167 #: ../../enterprise/meta/include/functions_meta.php:414 msgid "Show only the group name" -msgstr "" +msgstr "Mostrar solo el nombre del grupo" #: ../../godmode/setup/setup_visuals.php:482 #: ../../enterprise/meta/advanced/metasetup.visual.php:169 #: ../../include/functions_config.php:457 msgid "Show the group name instead the group icon." -msgstr "" +msgstr "Mostrar el nombre del grupo en lugar de icono del grupo" #: ../../godmode/setup/setup_visuals.php:492 #: ../../include/functions_config.php:459 @@ -13635,11 +13635,11 @@ msgstr "Etiqueta creada satisfactoriamente" #: ../../godmode/tag/edit_tag.php:159 msgid "Update Tag" -msgstr "" +msgstr "Actualizar Etiqueta" #: ../../godmode/tag/edit_tag.php:162 msgid "Create Tag" -msgstr "" +msgstr "Crear etiqueta" #: ../../godmode/tag/edit_tag.php:183 #: ../../enterprise/meta/monitoring/wizard/wizard.php:108 @@ -13702,7 +13702,7 @@ msgstr "URL update manager" #: ../../godmode/update_manager/update_manager.setup.php:65 msgid "Proxy server:" -msgstr "" +msgstr "Servidor Proxy:" #: ../../godmode/update_manager/update_manager.setup.php:67 msgid "Proxy server" @@ -13710,7 +13710,7 @@ msgstr "Servidor proxy" #: ../../godmode/update_manager/update_manager.setup.php:69 msgid "Proxy port:" -msgstr "" +msgstr "Puerto Proxy:" #: ../../godmode/update_manager/update_manager.setup.php:71 msgid "Proxy port" @@ -13726,7 +13726,7 @@ msgstr "Usuario del proxy" #: ../../godmode/update_manager/update_manager.setup.php:77 msgid "Proxy password:" -msgstr "" +msgstr "Contraseña del Proxy:" #: ../../godmode/update_manager/update_manager.setup.php:79 msgid "Proxy password" @@ -13942,11 +13942,11 @@ msgstr "Actualizar grupo" #: ../../godmode/groups/configure_group.php:105 msgid "Update Group" -msgstr "" +msgstr "Actualizar Grupo" #: ../../godmode/groups/configure_group.php:107 msgid "Create Group" -msgstr "" +msgstr "Crear Grupo" #: ../../godmode/groups/configure_group.php:140 msgid "You have not access to the parent." @@ -14405,7 +14405,7 @@ msgstr "Configurar acción de alerta" #: ../../godmode/alerts/configure_alert_action.php:97 msgid "Update Action" -msgstr "" +msgstr "Actualizar Acción" #: ../../godmode/alerts/configure_alert_action.php:100 #: ../../godmode/alerts/alert_list.builder.php:126 @@ -15624,7 +15624,7 @@ msgstr "Volver a modo normal" #: ../../operation/reporting/reporting_viewer.php:140 msgid "View Report" -msgstr "" +msgstr "Ver Informe" #: ../../operation/reporting/reporting_viewer.php:170 #: ../../enterprise/include/functions_reporting_pdf.php:3988 @@ -15956,7 +15956,7 @@ msgstr "Error al actualizar la información del usuario" #: ../../operation/users/user_edit.php:191 msgid "Edit my User" -msgstr "" +msgstr "Editar mi Usuario" #: ../../operation/users/user_edit.php:233 msgid "New Password" @@ -16026,7 +16026,7 @@ msgstr "Detalle de alertas" #: ../../operation/users/user_edit.php:357 msgid "Show information" -msgstr "" +msgstr "Mostrar información" #: ../../operation/users/user_edit.php:388 msgid "" @@ -16855,7 +16855,7 @@ msgstr "Estado del módulo" #: ../../operation/tree.php:168 msgid "Search module" -msgstr "" +msgstr "Buscar módulo" #: ../../operation/tree.php:193 msgid "Tree search" @@ -16876,23 +16876,23 @@ msgstr "Alertas disparadas" #: ../../operation/tree.php:289 msgid "Critical agents" -msgstr "" +msgstr "Agentes Críticos" #: ../../operation/tree.php:294 msgid "Warning agents" -msgstr "" +msgstr "Agentes en advertencia" #: ../../operation/tree.php:299 msgid "Unknown agents" -msgstr "" +msgstr "Agentes en desconocido" #: ../../operation/tree.php:304 msgid "Not init agents" -msgstr "" +msgstr "Agentes no inicializados" #: ../../operation/tree.php:309 msgid "Normal agents" -msgstr "" +msgstr "Agentes en normal" #: ../../operation/agentes/gis_view.php:93 msgid "Last position in " @@ -17099,7 +17099,7 @@ msgstr "" #: ../../operation/agentes/networkmap_list.php:370 msgid "None selected" -msgstr "" +msgstr "Nada seleccionado" #: ../../operation/agentes/custom_fields.php:28 #: ../../operation/agentes/agent_fields.php:28 @@ -17274,7 +17274,7 @@ msgstr "Agente desconocido" #: ../../operation/agentes/group_view.php:90 #: ../../include/functions_reporting.php:8163 msgid "Agents not init" -msgstr "" +msgstr "Agentes no inicializados" #: ../../operation/agentes/group_view.php:92 msgid "Not Init" @@ -17564,7 +17564,7 @@ msgstr "Lista completa de monitores" #: ../../operation/agentes/estado_monitores.php:150 msgid "List of modules" -msgstr "" +msgstr "Lista de módulos" #: ../../operation/agentes/estado_monitores.php:422 msgid "Status:" @@ -17664,7 +17664,7 @@ msgstr "Estado del monitor" #: ../../operation/agentes/status_monitor.php:542 msgid "Advanced Options" -msgstr "" +msgstr "Opciones Avanzadas" #: ../../operation/agentes/status_monitor.php:984 #: ../../operation/search_modules.php:52 @@ -18445,11 +18445,11 @@ msgstr "La operación no puedo completarse" #: ../../enterprise/godmode/reporting/reporting_builder.template_advanced.php:107 msgid "Advance Options" -msgstr "" +msgstr "Opciones Avanzadas" #: ../../enterprise/godmode/reporting/reporting_builder.advanced.php:69 msgid "Advance Reporting" -msgstr "" +msgstr "Opciones Avanzadas" #: ../../enterprise/godmode/reporting/reporting_builder.template_editor.php:101 #: ../../enterprise/godmode/reporting/reporting_builder.template.php:79 @@ -18611,7 +18611,7 @@ msgstr "No se pudo aplicar" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:221 msgid "Create template report wizard" -msgstr "" +msgstr "Creación de informe con Asistente de Plantillas" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:261 #: ../../enterprise/godmode/reporting/graph_template_wizard.php:142 @@ -18636,7 +18636,7 @@ msgstr "Grupo de destino" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:310 msgid "Filter by" -msgstr "" +msgstr "Filtrar por" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:366 #: ../../enterprise/godmode/reporting/graph_template_wizard.php:162 @@ -18648,7 +18648,7 @@ msgstr "Filtrar agente" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:373 msgid "Filter tag" -msgstr "" +msgstr "Filtro etiqueta" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:385 #: ../../enterprise/godmode/reporting/graph_template_wizard.php:173 @@ -18908,11 +18908,11 @@ msgstr "" #: ../../enterprise/godmode/massive/massive_edit_tags_policy.php:102 msgid "Tags unused" -msgstr "" +msgstr "Etiquetas sin usar" #: ../../enterprise/godmode/massive/massive_edit_tags_policy.php:118 msgid "Tags used" -msgstr "" +msgstr "Etiquetas usadas" #: ../../enterprise/godmode/massive/massive_delete_alerts_snmp.php:165 #: ../../enterprise/godmode/massive/massive_modify_alerts_snmp.php:216 @@ -21428,7 +21428,7 @@ msgstr "Pendiente de generar" #: ../../enterprise/operation/agentes/networkmap_enterprise.php:249 msgid "There are no maps defined." -msgstr "" +msgstr "No hay mapas definidos." #: ../../enterprise/operation/agentes/networkmap_enterprise.php:259 #: ../../enterprise/meta/include/functions_networkmap_meta.php:180 @@ -21532,11 +21532,12 @@ msgstr "(Adoptados)(Desvinculados)" #: ../../enterprise/load_enterprise.php:306 msgid "Invalid licence." -msgstr "" +msgstr "Licencia inválida" #: ../../enterprise/load_enterprise.php:307 msgid "Please contact Artica at info@artica.es for a valid licence." msgstr "" +"Por favor contacte con Ártica en info@artica.es para una licencia válida." #: ../../enterprise/load_enterprise.php:309 msgid "Or disable Pandora FMS enterprise" @@ -21601,11 +21602,11 @@ msgstr "" #: ../../enterprise/load_enterprise.php:666 msgid "E-mail:" -msgstr "" +msgstr "E-mail:" #: ../../enterprise/load_enterprise.php:670 msgid "Contact:" -msgstr "" +msgstr "Contacto:" #: ../../enterprise/load_enterprise.php:674 msgid "Auth Key:" @@ -21618,7 +21619,7 @@ msgstr "" #: ../../enterprise/load_enterprise.php:690 msgid "ERROR:" -msgstr "" +msgstr "ERROR:" #: ../../enterprise/load_enterprise.php:690 msgid "When connecting to Artica server." @@ -21736,11 +21737,11 @@ msgstr "Vista de grupo" #: ../../enterprise/meta/monitoring/group_view.php:74 msgid "Summary of the status groups" -msgstr "" +msgstr "Resumen de los grupos por estatus" #: ../../enterprise/meta/monitoring/group_view.php:94 msgid "Group or Tag" -msgstr "" +msgstr "Grupo o Etiqueta" #: ../../enterprise/meta/monitoring/wizard/wizard.create_agent.php:40 #: ../../enterprise/meta/monitoring/wizard/wizard.module.web.php:84 @@ -21897,15 +21898,15 @@ msgstr "Vista táctica" #: ../../enterprise/meta/monitoring/tactical.php:215 msgid "Report of state" -msgstr "" +msgstr "Informe de estado" #: ../../enterprise/meta/monitoring/tactical.php:340 msgid "Report of events (last hour)" -msgstr "" +msgstr "Informe de eventos (última hora)" #: ../../enterprise/meta/monitoring/tactical.php:356 msgid "Info of state in events (last hour)" -msgstr "" +msgstr "Información del estado en los eventos (última hora)" #: ../../enterprise/meta/monitoring/tactical.php:371 msgid "More events" @@ -21973,7 +21974,7 @@ msgstr "No se puede mover" #: ../../enterprise/meta/advanced/agents_setup.move_agents.php:124 msgid "Move Agents" -msgstr "" +msgstr "Mover Agentes" #: ../../enterprise/meta/advanced/agents_setup.move_agents.php:137 msgid "Source Server" @@ -22181,7 +22182,7 @@ msgstr "Sólo bases de datos" #: ../../enterprise/meta/advanced/policymanager.apply.php:188 msgid "Apply Policies" -msgstr "" +msgstr "Aplicar Políticas" #: ../../enterprise/meta/advanced/synchronizing.user.php:215 #, php-format @@ -22225,7 +22226,7 @@ msgstr "" #: ../../enterprise/meta/advanced/synchronizing.user.php:498 msgid "Synchronizing Users" -msgstr "" +msgstr "Sincronizando Usuarios" #: ../../enterprise/meta/advanced/synchronizing.user.php:553 msgid "Profile mode" @@ -22334,7 +22335,7 @@ msgstr "Creadas/actualizadas %s/%s plantillas" #: ../../enterprise/meta/advanced/synchronizing.alert.php:324 msgid "Synchronizing Alerts" -msgstr "" +msgstr "Sincronizando Alertas" #: ../../enterprise/meta/advanced/synchronizing.group.php:103 #, php-format @@ -22384,7 +22385,7 @@ msgstr "NInguna actualización o creación de grupo" #: ../../enterprise/meta/advanced/synchronizing.group.php:227 msgid "Synchronizing Groups" -msgstr "" +msgstr "Sincronizando Grupos" #: ../../enterprise/meta/advanced/synchronizing.tag.php:124 #, php-format @@ -22398,7 +22399,7 @@ msgstr "Creados/actualizados %s/%s tags" #: ../../enterprise/meta/advanced/synchronizing.tag.php:138 msgid "Synchronizing Tags" -msgstr "" +msgstr "Sincronizando Etiquetas" #: ../../enterprise/meta/advanced/metasetup.php:49 msgid "Consoles Setup" @@ -22930,7 +22931,7 @@ msgstr "Gracias por usar Pandora FMS" #: ../../enterprise/dashboard/widgets/tree_view.php:24 msgid "Show the tree view" -msgstr "" +msgstr "Mostrar la vista de árbol" #: ../../enterprise/dashboard/widgets/tree_view.php:27 #: ../../enterprise/dashboard/widgets/url.php:26 @@ -25155,11 +25156,11 @@ msgstr "Siguiente IP disponible" #: ../../enterprise/extensions/check_acls.php:16 msgid "ACL users for this agent" -msgstr "" +msgstr "Usuarios ACL para este agente" #: ../../enterprise/extensions/check_acls.php:100 msgid "There are no defined users" -msgstr "" +msgstr "No hay usuarios definidos" #: ../../enterprise/extensions/check_acls.php:104 msgid "ACL module tags for the modules in this agent" @@ -25175,7 +25176,7 @@ msgstr "" #: ../../enterprise/extensions/check_acls.php:201 msgid "Check ACL" -msgstr "" +msgstr "Chequear ACL" #: ../../enterprise/extensions/backup/main.php:53 msgid "Pandora database backup utility" @@ -25401,7 +25402,7 @@ msgstr "No existe un agente con este nombre" #: ../../include/functions_api.php:886 msgid "Does not exist module with this name." -msgstr "" +msgstr "No existe módulos con este nombre." #: ../../include/functions_api.php:1231 msgid "Correct Delete" @@ -28374,20 +28375,20 @@ msgstr "Estado actual" #: ../../include/functions_reporting.php:8137 msgid "Agents critical" -msgstr "" +msgstr "Agentes críticos" #: ../../include/functions_reporting.php:8142 msgid "Agents warning" -msgstr "" +msgstr "Agentes warning" #: ../../include/functions_reporting.php:8150 msgid "Agents ok" -msgstr "" +msgstr "Agentes ok" #: ../../include/functions_reporting.php:8176 #: ../../include/functions_reporting.php:8185 msgid "Agents by status" -msgstr "" +msgstr "Agentes por estado" #: ../../include/functions_reporting.php:8231 #: ../../include/functions_reporting.php:8239 @@ -28397,29 +28398,29 @@ msgstr "Resumen de nodos" #: ../../include/functions_reporting.php:8263 #: ../../include/functions_reporting.php:8286 msgid "Warning events" -msgstr "" +msgstr "Eventos en advertencia" #: ../../include/functions_reporting.php:8269 #: ../../include/functions_reporting.php:8290 msgid "OK events" -msgstr "" +msgstr "Eventos OK" #: ../../include/functions_reporting.php:8275 #: ../../include/functions_reporting.php:8294 msgid "Unknown events" -msgstr "" +msgstr "Eventos desconocidos" #: ../../include/functions_reporting.php:8343 msgid "Last activity in Pandora FMS console" -msgstr "" +msgstr "Última actividad en la consola de Pandora FMS" #: ../../include/functions_reporting.php:8463 msgid "Events info (1hr.)" -msgstr "" +msgstr "Información de Eventos (1hr.)" #: ../../include/functions_reporting.php:8476 msgid "Events info (1hr)" -msgstr "" +msgstr "Información de Eventos (1hr.)" #: ../../include/graphs/functions_flot.php:302 msgid "Cancel zoom" @@ -28509,7 +28510,7 @@ msgstr "" #: ../../include/ajax/double_auth.ajax.php:203 #: ../../include/ajax/double_auth.ajax.php:294 msgid "Continue" -msgstr "" +msgstr "Continuar" #: ../../include/ajax/double_auth.ajax.php:219 msgid "Are you installed the app yet?" @@ -28856,7 +28857,7 @@ msgstr "" #: ../../include/class/Tree.class.php:1281 msgid "NO DATA" -msgstr "" +msgstr "SIN DATOS" #: ../../include/functions_visual_map.php:823 msgid "Last value: " @@ -28931,7 +28932,7 @@ msgstr "Ir a \"editar agentes\"" #: ../../include/functions_treeview.php:433 msgid "Agent data" -msgstr "" +msgstr "Datos de agentes" #: ../../include/functions_treeview.php:506 msgid "Advanced information" @@ -29832,7 +29833,7 @@ msgstr "Vista de Agentes/Alertas" #: ../../extensions/db_status.php:43 ../../extensions/db_status.php:365 msgid "DB Status" -msgstr "" +msgstr "Estado BD" #: ../../extensions/db_status.php:56 msgid "" @@ -29846,7 +29847,7 @@ msgstr "" #: ../../extensions/db_status.php:63 msgid "DB settings" -msgstr "" +msgstr "Configuración BD" #: ../../extensions/db_status.php:67 msgid "DB User with privileges" @@ -31229,15 +31230,9 @@ msgstr "Logs sistema" #~ msgid "hour" #~ msgstr "hora" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "Manage SNMP console" #~ msgstr "Consola SNMP" -#~ msgid "Custom data:" -#~ msgstr "Datos personalizados:" - #~ msgid "" #~ "Pandora FMS Sanity tool is used to remove bad database structure data, " #~ "created modules with missing status, or modules that cannot be initialized " @@ -31255,91 +31250,3 @@ msgstr "Logs sistema" #~ "datos esta también implementada en Pandora_db.pl de modo que debería " #~ "ejecutarla cada día o cada semana. Esta herramienta no COMPACTA O REDUCE su " #~ "base de datos, solo elimina las estructuras corruptas." - -#~ msgid "Sort the agents by " -#~ msgstr "Listar los agentes por " - -#~ msgid "Type:" -#~ msgstr "Tipo:" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "No hay agentes en esta agrupación" - -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Demora (Sec)/Modulos retrasados" - -#~ msgid "Add module macro" -#~ msgstr "Añadir macro de módulo" - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Módulos de inventario de red en blanco" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Introduzca aquí el código de script para el módulo de inventario" - -#~ msgid "Invalid license." -#~ msgstr "Licencia no válida" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "Por favor, póngase en contacto con info@artica.es para obtener una licencia " -#~ "válida." - -#~ msgid "Columns" -#~ msgstr "Columnas" - -#~ msgid "Agent and monitor information" -#~ msgstr "Información sobre el agente y el monitor" - -#~ msgid "Event information" -#~ msgstr "Información del evento" - -#~ msgid "No servers" -#~ msgstr "No hay servidores" - -#~ msgid "Without permissions" -#~ msgstr "Sin permisos" - -#~ msgid "disabled" -#~ msgstr "desactivado" - -#~ msgid "Events replication is not enabled" -#~ msgstr "La replicación de eventos no está habilitada" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "" -#~ "La replicación eventos no está configurado correctamente para esta " -#~ "metaconsola" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "El servidor parece estar configurado para replicar eventos, pero no se han " -#~ "recibido eventos todavía" - -#~ msgid "Unknown error" -#~ msgstr "Error desconocido" - -#~ msgid "Custom OID/Data" -#~ msgstr "OID/Data Personalizado" - -#~ msgid "Contact Ártica ST at info@artica.es to get an auth key." -#~ msgstr "" -#~ "Contactar con Artica ST en info@artica.es para obtener una clave de " -#~ "autenticación" - -#~ msgid "Group by OID/IP" -#~ msgstr "Agrupar por OID/IP" - -#~ msgid "Report group" -#~ msgstr "Informe de grupo" - -#~ msgid "Modules status" -#~ msgstr "Estado de los módulos" - -#~ msgid "Agents status" -#~ msgstr "Estado de los agentes" - -#~ msgid "Alerts status" -#~ msgstr "Estado de las alertas" diff --git a/pandora_console/include/languages/fr.mo b/pandora_console/include/languages/fr.mo index 65e4e8c0b2562c1dc803d37de42350035dbce735..64bac1d8d0b99d3c21a6de499214719eee8aed8d 100644 GIT binary patch delta 93835 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 =)x-2PgDJ2+IJt1knz~! zWR>}{{eA104?b=^7;Q`Ip$!k#*RA`^O}cfSO>yex17obQ)@Y}p`+R!v!4m5L`+zdP z%j@x(vr4RQ#dgzl!|)nfvBRf%3j&6rJ1torsgw$>qS)ouHA8neU7jM%p%t=hXWn0K zz29!SCt8;_u(@=P-;DW(H7VNWDDY>RP3Kt^d%Fi+Zoh6=vWfKT+CzpnP!?JA^Ev}= zJ+jI*yoIiyw#eGrHrS^dX4WF>`MRlo-Dk;hj1y020>eVBLf1u{S(q+q`j3dCqoQR;U!q;4enYyn$I}jiUan zs6~cuUW`(ov8HuSOYfN0p_`VGk(r*+CLM`=gk))h42Q?(cKE$UruMMz@M!%UMnQ0y zU41pSQ(Ah4mVRGm#|~z0jC$D~oh6`$2Oo%6zq7ktr7nN<8nZ!y+AumkYm7HQzqJ5V zKbRMAn$43`(;6Lm<9)$n$?CwMvx(X$czv`QXLfF)metGSXz`{849(X{r|2?+x6$R- zErUJ(k41BP4WGv0ayv9}DguVCIa`sj&{a_E(v5cJio4bRb>ebdzA~@JHQLRI{;|DU zlVH`&Z?n{)N_4h6bVodpqwcUr^Y-pqmT6w=s~)e@ovVcl#czn)pn463pePb|#UBdt za0J8mMZ^QnLHdw+i@OZkLap4H#z4VD+bj*c=u<%fsG)5&XVLy(6}IjW2X( za4_w~>WqeILjsf#x;DlJ^vIo&jlbd2-LRAQM(@FSg6hJjR8Qm@HE&E*hvwE1JWIVE z?$}2@QadRLTpoYEL(Ixg)WlfDVVKiSs&VziJu>}*+AB7$zqgd`6<2Ta>%sk()y)a{ z;vS*B9PNVYO&*%}^cD4Lg9f4Z*~1y+B5{$(r`Y};l~}!+?w41uF0H6wc4F_v$qS#8La)nb+8?&{Rg?0$m8w^liX)*vS?2b-{9#rD z``OmlvvErmnKy^qW~Q_Z)x(_>K1iV(>VK=usZZLPM8)LkycyzETr$x%Bq1r}=hF+s zjpg!$h&woD=9M|NDYp9g)obKs<)O4-V4f|tZkfa2ZVT_HSvAkLUTK)G8|C8I*8*r~ zc3)sSVU5u>ac%L+#=d0RuH2JVC{A|hF!E(5{1wyke<;oBMYgRno(TpXw z_15G+IlDanx!_Wk+8WfUo6jwhCifv&wa%7e_E~Kk+On>P7P`3PxxanE`G;&>8ZqO9 z`Ze*U%A1cZ+k41%dwSjQF3J1vtDCm`#9S)Y99(057hmy9#n>nuQ zOnSxU%3D;tMT3m$)jr;5C|QPhT}JIDYKEgMba}RD6!rCO(Zj>HXH4s;RcZ{kr!RC9 LuWcLkg!O*_XKat& delta 91132 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 diff --git a/pandora_console/include/languages/fr.po b/pandora_console/include/languages/fr.po index 0dbaf4b5fa..6e64a22673 100644 --- a/pandora_console/include/languages/fr.po +++ b/pandora_console/include/languages/fr.po @@ -9,13 +9,13 @@ msgstr "" "Project-Id-Version: pandora-fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-03-24 17:21+0100\n" -"PO-Revision-Date: 2014-10-01 22:06+0000\n" -"Last-Translator: katalina rodriguez \n" +"PO-Revision-Date: 2015-03-29 11:01+0000\n" +"Last-Translator: Jean Marc \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:52+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:28+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: fr\n" @@ -61,12 +61,12 @@ msgstr "Pret" #: ../../general/header.php:107 ../../general/header.php:108 msgid "QR Code of the page" -msgstr "" +msgstr "Code QR de la page" #: ../../general/header.php:112 #: ../../operation/visual_console/public_console.php:104 msgid "QR code of the page" -msgstr "" +msgstr "Code QR de la page" #: ../../general/header.php:134 ../../general/header.php:135 #: ../../include/functions_clippy.php:128 @@ -614,7 +614,7 @@ msgstr "Vous n'avez pas l'autorisation pour accéder à cette page" #: ../../general/noaccess.php:26 msgid "Access to this page is restricted" -msgstr "" +msgstr "L'accès à cette page est limité" #: ../../general/noaccess.php:31 ../../enterprise/meta/general/noaccess.php:29 #: ../../enterprise/meta/general/metaconsole_no_activated.php:21 @@ -3877,7 +3877,7 @@ msgstr "" #: ../../mobile/include/user.class.php:154 msgid "Secret code not found" -msgstr "" +msgstr "Code secret introuvable" #: ../../mobile/include/user.class.php:155 msgid "Please contact the administrator to reset your double authentication" @@ -3887,7 +3887,7 @@ msgstr "" #: ../../enterprise/meta/index.php:236 #: ../../include/ajax/double_auth.ajax.php:489 msgid "Invalid code" -msgstr "" +msgstr "Code non valide" #: ../../mobile/include/user.class.php:179 msgid "There was an error checking the code" @@ -5088,7 +5088,7 @@ msgstr "Filtre" #: ../../enterprise/meta/advanced/metasetup.translate_string.php:148 #: ../../enterprise/meta/include/functions_networkmap_meta.php:84 msgid "Show Options" -msgstr "" +msgstr "Afficher les options" #: ../../godmode/reporting/reporting_builder.list_items.php:270 #: ../../godmode/agentes/module_manager.php:505 @@ -5504,7 +5504,7 @@ msgstr "" #: ../../godmode/reporting/reporting_builder.php:78 msgid "An error has ocurred" -msgstr "" +msgstr "Une erreur s'est produite" #: ../../godmode/reporting/reporting_builder.php:279 #: ../../godmode/reporting/reporting_builder.php:1568 @@ -5569,7 +5569,7 @@ msgstr "Texte libre pour la recherche: " #: ../../godmode/reporting/reporting_builder.php:394 msgid "Show Option" -msgstr "" +msgstr "Afficher les options" #: ../../godmode/reporting/reporting_builder.php:469 #: ../../operation/reporting/custom_reporting.php:38 @@ -5770,7 +5770,7 @@ msgstr "Non valide" #: ../../enterprise/godmode/reporting/reporting_builder.global.php:188 #: ../../enterprise/godmode/reporting/reporting_builder.template_item.php:1066 msgid "Last value" -msgstr "" +msgstr "Dernière valeur" #: ../../godmode/reporting/reporting_builder.item_editor.php:596 #: ../../godmode/reporting/reporting_builder.item_editor.php:2356 @@ -6857,7 +6857,7 @@ msgstr "" #: ../../godmode/users/configure_profile.php:150 msgid "Create Profile" -msgstr "" +msgstr "Créer le profil" #: ../../godmode/users/configure_profile.php:159 #: ../../godmode/users/configure_user.php:613 @@ -7160,7 +7160,7 @@ msgstr "" #: ../../godmode/users/configure_user.php:425 msgid "Create User" -msgstr "" +msgstr "Créer l'utilisateur" #: ../../godmode/users/configure_user.php:442 #: ../../operation/users/user_edit.php:200 @@ -7944,14 +7944,14 @@ msgstr "Tout changement d'état" #: ../../godmode/agentes/module_manager_editor_common.php:277 #: ../../enterprise/godmode/modules/configure_local_component.php:253 msgid "To normal" -msgstr "" +msgstr "À la normale" #: ../../godmode/massive/massive_edit_modules.php:476 #: ../../godmode/modules/manage_network_components_form_common.php:140 #: ../../godmode/agentes/module_manager_editor_common.php:279 #: ../../enterprise/godmode/modules/configure_local_component.php:255 msgid "To warning" -msgstr "" +msgstr "Pour avertissement" #: ../../godmode/massive/massive_edit_modules.php:477 #: ../../godmode/modules/manage_network_components_form_common.php:142 @@ -9465,7 +9465,7 @@ msgstr "" #: ../../godmode/events/event_edit_filter.php:169 msgid "Create Filter" -msgstr "" +msgstr "Créer le filtre" #: ../../godmode/events/event_edit_filter.php:179 #: ../../operation/events/events_list.php:234 @@ -9903,7 +9903,7 @@ msgstr "Exécution" #: ../../godmode/agentes/planned_downtime.editor.php:334 #: ../../godmode/agentes/planned_downtime.list.php:252 msgid "Once" -msgstr "" +msgstr "Une fois" #: ../../godmode/agentes/planned_downtime.editor.php:335 #: ../../godmode/agentes/planned_downtime.list.php:252 @@ -10614,7 +10614,7 @@ msgstr "" #: ../../godmode/agentes/modificar_agente.php:145 msgid "Everyone" -msgstr "" +msgstr "Tout le monde" #: ../../godmode/agentes/modificar_agente.php:146 msgid "Only disabled" @@ -12749,11 +12749,11 @@ msgstr "" #: ../../godmode/setup/setup_general.php:247 msgid "On demand" -msgstr "" +msgstr "À la demande" #: ../../godmode/setup/setup_general.php:248 msgid "Expert" -msgstr "" +msgstr "Expert" #: ../../godmode/setup/setup_general.php:250 #: ../../include/functions_config.php:186 @@ -13329,7 +13329,7 @@ msgstr "" #: ../../godmode/setup/news.php:173 ../../godmode/setup/news.php:224 msgid "Expiration" -msgstr "" +msgstr "Expiration" #: ../../godmode/setup/news.php:215 msgid "There are no defined news" @@ -13343,7 +13343,7 @@ msgstr "Auteur" #: ../../godmode/setup/news.php:242 msgid "Modal" -msgstr "" +msgstr "Modale" #: ../../godmode/setup/news.php:245 msgid "Board" @@ -13429,7 +13429,7 @@ msgstr "Pour obtenir votre Pandora FMS Enterprise License :" #: ../../godmode/setup/license.php:90 #, php-format msgid "Go to %s" -msgstr "" +msgstr "Aller à %s" #: ../../godmode/setup/license.php:93 msgid "Enter the auth key and the following request key:" @@ -13924,11 +13924,11 @@ msgstr "Actualiser le groupe" #: ../../godmode/groups/configure_group.php:105 msgid "Update Group" -msgstr "" +msgstr "Mettre à jour le groupe" #: ../../godmode/groups/configure_group.php:107 msgid "Create Group" -msgstr "" +msgstr "Créer le groupe" #: ../../godmode/groups/configure_group.php:140 msgid "You have not access to the parent." @@ -14384,7 +14384,7 @@ msgstr "Configurer l'action d'alerte" #: ../../godmode/alerts/configure_alert_action.php:97 msgid "Update Action" -msgstr "" +msgstr "Mettre à jour l'action" #: ../../godmode/alerts/configure_alert_action.php:100 #: ../../godmode/alerts/alert_list.builder.php:126 @@ -15599,7 +15599,7 @@ msgstr "Retourner au mode normal" #: ../../operation/reporting/reporting_viewer.php:140 msgid "View Report" -msgstr "" +msgstr "Afficher le rapport" #: ../../operation/reporting/reporting_viewer.php:170 #: ../../enterprise/include/functions_reporting_pdf.php:3988 @@ -16000,7 +16000,7 @@ msgstr "Detail des alertes" #: ../../operation/users/user_edit.php:357 msgid "Show information" -msgstr "" +msgstr "Afficher les informations" #: ../../operation/users/user_edit.php:388 msgid "" @@ -16038,7 +16038,7 @@ msgstr "" #: ../../operation/users/user_edit.php:674 msgid "Deactivate" -msgstr "" +msgstr "Désactiver" #: ../../operation/users/user_edit.php:706 msgid "The double autentication was deactivated successfully" @@ -17367,7 +17367,7 @@ msgstr "Vue de la topologie" #: ../../operation/agentes/networkmap.php:219 #: ../../operation/agentes/networkmap.php:289 msgid "Dynamic view" -msgstr "" +msgstr "Vue dynamique" #: ../../operation/agentes/networkmap.php:224 #: ../../operation/agentes/networkmap.php:292 @@ -17642,7 +17642,7 @@ msgstr "Status du moniteur" #: ../../operation/agentes/status_monitor.php:542 msgid "Advanced Options" -msgstr "" +msgstr "Options avancées" #: ../../operation/agentes/status_monitor.php:984 #: ../../operation/search_modules.php:52 @@ -18602,7 +18602,7 @@ msgstr "" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:310 msgid "Filter by" -msgstr "" +msgstr "Filtrer par" #: ../../enterprise/godmode/reporting/reporting_builder.template_wizard.php:366 #: ../../enterprise/godmode/reporting/graph_template_wizard.php:162 @@ -18666,11 +18666,11 @@ msgstr "" #: ../../enterprise/godmode/reporting/visual_console_builder.wizard_services.php:114 msgid "Available" -msgstr "" +msgstr "Disponibles" #: ../../enterprise/godmode/reporting/visual_console_builder.wizard_services.php:116 msgid "Selected" -msgstr "" +msgstr "Sélectionnés" #: ../../enterprise/godmode/reporting/visual_console_builder.wizard_services.php:123 msgid "Push the selected services into the list" @@ -21212,7 +21212,7 @@ msgstr "Exporter au format PDF" #: ../../enterprise/operation/reporting/custom_reporting.php:47 #: ../../enterprise/operation/reporting/custom_reporting.php:70 msgid "Send by email" -msgstr "" +msgstr "Envoyer par courriel" #: ../../enterprise/operation/reporting/custom_reporting.php:55 msgid "ID Report" @@ -21390,7 +21390,7 @@ msgstr "Avec succès supprimé" #: ../../enterprise/operation/agentes/networkmap_enterprise.php:176 #: ../../include/functions_reporting.php:8222 msgid "Nodes" -msgstr "" +msgstr "Nœuds" #: ../../enterprise/operation/agentes/networkmap_enterprise.php:212 msgid "Pending to generate" @@ -21571,11 +21571,11 @@ msgstr "" #: ../../enterprise/load_enterprise.php:666 msgid "E-mail:" -msgstr "" +msgstr "Courriel :" #: ../../enterprise/load_enterprise.php:670 msgid "Contact:" -msgstr "" +msgstr "Contact :" #: ../../enterprise/load_enterprise.php:674 msgid "Auth Key:" @@ -21588,7 +21588,7 @@ msgstr "" #: ../../enterprise/load_enterprise.php:690 msgid "ERROR:" -msgstr "" +msgstr "ERREUR :" #: ../../enterprise/load_enterprise.php:690 msgid "When connecting to Artica server." @@ -23268,7 +23268,7 @@ msgstr "" #: ../../include/functions_update_manager.php:333 #: ../../include/functions_update_manager.php:336 msgid "Server not found." -msgstr "" +msgstr "Serveur introuvable." #: ../../enterprise/include/functions_update_manager.php:146 #: ../../enterprise/include/functions_update_manager.php:248 @@ -23283,17 +23283,17 @@ msgstr "" #: ../../enterprise/include/functions_update_manager.php:165 msgid "Version number:" -msgstr "" +msgstr "Numéro de version :" #: ../../enterprise/include/functions_update_manager.php:166 #: ../../enterprise/include/functions_networkmap_enterprise.php:596 msgid "Show details" -msgstr "" +msgstr "Afficher les détails" #: ../../enterprise/include/functions_update_manager.php:173 #: ../../include/functions_update_manager.php:355 msgid "Update to the last version" -msgstr "" +msgstr "Mettre à jour vers la dernière version" #: ../../enterprise/include/functions_update_manager.php:188 #: ../../include/functions_update_manager.php:358 @@ -23323,7 +23323,7 @@ msgstr "" #: ../../enterprise/include/functions_update_manager.php:350 #: ../../include/ajax/update_manager.ajax.php:447 msgid "progress" -msgstr "" +msgstr "progression" #: ../../enterprise/include/functions_update_manager.php:428 #: ../../enterprise/include/functions_update_manager.php:432 @@ -23350,19 +23350,19 @@ msgstr "" #: ../../include/functions_update_manager.php:175 #: ../../include/ajax/update_manager.ajax.php:205 msgid "An error ocurred while reading a file." -msgstr "" +msgstr "Une erreur s'est produite lors de la lecture d'un fichier." #: ../../enterprise/include/functions_update_manager.php:481 #: ../../include/functions_update_manager.php:182 #: ../../include/ajax/update_manager.ajax.php:211 msgid "The package does not exist" -msgstr "" +msgstr "Le paquet n'existe pas" #: ../../enterprise/include/functions_update_manager.php:487 #: ../../include/functions_update_manager.php:188 #: ../../include/ajax/update_manager.ajax.php:477 msgid "The package is installed." -msgstr "" +msgstr "Le paquet est installé" #: ../../enterprise/include/functions_groups.php:47 msgid "Metaconsole" @@ -23417,12 +23417,12 @@ msgstr "" #: ../../enterprise/include/functions_license.php:35 #: ../../enterprise/include/functions_license.php:52 msgid "Client" -msgstr "" +msgstr "Client" #: ../../enterprise/include/functions_license.php:37 #: ../../enterprise/include/functions_license.php:52 msgid "Trial" -msgstr "" +msgstr "Essai" #: ../../enterprise/include/functions_policies.php:456 #: ../../enterprise/include/functions_policies.php:471 @@ -23684,7 +23684,7 @@ msgstr "Hors des limites" #: ../../enterprise/include/functions_reporting.php:1062 msgid "Day" -msgstr "" +msgstr "Jour" #: ../../enterprise/include/functions_reporting.php:1063 #: ../../enterprise/include/functions_reporting.php:1520 @@ -23720,7 +23720,7 @@ msgstr "" #: ../../include/functions_reporting.php:3906 #: ../../include/functions_reporting.php:4016 msgid "Dates" -msgstr "" +msgstr "Dates" #: ../../enterprise/include/functions_reporting.php:1386 #: ../../enterprise/include/functions_reporting.php:2057 @@ -24212,11 +24212,11 @@ msgstr "" #: ../../enterprise/include/functions_networkmap_enterprise.php:602 #: ../../enterprise/include/functions_networkmap_enterprise.php:1630 msgid "Add node" -msgstr "" +msgstr "Ajouter un nœud" #: ../../enterprise/include/functions_networkmap_enterprise.php:603 msgid "Set center" -msgstr "" +msgstr "Définir le centre" #: ../../enterprise/include/functions_networkmap_enterprise.php:605 msgid "Refresh Holding area" @@ -24225,7 +24225,7 @@ msgstr "" #: ../../enterprise/include/functions_networkmap_enterprise.php:1061 #: ../../enterprise/include/functions_networkmap_enterprise.php:1541 msgid "Circle" -msgstr "Cercl" +msgstr "Cercle" #: ../../enterprise/include/functions_networkmap_enterprise.php:1062 #: ../../enterprise/include/functions_networkmap_enterprise.php:1542 @@ -24312,7 +24312,7 @@ msgstr "" #: ../../enterprise/include/functions_networkmap_enterprise.php:1624 #: ../../enterprise/include/functions_networkmap_enterprise.php:1625 msgid "Relations" -msgstr "" +msgstr "Relations" #: ../../enterprise/include/functions_networkmap_enterprise.php:1649 #: ../../enterprise/include/functions_networkmap_enterprise.php:1654 @@ -24788,11 +24788,11 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_network.php:521 #: ../../enterprise/extensions/ipam/ipam_excel.php:105 msgid "Hostname" -msgstr "" +msgstr "Nom d'hôte" #: ../../enterprise/extensions/ipam/ipam_ajax.php:167 msgid "Operating system" -msgstr "" +msgstr "Système d'exploitation" #: ../../enterprise/extensions/ipam/ipam_ajax.php:177 msgid "This agent has other IPs" @@ -24828,7 +24828,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_ajax.php:252 msgid "Ping" -msgstr "" +msgstr "Ping" #: ../../enterprise/extensions/ipam/ipam_ajax.php:269 #: ../../include/ajax/events.php:157 @@ -24847,7 +24847,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_massive.php:68 msgid "Addresses" -msgstr "" +msgstr "Adresses" #: ../../enterprise/extensions/ipam/ipam_network.php:89 msgid "No addresses found on this network" @@ -24855,7 +24855,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_network.php:106 msgid "Subnet" -msgstr "" +msgstr "Sous-réseau" #: ../../enterprise/extensions/ipam/ipam_network.php:204 msgid "Total IPs" @@ -24890,16 +24890,16 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_network.php:259 msgid "A -> Z" -msgstr "" +msgstr "A -> Z" #: ../../enterprise/extensions/ipam/ipam_network.php:260 msgid "Z -> A" -msgstr "" +msgstr "Z -> A" #: ../../enterprise/extensions/ipam/ipam_network.php:261 #: ../../enterprise/extensions/ipam/ipam_network.php:262 msgid "Last check" -msgstr "" +msgstr "Dernière vérification" #: ../../enterprise/extensions/ipam/ipam_network.php:261 msgid "Newer -> Older" @@ -24923,7 +24923,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_network.php:275 msgid "Icons style" -msgstr "" +msgstr "Style des icônes" #: ../../enterprise/extensions/ipam/ipam_network.php:282 msgid "Show not alive hosts" @@ -24947,7 +24947,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_network.php:457 msgid "Edit address" -msgstr "" +msgstr "Modifier l'adresse" #: ../../enterprise/extensions/ipam/ipam_network.php:462 msgid "Disabled address" @@ -24983,7 +24983,7 @@ msgstr "" #: ../../enterprise/extensions/ipam/ipam_list.php:45 msgid "No networks found" -msgstr "" +msgstr "Aucun réseau trouvé" #: ../../enterprise/extensions/ipam/ipam_list.php:64 msgid "IPs" @@ -31035,9 +31035,6 @@ msgstr "Fichiers d'archive du sytème" #~ msgid "Alerts disabled" #~ msgstr "Alertes désactivées" -#~ msgid "OID:" -#~ msgstr "OID" - #~ msgid "Remote modules rate" #~ msgstr "Rythme des modules á distance" @@ -31102,9 +31099,6 @@ msgstr "Fichiers d'archive du sytème" #~ msgid "Search text" #~ msgstr "cherche texte" -#~ msgid "Custom data:" -#~ msgstr "Données du client" - #~ msgid "" #~ "Red cell when the module group and agent have at least one module in " #~ "critical state and the others in any state." @@ -31126,67 +31120,3 @@ msgstr "Fichiers d'archive du sytème" #~ msgid "Modules warning" #~ msgstr "Alerte modules" - -#~ msgid "Sort the agents by " -#~ msgstr "Trier les agents de " - -#~ msgid "Type:" -#~ msgstr "Type :" - -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Retard (s) / Modules retardés" - -#~ msgid "Add module macro" -#~ msgstr "Ajouter module de macro" - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Gauche en blanc pour les modules d'inventaire de réseau" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Mettez ici votre code de script pour le module d'inventaire" - -#~ msgid "Invalid license." -#~ msgstr "Licence invalide" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "S'il vous plaît contacter Artica à info@artica.es pour une licence valide." - -#~ msgid "Columns" -#~ msgstr "Colonnes" - -#~ msgid "Agent and monitor information" -#~ msgstr "Agent de surveillance et d'information" - -#~ msgid "No servers" -#~ msgstr "Pas de serveurs" - -#~ msgid "Event information" -#~ msgstr "les informations de l'événement" - -#~ msgid "Without permissions" -#~ msgstr "Sans autorisation" - -#~ msgid "disabled" -#~ msgstr "désactivé" - -#~ msgid "Events replication is not enabled" -#~ msgstr "la réplication des événements n'est pas activée" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "" -#~ "la réplication des événements n'est pas correctement configuré pour cette " -#~ "metaconsole" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "Le serveur semble être configuré pour reproduire des événements, mais aucun " -#~ "événement n'a encore été reçue" - -#~ msgid "Unknown error" -#~ msgstr "Erreur inconnue" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "Il n'y a pas d'agents dans ce agrupation" diff --git a/pandora_console/include/languages/it.mo b/pandora_console/include/languages/it.mo index 680fdf175f7ff03eea48bdeddb0181eaf51f3193..27e2ef1df15749e66bd443ebebb00541b8056abf 100644 GIT binary patch delta 25 hcmdmUie=9!mJKC4xlD8o3>6H_t&EK}*X`Vw4FHBi3HJa1 delta 25 hcmdmUie=9!mJKC4xr}v{2If}A#_e8J%s|Yt-K&a~|0)0+jSUe1 delta 40 ucmcaPPx9tG$%Yoj7N#xC4pm&nx<)1nhGtf#=Ivfp%s|Yt-K&a~|0)0-Jq;TG diff --git a/pandora_console/include/languages/ja.po b/pandora_console/include/languages/ja.po index f5af7b3a8f..90c67e168f 100644 --- a/pandora_console/include/languages/ja.po +++ b/pandora_console/include/languages/ja.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:30+0000\n" "X-Generator: Launchpad (build 17413)\n" #: ../../general/links_menu.php:20 ../../godmode/menu.php:216 @@ -30271,15 +30271,9 @@ msgstr "システムログファイル" #~ msgid "Oper" #~ msgstr "演算子" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "S" #~ msgstr "状態" -#~ msgid "Custom data:" -#~ msgstr "カスタムデータ:" - #~ msgid "int" #~ msgstr "間隔" @@ -30288,89 +30282,3 @@ msgstr "システムログファイル" #~ msgid "Search text" #~ msgstr "検索文字列" - -#~ msgid "Add module macro" -#~ msgstr "モジュールマクロの追加" - -#~ msgid "Sort the agents by " -#~ msgstr "エージェントの並び替え: " - -#~ msgid "Type:" -#~ msgstr "タイプ:" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "このグループのエージェントはありません。" - -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "最大遅延(秒)/遅延モジュール" - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "ネットワークインベントリモジュールでは空にしてください" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "インベントリモジュールのスクリプトコードをここに入力してください" - -#~ msgid "Invalid license." -#~ msgstr "不正なライセンスです。" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "正しいライセンスについては、Artica (info@artica.es) までお問い合わせください。" - -#~ msgid "Agent and monitor information" -#~ msgstr "エージェントおよびモニタ情報" - -#~ msgid "Columns" -#~ msgstr "カラム" - -#~ msgid "Event information" -#~ msgstr "イベント情報" - -#~ msgid "No servers" -#~ msgstr "サーバがありません" - -#~ msgid "Without permissions" -#~ msgstr "パーミッションなし" - -#~ msgid "disabled" -#~ msgstr "無効化" - -#~ msgid "Events replication is not enabled" -#~ msgstr "イベント複製が有効化されていません" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "サーバはイベントを複製する設定がされていますが、まだイベントを受信していません" - -#~ msgid "Unknown error" -#~ msgstr "不明なエラー" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "このメタコンソールでは、イベント複製が設定されていません" - -#~ msgid "Custom OID/Data" -#~ msgstr "カスタム OID/データ" - -#~ msgid "Group by OID/IP" -#~ msgstr "OID/IP ごとのグループ" - -#~ msgid "Contact Ártica ST at info@artica.es to get an auth key." -#~ msgstr "authkey の入手は、Artica ST info@artica.es までお問い合わせください。" - -#~ msgid "Report group" -#~ msgstr "レポートグループ" - -#~ msgid "Alerts status" -#~ msgstr "アラートの状態" - -#~ msgid "Modules status" -#~ msgstr "モジュールの状態" - -#~ msgid "Agents status" -#~ msgstr "エージェントの状態" - -#~ msgid "Trap OID" -#~ msgstr "トラップOID" - -#~ msgid "Traps received by OID" -#~ msgstr "OID ごとの受信トラップ" diff --git a/pandora_console/include/languages/nl.mo b/pandora_console/include/languages/nl.mo index 038941cb7dda8f249dbdeda7d49bc5e4eaecd5c3..e5391d92c1e054b34b245a37b319a8f929771a6b 100644 GIT binary patch delta 34 qcmbQUQh3fv;f5B*Eljt+a+&BF7%CW;TNxX-KmE$I{pnZc?e_rgi4MB} delta 34 qcmbQUQh3fv;f5B*Eljt+avAFynJ5^VS(%!*KmE$I{pnZc?e_rh5e~%w diff --git a/pandora_console/include/languages/nl.po b/pandora_console/include/languages/nl.po index 9287af3c2d..2702374d35 100644 --- a/pandora_console/include/languages/nl.po +++ b/pandora_console/include/languages/nl.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:30+0000\n" "X-Generator: Launchpad (build 17413)\n" "uProject-Id-Version: pandora-nl\n" "Taal: nl\n" @@ -29935,21 +29935,9 @@ msgstr "Systeem log bestanden" #~ msgid "Agent down" #~ msgstr "Agent beneden" -#~ msgid "Sort the agents by " -#~ msgstr "Sorteer de agenten door " - #~ msgid "Search value" #~ msgstr "Zoek waarde" -#~ msgid "Custom data:" -#~ msgstr "Aangepaste gegevens:" - -#~ msgid "OID:" -#~ msgstr "OID:" - -#~ msgid "Type:" -#~ msgstr "Type:" - #~ msgid "Events generated -by module-" #~ msgstr "Evenementen gegenereerd -door module-" @@ -30015,9 +30003,6 @@ msgstr "Systeem log bestanden" #~ msgid "Agent keepalive monitor" #~ msgstr "Agent houdt monitor levend" -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "Er zijn geen agenten in deze agrupatie" - #~ msgid "SLA period (seconds)" #~ msgstr "SLA-periode (seconden)" @@ -30776,57 +30761,3 @@ msgstr "Systeem log bestanden" #~ msgid "Configuration detail" #~ msgstr "Configuration detail" - -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Max. Vertraging(sec)/Modules vertraagd" - -#~ msgid "Add module macro" -#~ msgstr "Toevoegen module macro" - -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Leeg gelaten voor Netwerk Voorraad Modules" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Plaats hier uw script code voor de voorraad module" - -#~ msgid "Invalid license." -#~ msgstr "Ongeldige licentie." - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "Neem a.u.b. contact op met Artica op info@artica.es voor een geldige " -#~ "licentie." - -#~ msgid "Columns" -#~ msgstr "Kolommen" - -#~ msgid "Agent and monitor information" -#~ msgstr "Agent en monitor informatie" - -#~ msgid "No servers" -#~ msgstr "Geen servers" - -#~ msgid "Event information" -#~ msgstr "Gebeurtenis informatie" - -#~ msgid "Without permissions" -#~ msgstr "Zonder machtigingen" - -#~ msgid "disabled" -#~ msgstr "uitgeschakeld" - -#~ msgid "Events replication is not enabled" -#~ msgstr "Gebeurtenis replicatie is niet ingeschakeld" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "Gebeurtenis replicatie is niet juist ingesteld voor deze metaconsole" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "De server lijkt te zijn geconfigureerd om gebeurtenissen te repliceren, maar " -#~ "er zijn nog geen gebeurtenissen ontvangen" - -#~ msgid "Unknown error" -#~ msgstr "Onbekende fout" diff --git a/pandora_console/include/languages/pl.mo b/pandora_console/include/languages/pl.mo index 39e08b94a0373b5816912627a593f8590c6fccbb..fdd8ec90e73f2cac576299ff6a624a6172d131e7 100644 GIT binary patch delta 25 hcmZ48#JakPb%X60E)!h?Lj?nKD`TV0?q{Bq0048o2`&Ht delta 25 hcmZ48#JakPb%X60E@NFI69q#vD^s)0?q{Bq0049p2{-@% diff --git a/pandora_console/include/languages/pl.po b/pandora_console/include/languages/pl.po index 284be57fd4..ae28444750 100644 --- a/pandora_console/include/languages/pl.po +++ b/pandora_console/include/languages/pl.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:53+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: pl\n" diff --git a/pandora_console/include/languages/pt.mo b/pandora_console/include/languages/pt.mo index a146b791224f8ce1647c1e4ffb623d278343bdf5..6afa0d69c5c82538471adafe135fb277b2183275 100644 GIT binary patch delta 28 kcmX?li|yzwwuUW?bGf-pbPWs@49u;JjkYi6W}LSW0Gqc7!vFvP delta 28 kcmX?li|yzwwuUW?bGf;Ub&X6E49%=e&9^V-W}LSW0Gu8P&Hw-a diff --git a/pandora_console/include/languages/pt.po b/pandora_console/include/languages/pt.po index 67d1356ae9..d5faa7be6e 100644 --- a/pandora_console/include/languages/pt.po +++ b/pandora_console/include/languages/pt.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:53+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: \n" @@ -29560,9 +29560,6 @@ msgstr "Registo de actividade do sistema" #~ msgid "Search value" #~ msgstr "Valor de procura" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "Read message" #~ msgstr "Ler mensagem" @@ -30425,9 +30422,6 @@ msgstr "Registo de actividade do sistema" #~ msgid "Profile successfully deleted" #~ msgstr "Perfil apagado com sucesso" -#~ msgid "Custom data:" -#~ msgstr "Dados personalizados" - #~ msgid "Custom graph name" #~ msgstr "Nome de grapho personalizado" diff --git a/pandora_console/include/languages/pt_BR.mo b/pandora_console/include/languages/pt_BR.mo index 5907ce2f7ff047dc2b624d9628acc487bdca084b..b5fc252604b1c1f284025a74151da78fdb7dda9e 100644 GIT binary patch delta 34 qcmdn`TzKnq;f5B*ElfGTxlD8o3>6H_t&EM@%YHL$FZ<1G{{sN@1P#vs delta 34 qcmdn`TzKnq;f5B*ElfGTxr}v6H_t&EM@J^wKQF*6XeZ1?=f`aKH(WqA=8 delta 42 vcmX?bN%FuY$%YojEll?RxQum;OcV^wtW3??J^wKQF*6XeZ1?=f`aKH(W>FC$ diff --git a/pandora_console/include/languages/ru.po b/pandora_console/include/languages/ru.po index 5c04e8d613..e5fd2fd76e 100644 --- a/pandora_console/include/languages/ru.po +++ b/pandora_console/include/languages/ru.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:53+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: ru\n" @@ -30103,12 +30103,6 @@ msgstr "Система журнал фйлов" #~ msgid "Monitors not init" #~ msgstr "Мониторы не включены" -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "Максимальная Задержка (сек) / Модули отложены" - -#~ msgid "Add module macro" -#~ msgstr "Добавить модуль макроса" - #~ msgid "Checking tagente_estado table" #~ msgstr "Проверка таблицы tagente_estado" @@ -30193,66 +30187,6 @@ msgstr "Система журнал фйлов" #~ msgid "Field 3" #~ msgstr "Поле 3" -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "Слева в заготовке для модулей инвентаризации Network" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "Вставьте здесь ваш скрипт-код для инвентаризации модуля" - -#~ msgid "Invalid license." -#~ msgstr "Лицензия недействительна" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "" -#~ "Пожалуйста, свяжитесь с Artica на info@artica.es для действительной лицензии." - -#~ msgid "Columns" -#~ msgstr "Столбцы" - -#~ msgid "Agent and monitor information" -#~ msgstr "Агент и Монитор информации" - -#~ msgid "Event information" -#~ msgstr "Информация о событии" - -#~ msgid "No servers" -#~ msgstr "Нет серверов" - -#~ msgid "Without permissions" -#~ msgstr "Без разрешения" - -#~ msgid "disabled" -#~ msgstr "отключено" - -#~ msgid "Events replication is not enabled" -#~ msgstr "Последние событие репликации" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "" -#~ "События репликация не настроены должным образом для этой мета консоли" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "" -#~ "Сервер, кажется, сконфигурирован для репликации событий, но никаких событий " -#~ "не было еще получено" - -#~ msgid "Unknown error" -#~ msgstr "Неизвестная ошибка" - -#~ msgid "Sort the agents by " -#~ msgstr "Сорторовать агенты по " - -#~ msgid "Type:" -#~ msgstr "Тип:" - -#~ msgid "Custom data:" -#~ msgstr "Данные клиента:" - -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "Search value" #~ msgstr "Поисковое значение" @@ -30265,6 +30199,3 @@ msgstr "Система журнал фйлов" #~ "FMS (число работующих агентов и модулей). Чтобы отключить ее, просто удалите " #~ "расширение или удалите дистанционный адрес сервера из настроек плагина " #~ "Манеджера Обновлений." - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "Нет агентов в этом agrupation" diff --git a/pandora_console/include/languages/sk.mo b/pandora_console/include/languages/sk.mo index c19c712ae0c31efa8fd37e7341db834a2a9fd36e..a8d96ac880dc5f5c62b8d47f69ad9a91567c25a2 100644 GIT binary patch delta 28 kcmbQZk8R>UwuUW?YgxEVbPWs@49u;Jjkj-SVT_su0E@i{>i_@% delta 28 kcmbQZk8R>UwuUW?YgxFAb&X6E49%=e&9`r7VT_su0E`_7^#A|> diff --git a/pandora_console/include/languages/sk.po b/pandora_console/include/languages/sk.po index fabad23b15..e7032b3f47 100644 --- a/pandora_console/include/languages/sk.po +++ b/pandora_console/include/languages/sk.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:30+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: sk\n" @@ -30160,9 +30160,6 @@ msgstr "Systémové log-súbory" #~ msgid "Search value" #~ msgstr "Hľadať hodnotu" -#~ msgid "OID:" -#~ msgstr "OID:" - #~ msgid "Update server host" #~ msgstr "Aktualizovať serverový host" diff --git a/pandora_console/include/languages/tr.mo b/pandora_console/include/languages/tr.mo index 9f7bec6b214d78d7693756b3e35636cfbf0492b4..64b1361d2096644717e1083b6fc8a0b6cfa207ad 100644 GIT binary patch delta 25 gcmZ2Ig=zH^rVX5NTqe2(h6)DeR>sDgh2tc20B3y$^#A|> delta 23 fcmZ2Ig=zH^rVX5NllfxVSj?R diff --git a/pandora_console/include/languages/tr.po b/pandora_console/include/languages/tr.po index 8f52588347..7727953c24 100644 --- a/pandora_console/include/languages/tr.po +++ b/pandora_console/include/languages/tr.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:54+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: tr\n" diff --git a/pandora_console/include/languages/zh_CN.mo b/pandora_console/include/languages/zh_CN.mo index 31ee2befce2e173b7017808f0e5b0f19e0b9ec24..7160da82a19bd703b20cbaf9bd85a122f7ff3868 100644 GIT binary patch delta 36 scmex)MEK_s;f5B*7N#xCZ|t~CbPWs@49u;JjoQE2F>n87$I`qQ01e>{(f|Me delta 36 scmex)MEK_s;f5B*7N#xCZ|t~?b&X6E49%=e&Dy`&F>n87$I`qQ01jyl+yDRo diff --git a/pandora_console/include/languages/zh_CN.po b/pandora_console/include/languages/zh_CN.po index d2e538680d..9a0c077941 100644 --- a/pandora_console/include/languages/zh_CN.po +++ b/pandora_console/include/languages/zh_CN.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-03-24 16:53+0000\n" +"X-Launchpad-Export-Date: 2015-04-01 07:29+0000\n" "X-Generator: Launchpad (build 17413)\n" "Language: \n" @@ -29848,12 +29848,6 @@ msgstr "系统日志文件" #~ msgid "Monitors unknown" #~ msgstr "未知的" -#~ msgid "Max. Delay(sec)/Modules delayed" -#~ msgstr "最大延迟时间(秒)/最多延迟模块数量" - -#~ msgid "Add module macro" -#~ msgstr "添加模块宏" - #~ msgid "Sanitize my database now" #~ msgstr "正在清理我的数据库" @@ -29887,65 +29881,9 @@ msgstr "系统日志文件" #~ msgid "Field 3" #~ msgstr "域3" -#~ msgid "Left in blank for Network Inventory Modules" -#~ msgstr "为网络索引模块留白" - -#~ msgid "Put here your script code for the inventory module" -#~ msgstr "在此为索引模块填入脚本代码" - -#~ msgid "Invalid license." -#~ msgstr "无效许可" - -#~ msgid "Please contact Artica at info@artica.es for a valid license." -#~ msgstr "请通过info@artica.es联系Artica索要有效许可。" - -#~ msgid "Columns" -#~ msgstr "栏" - -#~ msgid "Agent and monitor information" -#~ msgstr "代理和监控器信息" - -#~ msgid "Event information" -#~ msgstr "事件信息" - -#~ msgid "No servers" -#~ msgstr "无服务器" - -#~ msgid "Without permissions" -#~ msgstr "未经许可" - -#~ msgid "disabled" -#~ msgstr "已禁用" - -#~ msgid "Events replication is not enabled" -#~ msgstr "未启用事件复制" - -#~ msgid "Events replication is not properly configured for this metaconsole" -#~ msgstr "此meta控制台未适当配置事件复制" - -#~ msgid "" -#~ "The server seems to be configurated to replicate events, but no events has " -#~ "been received yet" -#~ msgstr "服务器似乎已配置以复制事件,但仍未收到任何事件" - -#~ msgid "Unknown error" -#~ msgstr "未知错误" - -#~ msgid "Sort the agents by " -#~ msgstr "代理排序按 " - -#~ msgid "Type:" -#~ msgstr "类型:" - -#~ msgid "OID:" -#~ msgstr "对象标识:" - #~ msgid "Search value" #~ msgstr "搜索值" -#~ msgid "Custom data:" -#~ msgstr "自定义数据:" - #~ msgid "There's a new update for Pandora FMS" #~ msgstr "Pandora FMS 有新版本" @@ -29957,15 +29895,3 @@ msgstr "系统日志文件" #~ msgid "E/D" #~ msgstr "E/D" - -#~ msgid "There aren't agents in this agrupation" -#~ msgstr "该中断无代理存在" - -#~ msgid "Custom OID/Data" -#~ msgstr "自定义OID/数据" - -#~ msgid "Group by OID/IP" -#~ msgstr "OID/IP分组" - -#~ msgid "Contact Ártica ST at info@artica.es to get an auth key." -#~ msgstr "联系Ártica ST at info@artica.es获得授权密钥。" From acfd2146dc12d58fbc701466b3a2044f988f7b71 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Wed, 1 Apr 2015 12:09:23 +0200 Subject: [PATCH 020/191] Change views and styles in Console --- extras/anytermd/browser/anyterm.css | 2 +- pandora_console/extensions/net_tools.php | 6 ++-- pandora_console/extensions/ssh_gateway.php | 11 ++++---- pandora_console/extensions/vnc_view.php | 2 +- pandora_console/general/main_menu.php | 22 +++++++-------- pandora_console/godmode/menu.php | 32 ++++++++++++++++++++++ pandora_console/include/ajax/module.php | 6 ++-- pandora_console/include/styles/menu.css | 3 +- pandora_console/include/styles/pandora.css | 12 ++++---- pandora_console/index.php | 4 ++- 10 files changed, 68 insertions(+), 32 deletions(-) diff --git a/extras/anytermd/browser/anyterm.css b/extras/anytermd/browser/anyterm.css index 4e6df19796..46c1f0366d 100644 --- a/extras/anytermd/browser/anyterm.css +++ b/extras/anytermd/browser/anyterm.css @@ -102,7 +102,7 @@ noscript { .termframe { float: left; padding: 0.2ex; - background-color: none repeat scroll 0% 0% #82B92E; + background-color: none repeat scroll 0% 0% #80BA27; border-top-right-radius: 5px; border-top-left-radius: 5px; } diff --git a/pandora_console/extensions/net_tools.php b/pandora_console/extensions/net_tools.php index 4da4d88fad..15739df521 100644 --- a/pandora_console/extensions/net_tools.php +++ b/pandora_console/extensions/net_tools.php @@ -101,11 +101,11 @@ function main_net_tools () { function mostrarColumns(ValueSelect){ value = ValueSelect.value; if ( value==3 ) { - document.getElementById('netToolTable').width=800; + document.getElementById('netToolTable').width='100%'; document.getElementById('snmpcolumn').style.display='block'; } else{ - document.getElementById('netToolTable').width=650; + document.getElementById('netToolTable').width='100%'; document.getElementById('snmpcolumn').style.display='none'; } } @@ -113,7 +113,7 @@ function main_net_tools () { echo "

" . __("Force") . "" . __("Group") . "" . __("Agents") . "" . __("Agent unknown") . "" . __("Agents not init") . "" . __("Unknown") . "" . __("Not Init") . "" . __("Normal") . "" . __("Warning") . "" . __("Critical") . "" . __("Alert fired") . "" . __("Agents") . "" . __("Modules") . "
" . __("Force") . "" . __("Group") . "" . __("Total") . "" . __("Unknown") . "" . __("Not init") . "" . __("Unknown") . "" . __("Not Init") . "" . __("Normal") . "" . __("Warning") . "" . __("Critical") . "" . __("Alert fired") . "
"; + echo "
"; echo "
"; echo __("Operation"); ui_print_help_tip(__('You can set the command path in the menu Administration -> Extensions -> Config Network Tools')); diff --git a/pandora_console/extensions/ssh_gateway.php b/pandora_console/extensions/ssh_gateway.php index 5377e27456..1d2ddcab75 100644 --- a/pandora_console/extensions/ssh_gateway.php +++ b/pandora_console/extensions/ssh_gateway.php @@ -53,13 +53,15 @@ function ssh_gateway () { } echo ""; - echo ""; + echo "
"; echo ""; + //echo ""; echo ""; echo ""; echo "
".__("Host address").""; - echo "
".__("User")."" . ui_print_help_tip(__('For security reasons the following characters are not allowed: %s', '< > | ` $ ; &'), true); + echo "   "; + echo "
".__("Port (use 0 for default)").""; - echo "
"; + echo ""; echo __("Connect mode").""; - echo "   "; - echo ""; + echo "
"; } diff --git a/pandora_console/extensions/vnc_view.php b/pandora_console/extensions/vnc_view.php index 36c027583e..655fe5071c 100644 --- a/pandora_console/extensions/vnc_view.php +++ b/pandora_console/extensions/vnc_view.php @@ -20,7 +20,7 @@ function vnc_view() { $display = get_parameter("display", 0); echo "
"; - echo ""; + echo "
"; echo "
"; echo __("VNC Display (:0 by default)") . " "; echo ""; diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index f667e246f2..9ef84f4da7 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -243,10 +243,10 @@ $(document).ready( function() { table_hover = $(this); handsIn = 1; openTime = new Date().getTime(); - $("ul#sub"+table_hover[0].id).show().animate({opacity: "1"}, 1000); + $("ul#sub"+table_hover[0].id).show(1000); if( typeof(table_noHover) != 'undefined') if ( "ul#sub"+table_hover[0].id != "ul#sub"+table_noHover[0].id ) - $("ul#sub"+table_noHover[0].id).animate({opacity: "0.5"}, 1000,function(){$("ul#sub"+table_noHover[0].id).hide();}); + $("ul#sub"+table_noHover[0].id).hide(500); }).mouseleave(function(){ table_noHover = $(this); handsIn = 0; @@ -254,28 +254,28 @@ $(document).ready( function() { opened = new Date().getTime() - openTime; if(opened > 3000 && handsIn == 0) { openTime = 4000; - $("ul#sub"+table_hover[0].id).animate({opacity: "0.5"}, 1000,function(){$("ul#sub"+table_hover[0].id).hide();}); + $("ul#sub"+table_hover[0].id).hide(500); } }, 3500); }); -- $('.has_submenu.submenu_not_selected').hover(function(){ +- $('.has_submenu').hover(function(){ table_hover2 = $(this); handsIn2 = 1; openTime2 = new Date().getTime(); + $("#sub"+table_hover2[0].id).show(); if( typeof(table_noHover2) != 'undefined') if ( "ul#sub"+table_hover2[0].id != "ul#sub"+table_noHover2[0].id ) - $("ul#sub"+table_noHover2[0].id).animate({opacity: "0.5"}, 1000,function(){$("ul#sub"+table_noHover2[0].id).hide();}); - $("#sub"+table_hover2[0].id).show(); - }).mouseleave(function(){ - table_noHover2 = $(this); + $("ul#sub"+table_noHover2[0].id).hide(500); + }).mouseout(function(){ + table_noHover2 = table_hover2; handsIn2 = 0; setTimeout(function() { opened = new Date().getTime() - openTime2; if(opened >= 3000 && handsIn2 == 0) { openTime2 = 4000; - $("#sub"+table_hover2[0].id).animate({opacity: "0.5"}, 1000,function(){$("ul#sub"+table_noHover2[0].id).hide();}); + $("ul#sub"+table_hover2[0].id).hide(500); } }, 3500); }); @@ -284,9 +284,9 @@ $(document).ready( function() { $('#page').click(function(){ openTime = 4000; if( typeof(table_hover) != 'undefined') - $("ul#sub"+table_hover[0].id).animate({opacity: "0.5"}, 500,function(){$("ul#sub"+table_hover[0].id).hide();}); + $("ul#sub"+table_hover[0].id).hide(500); if( typeof(table_hover2) != 'undefined') - $("ul#sub"+table_hover2[0].id).animate({opacity: "0.5"}, 500,function(){$("ul#sub"+table_hover2[0].id).hide();}); + $("ul#sub"+table_hover2[0].id).hide(500); }); }); diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index b93a0e42e2..78452f2d85 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -209,8 +209,40 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub = array (); + $sub["godmode/setup/setup§ion=general"]["text"] = __('Setup'); + $sub["godmode/setup/setup§ion=general"]["refr"] = 0; + + $sub2 = array(); + // Options Setup + $sub2["godmode/setup/setup&section=general"]["text"] = __('General'); + $sub2["godmode/setup/setup&section=general"]["refr"] = 0; + /* + if (enterprise_installed()) { + $buttons = setup_enterprise_add_Tabs($buttons); + } + */ + $sub2["godmode/setup/setup&section=auth"]["text"] = __('Authentication'); + $sub2["godmode/setup/setup&section=auth"]["refr"] = 0; + + $sub2["godmode/setup/setup&section=perf"]["text"] = __('Performance'); + $sub2["godmode/setup/setup&section=perf"]["refr"] = 0; + + $sub2["godmode/setup/setup&section=vis"]["text"] = __('Visual styles'); + $sub2["godmode/setup/setup&section=vis"]["refr"] = 0; + + $sub["godmode/setup/file_manager"]["text"] = __('File manager'); + + if (check_acl ($config['id_user'], 0, "AW")) { + if ($config['activate_netflow']) { + $sub2["godmode/setup/setup&section=net"]["text"] = __('Netflow'); + $sub2["godmode/setup/setup&section=net"]["refr"] = 0; + } + } + $sub["godmode/setup/setup§ion=general"]["sub2"] = $sub2; + + if ($config['activate_gis']) $sub["godmode/setup/gis"]["text"] = __('Map conections GIS'); $sub["godmode/setup/links"]["text"] = __('Links'); diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 7fdfc439aa..eb29a0d744 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -673,10 +673,10 @@ if ($list_modules) { if (empty ($modules)) { $modules = array (); } - $table->width = "98%"; + $table->width = "100%"; $table->cellpadding = 4; $table->cellspacing = 4; - $table->class = "databox"; + $table->class = "databox data"; $table->head = array (); $table->data = array (); @@ -708,7 +708,7 @@ if ($list_modules) { '' . html_print_image("images/sort_down.png", true, array("style" => $selectLastContactDown, "alt" => "down")) . ''; - $table->align = array("left", "left", "center", "left", "left", "center"); + $table->align = array("center", "left", "center", "left", "left", "center","left","left","center"); $last_modulegroup = 0; $rowIndex = 0; diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index e5e092b41c..0776c601f8 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -70,11 +70,10 @@ li:hover ul { display: block; } margin: 0px 0px 0px 0px; position: absolute; z-index: 999; - left: 44px; + left: 39px; min-height: 30px; height: 30px; width: 160px; - opacity: 0.5; } .submenu2{ diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 0d74c45ac4..3998e33ff2 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -226,7 +226,7 @@ div#container { #border-right: solid 2px #000; #border-top: solid 2px #000; #margin-top: 5px; - height: auto; + height: 100%; background: #FFF; } div#page { @@ -309,7 +309,7 @@ div#menu_container { } div#menu { - width: 45px; + width: 40px; float: left; margin-top: 10px; } @@ -341,7 +341,7 @@ div#foot { padding-bottom: 5px; text-align: center; background: #333333; - height: 38px; + height: 30px; clear: both; width: auto; } @@ -844,6 +844,9 @@ div#cont { overflow-x: hidden; } +.termframe{ + background-color: #80BA27 !important; +} table, img { border: 0px; @@ -856,7 +859,6 @@ tr:first-child>th { th { color: #fff; background-color: #666; - text-align:center; font-size: 7.5pt; letter-spacing: 0.3pt; } @@ -1378,7 +1380,7 @@ table.databox { } .databox th { - padding: 8px 7px; + padding: 10px 8px; color: #fff; } diff --git a/pandora_console/index.php b/pandora_console/index.php index 62be07c6fd..196ef0f5f3 100755 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -778,6 +778,7 @@ require('include/php_to_js_values.php'); //Dynamically assign footer position and width. function adjustFooter() { + /* if (document.readyState !== 'complete' || $('#container').position() == undefined) { return; } @@ -789,7 +790,7 @@ require('include/php_to_js_values.php'); var h = $('#foot').height(); // new top value for div#foot var t = (ulim + $('#foot').outerHeight() > wh) ? ulim : wh - $('#foot').outerHeight(); - + /* if ($('#foot').position().top != t) { $('#foot').css({ position: "absolute", top: t, left: $('#foot').offset().left}); $('#foot').height(h); @@ -797,5 +798,6 @@ require('include/php_to_js_values.php'); if ($('#foot').width() != $(window).width()) { $('#foot').width($(window).width()); } + */ } From 0213cd74051b5a200f7548103059d32b3f4614e6 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Wed, 1 Apr 2015 13:24:53 +0200 Subject: [PATCH 021/191] Change views and styles in Console --- .../godmode/agentes/agent_conf_gis.php | 25 +++++---- .../godmode/agentes/agent_template.php | 7 ++- .../godmode/agentes/modificar_agente.php | 16 ++---- .../godmode/agentes/module_manager.php | 17 +++--- .../godmode/alerts/alert_list.builder.php | 53 +++++++++---------- .../godmode/alerts/alert_list.list.php | 4 +- pandora_console/include/styles/pandora.css | 3 +- .../operation/agentes/custom_fields.php | 5 +- .../operation/agentes/estado_agente.php | 12 ++--- .../agentes/estado_generalagente.php | 42 +++++++-------- .../operation/agentes/estado_monitores.php | 3 +- .../operation/agentes/gis_view.php | 11 ++-- 12 files changed, 99 insertions(+), 99 deletions(-) diff --git a/pandora_console/godmode/agentes/agent_conf_gis.php b/pandora_console/godmode/agentes/agent_conf_gis.php index 66538fe33a..7ab1aa17a8 100644 --- a/pandora_console/godmode/agentes/agent_conf_gis.php +++ b/pandora_console/godmode/agentes/agent_conf_gis.php @@ -34,7 +34,7 @@ $agent_name = agents_get_name($id_agente); $agent_name = md5($agent_name); /* Map with the current position */ -echo "
"; +echo "
"; if (!gis_get_agent_map($id_agente, "500px", "98%", false)) { ui_print_error_message(__("There is no default map. Please go to the setup for to set a default map.")); @@ -51,27 +51,30 @@ if ($agentData === false) { echo "
" . __("Warning: When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") . "
"; -$table->width = '85%'; +$table->width = '100%'; +$table->class = 'databox filters'; $table->data = array(); - +$table->cellpadding = 0; +$table->cellspacing = 0; $table->head[0] =__('Agent position'); -$table->head_colspan[0] = 2; +$table->head_colspan[0] = 4; +$table->headstyle[0] = "text-align:center"; $table->data[1][0] = __('Latitude: '); $table->data[1][1] = html_print_input_text_extended ('latitude', $agentData['stored_latitude'], 'text-latitude', '', 20, 20, false, '', array('onchange' => "setIgnoreGISDataEnabled()", 'onkeyup' => "setIgnoreGISDataEnabled()"), true); -$table->data[2][0] = __('Longitude: '); -$table->data[2][1] = html_print_input_text_extended ('longitude', $agentData['stored_longitude'], 'text-longitude', '', 20, 20, false, '', +$table->data[1][2] = __('Longitude: '); +$table->data[1][3] = html_print_input_text_extended ('longitude', $agentData['stored_longitude'], 'text-longitude', '', 20, 20, false, '', array('onchange' => "setIgnoreGISDataEnabled()", 'onkeyup' => "setIgnoreGISDataEnabled()"), true); -$table->data[3][0] = __('Altitude: '); -$table->data[3][1] = html_print_input_text_extended ('altitude', $agentData['stored_altitude'], 'text-altitude', '', 10, 10, false, '', +$table->data[2][0] = __('Altitude: '); +$table->data[2][1] = html_print_input_text_extended ('altitude', $agentData['stored_altitude'], 'text-altitude', '', 10, 10, false, '', array('onchange' => "setIgnoreGISDataEnabled()", 'onkeyup' => "setIgnoreGISDataEnabled()"), true); -$table->data[4][0] = __('Ignore new GIS data:'); -$table->data[4][1] = __('Yes').' '.html_print_radio_button_extended ("update_gis_data", 0, '', $updateGisData, false, '', 'style="margin-right: 40px;"', true); -$table->data[4][1] .= __('No').' '.html_print_radio_button_extended ("update_gis_data", 1, '', $updateGisData, false, '', 'style="margin-right: 40px;"', true); +$table->data[2][2] = __('Ignore new GIS data:'); +$table->data[2][3] = __('Yes').' '.html_print_radio_button_extended ("update_gis_data", 0, '', $updateGisData, false, '', 'style="margin-right: 40px;"', true); +$table->data[2][3] .= __('No').' '.html_print_radio_button_extended ("update_gis_data", 1, '', $updateGisData, false, '', 'style="margin-right: 40px;"', true); $url = 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=gis&id_agente='.$id_agente; echo ""; diff --git a/pandora_console/godmode/agentes/agent_template.php b/pandora_console/godmode/agentes/agent_template.php index 651d5efe7f..686e5facf8 100644 --- a/pandora_console/godmode/agentes/agent_template.php +++ b/pandora_console/godmode/agentes/agent_template.php @@ -164,7 +164,6 @@ if (isset ($_POST["template_id"])) { // TEMPLATE ASSIGMENT FORM // ========================== -echo "
"; echo ''; $nps = db_get_all_fields_in_table ("tnetwork_profile", "name"); @@ -177,7 +176,7 @@ foreach ($nps as $row) { $select[$row["id_np"]] = $row["name"]; } -echo ''; +echo '
'; echo "'; @@ -213,10 +212,10 @@ if ($result === false) { $result = array (); } -$table->width = '98%'; +$table->width = '100%'; $table->cellpadding = 4; $table->cellspacing = 4; -$table->class = "databox"; +$table->class = "databox data"; $table->head = array (); $table->data = array (); $table->align = array (); diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php index e79a653d6b..eeee10e6bf 100644 --- a/pandora_console/godmode/agentes/modificar_agente.php +++ b/pandora_console/godmode/agentes/modificar_agente.php @@ -125,7 +125,7 @@ if ($disable_agent) { __('Successfully disabled'), __('Could not be disabled')); } -echo "
"; html_print_select ($select, "template_id", '', '', '', 0, false, false, true, '', false, 'max-width: 200px !important'); echo '
+echo "
"; echo ""; @@ -164,14 +164,6 @@ echo ""; echo "
"; echo "
"; -echo '
'; -echo '
'; - html_print_input_hidden ('new_agent', 1); - html_print_submit_button (__('Create agent'), 'crt-1', false, 'class="sub next"'); -echo "
"; -echo "
"; - - $order_collation = ""; switch ($config["dbtype"]) { case "mysql": @@ -420,7 +412,7 @@ ui_pagination ($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modifi if ($agents !== false) { - echo ""; + echo "
"; echo "
".__('Agent name') . ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectNameUp)) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectNameDown)) . ''; @@ -570,7 +562,7 @@ if ($agents !== false) { } echo "
"; ui_pagination ($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled", $offset); - echo "
"; + echo "
"; } else { echo "
" . __('There are no defined agents') . "
"; @@ -579,7 +571,7 @@ else { if (check_acl ($config["id_user"], 0, "AW")) { // Create agent button - echo '
'; + echo '
'; echo '
'; html_print_input_hidden ('new_agent', 1); html_print_submit_button (__('Create agent'), 'crt-2', false, diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index 3f270ec5e6..3c3a40ae6d 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -32,7 +32,7 @@ $search_string = io_safe_output(urldecode(trim(get_parameter ("search_string", " // Search string filter form //echo ''; echo ''; -echo ''; +echo '
'; echo ""; echo ""; -echo ""; +//echo ''; // Check if there is at least one server of each type available to assign that // kind of modules. If not, do not show server type in combo @@ -110,7 +110,8 @@ if (($policy_page) || (isset($agent))) { if ($show_creation) { // Create module/type combo - echo ''; + //echo ''; + echo ''; @@ -118,13 +119,14 @@ if (($policy_page) || (isset($agent))) { echo ''; echo ''; echo ''; - echo ""; + //echo ""; } } echo "
"; echo __('Search') . ' ' . html_print_input_text ('search_string', $search_string, '', 15, 255, true); @@ -40,8 +40,8 @@ echo ""; html_print_submit_button (__('Filter'), 'filter', false, 'class="sub search"'); echo ""; -echo ''; +echo "
'; html_print_select ($modules, 'moduletype', '', '', '', '', false, false, false, '', false, 'max-width:300px;' ); html_print_input_hidden ('edit_module', 1); echo '
"; +echo ""; -echo '
'; +echo '
'; echo ""; echo "".__("Get more modules in Pandora FMS Library").""; echo ""; @@ -494,7 +496,8 @@ if ($paginate_module) { ui_pagination($total_modules, $url); } -$table->width = '98%'; +$table->width = '100%'; +$table->class = 'databox data'; $table->head = array (); $table->head[0] = __('Name') . ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectNameUp)) . '' . diff --git a/pandora_console/godmode/alerts/alert_list.builder.php b/pandora_console/godmode/alerts/alert_list.builder.php index 9aa19cf753..6333c52976 100644 --- a/pandora_console/godmode/alerts/alert_list.builder.php +++ b/pandora_console/godmode/alerts/alert_list.builder.php @@ -31,14 +31,14 @@ include_once($config['homedir'] . '/include/functions_users.php'); $pure = get_parameter('pure', 0); $table->id = 'add_alert_table'; -$table->class = 'databox'; -$table->width = '98%'; +$table->class = 'databox filters'; +$table->width = '100%'; $table->head = array (); $table->data = array (); $table->size = array (); $table->size = array (); $table->size[0] = '20%'; -$table->size[1] = '80%'; +$table->size[1] = '30%'; $table->style[0] = 'font-weight: bold; vertical-align: top;'; $table->align[0] = 'left'; $table->align[1] = 'left'; @@ -76,7 +76,7 @@ $table->data[0][1] .= ' '; $table->data[0][1] .= ' '; -$table->data[1][0] = __('Template'); +$table->data[0][2] = __('Template'); $own_info = get_user_info ($config['id_user']); if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) $templates = alerts_get_alert_templates (false, array ('id', 'name')); @@ -87,18 +87,18 @@ else { $templates = alerts_get_alert_templates (array ('id_group IN (' . $filter_groups . ')'), array ('id', 'name')); } -$table->data[1][1] = html_print_select (index_array ($templates, 'id', 'name'), +$table->data[0][3] = html_print_select (index_array ($templates, 'id', 'name'), 'template', '', '', __('Select'), 0, true, false, true, '', false, 'width: 250px;'); -$table->data[1][1] .= ' '; if (check_acl ($config['id_user'], 0, "LM")) { - $table->data[1][1] .= ''; - $table->data[1][1] .= html_print_image ('images/add.png', true); - $table->data[1][1] .= __('Create Template'); - $table->data[1][1] .= ''; + $table->data[0][3] .= ''; + $table->data[0][3] .= html_print_image ('images/add.png', true); + $table->data[0][3] .= __('Create Template'); + $table->data[0][3] .= ''; } -$table->data[2][0] = __('Actions'); +$table->data[1][0] = __('Actions'); $groups_user = users_get_groups($config["id_user"]); if (!empty($groups_user)) { @@ -106,28 +106,27 @@ if (!empty($groups_user)) { $sql = "SELECT id, name FROM talert_actions WHERE id_group IN ($groups)"; $actions = db_get_all_rows_sql($sql); } -$table->data[2][1] = '
'; -$table->data[2][1] .= html_print_select( + +$table->data[1][1] = html_print_select( index_array($actions, 'id', 'name'), 'action_select', '', '', __('Default action'), '0', true, '', true, '', false, 'width: 250px;'); -$table->data[2][1] .= '
'; +$table->data[1][1] .= ''; if (check_acl ($config['id_user'], 0, "LM")) { - $table->data[2][1] .= '
' . html_print_image ('images/add.png', true); - $table->data[2][1] .= ''; - $table->data[2][1] .= __('Create Action'); - $table->data[2][1] .= ''; + $table->data[1][1] .= '' . html_print_image ('images/add.png', true); + $table->data[1][1] .= ''; + $table->data[1][1] .= __('Create Action'); + $table->data[1][1] .= ''; } -$table->data[3][0] = __('Threshold'); -$table->data[3][1] = html_print_extended_select_for_time ('module_action_threshold', 0, '', 0, +$table->data[1][2] = __('Threshold'); +$table->data[1][3] = html_print_extended_select_for_time ('module_action_threshold', 0, '', 0, __('None'), false, true) . ui_print_help_icon ('action_threshold', true, ui_get_full_url(false, false, false, false)); echo '
'; diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index 6e289bc031..d1220ca3f6 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -50,7 +50,7 @@ else { // Table for filter controls $form_filter = ''; $form_filter .= "\n"; -$form_filter .= ''."\n"; +$form_filter .= '
'."\n"; $form_filter .= "\n"; $form_filter .= "
" . __('Template name') . ""; $form_filter .= html_print_input_text ('template_name', $templateName, '', 12, 255, true); @@ -325,7 +325,7 @@ else { } $table->class = 'alert_list databox'; -$table->width = '98%'; +$table->width = '100%'; $table->size = array (); $table->align[2] = 'left'; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 3998e33ff2..9001d4fe0f 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -34,8 +34,7 @@ svg * { font-size: 11pt; } body { - text-align: center; - background-color: #fafafa; + background-color: #FFF; margin: 0 auto; } diff --git a/pandora_console/operation/agentes/custom_fields.php b/pandora_console/operation/agentes/custom_fields.php index b794e39730..c5dca3565f 100644 --- a/pandora_console/operation/agentes/custom_fields.php +++ b/pandora_console/operation/agentes/custom_fields.php @@ -52,7 +52,8 @@ if ($fields === false) { echo "
". __("No fields defined"). "
"; } else { - $table->width = '98%'; + $table->width = '100%'; + $table->class = 'databox data'; $table->head = array (); $table->head[0] = __('Field'); $table->head[1] = __('Display on front') . @@ -60,7 +61,7 @@ else { $table->head[2] = __('Description'); $table->align = array (); $table->align[1] = 'center'; - $table->align[2] = 'center'; + $table->align[2] = 'left'; $table->data = array (); foreach ($fields as $field) { diff --git a/pandora_console/operation/agentes/estado_agente.php b/pandora_console/operation/agentes/estado_agente.php index e5139eff79..4c98e215b0 100644 --- a/pandora_console/operation/agentes/estado_agente.php +++ b/pandora_console/operation/agentes/estado_agente.php @@ -155,10 +155,10 @@ if (isset($result_delete)) { ui_print_error_message(__("There was an error message deleting the agent")); } -echo ''; - echo ''; +echo '
'; + echo ''; +echo ''; -echo '
'; echo __('Group') . ' '; @@ -193,9 +193,9 @@ echo ''; html_print_submit_button (__('Search'), "srcbutton", '', array ("class" => "sub search")); -echo '  
'; +echo '
'; if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AM")) { echo '
'; @@ -432,8 +432,8 @@ ui_pagination ($total_agents, // Show data. $table->cellpadding = 4; $table->cellspacing = 4; -$table->width = "98%"; -$table->class = "databox"; +$table->width = "100%"; +$table->class = "databox data"; $table->head = array (); $table->head[0] = __('Agent'). ' ' . diff --git a/pandora_console/operation/agentes/estado_generalagente.php b/pandora_console/operation/agentes/estado_generalagente.php index 7ccc431211..e3b776deed 100755 --- a/pandora_console/operation/agentes/estado_generalagente.php +++ b/pandora_console/operation/agentes/estado_generalagente.php @@ -60,10 +60,10 @@ if (! check_acl ($config["id_user"], $agent["id_grupo"], "AR") && !$is_extra) { // START: TABLE AGENT BUILD $table_agent->id = 'agent_details_main'; -$table_agent->width = '100%'; +$table_agent->width = '450px'; $table_agent->cellspacing = 4; $table_agent->cellpadding = 4; -$table_agent->class = 'databox_frame'; +$table_agent->class = 'databox'; $table_agent->style[0] = 'width: 16px; text-align:center; padding: 0px;'; $table_agent->style[5] = 'width: 16px; text-align:center; padding: 0px;'; $table_agent->styleTable = 'padding:0px;'; @@ -186,7 +186,7 @@ $table_contact->id = 'agent_contact_main'; $table_contact->width = '100%'; $table_contact->cellspacing = 4; $table_contact->cellpadding = 4; -$table_contact->class = 'databox'; +$table_contact->class = 'databox data'; $table_contact->style[0] = 'width: 30%;'; $table_contact->style[1] = 'width: 70%;'; @@ -229,7 +229,7 @@ $table_data->id = 'agent_data_main'; $table_data->width = '100%'; $table_data->cellspacing = 4; $table_data->cellpadding = 4; -$table_data->class = 'databox'; +$table_data->class = 'databox data'; $table_data->style[0] = 'width: 30%;'; $table_data->style[1] = 'width: 70%;'; @@ -483,23 +483,23 @@ if (!empty($network_interfaces)) { $table = null; $table->id = 'agent_details'; -$table->width = '98%'; +$table->width = '100%'; $table->cellspacing = 4; $table->cellpadding = 4; -$table->class = 'databox'; +$table->class = 'agents'; $table->style = array_fill(0, 3, 'vertical-align: top;'); $data = array(); $data[0] = html_print_table($table_agent, true); $data[0] .= - '
- ' . + ' + ' . + '' . + '
' . __('Events (24h)') . - '' . - '
' . - graph_graphic_agentevents ($id_agente, 300, 15, SECONDS_1DAY, '', true) . - '
' . - ''; + '
' . + graph_graphic_agentevents ($id_agente, 450, 15, SECONDS_1DAY, '', true) . + '
'; // ACCESS RATE GRAPH $access_agent = db_get_value_sql("SELECT COUNT(id_agent) @@ -508,16 +508,16 @@ $access_agent = db_get_value_sql("SELECT COUNT(id_agent) if ($config["agentaccess"] && $access_agent > 0) { $data[0] .= - '
- ' . + ' + ' . + '' . + '
' . __('Agent access rate (24h)') . - '' . - '
' . + '
' . graphic_agentaccess($id_agente, 300, 100, SECONDS_1DAY, true) . - '' . - ''; + '
'; } - +$table->style[0] = 'width:40%;'; $data[1] = html_print_table($table_contact, true); $data[1] .= empty($table_data->data) ? '' : @@ -529,7 +529,7 @@ $data[1] .= !isset($table_interface) ? '' : '
' . html_print_table($table_interface, true); -$table->rowspan[0][1] = 2; +$table->rowspan[0][1] = 0; $data[2] = '
'; $data[2] .= '' . html_print_image("images/refresh.png", true, array("border" => '0', "title" => __('Refresh data'), "alt" => "")) . '
'; diff --git a/pandora_console/operation/agentes/estado_monitores.php b/pandora_console/operation/agentes/estado_monitores.php index f31317b604..a35480d001 100755 --- a/pandora_console/operation/agentes/estado_monitores.php +++ b/pandora_console/operation/agentes/estado_monitores.php @@ -416,7 +416,8 @@ function print_form_filter_monitors($id_agent, $status_filter_monitor = -1, $status_text_monitor = '', $status_module_group=-1) { $form_text = ''; - + $table->class = "databox filters"; + $table->width = "100%"; $table->data[0][0] = html_print_input_hidden('filter_monitors', 1, true); $table->data[0][0] .= html_print_input_hidden('monitors_change_filter', 1, true); $table->data[0][0] .= __('Status:'); diff --git a/pandora_console/operation/agentes/gis_view.php b/pandora_console/operation/agentes/gis_view.php index 09feccf68d..28c33cc5d7 100644 --- a/pandora_console/operation/agentes/gis_view.php +++ b/pandora_console/operation/agentes/gis_view.php @@ -51,7 +51,7 @@ echo "
"; /* Map with the current position */ echo "
"; -if (!gis_get_agent_map($id_agente, "500px", "98%", true, true, $period)) { +if (!gis_get_agent_map($id_agente, "500px", "100%", true, true, $period)) { ui_print_error_message(__("There is no default map. Please go to the setup for to set a default map.")); echo " From d28cd4c17251d84b7ab68a06071973eec7aa71cd Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Thu, 9 Apr 2015 14:00:37 +0200 Subject: [PATCH 049/191] Changes on the functionality and the ACL checks. Great improvements on the ACL management --- .../godmode/reporting/map_builder.php | 226 +++++++++++------- .../reporting/visual_console_builder.data.php | 20 +- .../visual_console_builder.editor.php | 18 +- .../visual_console_builder.elements.php | 18 +- .../reporting/visual_console_builder.php | 130 +++++++--- .../visual_console_builder.wizard.php | 18 +- .../ajax/visual_console_builder.ajax.php | 33 ++- .../mobile/operation/visualmap.php | 28 ++- .../mobile/operation/visualmaps.php | 2 +- 9 files changed, 346 insertions(+), 147 deletions(-) diff --git a/pandora_console/godmode/reporting/map_builder.php b/pandora_console/godmode/reporting/map_builder.php index 794df41252..8b7fdb26d6 100644 --- a/pandora_console/godmode/reporting/map_builder.php +++ b/pandora_console/godmode/reporting/map_builder.php @@ -17,6 +17,18 @@ global $config; require_once ($config['homedir'] . '/include/functions_visual_map.php'); +// ACL for the general permission +$vconsoles_read = check_acl ($config['id_user'], 0, "VR"); +$vconsoles_write = check_acl ($config['id_user'], 0, "VW"); +$vconsoles_manage = check_acl ($config['id_user'], 0, "VM"); + +if (!$vconsoles_read && !$vconsoles_write && !$vconsoles_manage) { + db_pandora_audit("ACL Violation", + "Trying to access map builder"); + require ("general/noaccess.php"); + exit; +} + $pure = (int)get_parameter('pure', 0); $hack_metaconsole = ''; if (defined('METACONSOLE')) @@ -31,110 +43,139 @@ $copy_layout = (bool) get_parameter ('copy_layout'); $delete_layout = (bool) get_parameter ('delete_layout'); $refr = (int) get_parameter('refr'); -if ($delete_layout) { - db_process_sql_delete ('tlayout_data', array ('id_layout' => $id_layout)); - $result = db_process_sql_delete ('tlayout', array ('id' => $id_layout)); - if ($result) { - db_pandora_audit( "Visual console builder", "Delete visual console #$id_layout"); - ui_print_success_message(__('Successfully deleted')); - db_clean_cache(); +if ($delete_layout || $copy_layout) { + // Visual console required + if (empty($id_layout)) { + db_pandora_audit("ACL Violation", + "Trying to access map builder"); + require ("general/noaccess.php"); + exit; } - else { - db_pandora_audit( "Visual console builder", "Fail try to delete visual console #$id_layout"); - ui_print_error_message(__('Not deleted. Error deleting data')); + + $group_id = db_get_value("id_group", "tlayout", "id", $id_layout); + if ($group_id === false) { + db_pandora_audit("ACL Violation", + "Trying to access map builder"); + require ("general/noaccess.php"); + exit; } - $id_layout = 0; -} + + // ACL for the visual console + // $vconsole_read = check_acl ($config['id_user'], $group_id, "VR"); + $vconsole_write = check_acl ($config['id_user'], $group_id, "VW"); + $vconsole_manage = check_acl ($config['id_user'], $group_id, "VM"); -if ($copy_layout) { - // Number of inserts - $ninsert = (int) 0; + if (!$vconsole_write && !$vconsole_manage) { + db_pandora_audit("ACL Violation", + "Trying to access map builder"); + require ("general/noaccess.php"); + exit; + } - // Return from DB the source layout - $layout_src = db_get_all_rows_filter ("tlayout","id = " . $id_layout); - - // Name of dst - $name_dst = get_parameter ("name_dst", $layout_src[0]['name'] . " copy"); - - // Create the new Console - $idGroup = $layout_src[0]['id_group']; - $background = $layout_src[0]['background']; - $height = $layout_src[0]['height']; - $width = $layout_src[0]['width']; - $visualConsoleName = $name_dst; - - $values = array('name' => $visualConsoleName, 'id_group' => $idGroup, 'background' => $background, 'height' => $height, 'width' => $width); - $result = db_process_sql_insert('tlayout', $values); - - $idNewVisualConsole = $result; - - if ($result) { - $ninsert = 1; + if ($delete_layout) { + db_process_sql_delete ('tlayout_data', array ('id_layout' => $id_layout)); + $result = db_process_sql_delete ('tlayout', array ('id' => $id_layout)); + if ($result) { + db_pandora_audit( "Visual console builder", "Delete visual console #$id_layout"); + ui_print_success_message(__('Successfully deleted')); + db_clean_cache(); + } + else { + db_pandora_audit( "Visual console builder", "Fail try to delete visual console #$id_layout"); + ui_print_error_message(__('Not deleted. Error deleting data')); + } + $id_layout = 0; + } + + if ($copy_layout) { + // Number of inserts + $ninsert = (int) 0; - // Return from DB the items of the source layout - $data_layout_src = db_get_all_rows_filter ("tlayout_data", "id_layout = " . $id_layout); + // Return from DB the source layout + $layout_src = db_get_all_rows_filter ("tlayout","id = " . $id_layout); - if (!empty($data_layout_src)) { + // Name of dst + $name_dst = get_parameter ("name_dst", $layout_src[0]['name'] . " copy"); + + // Create the new Console + $idGroup = $layout_src[0]['id_group']; + $background = $layout_src[0]['background']; + $height = $layout_src[0]['height']; + $width = $layout_src[0]['width']; + $visualConsoleName = $name_dst; + + $values = array('name' => $visualConsoleName, 'id_group' => $idGroup, 'background' => $background, 'height' => $height, 'width' => $width); + $result = db_process_sql_insert('tlayout', $values); + + $idNewVisualConsole = $result; + + if ($result) { + $ninsert = 1; - //By default the id parent 0 is always 0. - $id_relations = array(0 => 0); + // Return from DB the items of the source layout + $data_layout_src = db_get_all_rows_filter ("tlayout_data", "id_layout = " . $id_layout); - for ($a=0; $a < count($data_layout_src); $a++) { + if (!empty($data_layout_src)) { - // Changing the source id by the new visual console id - $data_layout_src[$a]['id_layout'] = $idNewVisualConsole; + //By default the id parent 0 is always 0. + $id_relations = array(0 => 0); - $old_id = $data_layout_src[$a]['id']; - - // Unsetting the source's id - unset($data_layout_src[$a]['id']); - - // Configure the cloned Console - $result = db_process_sql_insert('tlayout_data', $data_layout_src[$a]); - - $id_relations[$old_id] = 0; - - if ($result !== false) { - $id_relations[$old_id] = $result; - } - - if ($result) - $ninsert++; - }// for each item of console - - $inserts = count($data_layout_src) + 1; - - // If the number of inserts is correct, the copy is completed - if ($ninsert == $inserts) { - - //Update the ids of parents - $items = db_get_all_rows_filter ("tlayout_data", "id_layout = " . $idNewVisualConsole); - - foreach ($items as $item) { - $new_parent = $id_relations[$item['parent_item']]; + for ($a=0; $a < count($data_layout_src); $a++) { - db_process_sql_update('tlayout_data', - array('parent_item' => $new_parent), array('id' => $item['id'])); + // Changing the source id by the new visual console id + $data_layout_src[$a]['id_layout'] = $idNewVisualConsole; + + $old_id = $data_layout_src[$a]['id']; + + // Unsetting the source's id + unset($data_layout_src[$a]['id']); + + // Configure the cloned Console + $result = db_process_sql_insert('tlayout_data', $data_layout_src[$a]); + + $id_relations[$old_id] = 0; + + if ($result !== false) { + $id_relations[$old_id] = $result; + } + + if ($result) + $ninsert++; + }// for each item of console + + $inserts = count($data_layout_src) + 1; + + // If the number of inserts is correct, the copy is completed + if ($ninsert == $inserts) { + + //Update the ids of parents + $items = db_get_all_rows_filter ("tlayout_data", "id_layout = " . $idNewVisualConsole); + + foreach ($items as $item) { + $new_parent = $id_relations[$item['parent_item']]; + + db_process_sql_update('tlayout_data', + array('parent_item' => $new_parent), array('id' => $item['id'])); + } + + + ui_print_success_message(__('Successfully copied')); + db_clean_cache(); } - - + else { + ui_print_error_message(__('Not copied. Error copying data')); + } + } + else { + // If the array is empty the copy is completed ui_print_success_message(__('Successfully copied')); db_clean_cache(); } - else { - ui_print_error_message(__('Not copied. Error copying data')); - } } else { - // If the array is empty the copy is completed - ui_print_success_message(__('Successfully copied')); - db_clean_cache(); + ui_print_error_message(__('Not copied. Error copying data')); } } - else { - ui_print_error_message(__('Not copied. Error copying data')); - } - } $table->width = '98%'; @@ -146,7 +187,7 @@ $table->head[2] = __('Items'); // Fix: IW was the old ACL for report editing, now is RW //Only for RW flag -if (check_acl ($config['id_user'], 0, "RW")) { +if ($vconsoles_write || $vconsoles_manage) { $table->head[3] = __('Copy'); $table->head[4] = __('Delete'); } @@ -159,9 +200,9 @@ $table->align[3] = 'center'; $table->align[4] = 'center'; // Only display maps of "All" group if user is administrator -// or has "RR" privileges, otherwise show only maps of user group +// or has "VR" privileges, otherwise show only maps of user group $own_info = get_user_info ($config['id_user']); -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "RR")) +if ($own_info['is_admin'] || $vconsoles_read) $maps = visual_map_get_user_layouts (); else $maps = visual_map_get_user_layouts ($config['id_user'], false, false, false); @@ -171,6 +212,9 @@ if (!$maps) { } else { foreach ($maps as $map) { + // ACL for the visual console permission + $vconsole_write = check_acl ($config['id_user'], $map['id_group'], "VW"); + $vconsole_manage = check_acl ($config['id_user'], $map['id_group'], "VM"); $data = array (); @@ -187,7 +231,7 @@ else { $data[2] = db_get_sql ("SELECT COUNT(*) FROM tlayout_data WHERE id_layout = ".$map['id']); // Fix: IW was the old ACL for report editing, now is RW - if (check_acl ($config['id_user'], 0, "RW")) { + if ($vconsole_write || $vconsole_manage) { if (!defined('METACONSOLE')) { $data[3] = ''.html_print_image ("images/copy.png", true).''; @@ -212,9 +256,7 @@ else { echo '
'; } -// Fix: IW was the old ACL to check for report editing, now is RW -//Only for RW flag -if (check_acl ($config['id_user'], 0, "RW")) { +if ($vconsoles_write || $vconsoles_manage) { if (!defined('METACONSOLE')) echo '
'; else { diff --git a/pandora_console/godmode/reporting/visual_console_builder.data.php b/pandora_console/godmode/reporting/visual_console_builder.data.php index bc0c7027e9..c59ab17934 100644 --- a/pandora_console/godmode/reporting/visual_console_builder.data.php +++ b/pandora_console/godmode/reporting/visual_console_builder.data.php @@ -17,7 +17,23 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +// Visual console required +if (empty($visualConsole)) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} + +// ACL for the existing visual console +// if (!isset($vconsole_read)) +// $vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); +if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); +if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); + +if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); @@ -85,7 +101,7 @@ $groups = users_get_groups ($config['id_user'], 'RW'); $own_info = get_user_info($config['id_user']); // Only display group "All" if user is administrator // or has "RW" privileges -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "RW")) +if ($own_info['is_admin'] || $vconsole_write || $vconsole_manage) $display_all_group = true; else $display_all_group = false; diff --git a/pandora_console/godmode/reporting/visual_console_builder.editor.php b/pandora_console/godmode/reporting/visual_console_builder.editor.php index 0311119deb..fdc2e41b60 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.editor.php +++ b/pandora_console/godmode/reporting/visual_console_builder.editor.php @@ -17,7 +17,23 @@ global $config; // Login check check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +// Visual console required +if (empty($visualConsole)) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} + +// ACL for the existing visual console +// if (!isset($vconsole_read)) +// $vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); +if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); +if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); + +if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); diff --git a/pandora_console/godmode/reporting/visual_console_builder.elements.php b/pandora_console/godmode/reporting/visual_console_builder.elements.php index 0c1fc9b95c..0809aee4b8 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.elements.php +++ b/pandora_console/godmode/reporting/visual_console_builder.elements.php @@ -17,7 +17,23 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +// Visual console required +if (empty($visualConsole)) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} + +// ACL for the existing visual console +// if (!isset($vconsole_read)) +// $vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); +if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); +if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); + +if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); diff --git a/pandora_console/godmode/reporting/visual_console_builder.php b/pandora_console/godmode/reporting/visual_console_builder.php index c7d9760690..449ba31136 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.php +++ b/pandora_console/godmode/reporting/visual_console_builder.php @@ -18,25 +18,65 @@ global $statusProcessInDB; check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +require_once ($config['homedir'] . '/include/functions_visual_map.php'); +require_once($config['homedir'] . "/include/functions_agents.php"); +enterprise_include_once('include/functions_visual_map.php'); + +// Retrieve the visual console id +set_unless_defined ($idVisualConsole, 0); // Set default +$idVisualConsole = get_parameter('id_visual_console', $idVisualConsole); + +// Visual console creation tab and actions +if ($activeTab == "data" && ($action == "new" || $action == "save")) { + $visualConsole = null; + + // General ACL + //$vconsole_read = check_acl ($config['id_user'], 0, "VR"); + $vconsole_write = check_acl ($config['id_user'], 0, "VW"); + $vconsole_manage = check_acl ($config['id_user'], 0, "VM"); +} +// Retrieving the visual console data +else if (!empty($idVisualConsole)) { + + // Load the visual console data + $visualConsole = db_get_row_filter('tlayout', array('id' => $idVisualConsole)); + + // The visual console should exist. + if (empty($visualConsole)) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + return; + } + + // The default group id is 0 + set_unless_defined ($visualConsole['id_group'], 0); + + // ACL for the existing visual console + //$vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); + $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); + $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); +} +// The visual console should exist. +// The only exception is the visual console creation. +else { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + return; +} + +// This section is only to manage the visual console +if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); exit; } -require_once ($config['homedir'] . '/include/functions_visual_map.php'); -require_once($config['homedir'] . "/include/functions_agents.php"); -enterprise_include_once('include/functions_visual_map.php'); -$pure = (int)get_parameter('pure', 0); - -if (!empty($idVisualConsole)) { - $idVisualConsole = get_parameter('id_visual_console', $idVisualConsole); -} -else { - $idVisualConsole = get_parameter('id_visual_console', 0); -} +$pure = (int) get_parameter ('pure', 0); +$refr = (int) get_parameter ('refr', $config['vc_refr']); $id_layout = 0; @@ -53,8 +93,6 @@ $action = get_parameterBetweenListValues($action_name_parameter, $activeTab = get_parameterBetweenListValues('tab', array('data', 'list_elements', 'wizard', 'wizard_services', 'editor'), 'data'); -$refr = (int) get_parameter ('refr', $config['vc_refr']); - //Save/Update data in DB global $statusProcessInDB; @@ -71,16 +109,30 @@ switch ($activeTab) { case 'update': case 'save': - $idGroup = get_parameter('id_group'); - $background = get_parameter('background'); - $visualConsoleName = get_parameter('name'); + $idGroup = (int) get_parameter('id_group'); + $background = (string) get_parameter('background'); + $visualConsoleName = (string) get_parameter('name'); - $values = array('name' => $visualConsoleName, - 'id_group' => $idGroup, 'background' => $background); + // ACL for the new visual console + //$vconsole_read_new = check_acl ($config['id_user'], $idGroup, "VR"); + $vconsole_write_new = check_acl ($config['id_user'], $idGroup, "VW"); + $vconsole_manage_new = check_acl ($config['id_user'], $idGroup, "VM"); + + // The user should have permissions on the new group + if (!$vconsole_write_new && !$vconsole_manage_new) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; + } + + $values = array( + 'name' => $visualConsoleName, + 'id_group' => $idGroup, + 'background' => $background + ); // If the background is changed the size is reseted - $visualConsole = db_get_row_filter('tlayout', - array('id' => $idVisualConsole)); $background_now = $visualConsole['background']; if ($background_now != $background && $background) { $sizeBackground = getimagesize($config['homedir'] . '/images/console/background/' . $background); @@ -93,10 +145,18 @@ switch ($activeTab) { $result = false; if ($values['name'] != "" && $values['background']) $result = db_process_sql_update('tlayout', $values, array('id' => $idVisualConsole)); - if ($result !== false && $values['background']) { + if ($result !== false) { db_pandora_audit( "Visual console builder", "Update visual console #$idVisualConsole"); $action = 'edit'; $statusProcessInDB = array('flag' => true, 'message' => ui_print_success_message(__('Successfully update.'), '', true)); + + // Return the updated visual console + $visualConsole = db_get_row_filter('tlayout', + array('id' => $idVisualConsole)); + // Update the ACL + //$vconsole_read = $vconsole_read_new; + $vconsole_write = $vconsole_write_new; + $vconsole_manage = $vconsole_manage_new; } else { db_pandora_audit( "Visual console builder", "Fail update visual console #$idVisualConsole"); @@ -116,6 +176,14 @@ switch ($activeTab) { $action = 'edit'; $statusProcessInDB = array('flag' => true, 'message' => ui_print_success_message(__('Successfully created.'), '', true)); + + // Return the updated visual console + $visualConsole = db_get_row_filter('tlayout', + array('id' => $idVisualConsole)); + // Update the ACL + //$vconsole_read = $vconsole_read_new; + $vconsole_write = $vconsole_write_new; + $vconsole_manage = $vconsole_manage_new; } else { db_pandora_audit( "Visual console builder", "Fail try to create visual console"); @@ -125,13 +193,9 @@ switch ($activeTab) { } break; } - $visualConsole = db_get_row_filter('tlayout', - array('id' => $idVisualConsole)); break; case 'edit': - $visualConsole = db_get_row_filter('tlayout', - array('id' => $idVisualConsole)); $visualConsoleName = $visualConsole['name']; $idGroup = $visualConsole['id_group']; $background = $visualConsole['background']; @@ -147,13 +211,11 @@ switch ($activeTab) { json_encode(array()))); $delete_items = json_decode($delete_items_json, true); - $id_visual_console = (int)get_parameter( - 'id_visual_console', 0); if (!empty($delete_items)) { $result = (bool)db_process_sql_delete( 'tlayout_data', - array('id_layout' => $id_visual_console, + array('id_layout' => $idVisualConsole, 'id' => $delete_items)); } @@ -187,6 +249,10 @@ switch ($activeTab) { 'height' => $height), array('id' => $idVisualConsole)); + // Return the updated visual console + $visualConsole = db_get_row_filter('tlayout', + array('id' => $idVisualConsole)); + //Update elements in visual map $idsElements = db_get_all_rows_filter('tlayout_data', array('id_layout' => $idVisualConsole), array('id')); @@ -246,12 +312,10 @@ switch ($activeTab) { } break; } - $visualConsole = db_get_row_filter('tlayout', array('id' => $idVisualConsole)); $visualConsoleName = $visualConsole['name']; $action = 'edit'; break; case 'wizard': - $visualConsole = db_get_row_filter('tlayout', array('id' => $idVisualConsole)); $visualConsoleName = $visualConsole['name']; $background = $visualConsole['background']; switch ($action) { @@ -430,7 +494,6 @@ switch ($activeTab) { } break; case 'wizard_services': - $visualConsole = db_get_row_filter('tlayout', array('id' => $idVisualConsole)); $visualConsoleName = $visualConsole['name']; switch ($action) { case 'update': @@ -453,9 +516,6 @@ switch ($activeTab) { case 'new': case 'update': case 'edit': - $visualConsole = db_get_row_filter('tlayout', - array('id' => $idVisualConsole)); - $visualConsoleName = $visualConsole['name']; $action = 'edit'; break; diff --git a/pandora_console/godmode/reporting/visual_console_builder.wizard.php b/pandora_console/godmode/reporting/visual_console_builder.wizard.php index 0487f70d27..0a2fcc94f4 100644 --- a/pandora_console/godmode/reporting/visual_console_builder.wizard.php +++ b/pandora_console/godmode/reporting/visual_console_builder.wizard.php @@ -17,7 +17,23 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "RW")) { +// Visual console required +if (empty($visualConsole)) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} + +// ACL for the existing visual console +// if (!isset($vconsole_read)) +// $vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); +if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); +if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); + +if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); diff --git a/pandora_console/include/ajax/visual_console_builder.ajax.php b/pandora_console/include/ajax/visual_console_builder.ajax.php index 5de0da1f0e..151247cb83 100755 --- a/pandora_console/include/ajax/visual_console_builder.ajax.php +++ b/pandora_console/include/ajax/visual_console_builder.ajax.php @@ -17,14 +17,41 @@ global $config; check_login (); -// Fix: IW was the old ACL to check for report editing, now is RW -if (! check_acl ($config['id_user'], 0, "RW")) { +$id_visual_console = get_parameter('id_visual_console', null); + +// WARNING: CHECK THE ENTIRE FUNCTIONALITY + +// Visual console id required +if (empty($id_visual_console)) { db_pandora_audit("ACL Violation", "Trying to access report builder"); require ("general/noaccess.php"); exit; } +// Get the group id for the ACL checks +$group_id = db_get_value('id_group', 'tlayout', 'id', $id_visual_console); +if ($group_id === false) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} + +// ACL for the existing visual console +// if (!isset($vconsole_read)) +// $vconsole_read = check_acl ($config['id_user'], $group_id, "VR"); +if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $group_id, "VW"); +if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $group_id, "VM"); + +if (!$vconsole_write && !$vconsole_manage) { + db_pandora_audit("ACL Violation", + "Trying to access report builder"); + require ("general/noaccess.php"); + exit; +} //Fix ajax to avoid include the file, 'functions_graph.php'. $ajax = true; @@ -39,8 +66,6 @@ enterprise_include_once('include/functions_visual_map.php'); $action = get_parameter('action'); $type = get_parameter('type'); -$id_visual_console = get_parameter('id_visual_console', null); - $id_element = get_parameter('id_element', null); $image = get_parameter('image', null); diff --git a/pandora_console/mobile/operation/visualmap.php b/pandora_console/mobile/operation/visualmap.php index def96a3c81..e7c2617fd7 100644 --- a/pandora_console/mobile/operation/visualmap.php +++ b/pandora_console/mobile/operation/visualmap.php @@ -16,12 +16,16 @@ require_once ('../include/functions_visual_map.php'); class Visualmap { private $correct_acl = false; - private $acl = "RR"; + private $acl = "VR"; private $id = 0; - private $visual_map = null; + private $visualmap = null; function __construct() { + + } + + private function checkVisualmapACL($groupID = 0) { $system = System::getInstance(); if ($system->checkACL($this->acl)) { @@ -39,17 +43,21 @@ class Visualmap { } public function show() { + $this->getFilters(); + + $this->visualmap = db_get_row('tlayout', + 'id', $this->id); + + if (empty($this->visualmap)) { + $this->show_fail_acl(); + } + + $this->checkVisualmapACL($this->visualmap['id_group']); if (!$this->correct_acl) { $this->show_fail_acl(); } - else { - $this->getFilters(); - - $this->visualmap = db_get_row('tlayout', - 'id', $this->id); - - $this->show_visualmap(); - } + + $this->show_visualmap(); } private function show_fail_acl() { diff --git a/pandora_console/mobile/operation/visualmaps.php b/pandora_console/mobile/operation/visualmaps.php index e08e6f34dd..f2f608a5d0 100644 --- a/pandora_console/mobile/operation/visualmaps.php +++ b/pandora_console/mobile/operation/visualmaps.php @@ -18,7 +18,7 @@ ob_get_clean(); //Fixed unused javascript code. class Visualmaps { private $correct_acl = false; - private $acl = "RR"; + private $acl = "VR"; private $default = true; private $default_filters = array(); From ae8789db9eff1cb3113ad162b01c013d52e17bec Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Thu, 9 Apr 2015 14:05:23 +0200 Subject: [PATCH 050/191] Changes and improvements on the ACL checks --- .../operation/agentes/networkmap.dinamic.php | 29 +- .../operation/agentes/networkmap.groups.php | 29 +- .../operation/agentes/networkmap.php | 463 +++++++++++------- .../operation/agentes/networkmap.topology.php | 29 +- .../operation/agentes/networkmap_list.php | 62 ++- .../operation/visual_console/render_view.php | 26 +- 6 files changed, 413 insertions(+), 225 deletions(-) diff --git a/pandora_console/operation/agentes/networkmap.dinamic.php b/pandora_console/operation/agentes/networkmap.dinamic.php index a51d659a48..edc5823803 100755 --- a/pandora_console/operation/agentes/networkmap.dinamic.php +++ b/pandora_console/operation/agentes/networkmap.dinamic.php @@ -19,7 +19,34 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], $store_group, "AR")) { +// Networkmap id required +if (!isset($id_networkmap)) { + db_pandora_audit("ACL Violation", + "Trying to access node graph builder"); + require ("general/noaccess.php"); + exit; +} + +// Get the group for ACL +if (!isset($store_group)) { + $store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap); + if ($store_group === false) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } +} + +// ACL for the networkmap permission +if (!isset($networkmap_read)) + $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); +if (!isset($networkmap_write)) + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); +if (!isset($networkmap_manage)) + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + +if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap.groups.php b/pandora_console/operation/agentes/networkmap.groups.php index d21830cd02..b6004367c8 100644 --- a/pandora_console/operation/agentes/networkmap.groups.php +++ b/pandora_console/operation/agentes/networkmap.groups.php @@ -19,7 +19,34 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], $store_group, "AR")) { +// Networkmap id required +if (!isset($id_networkmap)) { + db_pandora_audit("ACL Violation", + "Trying to access node graph builder"); + require ("general/noaccess.php"); + exit; +} + +// Get the group for ACL +if (!isset($store_group)) { + $store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap); + if ($store_group === false) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } +} + +// ACL for the networkmap permission +if (!isset($networkmap_read)) + $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); +if (!isset($networkmap_write)) + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); +if (!isset($networkmap_manage)) + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + +if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap.php b/pandora_console/operation/agentes/networkmap.php index 8b9de395c0..3cc7512e0c 100644 --- a/pandora_console/operation/agentes/networkmap.php +++ b/pandora_console/operation/agentes/networkmap.php @@ -19,13 +19,6 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "AR")) { - db_pandora_audit("ACL Violation", - "Trying to access node graph builder"); - include ("general/noaccess.php"); - exit; -} - require_once ('include/functions_networkmap.php'); require_once ('include/functions_clippy.php'); @@ -42,16 +35,54 @@ $update_networkmap = get_parameter ('update_networkmap', 0); $recenter_networkmap = get_parameter ('recenter_networkmap', 0); $hidden_options = get_parameter ('hidden_options', 1); -if ($delete_networkmap) { - $result = networkmap_delete_networkmap($id_networkmap); - $message = ui_print_result_message ($result, - __('Network map deleted successfully'), - __('Could not delete network map'), '', true); +// ACL checks // +// New networkmap. +if ($add_networkmap) { + // ACL for the new network map + // $networkmap_read = check_acl ($config['id_user'], 0, "MR"); + $networkmap_write = check_acl ($config['id_user'], 0, "MW"); + $networkmap_manage = check_acl ($config['id_user'], 0, "MM"); + + if (!$networkmap_write && !$networkmap_manage) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } +} +// The networkmap exist. Should have id and store goup. +else { + // Networkmap id required + if (empty($id_networkmap)) { + db_pandora_audit("ACL Violation", + "Trying to access node graph builder"); + require ("general/noaccess.php"); + exit; + } + // Get the group for ACL + $store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap); + if ($store_group === false) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } - $id_networkmap = 0; + // ACL for the general permission + $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + + if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) { + db_pandora_audit("ACL Violation", + "Trying to access node graph builder"); + include ("general/noaccess.php"); + exit; + } } +// Create if ($add_networkmap) { // Load variables $layout = 'radial'; @@ -100,81 +131,126 @@ if ($add_networkmap) { 'l2_network' => $l2_network ); $id_networkmap = networkmap_create_networkmap($values); - + $message = ui_print_result_message ($id_networkmap, __('Network map created successfully'), __('Could not create network map'), '', true); -} - -if ($save_networkmap || $update_networkmap) { - // Load variables - $layout = (string) get_parameter ('layout', 'radial'); - $depth = (string) get_parameter ('depth', 'all'); - $nooverlap = (bool) get_parameter ('nooverlap', 0); - $modwithalerts = (int) get_parameter ('modwithalerts', 0); - $hidepolicymodules = (int) get_parameter ('hidepolicymodules', 0); - $zoom = (float) get_parameter ('zoom', 1); - $ranksep = (float) get_parameter ('ranksep', 2.5); - $simple = (int) get_parameter ('simple', 0); - $regen = (int) get_parameter ('regen', 0); - $show_snmp_modules = (int) get_parameter ('show_snmp_modules', 0); - $font_size = (int) get_parameter ('font_size', 12); - $text_filter = get_parameter ('text_filter', ''); - $dont_show_subgroups = (bool)get_parameter ('dont_show_subgroups', 0); - $store_group = (int) get_parameter ('store_group', 0); - $group = (int) get_parameter ('group', 0); - $module_group = (int) get_parameter ('module_group', 0); - $center = (int) get_parameter ('center', 0); - $name = (string) get_parameter ('name', $activeTab); - $l2_network = (int) get_parameter ('l2_network', 0); - if ($save_networkmap) { - $result = networkmap_update_networkmap($id_networkmap, - array('name' => $name, - 'type' => $activeTab, - 'layout' => $layout, - 'nooverlap' => $nooverlap, - 'simple' => $simple, - 'regenerate' => $regen, - 'font_size' => $font_size, - 'store_group' => $store_group, - 'id_group' => $group, - 'id_module_group' => $module_group, - 'depth' => $depth, - 'only_modules_with_alerts' => $modwithalerts, - 'hide_policy_modules' => $hidepolicymodules, - 'zoom' => $zoom, - 'distance_nodes' => $ranksep, - 'text_filter' => $text_filter, - 'dont_show_subgroups' => $dont_show_subgroups, - 'center' => $center, - 'show_snmp_modules' => (int)$show_snmp_modules, - 'l2_network' => (int)$l2_network)); - + // Exit when the networkmap was not created + if ($id_networkmap === false) { + return; + } +} +// Action in existing networkmap +else if ($delete_networkmap || $save_networkmap || $update_networkmap) { + + // ACL for the network map + // if (!isset($networkmap_read)) + // $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); + if (!isset($networkmap_write)) + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); + if (!isset($networkmap_manage)) + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + + if (!$networkmap_write && !$networkmap_manage) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } + + // Actions // + + // Not used now. The new behaviour is delete the map posting to the list. + if ($delete_networkmap) { + $result = networkmap_delete_networkmap($id_networkmap); $message = ui_print_result_message ($result, - __('Network map saved successfully'), - __('Could not save network map'), '', true); + __('Network map deleted successfully'), + __('Could not delete network map'), '', true); + + return; } -} - -$networkmaps = networkmap_get_networkmaps('','', true, $strict_user); - -$nomaps = false; -if ($networkmaps === false) { - $nomaps = true; -} - -// If the map id is not defined, we set the first id of the active type -if (!$nomaps && $id_networkmap == 0) { - $networkmaps_of_type = networkmap_get_networkmaps('', $activeTab); - if ($networkmaps_of_type !== false) { - $id_networkmap = reset(array_keys($networkmaps_of_type)); - } -} - -if (!$update_networkmap && !$save_networkmap && $id_networkmap != 0) { - $networkmap_data = networkmap_get_networkmap($id_networkmap); + // Save updates the db data, update only updates the view. + if ($save_networkmap || $update_networkmap) { + // Load variables + $layout = (string) get_parameter ('layout', 'radial'); + $depth = (string) get_parameter ('depth', 'all'); + $nooverlap = (bool) get_parameter ('nooverlap', 0); + $modwithalerts = (int) get_parameter ('modwithalerts', 0); + $hidepolicymodules = (int) get_parameter ('hidepolicymodules', 0); + $zoom = (float) get_parameter ('zoom', 1); + $ranksep = (float) get_parameter ('ranksep', 2.5); + $simple = (int) get_parameter ('simple', 0); + $regen = (int) get_parameter ('regen', 0); + $show_snmp_modules = (int) get_parameter ('show_snmp_modules', 0); + $font_size = (int) get_parameter ('font_size', 12); + $text_filter = get_parameter ('text_filter', ''); + $dont_show_subgroups = (bool)get_parameter ('dont_show_subgroups', 0); + $store_group = (int) get_parameter ('store_group', 0); + $group = (int) get_parameter ('group', 0); + $module_group = (int) get_parameter ('module_group', 0); + $center = (int) get_parameter ('center', 0); + $name = (string) get_parameter ('name', $activeTab); + $l2_network = (int) get_parameter ('l2_network', 0); + + if ($save_networkmap) { + // ACL for the new network map + $networkmap_read_new = check_acl ($config['id_user'], $store_group, "MR"); + $networkmap_write_new = check_acl ($config['id_user'], $store_group, "MW"); + $networkmap_manage_new = check_acl ($config['id_user'], $store_group, "MM"); + + if (!$networkmap_write_new && !$networkmap_manage_new) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } + + $result = networkmap_update_networkmap($id_networkmap, + array('name' => $name, + 'type' => $activeTab, + 'layout' => $layout, + 'nooverlap' => $nooverlap, + 'simple' => $simple, + 'regenerate' => $regen, + 'font_size' => $font_size, + 'store_group' => $store_group, + 'id_group' => $group, + 'id_module_group' => $module_group, + 'depth' => $depth, + 'only_modules_with_alerts' => $modwithalerts, + 'hide_policy_modules' => $hidepolicymodules, + 'zoom' => $zoom, + 'distance_nodes' => $ranksep, + 'text_filter' => $text_filter, + 'dont_show_subgroups' => $dont_show_subgroups, + 'center' => $center, + 'show_snmp_modules' => (int)$show_snmp_modules, + 'l2_network' => (int)$l2_network)); + + $message = ui_print_result_message ($result, + __('Network map saved successfully'), + __('Could not save network map'), '', true); + + if ($result) { + // Save the new ACL permisison + $networkmap_read = $networkmap_read_new; + $networkmap_write = $networkmap_write_new; + $networkmap_manage = $networkmap_manage_new; + } + } + } +} + +if (!$update_networkmap && !$save_networkmap) { + $networkmap_data = networkmap_get_networkmap($id_networkmap); + if (empty($networkmap_data)) { + ui_print_error_message(__('There was an error loading the network map')); + return; + } + + // Load variables $layout = $networkmap_data['layout']; $depth = $networkmap_data['depth']; $nooverlap = (bool)$networkmap_data['nooverlap']; @@ -202,107 +278,128 @@ if ($recenter_networkmap) { } /* Main code */ + +$qs = http_build_query(array( + "sec" => "network", + "sec2" => "operation/agentes/networkmap_list" + )); +$href = "index.php?$qs"; + +$buttons['list'] = array('active' => false, 'text' => "" . + html_print_image("images/list.png", true, array ("title" => __('List'))) .""); + if ($pure == 1) { - $buttons['screen'] = array('active' => false, - 'text' => '' . - html_print_image("images/normal_screen.png", true, array ('title' => __('Normal screen'))) .''); + $qs = http_build_query(array( + "sec" => "network", + "sec2" => "operation/agentes/networkmap", + "id_networkmap" => $id_networkmap, + "tab" => $activeTab + )); + $href = "index.php?$qs"; + + $buttons['screen'] = array('active' => false, 'text' => "" . + html_print_image("images/normal_screen.png", true, array ('title' => __('Normal screen'))) .""); } else { - $buttons['screen'] = array('active' => false, - 'text' => '' . - html_print_image("images/full_screen.png", true, array ('title' => __('Full screen'))) .''); -} -if (($config['enterprise_installed']) && (!$strict_user)) { - $buttons['policies'] = array('active' => $activeTab == 'policies', - 'text' => '' . - html_print_image("images/policies_mc.png", true, array ("title" => __('Policies view'))) .''); -} - -$buttons['groups'] = array('active' => $activeTab == 'groups', - 'text' => '' . - html_print_image("images/group.png", true, array ("title" => __('Groups view'))) .''); - -$buttons['topology'] = array('active' => $activeTab == 'topology', - 'text' => '' . - html_print_image("images/op_network.png", true, array ("title" => __('Topology view'))) .''); - -$buttons['dinamic'] = array('active' => $activeTab == 'dinamic', - 'text' => '' . - html_print_image("images/dynamic_network_icon.png", true, array ("title" => __('Dynamic view'))) .''); - -if (!$strict_user) { - $buttons['radial_dinamic'] = array('active' => $activeTab == 'radial_dynamic', - 'text' => '' . - html_print_image("images/radial_dynamic_network_icon.png", true, array ("title" => __('Radial dynamic view'))) .''); -} - -$combolist = ''; - -$combolist .= html_print_select($networkmaps, 'id_networkmap', $id_networkmap, 'onchange:this.form.submit()', __('No selected'), 0, true, false, false, '', false, 'margin-top:4px; margin-left:3px; width:150px;'); - -$combolist .= html_print_input_hidden('hidden_options',$hidden_options, true); - -$combolist .= ''; - -$buttons['combolist'] = $combolist; - -if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) { - $buttons['addmap'] = array('active' => $activeTab == false, - 'text' => '' . - html_print_image("images/add_mc.png", true, array ("title" => __('Add map'))) .''); + $qs = http_build_query(array( + "sec" => "network", + "sec2" => "operation/agentes/networkmap", + "id_networkmap" => $id_networkmap, + "tab" => $activeTab, + "pure" => 1 + )); + $href = "index.php?$qs"; - if (!$nomaps && $id_networkmap != 0) { - $buttons['deletemap'] = array('active' => $activeTab == false, - 'text' => '' . - html_print_image("images/delete_mc.png", true, array ("title" => __('Delete map'))) .''); - - $buttons['savemap'] = array('active' => $activeTab == false, - 'text' => '' . - html_print_image("images/save_mc.png", true, array ("title" => __('Save map'))) .''); - } + $buttons['screen'] = array('active' => false, 'text' => "" . + html_print_image("images/full_screen.png", true, array ('title' => __('Full screen'))) .""); } +if ($networkmap_write || $networkmap_manage) { + + $qs = http_build_query(array( + "sec" => "network", + "sec2" => "operation/agentes/networkmap_list", + "id_networkmap" => $id_networkmap, + "delete_networkmap" => 1 + )); + $href = "index.php?$qs"; + + $buttons['deletemap'] = array('active' => false, 'text' => "" . + html_print_image("images/delete_mc.png", true, array ("title" => __('Delete map'))) .""); + + $qs = http_build_query(array( + "sec" => "network", + "sec2" => "operation/agentes/networkmap", + "id_networkmap" => $id_networkmap, + "save_networkmap" => 1, + "tab" => $activeTab, + "name" => $name, + "store_group" => $store_group, + "group" => $group, + "layout" => $layout, + "nooverlap" => $nooverlap, + "simple" => $simple, + "regen" => $regen, + "zoom" => $zoom, + "ranksep" => $$ranksep, + "font_size" => $font_size, + "depth" => $depth, + "modwithalerts" => $modwithalerts, + "text_filter" => $text_filter, + "dont_show_subgroups" => $dont_show_subgroups, + "hidepolicymodules" => $hidepolicymodules, + "module_group" => $module_group, + "hidden_options" => (int)$hidden_options, + "show_snmp_modules" => (int)$show_snmp_modules, + "l2_network" => (int)$l2_network, + "pure" => $pure + )); + $href = "index.php?$qs"; + + $buttons['savemap'] = array('active' => false, 'text' => "" . + html_print_image("images/save_mc.png", true, array ("title" => __('Save map'))) .''); +} + +// Disabled. It's a waste of resources to check the ACL of every networkmap +// for only provide a shorthand feature. +// $combolist = '
'; + +// $networkmaps = networkmap_get_networkmaps('','', true, $strict_user); +// if (empty($networkmaps)) +// $networkmaps = array(); + +// $combolist .= html_print_select($networkmaps, 'id_networkmap', $id_networkmap, +// 'onchange:this.form.submit()', '', 0, true, false, false, +// '', false, 'margin-top:4px; margin-left:3px; width:150px;'); + +// $combolist .= html_print_input_hidden('hidden_options',$hidden_options, true); + +// $combolist .= '
'; + +// $buttons['combolist'] = $combolist; + $title = ''; +$icon = "images/op_network.png"; switch ($activeTab) { case 'topology': $title = __('Topology view'); + $icon = "images/op_network.png"; break; case 'groups': $title = __('Groups view'); + $icon = "images/group.png"; break; case 'policies': $title = __('Policies view'); + $icon = "images/policies_mc.png"; break; case 'dinamic': $title = __('Dynamic view'); + $icon = "images/dynamic_network_icon.png"; break; - case 'radial_dinamic': + case 'radial_dynamic': $title = __('Radial dynamic view'); + $icon = "images/radial_dynamic_network_icon.png"; break; } @@ -311,7 +408,7 @@ if (!empty($name)) { } ui_print_page_header (__('Network map') . " - " . $title, - "images/op_network.png", false, "network_map", false, $buttons); + $icon, false, "network_map", false, $buttons); if ((tags_has_user_acl_tags()) && (!$strict_user)) { ui_print_tags_warning(); @@ -321,12 +418,6 @@ if ($delete_networkmap || $add_networkmap || $save_networkmap) { echo $message; } -if ($id_networkmap == 0) { - echo "
" . - __('There are no defined maps in this view') . "
"; - return; -} - // CONFIGURATION FORM echo "
"; @@ -498,24 +589,22 @@ $options_form .= ''; ui_toggle($options_form, __('Map options'), '', $hidden_options); -if ($id_networkmap != 0) { - switch ($activeTab) { - case 'groups': - require_once('operation/agentes/networkmap.groups.php'); - break; - case 'policies': - require_once(ENTERPRISE_DIR . '/operation/policies/networkmap.policies.php'); - break; - case 'dinamic': - require_once('operation/agentes/networkmap.dinamic.php'); - break; - case 'radial_dynamic': - require_once('operation/agentes/networkmap.dinamic.php'); - break; - default: - case 'topology': - require_once('operation/agentes/networkmap.topology.php'); - break; - } +switch ($activeTab) { + case 'groups': + require_once('operation/agentes/networkmap.groups.php'); + break; + case 'policies': + require_once(ENTERPRISE_DIR . '/operation/policies/networkmap.policies.php'); + break; + case 'dinamic': + require_once('operation/agentes/networkmap.dinamic.php'); + break; + case 'radial_dynamic': + require_once('operation/agentes/networkmap.dinamic.php'); + break; + default: + case 'topology': + require_once('operation/agentes/networkmap.topology.php'); + break; } ?> diff --git a/pandora_console/operation/agentes/networkmap.topology.php b/pandora_console/operation/agentes/networkmap.topology.php index f9799e84a0..29048be445 100644 --- a/pandora_console/operation/agentes/networkmap.topology.php +++ b/pandora_console/operation/agentes/networkmap.topology.php @@ -19,7 +19,34 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], $store_group, "AR")) { +// Networkmap id required +if (!isset($id_networkmap)) { + db_pandora_audit("ACL Violation", + "Trying to access node graph builder"); + require ("general/noaccess.php"); + exit; +} + +// Get the group for ACL +if (!isset($store_group)) { + $store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap); + if ($store_group === false) { + db_pandora_audit("ACL Violation", + "Trying to accessnode graph builder"); + require ("general/noaccess.php"); + exit; + } +} + +// ACL for the networkmap permission +if (!isset($networkmap_read)) + $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); +if (!isset($networkmap_write)) + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); +if (!isset($networkmap_manage)) + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + +if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) { db_pandora_audit("ACL Violation", "Trying to access node graph builder"); include ("general/noaccess.php"); diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index 2bb25c7211..ccd003e8c6 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -19,7 +19,12 @@ global $config; check_login (); -if (! check_acl ($config['id_user'], 0, "AR")) { +// ACL for the general permission +$networkmaps_read = check_acl ($config['id_user'], 0, "MR"); +$networkmaps_write = check_acl ($config['id_user'], 0, "MW"); +$networkmaps_manage = check_acl ($config['id_user'], 0, "MM"); + +if (!$networkmaps_read && !$networkmaps_write && !$networkmaps_manage) { db_pandora_audit("ACL Violation", "Trying to access Networkmap builder"); if (is_ajax()) { @@ -45,10 +50,15 @@ if (is_ajax()) { foreach ($ids_networkmap as $id) { $store_group = (int) db_get_value('store_group', 'tnetwork_map', 'id_networkmap',$id_networkmap); - if (check_acl ($config['id_user'], $store_group, "RM")) { + // ACL + // $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + + if ($networkmap_manage) { $results[$id] = (bool) networkmap_delete_networkmap($id); } - else if (check_acl ($config['id_user'], $store_group, "RW")) { + else if ($networkmap_write) { $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); } } @@ -74,12 +84,16 @@ $id_networkmap = get_parameter ('id_networkmap', 0); $delete_networkmap = get_parameter ('delete_networkmap', 0); if ($delete_networkmap) { - if (is_user_admin ($config['id_user'])){ + + // ACL + // $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + + if ($networkmap_manage || is_user_admin ($config['id_user'])) { $result = networkmap_delete_networkmap($id_networkmap); } - elseif (check_acl ($config['id_user'], 0, "RM")) { - $result = networkmap_delete_networkmap($id_networkmap); - }elseif (check_acl ($config['id_user'], 0, "RW")) { + else if ($networkmap_write) { $result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap); } $message = ui_print_result_message ($result, @@ -138,14 +152,13 @@ $table->style[1] = 'text-align: center;'; $table->style[2] = 'text-align: center;'; $table->style[3] = 'text-align: center;'; $table->style[4] = 'text-align: center;'; -$table->style[5] = 'text-align: center;'; $table->size = array(); $table->size[0] = '80%'; $table->size[1] = '60px'; $table->size[2] = '30px'; -if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) { +if ($networkmaps_write || $networkmaps_manage) { $table->size[3] = '30px'; $table->size[4] = '30px'; } @@ -154,11 +167,10 @@ $table->head = array(); $table->head[0] = __('Name'); $table->head[1] = __('Type'); $table->head[2] = __('Group'); -if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) { - $table->head[3] = __('Edit'); - $table->head[4] = __('Delete'); +if ($networkmaps_write || $networkmaps_manage) { + $table->head[3] = __('Delete'); // Checkbox to select all the another checkboxes - $table->head[5] = html_print_checkbox('check_delete_all', 0, false, true); + $table->head[4] = html_print_checkbox('check_delete_all', 0, false, true); } $id_groups = array_keys(users_get_groups()); @@ -187,32 +199,36 @@ else { $table->data = array(); foreach ($network_maps as $network_map) { // ACL - if (!check_acl ($config['id_user'], $network_map['store_group'], "RR")) + $networkmap_read = check_acl ($config['id_user'], $store_group, "MR"); + $networkmap_write = check_acl ($config['id_user'], $store_group, "MW"); + $networkmap_manage = check_acl ($config['id_user'], $store_group, "MM"); + + // ACL + if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) continue; // If enterprise not loaded then skip this code - if ($network_map['type'] == 'policies' and (!defined('PANDORA_ENTERPRISE'))) + if ($network_map['type'] == 'policies' && !defined('PANDORA_ENTERPRISE')) continue; - if (($network_map['type'] == 'radial_dynamic' || $network_map['type'] == 'policies') && ($strict_user)) { + if (($network_map['type'] == 'radial_dynamic' || $network_map['type'] == 'policies') && $strict_user) { continue; } $data = array(); - $data[0] = '' . $network_map['name'] . ''; + $data[0] = '' . $network_map['name'] . ''; $data[1] = $network_map['type']; $data[2] = ui_print_group_icon ($network_map['store_group'], true); - if (check_acl ($config['id_user'], $network_map['store_group'], "RW") || check_acl ($config['id_user'], $network_map['store_group'], "RM")) { - $data[3] = '' . html_print_image("images/config.png", true) . ''; - $data[4] = '' . html_print_image('images/cross.png', true) . ''; + if ($networkmap_write || $networkmap_manage) { + $data[3] = '' . html_print_image('images/cross.png', true) . ''; // The value of the checkbox will be the networkmap id to recover it in js to perform the massive deletion - $data[5] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true); + $data[4] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true); } else { $data[3] = ''; $data[4] = ''; - $data[5] = ''; } $table->data[] = $data; @@ -222,7 +238,7 @@ else { } // Create networkmap form -if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) { +if ($networkmaps_write || $networkmaps_manage) { $table_manage = new StdClass(); $table_manage->width = "100%"; $table_manage->style = array(); diff --git a/pandora_console/operation/visual_console/render_view.php b/pandora_console/operation/visual_console/render_view.php index 048f2e5f85..e4ae5c1d82 100755 --- a/pandora_console/operation/visual_console/render_view.php +++ b/pandora_console/operation/visual_console/render_view.php @@ -74,7 +74,12 @@ $bheight = $layout["height"]; $pure_url = "&pure=" . $config["pure"]; -if (! check_acl ($config["id_user"], $id_group, "RR")) { +// ACL +$vconsole_read = check_acl ($config["id_user"], $id_group, "VR"); +$vconsole_write = check_acl ($config["id_user"], $id_group, "VW"); +$vconsole_manage = check_acl ($config["id_user"], $id_group, "VM"); + +if (! $vconsole_read) { db_pandora_audit("ACL Violation", "Trying to access visual console without group access"); require ("general/noaccess.php"); @@ -89,7 +94,7 @@ $options['consoles_list']['text'] = html_print_image ("images/visual_console.png", true, array ("title" => __('Visual consoles list'))) . ''; -if (check_acl ($config["id_user"], $id_group, "RW")) { +if ($vconsole_write || $vconsole_manage) { $url_base = 'index.php?sec=reporting&sec2=godmode/reporting/visual_console_builder&action='; $hash = md5($config["dbpass"] . $id_layout . $config["id_user"]); @@ -123,7 +128,7 @@ if (check_acl ($config["id_user"], $id_group, "RW")) { $options['view']['text'] = '' . html_print_image ("images/operation.png", true, array ("title" => __('View'))) .''; $options['view']['active'] = true; -if (!defined('METACONSOLE')) { +if (! defined('METACONSOLE')) { if ($config["pure"] == 0) { $options['pure']['text'] = '' . html_print_image ("images/full_screen.png", true, array ("title" => __('Full screen mode'))) . ""; @@ -138,18 +143,15 @@ if (!defined('METACONSOLE')) { $options = array('view' => $options['view'], 'pure' => $options['pure']); } $options['pure']['active'] = false; -} - -//Set the hidden value for the javascript -if (defined('METACONSOLE')) { - html_print_input_hidden('metaconsole', 1); -} -else { + + //Set the hidden value for the javascript html_print_input_hidden('metaconsole', 0); ui_print_page_header ($layout_name, "images/visual_console.png", false, '', false, $options); } - - +else { + //Set the hidden value for the javascript + html_print_input_hidden('metaconsole', 1); +} visual_map_print_visual_map ($id_layout); From d25c32b76dc17488dec01a297d187a9a1e7ea428 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Thu, 9 Apr 2015 15:03:26 +0200 Subject: [PATCH 051/191] Added some lost columns to check the ACL permissions --- pandora_console/include/functions.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index 3183b8e6f5..e8cdef04b1 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -1770,7 +1770,9 @@ function check_acl($id_user, $id_group, $access, $id_agent = 0) { tperfil.report_view, tperfil.report_edit, tperfil.report_management, tperfil.event_view, tperfil.event_edit, tperfil.event_management, - tperfil.agent_disable + tperfil.agent_disable, + tperfil.map_view, tperfil.map_edit, tperfil.map_management, + tperfil.vconsole_view, tperfil.vconsole_edit, tperfil.vconsole_management FROM tusuario_perfil, tperfil WHERE tusuario_perfil.id_perfil = tperfil.id_perfil AND tusuario_perfil.id_usuario = '%s'", $id_user); @@ -1785,7 +1787,9 @@ function check_acl($id_user, $id_group, $access, $id_agent = 0) { tperfil.report_view, tperfil.report_edit, tperfil.report_management, tperfil.event_view, tperfil.event_edit, tperfil.event_management, - tperfil.agent_disable + tperfil.agent_disable, + tperfil.map_view, tperfil.map_edit, tperfil.map_management, + tperfil.vconsole_view, tperfil.vconsole_edit, tperfil.vconsole_management FROM tusuario_perfil, tperfil WHERE tusuario_perfil.id_perfil = tperfil.id_perfil AND tusuario_perfil.id_usuario = '%s' From 01149f214a7e4be842fc2d97dac0aae9102adbe3 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Thu, 9 Apr 2015 15:04:23 +0200 Subject: [PATCH 052/191] Changed lateral menu, order options and eliminate options --- pandora_console/extensions/agents_alerts.php | 2 +- pandora_console/extensions/agents_modules.php | 2 +- pandora_console/extensions/api_checker.php | 2 +- pandora_console/extensions/db_status.php | 2 +- pandora_console/extensions/dbmanager.php | 2 +- pandora_console/extensions/module_groups.php | 2 +- pandora_console/extensions/pandora_logs.php | 2 +- .../extensions/realtime_graphs.php | 2 +- .../extensions/resource_exportation.php | 2 +- .../extensions/resource_registration.php | 2 +- pandora_console/extensions/system_info.php | 2 +- pandora_console/general/main_menu.php | 31 +- pandora_console/godmode/menu.php | 355 +++++++++--------- pandora_console/images/camera.disabled.png | Bin 1592 -> 466 bytes pandora_console/images/camera.png | Bin 1551 -> 475 bytes pandora_console/images/camera_mc.png | Bin 1391 -> 475 bytes pandora_console/images/category.png | Bin 1339 -> 417 bytes pandora_console/images/category_col.png | Bin 1593 -> 417 bytes pandora_console/images/chart.png | Bin 1443 -> 489 bytes pandora_console/images/chart_bar.disabled.png | Bin 1236 -> 301 bytes pandora_console/images/chart_bar.png | Bin 1246 -> 304 bytes .../images/chart_curve.disabled.png | Bin 1553 -> 490 bytes pandora_console/images/chart_curve.png | Bin 1707 -> 489 bytes pandora_console/images/clock.png | Bin 1749 -> 562 bytes pandora_console/images/clock2.png | Bin 1749 -> 562 bytes pandora_console/images/cog.png | Bin 1531 -> 497 bytes pandora_console/images/collapse.png | Bin 1361 -> 472 bytes pandora_console/images/collection.png | Bin 1201 -> 303 bytes pandora_console/images/collection_col.png | Bin 1231 -> 303 bytes pandora_console/images/comments.png | Bin 1402 -> 459 bytes pandora_console/images/config.disabled.png | Bin 1547 -> 444 bytes pandora_console/images/config.png | Bin 1464 -> 458 bytes pandora_console/images/config_mc.png | Bin 1314 -> 458 bytes pandora_console/images/control_next.png | Bin 1375 -> 484 bytes pandora_console/images/control_pause.png | Bin 1393 -> 465 bytes pandora_console/images/control_pause_col.png | Bin 1462 -> 465 bytes pandora_console/images/control_play.png | Bin 1405 -> 474 bytes pandora_console/images/control_play_col.png | Bin 1468 -> 474 bytes pandora_console/images/control_prev.png | Bin 1366 -> 502 bytes pandora_console/images/control_stop.png | Bin 1354 -> 451 bytes pandora_console/images/control_stop_col.png | Bin 1427 -> 451 bytes pandora_console/images/copy.png | Bin 1333 -> 357 bytes .../images/copy_visualmap.disabled.png | Bin 1245 -> 345 bytes pandora_console/images/create_directory.png | Bin 1432 -> 354 bytes pandora_console/images/create_file.png | Bin 1483 -> 394 bytes pandora_console/images/cross_double.png | Bin 1836 -> 602 bytes pandora_console/images/cross_undo.png | Bin 1766 -> 593 bytes pandora_console/images/csv_mc.png | Bin 1328 -> 408 bytes pandora_console/images/custom_columns.png | Bin 1339 -> 368 bytes pandora_console/images/custom_field.png | Bin 1306 -> 379 bytes pandora_console/images/custom_field_col.png | Bin 1405 -> 379 bytes pandora_console/images/darrowdown.png | Bin 1234 -> 314 bytes pandora_console/images/darrowleft.png | Bin 1181 -> 349 bytes pandora_console/images/darrowright.png | Bin 1205 -> 365 bytes pandora_console/images/darrowup.png | Bin 1247 -> 324 bytes pandora_console/images/dashboard.png | Bin 1310 -> 401 bytes pandora_console/images/dashboard_col.png | Bin 1597 -> 401 bytes pandora_console/images/delete_mc.png | Bin 1407 -> 497 bytes pandora_console/images/down.png | Bin 1087 -> 314 bytes pandora_console/images/enterprise.png | Bin 1253 -> 326 bytes pandora_console/images/event_responses.png | Bin 1384 -> 415 bytes pandora_console/images/filter_mc.png | Bin 1321 -> 404 bytes pandora_console/images/full_screen.png | Bin 1368 -> 517 bytes pandora_console/images/gm_agent.png | Bin 1387 -> 440 bytes pandora_console/images/gm_alerts.png | Bin 1517 -> 450 bytes pandora_console/images/gm_category.png | Bin 1394 -> 488 bytes pandora_console/images/gm_db.png | Bin 1390 -> 477 bytes pandora_console/images/gm_events.png | Bin 1478 -> 433 bytes pandora_console/images/gm_gis.png | Bin 1554 -> 468 bytes pandora_console/images/gm_global.png | Bin 0 -> 432 bytes .../images/gm_massive_operations.png | Bin 1230 -> 505 bytes pandora_console/images/gm_modules.png | Bin 1457 -> 559 bytes pandora_console/images/gm_monitoring.png | Bin 1403 -> 555 bytes pandora_console/images/gm_netflow.png | Bin 1374 -> 631 bytes pandora_console/images/gm_policies.png | Bin 1422 -> 456 bytes pandora_console/images/gm_servers.png | Bin 1470 -> 555 bytes pandora_console/images/gm_setup.png | Bin 1413 -> 575 bytes pandora_console/images/gm_tag.png | Bin 1438 -> 524 bytes pandora_console/images/gm_users.png | Bin 1425 -> 518 bytes pandora_console/images/go.png | Bin 1052 -> 365 bytes pandora_console/images/go_first.png | Bin 1352 -> 417 bytes pandora_console/images/go_last.png | Bin 1337 -> 404 bytes pandora_console/images/go_next.png | Bin 1332 -> 365 bytes pandora_console/images/go_previous.png | Bin 1313 -> 349 bytes pandora_console/images/graphmenu_arrow.png | Bin 1268 -> 365 bytes .../images/graphmenu_arrow_hide.png | Bin 325 -> 349 bytes pandora_console/images/group.png | Bin 1263 -> 447 bytes pandora_console/images/group_sync.png | Bin 1362 -> 529 bytes pandora_console/images/heart.png | Bin 1329 -> 408 bytes pandora_console/images/home.png | Bin 1286 -> 430 bytes pandora_console/images/hourglass.png | Bin 744 -> 411 bytes pandora_console/images/hourglass_white.png | Bin 1306 -> 411 bytes pandora_console/images/images.png | Bin 1436 -> 563 bytes pandora_console/images/key.png | Bin 1325 -> 426 bytes pandora_console/images/link.png | Bin 1345 -> 514 bytes pandora_console/images/list.png | Bin 1342 -> 376 bytes pandora_console/images/lock_mc.png | Bin 1400 -> 454 bytes pandora_console/images/mc_plugin.png | Bin 331 -> 401 bytes pandora_console/images/mg_modules.png | Bin 1457 -> 574 bytes pandora_console/images/mod_data_inc_abs.jpg | Bin 0 -> 2047 bytes pandora_console/images/mod_data_inc_abs.png | Bin 0 -> 1837 bytes pandora_console/images/module_group.png | Bin 1323 -> 465 bytes pandora_console/images/module_mc.png | Bin 1407 -> 521 bytes pandora_console/images/module_sync.png | Bin 1454 -> 576 bytes pandora_console/images/network_mc.png | Bin 1289 -> 422 bytes pandora_console/images/normal_screen.png | Bin 1414 -> 564 bytes pandora_console/images/op_alerts.png | Bin 1393 -> 429 bytes pandora_console/images/op_events.png | Bin 1284 -> 363 bytes pandora_console/images/op_gis.png | Bin 1402 -> 425 bytes pandora_console/images/op_inventory.png | Bin 1382 -> 485 bytes pandora_console/images/op_monitoring.png | Bin 1425 -> 559 bytes .../images/op_monitoring_selected.png | Bin 0 -> 1539 bytes pandora_console/images/op_netflow.png | Bin 1368 -> 613 bytes pandora_console/images/op_recon.png | Bin 1506 -> 677 bytes pandora_console/images/op_reporting.png | Bin 1256 -> 360 bytes pandora_console/images/op_satellite.png | Bin 1428 -> 468 bytes pandora_console/images/op_snmp.png | Bin 1148 -> 328 bytes pandora_console/images/op_workspace.png | Bin 1331 -> 446 bytes pandora_console/images/operating_system.png | Bin 1262 -> 356 bytes pandora_console/images/operation.png | Bin 1338 -> 521 bytes .../include/functions_extensions.php | 8 +- pandora_console/include/functions_menu.php | 15 +- pandora_console/include/styles/menu.css | 6 +- pandora_console/include/styles/pandora.css | 233 +++++++----- pandora_console/operation/menu.php | 271 +++++++------ 125 files changed, 504 insertions(+), 437 deletions(-) mode change 100644 => 100755 pandora_console/images/camera.disabled.png mode change 100644 => 100755 pandora_console/images/camera.png mode change 100644 => 100755 pandora_console/images/category.png mode change 100644 => 100755 pandora_console/images/category_col.png mode change 100644 => 100755 pandora_console/images/chart_bar.disabled.png mode change 100644 => 100755 pandora_console/images/chart_bar.png mode change 100644 => 100755 pandora_console/images/chart_curve.disabled.png mode change 100644 => 100755 pandora_console/images/chart_curve.png mode change 100644 => 100755 pandora_console/images/clock.png mode change 100644 => 100755 pandora_console/images/clock2.png mode change 100644 => 100755 pandora_console/images/cog.png mode change 100644 => 100755 pandora_console/images/collapse.png mode change 100644 => 100755 pandora_console/images/collection_col.png mode change 100644 => 100755 pandora_console/images/comments.png mode change 100644 => 100755 pandora_console/images/config.png mode change 100644 => 100755 pandora_console/images/config_mc.png mode change 100644 => 100755 pandora_console/images/control_pause.png mode change 100644 => 100755 pandora_console/images/control_pause_col.png mode change 100644 => 100755 pandora_console/images/control_play.png mode change 100644 => 100755 pandora_console/images/control_play_col.png mode change 100644 => 100755 pandora_console/images/control_stop_col.png mode change 100644 => 100755 pandora_console/images/copy.png mode change 100644 => 100755 pandora_console/images/copy_visualmap.disabled.png mode change 100644 => 100755 pandora_console/images/create_directory.png mode change 100644 => 100755 pandora_console/images/create_file.png mode change 100644 => 100755 pandora_console/images/cross_double.png mode change 100644 => 100755 pandora_console/images/cross_undo.png mode change 100644 => 100755 pandora_console/images/custom_field.png mode change 100644 => 100755 pandora_console/images/custom_field_col.png mode change 100644 => 100755 pandora_console/images/darrowdown.png mode change 100644 => 100755 pandora_console/images/darrowleft.png mode change 100644 => 100755 pandora_console/images/darrowright.png mode change 100644 => 100755 pandora_console/images/darrowup.png mode change 100644 => 100755 pandora_console/images/dashboard.png mode change 100644 => 100755 pandora_console/images/dashboard_col.png mode change 100644 => 100755 pandora_console/images/down.png mode change 100644 => 100755 pandora_console/images/enterprise.png mode change 100644 => 100755 pandora_console/images/gm_agent.png mode change 100644 => 100755 pandora_console/images/gm_category.png create mode 100644 pandora_console/images/gm_global.png mode change 100644 => 100755 pandora_console/images/gm_tag.png mode change 100644 => 100755 pandora_console/images/go.png mode change 100644 => 100755 pandora_console/images/go_first.png mode change 100644 => 100755 pandora_console/images/go_last.png mode change 100644 => 100755 pandora_console/images/go_next.png mode change 100644 => 100755 pandora_console/images/go_previous.png mode change 100644 => 100755 pandora_console/images/graphmenu_arrow.png mode change 100644 => 100755 pandora_console/images/graphmenu_arrow_hide.png mode change 100644 => 100755 pandora_console/images/group.png mode change 100644 => 100755 pandora_console/images/group_sync.png mode change 100644 => 100755 pandora_console/images/heart.png mode change 100644 => 100755 pandora_console/images/hourglass.png mode change 100644 => 100755 pandora_console/images/hourglass_white.png mode change 100644 => 100755 pandora_console/images/images.png mode change 100644 => 100755 pandora_console/images/key.png mode change 100644 => 100755 pandora_console/images/link.png mode change 100644 => 100755 pandora_console/images/lock_mc.png create mode 100644 pandora_console/images/mod_data_inc_abs.jpg create mode 100644 pandora_console/images/mod_data_inc_abs.png mode change 100644 => 100755 pandora_console/images/module_sync.png mode change 100644 => 100755 pandora_console/images/network_mc.png create mode 100755 pandora_console/images/op_monitoring_selected.png mode change 100644 => 100755 pandora_console/images/op_satellite.png mode change 100644 => 100755 pandora_console/images/operating_system.png diff --git a/pandora_console/extensions/agents_alerts.php b/pandora_console/extensions/agents_alerts.php index fb2ec74d45..557bacb31a 100755 --- a/pandora_console/extensions/agents_alerts.php +++ b/pandora_console/extensions/agents_alerts.php @@ -330,7 +330,7 @@ function print_alerts_summary_modal_window($id, $alerts) { echo ''; } -extensions_add_operation_menu_option(__("Agents/Alerts view"), 'estado', null, "v1r1"); +extensions_add_operation_menu_option(__("Agents/Alerts view"), 'estado', null, "v1r1","view"); extensions_add_main_function('mainAgentsAlerts'); ui_require_jquery_file('pandora'); diff --git a/pandora_console/extensions/agents_modules.php b/pandora_console/extensions/agents_modules.php index 89dbe4e489..410af0f7d2 100644 --- a/pandora_console/extensions/agents_modules.php +++ b/pandora_console/extensions/agents_modules.php @@ -392,7 +392,7 @@ function mainAgentsModules() { "; } -extensions_add_operation_menu_option(__("Agents/Modules view"), 'estado', 'agents_modules/icon_menu.png', "v1r1"); +extensions_add_operation_menu_option(__("Agents/Modules view"), 'estado', 'agents_modules/icon_menu.png', "v1r1","view"); extensions_add_main_function('mainAgentsModules'); ?> diff --git a/pandora_console/extensions/api_checker.php b/pandora_console/extensions/api_checker.php index 6482a8ee3e..bc2f266cb7 100755 --- a/pandora_console/extensions/api_checker.php +++ b/pandora_console/extensions/api_checker.php @@ -216,5 +216,5 @@ function extension_api_checker() { } extensions_add_godmode_function('extension_api_checker'); -extensions_add_godmode_menu_option(__('API checker'), 'PM', 'gsetup', null, "v1r1"); +extensions_add_godmode_menu_option(__('API checker'), 'PM', 'gextensions', null, "v1r1"); ?> \ No newline at end of file diff --git a/pandora_console/extensions/db_status.php b/pandora_console/extensions/db_status.php index 248a1b3be1..2a7b802e9b 100755 --- a/pandora_console/extensions/db_status.php +++ b/pandora_console/extensions/db_status.php @@ -362,5 +362,5 @@ function extension_db_status_execute_sql_file($url, $connection) { } extensions_add_godmode_function('extension_db_status'); -extensions_add_godmode_menu_option(__('DB Status'), 'PM', 'gdbman', null, "v1r1"); +extensions_add_godmode_menu_option(__('DB Status'), 'PM', 'gextensions', null, "v1r1", 'gdbman'); ?> \ No newline at end of file diff --git a/pandora_console/extensions/dbmanager.php b/pandora_console/extensions/dbmanager.php index 754012022a..06371bcf3e 100644 --- a/pandora_console/extensions/dbmanager.php +++ b/pandora_console/extensions/dbmanager.php @@ -158,7 +158,7 @@ function dbmgr_extension_main () { } /* This adds a option in the operation menu */ -extensions_add_godmode_menu_option (__('DB interface'), 'PM','gdbman',"dbmanager/icon.png","v1r1"); +extensions_add_godmode_menu_option (__('DB interface'), 'PM','gextensions',"dbmanager/icon.png","v1r1", 'gdbman'); /* This sets the function to be called when the extension is selected in the operation menu */ extensions_add_godmode_function ('dbmgr_extension_main'); diff --git a/pandora_console/extensions/module_groups.php b/pandora_console/extensions/module_groups.php index b6177a1b0b..aade3cac02 100644 --- a/pandora_console/extensions/module_groups.php +++ b/pandora_console/extensions/module_groups.php @@ -320,6 +320,6 @@ function mainModuleGroups() { diff --git a/pandora_console/extensions/pandora_logs.php b/pandora_console/extensions/pandora_logs.php index 7a5cecaa74..f129f7b45d 100644 --- a/pandora_console/extensions/pandora_logs.php +++ b/pandora_console/extensions/pandora_logs.php @@ -80,7 +80,7 @@ function pandoralogs_extension_main () { view_logfile ($logs_directory."/pandora_server.error"); } -extensions_add_godmode_menu_option (__('System logfiles'), 'PM','glog', null, "v1r1"); +extensions_add_godmode_menu_option (__('System logfiles'), 'PM','', null, "v1r1"); extensions_add_godmode_function('pandoralogs_extension_main'); ?> \ No newline at end of file diff --git a/pandora_console/extensions/realtime_graphs.php b/pandora_console/extensions/realtime_graphs.php index 5288607e6d..49729935fd 100644 --- a/pandora_console/extensions/realtime_graphs.php +++ b/pandora_console/extensions/realtime_graphs.php @@ -128,7 +128,7 @@ function pandora_realtime_graphs () { set_js_value('timezone_offset', date('Z', time())); } -extensions_add_operation_menu_option (__('Realtime graphs'), null, null, "v1r1"); +extensions_add_operation_menu_option (__('Realtime graphs'), "estado", null, "v1r1","view"); extensions_add_main_function ('pandora_realtime_graphs'); $db = NULL; diff --git a/pandora_console/extensions/resource_exportation.php b/pandora_console/extensions/resource_exportation.php index 4d05a97be3..a6533cf914 100755 --- a/pandora_console/extensions/resource_exportation.php +++ b/pandora_console/extensions/resource_exportation.php @@ -52,7 +52,7 @@ if (isset($_GET['get_ptr'])) { } } else { - extensions_add_godmode_menu_option (__('Resource exportation'), 'PM','gservers','', "v1r1"); + extensions_add_godmode_menu_option (__('Resource exportation'), 'PM','gagente','', "v1r1"); extensions_add_godmode_function('resource_exportation_extension_main'); } diff --git a/pandora_console/extensions/resource_registration.php b/pandora_console/extensions/resource_registration.php index 56efebe67b..01f015820e 100755 --- a/pandora_console/extensions/resource_registration.php +++ b/pandora_console/extensions/resource_registration.php @@ -872,6 +872,6 @@ function resource_registration_extension_main() { process_upload_xml($xml); } -extensions_add_godmode_menu_option (__('Resource registration'), 'PM','gservers','', "v1r1"); +extensions_add_godmode_menu_option (__('Resource registration'), 'PM','gagente','', "v1r1"); extensions_add_godmode_function('resource_registration_extension_main'); ?> diff --git a/pandora_console/extensions/system_info.php b/pandora_console/extensions/system_info.php index b1cc79a235..4c7b17e8db 100644 --- a/pandora_console/extensions/system_info.php +++ b/pandora_console/extensions/system_info.php @@ -802,7 +802,7 @@ function consoleMode() { if (!isset($argv)) { //Execution across the browser extensions_add_godmode_function('mainSystemInfo'); - extensions_add_godmode_menu_option(__('System Info'), 'PM', 'gsetup', null, "v1r1"); + extensions_add_godmode_menu_option(__('System Info'), 'PM', 'gextensions', null, "v1r1"); } else { $dir = dirname($_SERVER['PHP_SELF']); diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 5679a405ed..65b849bd62 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -27,9 +27,6 @@ if (isset ($config["autohidden_menu"]) && $config["autohidden_menu"]) { } $menu_container_id = ''; -if ($autohidden_menu) { - $menu_container_id = 'menu_container'; -} // Menu container prepared to autohide menu echo '
'; @@ -126,7 +123,7 @@ $(document).ready( function() { $.cookie(cookie_name_encoded, JSON.stringify(menuState), {expires: 7}); }); - //Cerrar aqui los comentarios cuando esté el menu terminado*/ + //Cerrar aqui los comentarios cuando esté el menu terminado if (fixed_menu) { $('div#menu') .css('position', 'fixed') @@ -192,16 +189,16 @@ $(document).ready( function() { $('.bg3').css('color', $('.bg3').css('background-color')); $('.bg4').css('color', $('.bg4').css('background-color')); } - + */ if (autohidden_menu) { //handlerIn, handlerOut); - openTime = 0; - handsIn = 0; + //openTime = 0; + //handsIn = 0; //$('#main').css('margin-left', '50px'); //hide_menu_pretty(); - + /* $('#menu').hover(function() { handsIn = 1; if (openTime == 0) { @@ -218,6 +215,24 @@ $(document).ready( function() { } }, 3500); }); + */ + $('#menu').css('width', '115px'); + $('#main').css('margin', '0% 1.5% 0% 0%'); + $('li.menu_icon').addClass( " no_hidden_menu" ); + $('ul.submenu').css('left', '114px'); + $(window).resize( function() { + if($(window).width() <= 1262){ + $('#main').css('width', '86%'); + } + else{ + if($(window).width() >= 1300){ + $('#main').css('width', '90%'); + } + } + }); + } + else{ + $('div#title_menu').hide(); } }); /* ]]> */ diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 78452f2d85..6c484e4655 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -25,84 +25,97 @@ $menu_godmode = array (); $menu_godmode['class'] = 'godmode'; if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AD")) { - $menu_godmode["gagente"]["text"] = __('Manage monitoring'); + $menu_godmode["gagente"]["text"] = __('Resource management'); $menu_godmode["gagente"]["sec2"] = "godmode/agentes/modificar_agente"; $menu_godmode["gagente"]["id"] = "god-agents"; - + if (check_acl ($config['id_user'], 0, "AW")) { $sub = array (); $sub['godmode/agentes/modificar_agente']['text'] = __('Manage agents'); $sub["godmode/agentes/modificar_agente"]["subsecs"] = array( "godmode/agentes/configurar_agente"); - - enterprise_hook("duplicate_confi_submenu"); - - $sub["godmode/groups/group_list"]["text"] = __('Manage groups'); -/* - $sub["godmode/agentes/planned_downtime.list"]["text"] = __('Scheduled downtime'); -*/ - + if (check_acl ($config["id_user"], 0, "PM")) { - $sub["godmode/agentes/fields_manager"]["text"] = __('Manage custom fields'); + $sub["godmode/agentes/fields_manager"]["text"] = __('Custom fields'); } - enterprise_hook('agents_submenu'); - + + $sub["godmode/modules/manage_nc_groups"]["text"] = __('Component groups'); + // Category + $sub["godmode/category/category"]["text"] = __('Module categories'); + $sub["godmode/category/category"]["subsecs"] = "godmode/category/edit_category"; + $sub["godmode/modules/module_list"]["text"] = __('Module types'); + + if (check_acl ($config["id_user"], 0, "PM")) { + $sub["godmode/groups/modu_group_list"]["text"] = __('Module groups'); + } + // GIS + if (check_acl ($config['id_user'], 0, "IW")) { + if ($config['activate_gis']) { + $sub["godmode/gis_maps/index"]["text"] = __('GIS Maps builder'); + $sub["godmode/gis_maps/index"]["refr"] = (int)get_parameter('refr', 60); + } + } + + if ($config['activate_netflow']) { + //Netflow + $sub["godmode/netflow/nf_edit"]["text"] = __('Netflow filters'); + } + $menu_godmode["gagente"]["sub"] = $sub; } - + } -if (check_acl ($config['id_user'], 0, "AW")) { - $menu_godmode["gmassive"]["text"] = __('Massive operations'); - $menu_godmode["gmassive"]["sec2"] = "godmode/massive/massive_operations"; - $menu_godmode["gmassive"]["id"] = "god-massive"; - +if (check_acl ($config['id_user'], 0, "UM")) { + $menu_godmode["gusuarios"]["text"] = __('Profile management'); + $menu_godmode["gusuarios"]["sec2"] = "godmode/users/user_list"; + $menu_godmode["gusuarios"]["id"] = "god-users"; + $sub = array (); - $sub["godmode/massive/massive_operations&tab=massive_agents"]["text"] = __('Agents operations'); - $sub["godmode/massive/massive_operations&tab=massive_modules"]["text"] = __('Modules operations'); - if (check_acl ($config['id_user'], 0, "PM")) { - $sub["godmode/massive/massive_operations&tab=massive_users"]["text"] = __('Users operations'); - } - $sub["godmode/massive/massive_operations&tab=massive_alerts"]["text"] = __('Alerts operations'); - enterprise_hook('massivepolicies_submenu'); - enterprise_hook('massivesnmp_submenu'); - enterprise_hook('massivesatellite_submenu'); - - $menu_godmode["gmassive"]["sub"] = $sub; -} + $sub['godmode/users/user_list']['text'] = __('Users management'); + $sub['godmode/users/profile_list']['text'] = __('Profile management'); + $sub["godmode/groups/group_list"]["text"] = __('Manage agents groups'); + // Tag + $sub["godmode/tag/tag"]["text"] = __('Module tags'); + $sub["godmode/tag/tag"]["subsecs"] = "godmode/tag/edit_tag"; -/* -if (check_acl ($config['id_user'], 0, "AW")) { - enterprise_hook ('services_godmenu'); + enterprise_hook ('enterprise_acl_submenu'); + $menu_godmode["gusuarios"]["sub"] = $sub; } -*/ if (check_acl ($config['id_user'], 0, "PM")) { - $menu_godmode["gmodules"]["text"] = __('Manage modules'); + $menu_godmode["gmodules"]["text"] = __('Configuration management'); $menu_godmode["gmodules"]["sec2"] = "godmode/modules/manage_network_templates"; $menu_godmode["gmodules"]["id"] = "god-modules"; - + $sub = array (); - $sub["godmode/modules/manage_nc_groups"]["text"] = __('Component groups'); + $sub["godmode/modules/manage_network_components"]["text"] = __('Network components'); enterprise_hook ('components_submenu'); $sub["godmode/modules/manage_network_templates"]["text"] = __('Module templates'); enterprise_hook ('inventory_submenu'); - - // Tag - $sub["godmode/tag/tag"]["text"] = __('Manage tags'); - $sub["godmode/tag/tag"]["subsecs"] = "godmode/tag/edit_tag"; - - // Category - $sub["godmode/category/category"]["text"] = __('Manage categories'); - $sub["godmode/category/category"]["subsecs"] = "godmode/category/edit_category"; - - $sub["godmode/modules/module_list"]["text"] = __('Module types'); - - if (check_acl ($config["id_user"], 0, "PM")) { - $sub["godmode/groups/modu_group_list"]["text"] = __('Module groups'); + if (check_acl ($config['id_user'], 0, "AW")) { + enterprise_hook ('policies_menu'); } - + enterprise_hook('agents_submenu'); + if (check_acl ($config['id_user'], 0, "AW")) { + $sub["gmassive"]["text"] = __('Massive operations'); + + $sub2 = array (); + $sub2["godmode/massive/massive_operations&tab=massive_agents"]["text"] = __('Agents operations'); + $sub2["godmode/massive/massive_operations&tab=massive_modules"]["text"] = __('Modules operations'); + if (check_acl ($config['id_user'], 0, "PM")) { + $sub2["godmode/massive/massive_operations&tab=massive_users"]["text"] = __('Users operations'); + } + $sub2["godmode/massive/massive_operations&tab=massive_alerts"]["text"] = __('Alerts operations'); + enterprise_hook('massivepolicies_submenu'); + enterprise_hook('massivesnmp_submenu'); + enterprise_hook('massivesatellite_submenu'); + + $sub["gmassive"]["sub2"] = $sub2; + } + + $menu_godmode["gmodules"]["sub"] = $sub; } @@ -110,198 +123,158 @@ if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, $menu_godmode["galertas"]["text"] = __('Manage alerts'); $menu_godmode["galertas"]["sec2"] = "godmode/alerts/alert_list"; $menu_godmode["galertas"]["id"] = "god-alerts"; - + if (check_acl ($config['id_user'], 0, "LM")) { $sub = array (); $sub["godmode/alerts/alert_templates"]["text"] = __('Templates'); $sub["godmode/alerts/alert_actions"]["text"] = __('Actions'); - + if (check_acl ($config['id_user'], 0, "PM")) { $sub["godmode/alerts/alert_commands"]["text"] = __('Commands'); } $sub["godmode/alerts/alert_special_days"]["text"] = __('Special days list'); enterprise_hook('eventalerts_submenu'); - + $sub["godmode/snmpconsole/snmp_alert"]["text"] = __("SNMP alerts"); + $menu_godmode["galertas"]["sub"] = $sub; } } -if (check_acl ($config['id_user'], 0, "AW")) { - enterprise_hook ('policies_menu'); -} - -if (check_acl ($config['id_user'], 0, "UM")) { - $menu_godmode["gusuarios"]["text"] = __('Manage users'); - $menu_godmode["gusuarios"]["sec2"] = "godmode/users/user_list"; - $menu_godmode["gusuarios"]["id"] = "god-users"; - - $sub = array (); - $sub['godmode/users/profile_list']['text'] = __('Manage profiles'); - - $menu_godmode["gusuarios"]["sub"] = $sub; -} - -// GIS -if (check_acl ($config['id_user'], 0, "IW")) { - - if ($config['activate_gis']) { - $menu_godmode["godgismaps"]["text"] = __('GIS Maps builder'); - $menu_godmode["godgismaps"]["sec2"] = "godmode/gis_maps/index"; - $menu_godmode["godgismaps"]["refr"] = (int)get_parameter('refr', 60); - $menu_godmode["godgismaps"]["id"] = "god-gismaps"; - } -} - if (check_acl ($config['id_user'], 0, "EW")) { // Manage events $menu_godmode["geventos"]["text"] = __('Manage events'); $menu_godmode["geventos"]["sec2"] = "godmode/events/events&section=filter"; $menu_godmode["geventos"]["id"] = "god-events"; - + // Custom event fields $sub = array (); $sub["godmode/events/events&section=filter"]["text"] = __('Event filters'); - + if (check_acl ($config['id_user'], 0, "PM")) { $sub["godmode/events/events&section=fields"]["text"] = __('Custom events'); $sub["godmode/events/events&section=responses"]["text"] = __('Event responses'); } - + $menu_godmode["geventos"]["sub"] = $sub; } if (check_acl ($config['id_user'], 0, "AW")) { - // Servers $menu_godmode["gservers"]["text"] = __('Manage servers'); $menu_godmode["gservers"]["sec2"] = "godmode/servers/modificar_server"; $menu_godmode["gservers"]["id"] = "god-servers"; - + $sub = array (); - $sub["godmode/servers/manage_recontask"]["text"] = __('Manage recontask'); - + $sub["godmode/servers/modificar_server"]["text"] = __('Manage servers'); + $sub["godmode/servers/manage_recontask"]["text"] = __('Recon task'); + //This subtabs are only for Pandora Admin if (check_acl ($config['id_user'], 0, "PM")) { - $sub["godmode/servers/plugin"]["text"] = __('Manage plugins'); - - $sub["godmode/servers/recon_script"]["text"] = __('Manage recon script'); - + $sub["godmode/servers/plugin"]["text"] = __('Plugins'); + + $sub["godmode/servers/recon_script"]["text"] = __('Recon script'); + enterprise_hook('export_target_submenu'); } - + $menu_godmode["gservers"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "LW")) { - enterprise_hook ('snmpconsole_menu'); -} - if (check_acl ($config['id_user'], 0, "PM")) { - // Audit - $menu_godmode["glog"]["text"] = __('System audit log'); - $menu_godmode["glog"]["sec2"] = "godmode/admin_access_logs"; - $menu_godmode["glog"]["id"] = "god-audit"; - // Setup $menu_godmode["gsetup"]["text"] = __('Setup'); $menu_godmode["gsetup"]["sec2"] = "godmode/setup/setup§ion=general"; $menu_godmode["gsetup"]["id"] = "god-setup"; - + $sub = array (); - - $sub["godmode/setup/setup§ion=general"]["text"] = __('Setup'); - $sub["godmode/setup/setup§ion=general"]["refr"] = 0; - - $sub2 = array(); + // Options Setup - $sub2["godmode/setup/setup&section=general"]["text"] = __('General'); - $sub2["godmode/setup/setup&section=general"]["refr"] = 0; - /* - if (enterprise_installed()) { - $buttons = setup_enterprise_add_Tabs($buttons); - } - */ - $sub2["godmode/setup/setup&section=auth"]["text"] = __('Authentication'); - $sub2["godmode/setup/setup&section=auth"]["refr"] = 0; - - $sub2["godmode/setup/setup&section=perf"]["text"] = __('Performance'); - $sub2["godmode/setup/setup&section=perf"]["refr"] = 0; - - $sub2["godmode/setup/setup&section=vis"]["text"] = __('Visual styles'); - $sub2["godmode/setup/setup&section=vis"]["refr"] = 0; - - - $sub["godmode/setup/file_manager"]["text"] = __('File manager'); - - + $sub["godmode/setup/setup&section=general"]["text"] = __('General Setup'); + $sub["godmode/setup/setup&section=general"]["refr"] = 0; + + enterprise_hook ('password_submenu'); + enterprise_hook ('enterprise_submenu'); + enterprise_hook ('historydb_submenu'); + enterprise_hook ('log_collector_submenu'); + + $sub["godmode/setup/setup&section=auth"]["text"] = __('Authentication'); + $sub["godmode/setup/setup&section=auth"]["refr"] = 0; + + $sub["godmode/setup/setup&section=perf"]["text"] = __('Performance'); + $sub["godmode/setup/setup&section=perf"]["refr"] = 0; + + $sub["godmode/setup/setup&section=vis"]["text"] = __('Visual styles'); + $sub["godmode/setup/setup&section=vis"]["refr"] = 0; + if (check_acl ($config['id_user'], 0, "AW")) { if ($config['activate_netflow']) { - $sub2["godmode/setup/setup&section=net"]["text"] = __('Netflow'); - $sub2["godmode/setup/setup&section=net"]["refr"] = 0; + $sub["godmode/setup/setup&section=net"]["text"] = __('Netflow'); + $sub["godmode/setup/setup&section=net"]["refr"] = 0; } } - $sub["godmode/setup/setup§ion=general"]["sub2"] = $sub2; - - + + + if ($config['activate_gis']) $sub["godmode/setup/gis"]["text"] = __('Map conections GIS'); - $sub["godmode/setup/links"]["text"] = __('Links'); - $sub["godmode/setup/news"]["text"] = __('Site news'); + $sub["godmode/setup/os"]["text"] = __('Edit OS'); $sub["godmode/setup/license"]["text"] = __('License'); - - $sub["godmode/update_manager/update_manager"]["text"] = __('Update manager'); - - enterprise_hook ('enterprise_acl_submenu'); + enterprise_hook ('skins_submenu'); - $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); - + $menu_godmode["gsetup"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "AW")) { - if ($config['activate_netflow']) { - //Netflow - $menu_godmode["netf"]["text"] = __('Netflow filters'); - $menu_godmode["netf"]["sec2"] = "godmode/netflow/nf_edit"; - $menu_godmode["netf"]["id"] = "god-netflow"; - } -} +if (check_acl ($config['id_user'], 0, "PM")) { + $menu_godmode["gextensions"]["text"] = __('Admin tools'); + $menu_godmode["gextensions"]["sec2"] = "godmode/extensions"; + $menu_godmode["gextensions"]["id"] = "god-extensions"; -if (check_acl ($config['id_user'], 0, "DM")) { - $menu_godmode["gdbman"]["text"] = __('DB maintenance'); - $menu_godmode["gdbman"]["sec2"] = "godmode/db/db_main"; - $menu_godmode["gdbman"]["id"] = "god-dbmaint"; - $sub = array (); - $sub["godmode/db/db_info"]["text"] = __('DB information'); - $sub["godmode/db/db_purge"]["text"] = __('Database purge'); - $sub["godmode/db/db_refine"]["text"] = __('Database debug'); - $sub["godmode/db/db_audit"]["text"] = __('Database audit'); - $sub["godmode/db/db_event"]["text"] = __('Database event'); - - $menu_godmode["gdbman"]["sub"] = $sub; + // Audit //meter en extensiones + $sub["godmode/admin_access_logs"]["text"] = __('System audit log'); + $sub["godmode/setup/links"]["text"] = __('Links'); + $sub["godmode/update_manager/update_manager"]["text"] = __('Update manager'); + $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); + $sub["godmode/setup/news"]["text"] = __('Site news'); + $sub["godmode/setup/file_manager"]["text"] = __('File manager'); + $sub["gextmaneger"]["sub2"] = $sub2; + if (check_acl ($config['id_user'], 0, "DM")) {//meter en extensiones + $sub["gdbman"]["text"] = __('DB maintenance'); + + $sub2 = array (); + $sub2["godmode/db/db_info"]["text"] = __('DB information'); + $sub2["godmode/db/db_purge"]["text"] = __('Database purge'); + $sub2["godmode/db/db_refine"]["text"] = __('Database debug'); + $sub2["godmode/db/db_audit"]["text"] = __('Database audit'); + $sub2["godmode/db/db_event"]["text"] = __('Database event'); + + $sub["gdbman"]["sub2"] = $sub2; + } + $menu_godmode["gextensions"]["sub"] = $sub; } if (check_acl ($config['id_user'], 0, "PM")) { + if (is_array ($config['extensions'])) { - $menu_godmode["gextensions"]["text"] = __('Extensions'); - $menu_godmode["gextensions"]["sec2"] = "godmode/extensions"; - $menu_godmode["gextensions"]["id"] = "god-extensions"; $sub = array (); + $sub["gextmaneger"]["text"] = __('Extension manager'); + $sub2 = array (); + foreach ($config['extensions'] as $extension) { //If no godmode_menu is a operation extension if ($extension['godmode_menu'] == '') { continue; } - + $extmenu = $extension['godmode_menu']; - - if ($extmenu["name"] == 'DB interface' && !check_acl ($config['id_user'], 0, "DM")) { + + if ($extmenu["name"] == 'DB interface' && !check_acl ($config['id_user'], 0, "DM")) { continue; } - + //Check the ACL for this user if (! check_acl ($config['id_user'], 0, $extmenu['acl'])) { continue; @@ -309,37 +282,51 @@ if (check_acl ($config['id_user'], 0, "PM")) { //Check if was displayed inside other menu if ($extension['godmode_menu']["fatherId"] == '') { - $sub[$extmenu["sec2"]]["text"] = $extmenu["name"]; - $sub[$extmenu["sec2"]]["refr"] = 0; + $sub2[$extmenu["sec2"]]["text"] = __($extmenu["name"]); + $sub2[$extmenu["sec2"]]["refr"] = 0; } else { if (array_key_exists('fatherId',$extmenu)) { if (strlen($extmenu['fatherId']) > 0) { - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); - if ($extmenu["name"] != 'DB interface') { - if (!empty($config['refr'])) { - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = $config['refr']; + if (array_key_exists('subfatherId',$extmenu)) { + if (strlen($extmenu['subfatherId']) > 0) { + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["text"] = __($extmenu['name']); + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["refr"] = 0; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["icon"] = $extmenu['icon']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["sec"] = 'extensions'; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["extension"] = true; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; } - else { + else{ + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = 0; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; } } - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; - - $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; + else{ + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = 0; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; + } } } } } - - $menu_godmode["gextensions"]["sub"] = $sub; + $sub["gextmaneger"]["sub2"] = $sub2; + $submenu = array_merge($menu_godmode["gextensions"]["sub"],$sub); + $menu_godmode["gextensions"]["sub"] = $submenu; } } - if (!$config['pure']) { menu_print_menu ($menu_godmode); } diff --git a/pandora_console/images/camera.disabled.png b/pandora_console/images/camera.disabled.png old mode 100644 new mode 100755 index f825b217be72c6b86addd34e96f6a374b12a62e4..ccf1e644535989ed44dbbc16dcf2e9d431c4fd84 GIT binary patch delta 439 zcmV;o0Z9J14AKK3iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tt! zL_t(|+G1cp0*oNy=B?ZNfs_LiRL}uL00a;!0xJ0r!~!5TOj$pO00YXB~jjj>v9xfa=(f(;|QX!is>p zKspTwx(XKnyB5kuHe~{`0%Q$Le^?Azh~yjtY|a2hO926AGynt;1K9v*g90cdu!aJ1 z{G-WF09sp!>`p@QABfHOiqIfxL=rP#L01IC_klKm*bkss0V6ztCV?fPCMqC@Eeo1w zK;bC>b#o#R&&R3|nhii{?jW)vWQC1bJk^LTEf53%0Y($VNMsUt4+;<@e<4F)C|)4h zP-s4^Ct%+Jpy7@<4JE=5SR!!1qoxs*EtrUK2_rO?1fT|jqT3LN3vp?}XXpix*Pscj z09sB7LJdC;lE;x`FcKazP=FZ@EobVX-ZwxB4tY`yMNa-3fH(l^N<}EW9<5L#%1{`X hkCt8f2PE+W0Fi@;;ZEor4OjpG002ovPDHLkV1o4#mKp#6 literal 1592 zcmbVMeM}Q)7{8-P3)5NDAZp{z!yruQ-P@Lys}{I&t*u&z*lbld<+vVjmiEf^go2{X zZ_zpC2%7lE0F5zoe#B3ydzhUP_fsx_8YC4Qj2fcoY4MB6Vf_|Fuup&~x7I8ik`tZxM zD8ji-=sW2S+~Ln*i#c1Rz%H&_=wvEA4BY)0LOp^!wqQwH>MkmI6y`o zREj3J3ypb{btIOwGoi(z=r>|md3m|IT&w1VA`B1&f#DiVqe+txX@Lr#NC(q=fux8B ziVZLV=NCENhlD-S1^g<}gi4tXm*Dj~94{RE0wY36l3_vGj{!A~dA;GfhR^{qkNr1| zm!bpC3O|eGu>pRSz)1ZlOp1^t?Oq)y43x4lz9n!{Q|JT`FNW5I27x3z&@_2q1u_9nsLfooXwhZ~k~3Nc@H#kJDcccvaQ##aGC20a zD1WIE9yjo)yDfB9V#;CV8`G~uX}h~l6pg+QA=UVe&2U56FI&1UD#k&j&CSh;YX_d5 zgL)4fIFOw5^8=Mil@BYevD0ejDPvNz>z_imtEb0)5r0)A|NTp~aP7G2ng{Jo zSK=wCN`Q{UDz3D-uU@@6srp>!qraXM#iXXD;(zzvoxg|N;s4}3l(Ob#>uPynXJ@DO z#^-@8q|K&iTROpU>#Hgz`25ebcN?3U(2n1Jid9rY=#uf{myq9ebSUN%4aoQMp6G*X z_SM(FEfZ>DX2;$q+?6-w*KH)E~~gac=@sqlx<&UlF!&#mRVQz`_6}(_MYj=s_H$wE8bS2 zTDd%7S8Kx8?Q@k&X5NbXta9GR@!MPbzfF8nwmWa-p_N?nzU&p%*#&iv%;4~$QsceN z{qw~On_y(wROQ`{_NKULx+z_sQg`Hu@r;ulbL}*|z~$L{bGN9O+;VbbjcX5auk!U; u2zk<`=#RN|X8+NeH)l-k&ARC6+YpQ*m*%$IE>b3k?{d3kA$7!@zy2RY13v%& diff --git a/pandora_console/images/camera.png b/pandora_console/images/camera.png old mode 100644 new mode 100755 index 5cc2c1faaf9c1f2f0adb1221ce71ed85aceb542d..ed65b933071fa90374210cc56916806f3e853ce6 GIT binary patch delta 448 zcmV;x0YCna4BG=CiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*t|- zL_t(|+G1cp0*oNS-rjyckaA#x3OaxYfB-^8KqdcySOCO^DeDIj00D%q;y;Yf1QUev z7a&Vw1ponr6~P=B0HoG~*ar_DWMl#gG=Ky^9GE>YXB~jjj>v9xfa=(f(;|QXV#X#2 z)a9U{pdj$@;lmerU4;vPT?=I!e;|oZKvsaPfeDKt3z3|IYzPAjx@kZFa#AA}HUmHa zk&l4ZDu6-)Yuq5mKbrgmpyvvagNso72V(QRA~cAQJz~Iut_X!e7e>6diL?(gv zpa4MQ0 z;?jiA&m;M1s7W@D)|8Tj#$G)oo0000&8V}Eu(iEJcyu~f*HOSPoP00+&NF_1Sv z`k4ZTr0c3LGFbq`RIo+GQn7EXjp743GJ?^C0)os2AS)*%kW?ijL1m1e~gLV+qSXbailX}>mk9Wf&? zG!2m|?eL7KVqZSw;zb5B>QF6(nlQ*@&|wDDYOt<`a1=uk3`bD27DH`Dvkk?d*$0-R ziFCQGfbh)5l6Q8vLXrdT2~mUi2fF)oMjh9Kms|jL-(_IEf5txnO$K1Hl9- zkrgDC=b(s3vW%~h?69nKCWV0D^SyA)1!oH-mkbG!0)pvKBoK(?HH{8R1tzzy$dkk&^pSo*pI3wR?4-2vAmIdsk%TrjS(xPt^n%PVy3VSpK7? zUxE?Y4;b1b@&RbN!Z!9L3Op9G2gA$;)I6KH3p2Q^4!7Isa2rf|S^W%`{y$YiWHCr& zJpMB-QIkA_k>!iwmp3nt55vi4MwAanlXF)$07|=;a1@1x%AQS4<;38n$_46)y^~F7 z_^J{?7h(oV@XZ^LvQnTxL^um5RJvz2vo|w?fYw6S{h9 z^!T}w(`mU@Xw@cZ=vw$;Af<}@?RL+Ok+IfF)luaJ)!x>a&+clDoLst3p*dTsK9)C% z?z+{P`EdQGbMjKQwxlPn>w8)hH?IM}>ywiQ9NXV$?1DV=%T-Ie_N{(sD*c>D_7j63 zCj0vV)yajQsB$K^Fyl{0m-Zk3x$S14K~bIRZuxlhvSwM`FTGniuPjJE=Xi8Yn#L zw(UQ0;DSPPOXbD=ZfThR>JBFTYsXHiTVB_yaxtO#Ei#>F6nye`8gH_tBcfBuuq8`bwW|2}wo;gS;^ zyz~fc=Ly;B^!E{mp2R?{xLgucSgrw@r&q=4$?o;_&Nj$ z6IWSb;P2F) diff --git a/pandora_console/images/camera_mc.png b/pandora_console/images/camera_mc.png index 2d9db652e6373d6d9a6f7f6c6e8b4b42bba0fb54..ed65b933071fa90374210cc56916806f3e853ce6 100755 GIT binary patch delta 448 zcmV;x0YCol3fluAiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*t|- zL_t(|+G1cp0*oNS-rjyckaA#x3OaxYfB-^8KqdcySOCO^DeDIj00D%q;y;Yf1QUev z7a&Vw1ponr6~P=B0HoG~*ar_DWMl#gG=Ky^9GE>YXB~jjj>v9xfa=(f(;|QXV#X#2 z)a9U{pdj$@;lmerU4;vPT?=I!e;|oZKvsaPfeDKt3z3|IYzPAjx@kZFa#AA}HUmHa zk&l4ZDu6-)Yuq5mKbrgmpyvvagNso72V(QRA~cAQJz~Iut_X!e7e>6diL?(gv zpa4MQ0 z;?jiA&m;M1s7W@D)|8Tj#$G)oo0000b zo5?mvR76PJ2gd?3m5)uhU|lvT<-b* z@Avz^|DVy;mc!=4%0d8uIoRxLQ@`cfYcc|$dn0KURG~ugN0fH4OX+7M4m8HZD2D_S zOgGoYF|mQ?u5on$7~*_5qC`SRC{|2Z84Y7iC6X!|fVzfMl3{x|1&MOqyx>89{_qnN z;bR`O!x6$mNiP@Yn+GMXeXu3W4)(BQ3~i`K>Qavk#itf?^+ zS%)Y+9&{t9NT?O@iV}x7tavSpJ0aqC`k&#`uqE>{Why8bz_huNem}2f~Zvyweokc?`+@K&U zjKFd^zr5ymg9{(XrMwcyD54Y=#opWmw8lk6l;dI&@wPjx5D76XFK8OAK^yt{IEjCr ziv=Vxfvi`U;GvDCG{!i5~H5g1AkAICzPNmMEcHA0% zRoGe|PEdD7QkUb^Ze&T_&vQXvV>tC)^nNzmU?|Gae8yBd$(m50A1OIjQ5p^!Mou5R zQBVSO3!vRNyX!A64ZdH=7T+vr^_uCSvX{nnG+3JKjK*SlUm5WZdad}k>CXBcyY5UF z=%JFEHD_PkLtoTaUN!aYH?&;W=}qtCS;3_lFp{5k?;Y8hnd`}0w$OFD-NV`Ob7Qw{ zr?PY4&Y|)YC_7=9#lT%X^0CFS=c;94aJXc(AQ1JKi|Oh!J4y|sU|v^tckweZJ@|Wr zG?PA1RDHlfuibMmgK48@Z~B(Ue(e0=F+*l4UP%Wt`#%4{vhYaCf&6GWTYlO&Kb?1- zS$z4_{%h&g7xL$1{i6JkY2tNz`S^sZ>WgS4a;3TD$!bGt=vK##v8nPASV~U4ckp=j zd~^Cs{R%SE6@k%9=10MW$89vv%};%5LU$MDzjk{f8?X4K?wgslmE)Ox z?+*9Tzup^|z5EkBYPr&Qva06K>H5n@NAolHp9VzH2g&s6AKBq$K<@nL%(qWX>RVrV fy!rh%kH`;$x7ffl&pN-J)ULpwzr}a4sq^ID6n@Jt diff --git a/pandora_console/images/category.png b/pandora_console/images/category.png old mode 100644 new mode 100755 index 02fcd8b14a9192267b556b837b44663b25aeda5d..4e4c719052c41339754eb3095823c475cb8e8afa GIT binary patch delta 389 zcmV;00eb$s3ZVlbiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r^D zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6-k89)G`7yttY4<2O1V;Bwq5I|TFBhYLI zAPvIxFhQ8v^)SmYoCVaiA1(+}0W}6Y001C*vK63?5Cr1)NNO69 zT-(5eruze$f%V87bYEbED>5JEe+-a`2hiOK4Fb40KmZXRiAw$5Nc$$7SdQs3u%4t%q8= jo|G_6fQFd^!(agbAx~KA-;y?h00000NkvXXu0mjfgK>>V literal 1339 zcmbVMZA{!`9B(;5#)~7_g4;wWW#VFX*QdSLHr(Lu+RB+7;&F!Chb5Hj16R0fYg^cIMjsfgH4(~ z|9^kK|NH+LYioU~qI6p+hG7-a7Cw%?TkN-_7{lRTTP-1JwQJqhfMh@{Bx_xe zh-Rf87>ANP`1}HF#4tx%NhGagY&VzEvM$NSxN=z?u`#T%DW^-RK4=kLut!mYjKUc@X>_N;d;fluqkN`WnJL-iC>X{{2vLT_;g>{FoQcb@9K#FS ziyQVm**si+u26by@e*Fyyu(L28m4>YyEP{qQ&nPvTz0I}F?+IbV*BPB+lnfi1AF(E zfx4o13uaGBKRz^n?d8jORdG4-=)L13cfb|mw=0par|U+4Ns5_!o%|bRk?Jqzu=(+; zr=Ip8_p_0)_d13170qXAKihR+`@>(|z(&hXojyGIW#v@G(UzMRPT;}xdl$QpU8ZKzir;$bnMWX`SGGm=c|`{TXz4t2YYU3%SaJ^w5upMtM8e>Vt1}bZ|yH& z|Ex{)mW5xm@B^pC;kolY`1Gx_8<*zrn*OCfhCdH~a;+eJsa#mtd_-Fq{dvPXh0o$! hCtvT_xYuN2820_4dHK6n9yw@VXHlV*e?Qzg@;6>ryRrZP diff --git a/pandora_console/images/category_col.png b/pandora_console/images/category_col.png old mode 100644 new mode 100755 index 89b5ffab7d662726b02a85325c52306220595064..4e4c719052c41339754eb3095823c475cb8e8afa GIT binary patch delta 389 zcmV;00eb$q450%diBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r^D zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6-k89)G`7yttY4<2O1V;Bwq5I|TFBhYLI zAPvIxFhQ8v^)SmYoCVaiA1(+}0W}6Y001C*vK63?5Cr1)NNO69 zT-(5eruze$f%V87bYEbED>5JEe+-a`2hiOK4Fb40KmZXRiAw$5Nc$$7SdQs3u%4t%q8= jo|G_6fQFd^!(agbAx~KA-;y?h00000NkvXXu0mjfgKv#T literal 1593 zcmbVMZA=q)7{5YWLFk||iA9CmA&#o_Ug$e5v~aD|t%{{eHzl;R2W_;y_IgOc4;C?q z8H_n5iP1>sjN9S_htX{@o5it(IZS4jMWfrC10B&t49bgwuq#lv55^C>=3 zfBpwbHm>I_PFoBB0MAg2o0zX4^2TuifOYo4xv_{q>nwCBSw+{{C<4$r$Vvh0El(E%of^Wd{b#B-6C5ABMP{^3>yGc1p%+kzJs8_N}}53Q9~maE<&Ko zp@zyNM#ShXBAl+`dWtBm-)Oei@31QzP(ePZ3Md%^Zi2Rf0ryUiUl~wCb9R-?IiiLk za1KK6P($-US&SuM5lIoCM1b{ zi1wT7yaa3_{A3MfXZlf<86`8dd%2?skcmdQiE=SbvF*f3dySj$&<0!$F@Ho3mqUq5 z@mwrdD@Sn*k;+k2u9f0?oeWdx3Q;^4MWQxd#KjPW48wF%g+weyQ5~kmWU@jWD=b2E zI-R0W9OW83e%j`-6H&h|#_s}G@=~s{h$3t>NtsD8DATyevn!xr+k^OW2lU>fPhB{RcB!HM`U)?=_SQG(dv_SsMgCThSMnkYL}p zEq*9m(|q=uDvd9xM7DkO4!IfOC2N*>8uJqF=48(T$$8<{qVwxpAEj>4Aj9|W?d3fF za#Kk8$LO6Ot@T%q$oH|AFJJy^wzeZ_vYeBwk!L+*rJevLlX@Op>#j&F?sX=OzTMmp zHGQ2iz3lf{KCnob&=X&rRssxUX1iE|Y@v`(r*Cg>Z%>h1M}E7o|HHT;m1W=iE0X~h z-m`jj&)ziQFJWyUARoMZXzk{{&8DtU2;7=-`pGK|>bBdf%F4>PKA$g<_i@2CY{ks* z0m=C1Hy++ESgXpj2GU+_=s&QMz2eD4NFJZ{X%K2VbZDvW+nF}eWaHS~D@Xdii|rR) zSGE3ZxOv`fpB%lD(8Q%*znbp?*vsA$c9_F`nnl4Sx2`YAOZ_Qs0N{la&tz z9Y!si^3*?wWem$!odzY_RuCFq9Q)X*)fnUo^2NJBVKG z<*X6#c)VU8H9BNC{wLeK#px?&pA@~;^r)gW?ynSqK)~hm`COq;$W2dAKfdl@l%KXmp$YpNOZN$3@t$Y6g2$eeu diff --git a/pandora_console/images/chart.png b/pandora_console/images/chart.png index c3d716a783756ae8d50d41213716e9f9bb57aa59..7841aa9c6af6e032541ecd5c2a7cd6278e093d46 100755 GIT binary patch delta 462 zcmV;<0Wtog3+V$PiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*ue0 zL_t(|+G1cp2ln>%|1kss0tiD%0#*rt03wV)rW0WU0|P(+;ncn#jo-k8&DAVWS`aF6 z0f;w(1rHuP_yI^U!n9+x2Oxl8vH?IUAD@GOra3Y}+4&$2kbVHA4M6fxybwym9R|~# z2(;xrkQRj6C;+7Df%qeaVxZ)Ce~?0`qW3`D2=WyWJ0QCm6gBaL+zb#vM29#dwqVBs z8X52gC{p~Pdulz9nh3=6p}_=lUjvHoks=o;cTf@CR3;>!f!qrUOL^pALr)bj0P>Up zP(cAKwP2VCl)Mk55}_tffF>ma3=@&v1!NbJ8;%Q!jv0UeqX}ZflG6^7f16p+GYC@n z9BhEbvOW-hK;lopVb}wx{6SoCi3~t_Vm{CZphN(Q+YQht{6NUbELak(0+0gX2T<36 z@|PenhT$|6sQCfZKoB?pwB#WuM+0d`pxgnd#Rkw!0kRw*7jk1I?IuxK(wBywdwk|iHtg&9qg6ipI80AK2&z&aQ|=>Px#07*qoM6N<$ Ef>W=oPXGV_ literal 1443 zcmbVMeM}o=7=N2GV5J>kh67ySJivgVz4uB#Pj2+uYu7FmyFy|mOnYq)dV}7T>oHoK zt`0W`!9^GM;o_9UsmvIIgv6=Q;as9F(Xd4{7&8|&OBNTG%(=uM;vG=*4>A)kx!n6a z_xnBH&pQ%m+pg18Y5)K_pO+5G-*V+G%m+YqJgMVlp+a(pq;{cO8e~KkP%$CGBEAIE z!vJZXfG=v5w?fpN%ZE2=TL-; zk?134KlCSEY@G8BiER5&TSs)LH)@ZeE!&XhG$9*Euo8o$6McM&NR#NYT|z!9Y79k| zAyO}it^^hG2N0JavWVFL^-*ZS5sS%yo1oofZ$yj`hZt_epjD4U!fYiVj;ubY>`jby z6G7Uu>PwbLG%iU=0>cIe2MvQw20`q>aJ$`(K_g}~>ScsJmEk2Ot>;rUISVwKii%uP z;shR1EHV*cKq65&(v=hvNxy&1FrQj2lw2|_%_K400I@_u$!i&%l7j3%VXTWzb!3t( z7GzVxfEbng(Or`x%eA|^BLyf&Lp&^Ua#NT-T8IuLSYGncBr5+g#JCs%%{GYRRui-u zp~Z&dHp)VK+*YIA?ZoLO9Oi7S$8ExKNSmC{W^y@k+-BkhjP1}Ij)aS zNemxlbACD5?+Tal+?7kXM3#{Ru|p90auX1U3zCqE3rWP)ZZ_bEpNVq3qEQ;Ok}u7Q z+#WXO5rqV@Tw#J+CxZXZe1#kPKUKrzU@&Do{xvQ+l{|yWac%fzVQqa_Ufvl|UXF!t zcb$><^OBFII?~@o{#;sWQEMS}{g1J+F|8J{09r%N><#~Yx(=46`u{Kit?p|5J@7hc`yn^R3(ee!H$tND38JAyl( zJ3pyLvdIrLTe99O14_cJZ# z)&rgk`}%xkr0VHWt1F!MSa$SxbwgnOBh?`+VmtoAyQ-cY?xycm7xOBnt1HKfv$oQ> z_x>|iKDm#cMX!@X{qDY!(#Ei3KELzox$UoZ0tiFNf0!r}vIIZ?p%{X!j|tr%OheHCKmg%Kc+Ca@ zMl`_#xZR2k00a;t77Go4R6mHVuBPgUEXRVy00AI&z-BTF7B4vBat0HDFxU@`iT$Mc z4hR4Oh@z0#4`mhtL*fFyP;fvBW)0#zg%MOx>l|QlNOCZd5}pK7HO;Ih3jhQdP2!t{ zkOFA&updp>5ttMX44g}$*%LXPeV~T-`_Zy7$cv3bBckvX8|c1*m1s0^DQ(InS^xl- Wky&Gk`yt){0000!?f|MPW|HLpH$=UXmwwmt10RcezW_-rUu4Jy|P$Xqr6jg==0+ zQtw(&ZWX4b{ooW46|tMbCX{ZS6~vc0U)hF(?Sl*iVJ{3n2)Zxo7e{^4-c>)8eJ~L6 z{Qvp={_p>1erT|NXV1eu1VQX94#;Kv-5tI=Vg%9g(QhCB5ek7a5)3;NL0$6@AsNm% z0!2%kL}jEIGtXT_eFPDynw61Yq;yEs9gEUJ4Arn)%qEDwY{S*`8VbNTnl$YU`TJ*I zlE5@FDGh;w;~|iun7Gbx5O7HfCK(|qJPud}GBjjqhL1x=Oz|QELF*y0H_w<5 z%d*3Y3R)f1HCP0~;h1e#%KmW^XX+@G-ntr55VeQgUe@^#O21JkiV zXi*z?rh^QLBi&5Fa!aKx!?xcl6fPOv&|Df)3~gCqUK?mXD5HPF*cR6FUnIYl5_T;u;#jmE*y;duOKT-qu;gW+*&__46HKFG#9 z=dtS%BifZCjxEp6 zFE6S0O$_ZNZbxHdOyWd$;v)CzFZ{dETOB{2JMzURUB+T~&lHtGc_lwK_YZ>klOzBD diff --git a/pandora_console/images/chart_bar.png b/pandora_console/images/chart_bar.png old mode 100644 new mode 100755 index 1bea72456dbb0d2c9aea43185369084cfaf0a803..a14d8a0232de3d2f3472a447ee036333f84ae933 GIT binary patch delta 275 zcmV+u0qp+X39teoiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*n@+ zL_t(|+G1cp2ln>%4j`HdN#H*~0AVQk4-;iVmH-GK6hn~pF`*lTX($>12q63juh}5L zh$eUdw_C9RfB<5|Vxa+$>Ibn89z5uXEXRVy00AI&z-BTF7B4vBas~^5FxU^Z^6!k?;XW;Iy=Ai!u6 z-z}@vLE!nti7Q2F!PG(NBLv}8m znYf#kViH5uSX!~5jZjJSB^E4R5O0V9Lrw64icsl`1&ak0&5P(mV?2}WMjt{S92n;O z|9szn|If4e;lWPtAuj-+Gn)|$JxDNnNSuK{FQf^3)4b3mP7=KMO2^)aESk08=3G7g#cwE(^^zR>iLQ|>| zrH=)3FlVN4Slu0?6o zm~^5viF79g&CKO?4eNHJP^4r`O)?qehm5AVd2OR@r-1(rV^6eQoH8*}z_u}I$)q1+ zhnr+lyW2Z*fg~E?VM`@Vkt(7gPik0qvSO4bfBcH72x3SKuz^Gbi7X675Q-#1;y^mg z^64ZJ0|+*4?8SvFOu!TjC&P$ED9t7z*LMt(%k;# zyT4fe;pSgG>FzjKDtSiE>b;qb_<>8`bY&I5JrR4}0w1(d)9_;J9YZIcW?6Ri*V^Ab zbBW6PZNvA&Kjq9Ke?4~mHSK2upgUw`Gw!C$r>nm>7MV)4|spaZ^L zIP&FY?yi+*j2o+G-zW~YuPuOMKGy7S`RQCcx3urf=U17r pdj84w8_Ai={Y%gFe)`~N9#C00b>ZjtZk5~{Cz~D?FDFmT{sYq;n^OP) diff --git a/pandora_console/images/chart_curve.disabled.png b/pandora_console/images/chart_curve.disabled.png old mode 100644 new mode 100755 index 56a6648fbe0331d8dfea0c8f2fc73ad105c7dbe9..8d156b2a2c7a9514ef4b4a7f4ef4803c0dd1ceef GIT binary patch delta 463 zcmV;=0WkiN4C(_RiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uh1 zL_t(|+G1cp2RCos{*NID5I`7860k}D1Q1~aGMxw;7#IKo2&eY_X#55yY_4X3(t=Ql z3qZUPEU2!g`Th9Z?8`=Oc=K^lR$ zA8ObHXwW#~ay_mvEx@A5B@oG#`AC+0fE8vmO;R*T`~YxVyg8r&{1aH_vdox>-0t4N9lLRId$)IS<{_R}QIWaat=tB8d+aXW zff*(^h&W->mnh8Cfx#M0F=`x1QZq)TEHxFGI#4r5Em6#(Ib_=d&idf^p`F>;_j&gB zd;ULfQ*qI=iK@9O000tgg``9JrbS+5900@|yw!a#A_$feVI{jp2v8gi5N@`N25nxd zoOaNZyQbBv=VJ%0mtSxf7YAalr8!A`=<_B@ffR`31FzBuH@p#YxP1?n!b3_e8 z;3Pz-FhEm5mDr0xGt1Fnt{Ta9AvzS)<*3md1k1q|gBk=yU{nJm`fL=zbM-iag3}Kq zdE?w`a0h9f_9aOM$Rh}T9EJmdfI6U6vs^ihVi*P^8d#&rmJr!|jZdJ0**-oaYJsGA z7svPohV_9Fi&Pm~Ef^pv(y0`@e!KmFVIMzTD5+#{kn+Q*8iBpuNM4g@UU1O=hVf7| z@2v6Du!H8=YR)C~V@*bsEYj{T zv_u|CY7ku>islhI(rVFbFpCK#wI~v`@i4B&s?(b-s2S4|B#K%zgoQu|BFCghF$NPeferblvdGe=Vb%Q;!LGCBdp9#&v^59ydoW zxS_c@e%a6=enxtgII%vis;X+g+39p9rS$al_%9swwC$5A!M2n!U|{aHz(?td<~`!j zk@aEm_9b&(ToZ8)-4A{M+->UUSTGP69UUEzC$`ERIK&>-AH@|C>*#G8mid%nBx7? z*(_l0Ogh#zQkx0x?4FZ!Gq{7lr8NGWx_j&Kr;^sS|5(!)3b$>Ctlwhs+bjBGzbY?Y z`p!>{sP)!KvE)jYk*B+4s8Vq{P4VT;le{y)CoC!Q_i$ z_Rpxgz#H>V9GwSJXQ<4NSFCSfGTY-5Y+tAjEIxM-yT1JH(jU}gX@_N@@bXiK`p*2m z?7f}FUqbz7`y0?x{dM-Y$6D~?Wmno_OTT`mXzOfv2f5@|^KY$=u1&*=ebyqAvhno6 z(gqoKDs4u_QE1L+X8B8p&ky!}vSNpN*UPKYzwumnt@X~+2fAYZIBT0ZFWkB@a!K1P LMdUuy>W%*ZlM6o8 diff --git a/pandora_console/images/chart_curve.png b/pandora_console/images/chart_curve.png old mode 100644 new mode 100755 index 274a8e000b411a92df2253e3a5650f244911df47..7841aa9c6af6e032541ecd5c2a7cd6278e093d46 GIT binary patch delta 462 zcmV;<0Wtoo4e0|RiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*ue0 zL_t(|+G1cp2ln>%|1kss0tiD%0#*rt03wV)rW0WU0|P(+;ncn#jo-k8&DAVWS`aF6 z0f;w(1rHuP_yI^U!n9+x2Oxl8vH?IUAD@GOra3Y}+4&$2kbVHA4M6fxybwym9R|~# z2(;xrkQRj6C;+7Df%qeaVxZ)Ce~?0`qW3`D2=WyWJ0QCm6gBaL+zb#vM29#dwqVBs z8X52gC{p~Pdulz9nh3=6p}_=lUjvHoks=o;cTf@CR3;>!f!qrUOL^pALr)bj0P>Up zP(cAKwP2VCl)Mk55}_tffF>ma3=@&v1!NbJ8;%Q!jv0UeqX}ZflG6^7f16p+GYC@n z9BhEbvOW-hK;lopVb}wx{6SoCi3~t_Vm{CZphN(Q+YQht{6NUbELak(0+0gX2T<36 z@|PenhT$|6sQCfZKoB?pwB#WuM+0d`pxgnd#Rkw!0kRw*7jk1I?IuxK(wBywdwk|iHtg&9qg6ipI80AK2&z&aQ|=>Px#07*qoM6N<$ Ef@Qg^SpWb4 literal 1707 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 M07*qoM6N<$f=A(|)c^nh literal 1531 zcmbVMZA=?=82`7076#)@L52voBO)&J-stN|*B)FeH7nNAY^Y1*+B;~4_PXma3U14d zZCcPQ<%=)-Krllz6WMq%3mHZn({090VwM>q(?1PtF?*BaZ z{C>~-zt7$H{OVODs{jD2oei`{{;o;B8EOC&lh;1KlN3aIv)IJ9id~Gr0gB~)9OMi! zZJdW=*zPSSxmo~JfuOfpY<6uR{d@>vk~T;z6p_&Y)LLT^#^26~kdJE%hAr^*BVWQ$ zkhQ>@^e)U5spkU0h8}@y>S^@)d)obG7PhX3YGb5K5aL7ziiJADQ8H$Mmv~9}oK&MQ zv}7W-Tj1rOnq6+Fo)CqX22nX4#9PpS!b?>2n@$ioIo+77RN}vk;HIl<$+~y z0^3S@Xvc~#S+c+ZQH+o%+SS#Cbk!id(1zk>vl+z*lpwUSg*Mt97MYkf9IZ$(&|K6n z1S4XQ4?{^t#>aPx7FdpSIfYQf<$6FIj;<6+E*TnQA}EevXegA-Ysoq)dboeXc&K&M z+a2Lh4;SS-1;5;n)`}EZuHB;@B@N|h$QOm6+!UsR=KY-^E-X4}3oQRZ*dR;N2D*l* zp-ebUUd(WsaCa5G+m(RO`J z3hN95$}3dtbWu>#o}bLG<21K;PKr=|yWlApxJXMIv(Cq@r?f$K@SWmhzFj zIg4$+xU6gkI0iDH?8D6Db?ZcNv*x>l?v~=BqOCjAowoeA72JFyQHb?vY}?8!7Npty z1G^Lp>l`y<$_(h|(_gDDmrFP}I!QA13MD`3gmJ?v+;$>$} zloSD1*KWJ^@eJSZnJ2p!2Dbs7Ex#%ZRs|+hN=RxrdyJkaTrhxNX3FDFCYq`pulIJB zp1P$O`YQWw?FLnrcL3-*x7&z$MbQVvgX*88qS4%;Ddj{l7AqXEYzN-}v*JqjCDYDl z3aba+w3bOPf1>#I;PL%imGjO$RUhttn(Dm;&6}S%RG4un@dt2S)C~PSZToFlk=Me0 z)a+3_rg{ow^&d|BfOtv};Q7mqRQ2^1e6JZ6H18^@@wkA0I^w3}b?me^(qnZkz5f8;#{gyk diff --git a/pandora_console/images/collapse.png b/pandora_console/images/collapse.png old mode 100644 new mode 100755 index 9e40be503816d6e90f431d705e27005a1b8873e3..41bf8953a4065dd2eea4a6f89d24c883e9ba4992 GIT binary patch delta 445 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 aa)>#*Twnd==ikTuOQe`DE8k^bU-=tIGkRbE diff --git a/pandora_console/images/collection_col.png b/pandora_console/images/collection_col.png old mode 100644 new mode 100755 index 1da83176aa82beeee5858469d0800f349626843b..c97822c89bd95204cd1f79cdb62663b1932c48d1 GIT binary patch delta 274 zcmV+t0qy?J39kYniBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*n=* zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6-k89)GG$YM1a1`ZxP$cWPpfB?d8JBr!p z0x)MCz$SQ*C_4ZGh$IB_Tmz7*$EOhFVOV&@6Js(=@j|M*86bdY7YYVI>O55J0MN&d zxD?(8QVMtsEQI-9fq>2ZOhh{IXaUs~9%LH000#&#+QlMTZUe=r0D1@kWA*`Ah5`+o z52O;vbl?V{#epb>V$1&I0OZ_BRe)^h0VXEYz5X3&maV|DZx+HeiNK04JNMzE6>e#1^X?>aP zE@==|woV!oLLwWg#sjc2!2}No4ef!O%2arOH?9wZ2L=d+gvJA6Ja8GuZBlrs_JAeJ z=l}hE|NTFw$H(^fZyVf3QB;3%R4SA2fd7W>q^Q7~H!lC?3!Yr{Cafv1p*WbzYE}({ zqM=OVGFG(tqaWd6it4NDm8w@Q9S~K^U=$z2G!2`uDQbA6X)Eds_CO6!>t>q%<((B8 z=vtb7Bwm6gJCE!7Xv@J9t+9&Qno$Lf9?5{=rbrAJ*i%5$m^EFonWoq5isbC8SsJWC zyqPq;9#pk74)T_RL7ah66($f!@C@RizzYuo4kE}Rj)lo6f?_-=LIk=GO}shUlvtJu zU0*~>({<0YMV4(e8cZX`Sk5$y1VLaS$8ubhAfoQP=_$>q=|*}MBy`1pVQh+aEAuvH%hMVXZ>bKKJBylj2LMW9@NCi2` z333ieF$8-yHsf+AA;(cZF62^4gk&x&<@j7a&*hT|8ODWVk6ScdPcc>8^Q#lTT`qrH zu9$bQ;#p3`vSxb|FkZJj%dJ~B$WO!>1WJmko4&?x(0aZScJyOdD>#+`)+#LOn?wNl z6htV=!(=z}JmO_R7PvUi^zsb`@Q= zu=ak??R#5V{4P^?R}2J07kA%NJa+u&E3Yn|ZY}j~2|v2>%^dptiyx0a8#wcIfWJJ{ z&TN%FIr&Op%dXLz_hd-1tWr?b59V&u|SO#9p5A?3nn3;Un> z^~wTO`2LCW=YoONAu2Ml{fFIm(1$PV>s%ZPFW(HvgPHL1wN>!6-lifCeE8`ewsYhK z@bZ!I&KpCgTJq%8J$qjpu$O+Xa-l=i_3#e&;S)~{?wpLBVvcfPY1jEPZ{2nM#@TCU d2Y#w;r5=CGdgxy1z(N0tDavEg>$%Aj{{S^gk5&Kx diff --git a/pandora_console/images/comments.png b/pandora_console/images/comments.png old mode 100644 new mode 100755 index ca4608cb4668f7f2c598d5da30cc23d6501733fb..e8a9e0e79dc04853b2baabc79abac2855682d736 GIT binary patch delta 432 zcmV;h0Z;z=3d;i_iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tYt zL_t(|+G1cp0*oNS-roK{kU9Vt1qlEI5CaMTiJ*wWH~;~}h_3$N!GmBiCMf>^ZbQ)k zKmcJySj}ew3fw2C67CA9lM>NggaQBph!M@Z>w#1Nl)C_ELLxT1_5&#g98QO8f`vpP znu0=D-26=8jl=}gQ1A)#t zfD*XSP}q-TfB=XO6rYcx5KmAgperN@a4DRC}<--B1B+DHrGi1#Dr51xzF=ouU~Ia&112B-aRZPy+)s0W^(+ a0RUMsb@8-gb;1Au002ov22Mn-LSTY~)SQg~ literal 1402 zcmbVMZA=?=7{9ha%WDeDvO-9>93$eg_Fm}A-AUiBS7?y}mc~`hOpo3H7wFx2J#5Pd z(+sDZnHkxKIbWhMNhD4uEc#`}IHrk(nTRG!oH5z5%w#bO?1OR9&Eda5(HOE1UUIqr z^W5+Eyg&cr1AX1KRZUe81l5K^Y!rMg#n)5;LAp1TS_ue^S}?8+%EMZQQw7M+%R>Sj zPH`hbRN(mB3(G<$1Q|xfSX_%odg-K`vT;R>Et^sR8-hB$S%piE2^u^kjEIsOS^xY? z1QvNWa>xby&Djpet1F|Z>4jX1oVon@(+HJTUqwLf{n80uh#R(L1S#gYZxM&QAw;u#} zQ~6;!%64u00+JgU)ii}h(M%>|%XHXebp*vJib630B?v1(SkpO4~v9fdhjM8xBXfq$m|N#RhHV%L=Oa zqQG~lathw8FfHy90fzr4bC;9w2V8zKKn6epB(lxr|4-FW5DZ!zkAICzNd;!Gc-$F& zAndGDW3|=!X>hz`$&MCV1UGmc98snNVr@vGG=`>?p=X5XM@mLP$=T@Ot zb@!KE%D>Whv3oIRo96osW#((M>{}J{Eo;f@Xk5AcpfcU?d}b-y5VAhir*E71?c1s9 z=KK#W14v!d`-OzZe7$>52lP$j!JDf{6@M0Tu47B5(86R_`=wcn!#aC>?~TxtKRSGl zO5a}>T7G@+55+sJhx8}-TE49MHBWcm`?z=;hJ$_Vc_wk>Z%dfVi~s-t diff --git a/pandora_console/images/config.disabled.png b/pandora_console/images/config.disabled.png index 6caeebfc64468db62e16093998312137c4978924..83498898b68fad7938932222bdbe524aa99915c8 100755 GIT binary patch delta 416 zcmV;R0bl-$47>v&iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s=e zL_t(|+G1e925#QE{U63i0MP&egkMPjOb{S|u&V$9CL}=vAeG2K2mk~SVFWa4J&0z+ zV&Mb00J1B4Wx)|lhEVPTkPSc$ zj3|nsiXK3@1~3J<-1r`M#6bW+e*jS>`1cbGOQ3=RWJMs)G2&1N3MvI?+OP*=0c=4v zAF2oh=0j;gCM=2qkWyJ7D7b+510xnig&>pA!;=X~5hxrNU{iz~Lm)+hK>Qw8%)s0j zh))qo03g5^DTp}%P$B~23!qTJ<{wfFI*$}5pn$r7E0Bl<>yZqc0CZs?c3QN7GE^cX z39f`iBR)_FG;{(Z35I=urm%QuLP7=ypaxzbRG1(e<_L`xSh`LG8nA%q*hez#0n{)D zVhzJE6lhojkg5mb4M2Pm%4Q(NFl@08OBw-C*O6=(p~x|yL_YwH+Nw}$)dM5|0000< KMNUMnLSTZ$5{use literal 1547 zcmbVMdrT8|9RD4Kiacg{=m43Vhen39_vrH)JKA!sbg@EsD0?Z__K=RYSMH8c-$f=q z#x{cb$1*n?*KOd~bP5UC;wB*|EZNlT;j$Qw=)`0T;E2wMz^*{u{xJTrOD^~Oe(&@7 zzQ4Z%rR&!wCuAi60FrIRRGIkAjJ)wu0H8CYJ@+DlV5t(y*&3md<``gdu?_~ddFd@o z8AH3a)(M6Vu?ZMy0@27^xx)U;@K26emzjE5|XtTC2x!c>X~| zZ=9<}Uq)HyeTk9*sTBmj9z`1)8x@U81xoW4X)P{dg0j$>)lU^K&!RlxK@Q}=Q1}F7L7@%vFg-TtyyCsk$JA`|5ObX zgFz$X@t<*ts>B(L93KzAC_G*t#wYF!CoV_RPRjrQF{F($RRn%>Jerv)ln~W1DXp!o zNmov8-o0oE)cIghrSy2lcS`b*b56ajcv!O(?`1;7mh_-a&#(fK41HZ47%Re`J$l<9UKP|bD zazGtyYaiTR+O>OT`nk^>>B;aws9Tu4?>&0(^2Bh9=v?_|dg^`X&W7_%_ACHdH~q3Q z1;Z~vp>SUJU+J5N7p%NEWh@9D-k;r+G6B7En_m8Nr7K>xX!*Bxt?v7_0$*U>OKDeLvkBR diff --git a/pandora_console/images/config.png b/pandora_console/images/config.png old mode 100644 new mode 100755 index 24a27165359e88500d3150fe97f974c6430cac4d..360ab2ced79a520e40c858d1109532e3fb61ddcc GIT binary patch delta 431 zcmV;g0Z{(93(5l_iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tVs zL_t(|+G1e92JG$a|HBvwAQ~Wm@GA*`2?7KVb`?Otgd}JHq!Jkj0e}D^jDSY12hogJ zEPMbLKz0RK3yJ_P01!Zocq~-_Qul%Qz`=tD9Z@`o1%MPXfE2>4WyBFohCqBCh!+5H zBTxg_2P|lc9zeMUKm`~Eu^_QOe?U!HfXiI~0YsJH-%l_sfeH$c6@h|}1&7*vqy%RV z!~!f>Oq&m+6rkMsP+E`$i=qH%Dg&_tfg!O0J*mJH6@nC@hbI$~q6BEH%*Pk#AVq>e z{2rSkW6ao#Mz)Xx`3JMAvpe~FAVh$kIKvQ-AIn}Wc;j$0VBESIZeGo{* zmw{RE7zQdP6oJ?Q8aV_F!zlKEhBW}GdLRaQ;UbjHK#F15TnbAX0Z`YGY#5=)F`z_0 Z02^J0ZYjDXC;$Ke07*qo1w^hwV1nvak$eCE literal 1464 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%#=yY1`Q6s9AWn&EL`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#24v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`Gtf;oFf&vzGto0N zF|ahT)KM@pFf`CNG}1RP*EKY-GBvj{FjRm7C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX) z@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal z@=Hr>m4GgVcp+top^2{qPNz6-5^>ndS0-B+hnVDi`V(#Q-=wxATW?^7qXy|HUVPR_KVqxs! z>Sk8Iua(|ZvxVHcJ}#4#{1X?eOh zhE&{2`t$$4Ju_DWXGB!g9`=oq3!45*HZmMZbGgnW;Gn^zqY&z_m(Sr_mB3+!j_1i5 z%p3}ACC&}2{vAFta{>$Rzr`z49E0X^6bth(un4r>-f)Y(^lI$}iCHXR?ti9Fn#6YT z^+UHtmb-Ui{x6o`R}vBy{-8#>AC&D{B9)iM?|E_!T#V)BNJqXnWpj6q+1et!NxK>h6T=c1dKm=qd3t{rg+3wX@r zVE?vVRbobzm`&GtW=&=Vu_GR5EgBf7gfV2XT~uI}i2N{vkJ;cG%bIy?OKale?VDqF zmmO}=Yxs2O<70KMjj2<==jP^q=r|(faKe>M<68dxeZ8TEU2GXYKiOMYNGwnKvS){) zrsl+lH#aZmaoBFemvf1M!{E~ts#JI%e2}jQi{u@U8 z+$+~HMJ;HUGR09rAmay{4xhjgDfN~bCfz^Zlv7P47=ALO1TtJHmv3NQq~KY|WF#|7 z^M3QETU#ziok2@WOGB}ofDVJy9FH)&jhi;HNS`}>n%mFxKoF~p zj(Pq)md&1qGK)HQ b*Dx^Tzb?_Od&BVsRF-Qw?BIHC8h))qo03g6vD2O=$P$B~23qY5AAlp!=LFbX; z1QbvgD0S(2B!2@Z09{y!7HyymmB>hfD`C-y4-^6ooxn_tVG0Tg8=x+X1Y!;#)<9Es z06EpM5aF^9&?3M9>U|JM#Fv3t@E8UvCKQ3#0U9|34Z|q*fQB^ysd^v=dEp|I%|MD_ q*jx%r8Uaw(k!%>D$T6TqKL8tDhi)mlBq#s?002ovP6b4+LSTaQz>KN@ literal 1314 zcmbVMZ%i9y7=NJ%h~VlhE?^AjjV#m9yZ3E-{d1$V*It1-3Y9hy6HR(;U+77DSMLrf zXb1x_EY4+FwrQqY%x3&xj2ZZ4P7^UhGrzIKX*9t^#6_oxA7*rO%kVv*=m)Y7UUIqT zeeU;r{y*=*cyCujU2`1(pds2V_LFa;`PNngQ1QL>IFUh<5g9NN>Yy<@b1I9qChtH@5Mlvx>sZccOpgmA3N||A7P-#3QD}MU-k3Xd; zIqRpN;$kpX4C9>KJ+9%zcyBT@KAiDo=|Bh7UgC*?0yZS7RLCnjU-HxIc6lP3YL=$f zA;z$u-Uwy!SLD=;%#gIyNMc-YvAYwhE$wfm} z70R?IrPUF`Pm@SDQYaK-u`R=jzF8D7u^x2XuQ8 z@`jNs;ueIE$LU02x3g?xJ8sAU1rO@+|Uy#bEArGNJ<8m z{mR7eCf9RUE+5vgWT;wFRrBQui04#8)pKf*3MV)QQ86haE2hS5&_=!@*5ns(wo_9J z)Ov+^d7B6z@F6i0FTyStG67dO6C&&3ZIf35fX8%vsSP~3tj>mt-rK}<|Xo_3I zPYzq_gB7wf8d;9RZ#~^c_A?$8g=Fcw^zF5^fTbP^as_o~$Bz(JRs;b$v)58LnVYSR zzuWSJ6I59(^Yd%*`)AXkoypY8*J>U<{Jy1$sC(}{kAnG0=Ehp!!hK8kG~YSfbm$5_ z3DOIA-&ZTu*^wTvZOXP>vr-fM^QH59Tz}ODmwyIlpL_-+Znrenrbd{fE0u>9ghahH zcw_qYOGm)BM?vD^RQU3Xx#pdV!?c$C?2VoQ+j7_bXLp^O`DJYH#E!*Z=f1GbS6TDm z0&Bha%~Edqz;&4^KaiEY{Rw*Q1YtYc1(3dxFz91IOG8&pkBvO33m+ z_1~9QuZDj*=&`NRt-I*yTiw4^ovEL>`t|j5e@vd}NToX3rdK%ItI{RrR3DsJYKZ8s zRi6Bza#7?T92bKh&BU8e+^RZo^K9Do3V86W_p-a{21 zIC$`&Bg`0_XNcBSlcO%fm3D`mb6cq+o3=;$e8!QA8kQ8k|Q}`Y^1lV6GsAs?Spd~jM1n;jepn&jai8MFs<(aML&>z@RG~D z&wJ1B_xzsceV%u$t+lzRpt1nNu%d7a8%5uJ`fJX|FvBIeNJK`37VOa4rEYDIQ+SL? zNL@T0PH{bal;;vdPu}DkFwB$`VjWsXKH^bV1VrQjpA=e#6~2AAH5MQ4i&F`r@hIMqrV&Ak*El?#>K9cy?ISjL zX|&e2Ndn(+(fWMErl^ic8y=7p9(UP+Ee_lecRTIS2`DF3k2?SaBy^C#V}pQpd1wIf zt%pF-ltecjWkXxBkmVzinkLgEIXF0IA3S20lpYdN6h#6D>2TPPhfN(4H7;!vRcnrc z<<+<%$eJLDxX#FRNduaXKuR}LNXe1NHnFH~6$+J%Omi{`?SM?B^t?8_RV~W@D`Q7* zH8v#kWRzE>0VR&kquZJTquM<k(naXuGUKykOQ)B~|}K;bz}Qeu+SpX-3Oq@+n|Qj+mNyUPyo2p1PbeMdi_&3sv2 z5uV}`Aw^2z8x^L79TWh#L*~%!r<}k^`GY9)O>E--RE*i{xP4iR!omf4OjcFT($hRe4+lZ#-S z+I!)(qi0%ssC~VR_PESe`FA{IP$}Ovpgkh_8&%!sU0dC#dT)i>qh8 zwA8xxTzJs}XARcUxzhf-ha<11ZB1`Am)ySdc{aJ;YgE2H|A}#`ycCN+{l(ZbBQNaL Oue@-um3_zGdG;S+-orrv diff --git a/pandora_console/images/control_pause.png b/pandora_console/images/control_pause.png old mode 100644 new mode 100755 index b4e374734f025306e9a18e643a6df6b5b05be7f3..237451f46ed2c13929427ee8ee5bce43733d493f GIT binary patch delta 438 zcmV;n0ZIPx3ef{0iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tqz zL_t(|+G1e92JG$a|1-fDKH0IBy-1qTiuJm`p_4VjG< z00a zC@KuF7$yh`HdqKG;84T>OFT@-K>%O@aP5keGE!q*U1MB++P2GAT}K)|pI g(6Z|S%@aQWWL%9?$9VWM3;+NC07*qoM6N<$f<;%HOaK4? literal 1393 zcmbVMeM}o=7(XZwK8j->BrtH?4xBn^@4Z{U?m~gmYoW;sr8JDV&2YUQ^n~8su7|yn zIooYNaLACPOrWG&E^4%MI`<8s_^2(TV+X z`3i;#5hu3C>IZ(=%}0f{VTJD+ZVz$80~{5>ni|mtjfM_lyvm|lY*38TniE_0OT)9S z#xZo+L>+KqE2Mh-0n{xiJZd!q69;SrYO|OL3!p4iJxT%s-~@>SyNLj_)lLHfU41YZ zO^Ni;LB_ip3rbEbs;V-L8I$4*k77J}JDfUJ-8u%w%@c|A6-gRwIN;UOJ18{?u}4!6tWwgTYFVtry< zWkrt9#uZ@PRjlW}SlX@dtSTuXNgB*fKp-lqQamcjsJqK*CQv`i38Jpi8?=%y!z;p5 ze8j6rF?6}Yw6G2XK(3QHVQZl*z(TcnVCE~>$p5Jt4$0v9c>HHvvMM-(`f+Xep|G|- zya;zjfy;5z!R&|o`G${ig|u(O_cEC#gAt?)y=BJP_)BSPospjj3 z{2C;;aD3a*+nLr}W8g?dZ}pj_zcT?>L7l5i+wi?1uWaPROseS4WTs7PG(7u$VdKc= z&J($pD;Jz~7cgYzp_xNSCz3OrTHJ~5Mfz$^&E>ZJDv#RlJ#5_if_2i*JW%~e)vWis ziK+a_?Ip$2nfDG?yj@l}`DD?VDaez#Sn!+N(OmLco+Vk}t^53$gFhb=da?0}{bNOx z6SU;eRn#27e)L}avx%&l9ja@sZkx)-Zak6Vzivh+M#mP;If&&@BUo=+n`EdCz7Wi%Uudr}`6$CcF5YLMQhc1}|;-DY)_RSAzyicpSqX+Z=8-C_BT=*P>hMZv3%u%i3M?#hvSU)o1g% jFYG|SdFN*R>11aPB3T!PPmjGD&@Vxsr=2<9(tG$H-^H0IBy-1qTiuJm`p_4VjG< z00a zC@KuF7$yh`HdqKG;84T>OFT@-K>%O@aP5keGE!q*U1MB++P2GAT}K)|pI g(6Z|S%@aQWWL%9?$9VWM3;+NC07*qoM6N<$g5nFD5&!@I literal 1462 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 Dm?zcM diff --git a/pandora_console/images/control_play_col.png b/pandora_console/images/control_play_col.png old mode 100644 new mode 100755 index d4c528c2ba5d287762d8e053508e52c7922f839b..1ab1f12d4ce598e6cc63e93472e16bc9025c75fe GIT binary patch delta 447 zcmV;w0YLt|3)%xAiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*t_+ zL_t(|+G1cp2ln>%4M6;#3Cgbr;tv1;grVd=2!q%lWri>bfB<5I$_fCf_fWA52M-=J zgc$}BY=p8681Mmr0K$r3=KqHY0L^A(1PXx6IuFExFpEJJ3J|3ot3?0-#E30aKopdl z2-NuiLou?^SO7@V0wyHWV4xA?e-5ZyExO^qK2<)-swlmG{S20OwyOlSt)$6_F;r~zqsfX7e=s9sbNOMySjBarp#h5zr@~l9K^Fe<(tWRb8 ze2hUh2W$ra!D!~DE|N{zh$b#`%cc&ELLeG7{xLRnZgY%fAJO54SD@%0WPfE9cAD8ort0XkhlS)imM= zP_?v+rhF}pW3&N)L_gy$=gXa22`?K^QZXB4BoGqN02oY>5aq3>d8C@IWr9Z8jZZ(5 zA&k!`+opA5&XAS%GexZ&UDjIS_O{l0ai7eTj~F6^;2=Qr6cPzE1j9tcC|mGL2{E|^YeU&K+)#rW@WQl$#S(Q#Bm(ORH#a&5G)komLN|>6v41O?t!Gk zUXBUz3>!pZ9;s@!i8smwri&>ALQdzh<6wBHP(sPj2o*x15<>%lSY8X(VctdmOJhar zu)8Hhqb@qkHgR5|A2sqgSg75@1H}vlHpFurBQ%9-AX#ryfDZBw(kK)DD1D5NAa$f# zr8eh5QibXAAj~uCNV`q1!fh5vsv#Elu@V;7+Mz{F>MeSq^3bNTU>I(JT0PW|X01k} zi(?(ZFi!=&bUZF2#9hMb9*QNb98K{o=VsZ4_ym;tS)L91*$`qa(<&k2q`XWprinFZ zF<+AAnC-OB&anYxp~3{S0t35VZ--E?!36dTnOmX8ikodVi`k~psRj0nSl|Dt8Y+-M zW8?9kafz#h8H^p5hhGqu*M|-YJHrXf(RlZ}jlzCjb&zIv-C6~+3XNr+m zP3c>7#B~$M6ibkyFI3Ybdy;A%AMtcv%C~QNGA-+!-$8qysY-o&!ok|a_qRHtU!fqGk#T8<+9rVn8*$}+GqnK+@_U~4y>4IBRc6pA zRwIr!aJUw!l5CC++({pn_op1YpI0oYypV9>+FVpa95rkaGlKc7QAtfU5X_S36dV00Ia@6sW5J zNclqpBN4+`bfcl*0T3%d*&s~|f0&>O8;}$Q0`UYSg&;5=9tS{O$conkaRO8W3^d|$ z^M0go23rr40|+3}f*i?2kQ@75Qnk@%lF_egwOU@&)e+{vPV*--L zHUJF>BspdP0*odIYj%L<=z1V7z@r!B|A}a+m4TR)Ni0AKCnhul@8dD>0yLvLVv!4g zm1HP}Li4)<4sR+#Qy3@)_v5hC04VQ(?ot69iWdM4d;l%T0tf_y0=l6SFpFp~D1hYw zpy7hBVgj3wU?l@1mRP@!F~`-o0I1Y6gcXsvl9T~72N)1A>;kmxx94*()PkY3l+ RR#N}~002ovPDHLkV1mWZtLFd! literal 1366 zcmbVMZA=?w96tu*9eL@3!zFSa>d?^MbA7)HN3Zl+XhK;nookFHJ$euH2E8lSLs~GV zET||Xb3`NCqHE^c2hGBaiJF;+nInO?L@_ZzBSH5;7Bvz#HA^DjVN?o+w2-fhi6}9Hki!^~u{dI5SgRu$7a{{t!+T-BB(uctmp&tK zNo0v*79a4%T`($jj;gR{v^y9X9f;5(;b_BKlMFHtgPMRRV}o*nNwUP2T?UE?ukHtXYJ|QB>IZduX+xhZPm7a#8 zM^$3@R)ra9j|hNqkIX4+J8cGLy4{U3-{y+{r)ne$hRlt}f5s)RLNk~CdGZ-*hbQiT6m zfTy|2nm4kIWq>;hxLd`|Go9t(HFmPPhHJJGg%8hO?M${kU(0>kC_82*un&Id3fo-s zW0g~xh50+!d2HWg!OBtpwZEDg%6cpC#mnsK#yJq>zTIeKx%ACc%bB_3Sc&P0m**{M zSN(y>?9hIyWqBOCFn$25;T{~|s{bxB+YVF-x_K}N~C$HbIo3D209M#`s(wEIQ@yFAb?w^v@!)>jprsvuV z?zytRxwhl@GFA$fmg`PkuR0qlP&W@_t4(9Nl_v+`!tLxU%J_BmKS9fYmfPVePO9$ZE0S7RsYsL?3q>5k=SovbmeY3ue+PS&>lYV E56F4RBme*a diff --git a/pandora_console/images/control_stop.png b/pandora_console/images/control_stop.png index bf1eb4ba1faf12c9a45cecf7d388633dc636662f..91174e3de5cde2341d7d15d2bb26f84eaa3f990e 100755 GIT binary patch delta 423 zcmV;Y0a*UZ3c~{-iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tAl zL_t(|+G1e92JG$a|1-fDKH0IBy-1qTiuJm`p_4VjG< z00aj19v0P#0l6! z;XIHsz+#vnDA-^LD*=Zh23X=jk1j+?LKRnJBGNAj#40=hvlrgW5qft&=1@R1`>{Q=}uCqRWbQb2bp$k6-f zUIOAm90v5G<-89-R|;YaQ)~tk13+PK2rD9SB`E`F4lp2K*ac|Wb%ExI9{|Q*iW>3k RJ~sdW002ovPDHLkV1f{InE?O* literal 1354 zcmbVMTTB#J7@lR3!pf$g)c_`PG6roM*f}%oZKf=+?99qGERtoDqLP-`odY|8of&6_ z?m~SSXpPdE7Bxokq0!ivzL+$%t?5mPJS@~Grcd;e*gja>)M{!?+O&0h7FgN`;zK8y z%=!QMzW@H8sh;lLPDh=CAP8rqlaJwVP2nvsBM93m&8c9a))e~8UUksSh&m#IlA1su zk`{+h42ja%fqB$I5cZTD?=$(Qe4P*+#%X8d5YvL0=OMIggKnG+2E|>`j*j zxfmZ_^@XJXnKDg{qo_$F4(KW-0v05lxGAb)-6zzgkI$g+X8Eu#`^lupJqK){NhNu`a z)KNW&`!TqqNXE5$yrTjTN5k#WW!w~TgjbWJX{4ADK0x9>E=iU+=tfnGmN z`-5ISEch5!=%D##8WwG=$7Mpi7h`>X-pA9l!1%phKF9|Bp`Z}*Ko~4?BZ^^)N)i?Q z%GmEJ*ZWv57t)bvs(M^iM~V~BlTuC9NU0hK^?F=1h>A&BDQF4}TFIA3y8JSd!n&FU z%N6G2bs~VwI+@en4%Q9bY=?j|U*Sssr)m@qhANE5f5xS#!ZTPnt_?pH*476pcxQCH z9Q(J=e2Mon8{vcT>{p4u^7%G#zOs^5>{tca7uRV4Ci{=TkG;;k|b%phN=b5_2URdrw zJM*)(^G3TqH{tFFvAY{if8fYZ*&W*D^FO@QIMAwJKO{eU<=iEr;rq^L9bpUa-A6L< z*(F=8-IiOrcXOe(zvi6_#2dAhm3M3cf9uh%o%hAt;PWS*esSaCPd7_1 ne*9b8zR%8B{U0UXw{8m?h^fr((pJtFF5GSrp_{+ZF);ZL?ZCk@ diff --git a/pandora_console/images/control_stop_col.png b/pandora_console/images/control_stop_col.png old mode 100644 new mode 100755 index d540561c459e9e04f662522665dbdfbf34dc412c..91174e3de5cde2341d7d15d2bb26f84eaa3f990e GIT binary patch delta 423 zcmV;Y0a*T%3&R5;iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tAl zL_t(|+G1e92JG$a|1-fDKH0IBy-1qTiuJm`p_4VjG< z00aj19v0P#0l6! z;XIHsz+#vnDA-^LD*=Zh23X=jk1j+?LKRnJBGNAj#40=hvlrgW5qft&=1@R1`>{Q=}uCqRWbQb2bp$k6-f zUIOAm90v5G<-89-R|;YaQ)~tk13+PK2rD9SB`E`F4lp2K*ac|Wb%ExI9{|Q*iW>3k RJ~sdW002ovPDHLkV1lw!ck?cMeJE)@E4Ep%8$3ObC@^x9tGgx=NbAqBFe ze26lMbTKa5;$ky4li@PSCW{|`2yt7`$>O#cm$?v^C14ig7Q+%1Cf)%>{~-IrOD^|5 z&pp5A`8{9naAQNQI&Wtl06^`nqx{mhSblSJ08pI!ZSsLEi0&4#iI0d~w7>vIm=7}0 z8>L$rKSPJRU;l=w0zlcuHn)f^zURphAJx&ajV=+5NoWA7Y7#Lz)Xs=7$h5MY4Y~K_ zR|sUoHe{d4hxuYIrj4!Z5tyc)hUQRDdx!`lHPx^xK}rsyj7Y;ow1bP22^+HNmz2)3 z8b#o$iP&yK)=0JZ8lj697--UA+7M>Oq1mXzjTm7hDxn_3F%;LMm_>_Yq{%{JI9z`a zDVh+DkbcUu9!rvJNSi3eNEGer>e6)?biB}t;simUm>$*ZwUUK4-pz@0Ld(U=G9D-< z9unA?$nqSNJ<>tGQ?wxx)3p?$F`sY4F&AGilvFY_LB~*BhoRA^oY$&#T=X;l(%95G z-rOByP(KsrJB5(ck4RYtEY4zn7iPmGWu^>z zgTsnbddzIaajU~jdE6E~;dbJb0mm{vHp99o!b~|#W~W7ud6aMsCnr zz7!*{Z!lqxz(?U~g-Lc31|EyWgX0z>W?9eNg&SRj!|irD+(xrOV!wtB|DUR%5*bt; zkN=EIMkURleB2m*N!VB)hLd(ikd_1S{<$FS=d_n{G$(EbmseJ5l=?tcfqLoK-vij& zvssAsr9W=(F1k7iRGJ~+dRSdMk!wgDOqT~r)4Q(xrEwSA0eyFRe#pJ>oMU{-_?<0q zY-D5v)|VugAKHJt@yn+xpsoZaV>>SoUe-N+_?4M{^}9<&M^e_n$Z@4AdB$nVj}YH8 z_Z&qPL)Tvbia|@^{V$46Ke0VG%Rb**c~{lf_q!sZxK)wf_oMO@2%N?)6rVT1-ubz= z-h=ZwXeopasrI(TO&-@Z^Bw2l@6jlH}*i2RUKvFA?2b}01|SWLk4 z3B}3qmXe%Z;L>o}0X24U#=GM+jq8l-p&pdGMDD~uBI{HzX=%`NZNq&oh z92OC_p4fj4x%@wqdWj~oLbmkvamw)!EW}Git ZNB~3h=ciXLI!?;hq}Sa*opA>G{{bft;oL3nW!F2 z1EbIY+1EI;6EHLcNs1YO0HXgBqjX*Cop!*$^G(d(mg1ihBcEDqh zJP;><&00000NkvXXu0mjff9G=W literal 1333 zcmbVMZA=?w9KX^IkdBS1lYk^%j>Vy|y_dGv-i->S*OThXYN^;6ogCK(dV_oMdf0Sri@hVASM>@&%+ed@3g#9*YGDacwZwq;n!mI?(+hMR(hlWqc+Wh<`@bk<0Kf5X@oolTBt08fCd zI;@MZAN|c`GOXRb9a%sa4SPtJU{i!4P8Ek`pcqjuh`~SZw3KE!n)6VeP=Mqpf)0>m zAVhO~#7{Ai4wCbbMA^o6T%MpQFB4$`3?z~fD#R0EjtTohJnfBme0-T3RkDVlh@k9O zf__Wfz&*KaSOPb}{Do;Q>qZ(>9qiSfl+vg_Hm>^1urLh{cnJ)))=~a;CbyY?; zD$GjTL_m-Mf+YQ3!e7cf5T?Wa2aEzbc>d+8nYAe=YUd3XV#{Mi&yW9p z^OrAAE-UtGbm!;uh;w?3J!$K&=p+wTeL?e&RyHA*9nE!hE02#MR~{SRU0j)Z&C4E{ zJNle`VQ-7u_M^kuQ`f%hg*4*qH{)-uT>9(!waIrEwDq-P6Ynh4RF5Ip;Rmj+2_fgv z2XFkkh*$dkem=GQp~Lgp2gmN-UOoQDa`77^k+;8Dzkf1r*JmdrS(fjxOY=K+A~_e)e@Ia<=Kj{zLB(vxS0is=mJdeAVgL z>cU6Pmd4Ic9gdx~wGAA{P1iK0Za3WuG|c7qJ<~pSfGYmbgI@gpO4Zlzx4q%H?~FZj d|HsD*706URzW1e`3E2W6iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*pVQ zL_t(|+G1cJ2yWiG{U0EJ7>EM^0mO)|UR_O4%nkSf5Y2o&-xP(|l~f0O|hHK1S;05Mpg0tVO;2Q;h?kmUP8uFwJ5*B~G6 z#}$So#SB1z(F8H#NW&l}KLFx|M4AIiDjR`bYC!ipC@}Uzb7><|!6Gu)pY?z%% P00000NkvXXu0mjfXk}{f literal 1245 zcmaJ>Z%i9y7=Kw|8_Py;)ydcgE?1|BYwu6*+UteVLa!YST*1=JYJ}{#dx4YPpIr}o zpmT`P0C5XpMmJ@{KQW7mF&eiox;PAR6tn2?gCC48F;U_tZL-WPaf)|9nIFJQF84l9 zp5O2JJ%8St=u92nv#WL&0ANqDl}p>-{m#2{I{;;${(kwkW0>)**`@WFdBK37S<-qT zl2n9#n1+Hhe0&i$0^oW`&ScFj-_DAf;uD-0pQY$F8i2-#r3>O9G?8A|FRNknkI%27 zh%ANCCukn$^%xwGTSpAoHImARBZFc{LL*H`qs7_;3N!`8QjV!P)(WGmysUk8+!%_i zhM0q4bWK#2??hsn0TJ4Vdqq4zAOXrpPJ(q2T(E-!cSq#hP^S->_ry2bi5ekJcoWw}dYe#rTD*UNz?_F>o*^8nSN6 znu<7#La#PthEZGTS_z82L96E0+hjKkvjiO@e7I9mDUj#?KU7gRqH|^%-qX7&aV|5g zLo5w*+K?gIgX{A+sdP4GK*7|EjHVqcb+L0mGqv1+rX#T~+D9O~Aj+!aSw-+Xn^beA zpo%cbg;ATsC(9B`1zQqC3*!$kI71L|iecyg$N0H;!cPSKalC}(G;v6Qs#(HH_psEK zSZ5g&-OkKGLw*)Y2}4tm)uLH>6D@emAETNX#^%E}*RqC{w$?&!sRgseV9sd&GwPDd z-XG_AA zHMaD!T37I$tumEY+jlb{Rk?4vyP`VE94wao0_HwAaQ`#N#nCI{?^ZrMQ8o1wf8*jE z@c5fI6whM_*fuWl?a~gK`jrCbZZl&C=(9^_=-sVtZT@1hh?GZP06%xkHvPS@{X+P; zKkFKH99iJb+^LajFEpL_TEDf-U$>(BIM=DUAHN4}_g(6!1!ajNlkX1~rd?V5%C$ma z^tIDpPV{tlpRb?);^fLV#ov}Z)+=*zW&KNq#YI9ljJ*)AUv55kIGvuhW=BC`TTjo; zcOH1;z1QC!osFC%pa19X{+Z9lPg_q<9)B^Y-J}{C8Un~0*XR8UF7RQ+)kV*tNB?qu NILUa5`>5sU*uSEoo*4iD diff --git a/pandora_console/images/create_directory.png b/pandora_console/images/create_directory.png old mode 100644 new mode 100755 index d344228290fc36c762c1af711adb8ac76973dbd1..0bb2fcbb7249da4221bfd9e3036feef0222add43 GIT binary patch delta 326 zcmV-M0lEH|3*rJHiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*pwZ zL_t(|+G1cp0*oNS-roK{kaA=~lGqOrKny4Vqy(yr0a+OXKmZ{d00##T9%N)wa z>VfzG5I;bdV8ExDU>HNA4eUgKe*hvm$nl03&>4;_1VVs;Xm>(`3#-CLH2wjMFhvTI z2B^Copz+Pff*u@D6YGg_V?8!ohzfLKeN7qw2r!x;Mr>{;6F33`=>X0A&O)R*a7F^+ z1blgiR6`F!4Nkxn-N@c&AttdSxfI5a2VwHWz8UO$Q literal 1432 zcmbVMZA=?=7{8V}a4quU78p)A4+ut~_tMfgDNuSXR9gn68I4Zqad*%{dw07YYXP${ zbfh?vu}l+V{Lr{LbxdZWW)L+rgNzw<8lu@kFiOI*WQ&_7kU0k89Z=>6vJYNzx&QOr z^Lw7(^Y$NXsIN`mnYR-FfOJP4?iRm$q&IB`0LVVS^W~Bx2sW?K#I^|$f~Nrs#kSI* zBSf^*ZknLF4}MEm06>aA;PDDxm(xVDAvGb{sG}iHL<2xYRg@#hPFet4>Gl9)hVFhf z0f7O^3^kX#5Eo~q{eik3o^I-?_mDlEq>+NED#41VNpujR1pSPEhYiohraBlydHB;~bk9Twd5LmJy! zhdtdK4ZG9} zG!_GjV~Eaxq6Ui&x7+lX(N=@v8Wc(T*ba;7F|E$7v)eJmh@v*E2D2FrI(rR*7%;m= zizTrRCM*yPNhjk5#JHPS+as|iD^C*w%X?Thn4EwHKP#|dKg)sErgAk3x(G7BNE)d@ z8~NfiA2>u)cAgD^>lHQywqbyv1_VX*T15XabKGLpY3v3)YB6Y_O)T|)ss@W>U}-%5 zGcHM$ID^u0YxqTBYkg=&+!|(d1-B;_Zy2d)(C#qdyg5oclS5Vo4+u$ zZ)|Xyc8D(_~cl075J_Y1Sc1* zvfPtP-tyS-(T#@BEGF!$)mY7_Xz@`$*ik!?{yA;hY#b+K|yU_A1UvuP`dTRCN zb7!t+Tdmd|Sy@?Jef7S%mG2AE`+h#Wps;;W3|@OfmHO1wj~QpvRjS;>YybT4=lo>q zK=|g>#{2{E_|bP}<2~|)Q_38*@9%{N%FC(F-LK5wc=BVY==rgqM$)Ln(qE_L!{=(V gJL0{!@+yt_K=Ij`qSKMr8l=0@VXMbSYkd9x0%XSSUjP6A diff --git a/pandora_console/images/create_file.png b/pandora_console/images/create_file.png old mode 100644 new mode 100755 index 2ec5e2a25a087953098375c8e98e91bc57190733..29bb9db63655750737e70ad4408755b6b2a948a7 GIT binary patch delta 366 zcmV-!0g?X83yK3FiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r8> zL_t(|+G1e92JG$a8<>y<00Ib88pcLZ1`t3PvOxBE5Y2)`aw7vi01!Zg5zr_Bbb_0~e^E0hz|-=KDbE0Ty>F z05vLt7yto8T1Ws*OaM~xSmXnNe20RO{7(xdyg&%OFDAEByfYAgoq6H<)sRs$@tA{2yPy{-n zBnd2$xF1_a!Io@b*&K-91Mz&a;u0-(7@;)Cg%d$pf@DKMu7@V-24d8+L=fXmU<$?NO{nHZs8A!479=p9g@z2kaFLBj}a zENqJ+Dxf1V3&zaM%}t$IrWuS8aBKtFTnx-89WF#!Bts`*I_ecD`Ulw`UUIqjdG7an zzMr?f$i6csYI_s_05R5GxP$*DhhDJ|03tsB?c9Tqz?sXq61sw`Cs+zFk#so)T0KN1 z<)8?%q4o-u4FG~FcWD_{W-HLUXpfu-VdQ=f!?OV(+vsNqS2e|fsS}xkBZbVnXldB9fg2=H2Ol;%{PUp!D&~Whw^e(+#u!u$VoS;$JMw3 zRhYC0j>2j!f@n=@++x!R>hOmY72_#5X6k?w3tSxHd_=bOsP@9 zsxa5;^>KvPMTPykdB1C1)nmDOjHL*UW=mp+Lv=J`1H>3$Q zXfP(oamoKvHHZ%e z3XR8q#wD!cXE1bJAAVj~UmwcL?+nW?N7unqZ}9uMWW`OT{;Bf6gF&MJb++6H9#4`3 zqO79#6VieB+@s%AfOChKXZD|O`&a@tPxsD!|7mNohW?Qhi^Wd-Z0F7ef)YP_j zGxsbXy1V0RdsK9^U?kdPOlde1b@cwj2*a?+IsPa)>Hc7g?2hxJ+ZhKEzKn?E(o!~y zGSTVT_%yo!mJ3Zc05SZTBWv=Pxa+|Wr+UQ&ebG+yw&JelzWAQ$iJNfZ2;6h*n4;IX zzbOZPXb|1$q{A_L8*WYyM{O|3t@)xHUjtC^PAIy{RJDezew}`30o_oGH zsIbJrqk4cb()$nNmlxB-@w4wpt*4F diff --git a/pandora_console/images/cross_double.png b/pandora_console/images/cross_double.png old mode 100644 new mode 100755 index 593057841c88f0439dd17396ecdad09aee8d98b9..3de7af16bad76d161002a0dc24149ec0215f8ae5 GIT binary patch delta 576 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 FV1hj4&s6{b literal 1766 zcmbVNdrT8|9KWu-!b6Y}bxh?f@~Y6gD}B&Pp^q!GBG43!ID_Nb9#EmZ(jHPov=xWQ z*hJY_j3aSs9K#_x10y&G12>D}1EVwG1H=bJL=i{Kkio79Zhx5lu}d!Z`+o2H`F=m& zSAKg{$shW726_Sj;Gtr=^qWN$W&f!obFyHf*cGM4bB%G?Y3O4P{)jq17ocs%7FnVG0}_hh&nsf z5EGm=A#=sdH>A>&RG^$N;~M`>X`0`j?RgbNF~!bp$6*2^kM&NlL@506?xH6%TFO~5VD5QcD!xISP z3Jw?Lpj;U$;LT%|Mhl4CA?i9+(_+=nOcsmBjMDh(gT#JG|k$lnVOl2 zr*krC3o9!ty(eBTW!Sp6yH!>A2E|RqmrQcgBZ6BO*#OzX%#BT3ZobYv676Y!`lt7* z4JQMve@*g^$JqdlE#JnPE`=-hg37}K(_V|&Q||hi$%&Dj-nEj+nWo%ZDw6KvS9W{A zUv>5hJ%R?_^IN`rbNN%i)$fDhp&2;vd%AA=#D>Nt_u6(|9UHmT=q1?~!m+P>*5Bs) zd&AMA^dq5s(P$g6pcVS~XV_%1MAy~T!FBcZ?Di3s4d{rl`?hO6hM%~Y!sU_`*Af{v zwtG98Ws#2K4u_-rtD2fD>(~ITw7Hqz*|6!yC6cM? zu#{w=Pvw#7aM1#_X9l{e!@S4G$4#k{z{btzJT>g|9v)RM4zsr4ku6U3-e!Qzp*1gTIJ@~o)FyICsBvfYHvx*rT2{%W^v?>c|M(p9m`VUrcFXMVyQGYimy#W88?p-og5$ z?>Oh!T83|kU9vkdtbEVQvW(t44cRS^-8z0abor-)UERgSpFO*G)EJ#?_~nx9bnmB6 zdR9Gnsv$!Ufva0{U55r@ZPWGVt1M&Fi@uHlFn#;Ofzm{=qSfb%&ee>)wej_N)1&eo zS9p#S`POC{_te#{3)@Tn2w4}M5d?kPAC|Zxf9P(>A#t}svgy&Fnl=_7?y5|Q{OHJg zpFdD7y>Nr;vwnR@Vf9LTje27ZeQoC*tcMYQ8Z3nyJKDD(-*P5VXa#tny%2x@Pgj zXlpV*H2YMIZ+ijEYH8ckqj`1sapWaOK}P=Wo%@G`Hw&T`U+3Osy^!i3xs$R3K+p4x QIOolyR3xJ(WtqGF21W9c+yDRo diff --git a/pandora_console/images/csv_mc.png b/pandora_console/images/csv_mc.png index b49437abdc7021396bb2c3d274ad52804bc9b80a..3023e5a55c6b5a4eac25dfe415ddf23b36e5fa28 100755 GIT binary patch delta 380 zcmV-?0fYXq3YY^SiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rp4 zL_t(|+G1cJ3IGHUCbGA;UymUO5I~Gj83$y+g9i^DV1hA#)CVBm55yPnnhy{_SP>)8 z?EgU85lL)6ve^z$8mGYN`~_x zO#1>Leh-slLDRSp7-o)08udx`49vuM0*Vh19pC@~Miaz{YKe^#i@C2xJFB!+Ze{7XtYTP*<;qMGnq@CX}iPMHEaw6Rp!J$h-Lzrqe=D a$^Zbbqi`x*wK8P@0000B literal 1328 zcmbVMZ%i9y7(aS23an1%2(#!oj~O;2z4uE0-Gxf8y<(fJP)j4Io8joar3duxc6ZQ1 zj44$!z{D_PGM6mUMPu9tiOMHpqGQ7dA58r7WtoZ51vPP+C3Bw~8NLS;{Xk~oC6{}j z=YGHE|MSkoyPvkz+G{Zkvqd9(0(}pguXP`WRh(08G7=s(!u>|Ck~VUJ1~E=l1|bp6 z3PUgf1##l^8tlL@JR>FhjsDmPHl<`8f{AhDvnpa^SVw1G6;dP6AO_)(B>Tx*pMFjf zlISP<+%XVSLog#nCNNvJ8pD6gc(vQRdnyq`pW9HJz$!0iJx?R5dK6L@?y z?c+RrSJ>-h!a=<8y_=G#z#_9@-P)xxLkw zVA-#P{O)jl_vNx74GM;$B^70~JOS~HVkmk>QHfBm+d&gCAtlMC#%$1bzC6^VaVU0a zN|xBFFe~j50bu?s^KGv9f2u~IU?_7u{xvRT6`DcwxI6qv*j*neqn**vay(YMb{*~K zi&36S=C2QKY;Jbqj}ZFXC5wfy6NSUiyv4y^+Dmu=D;^)YJh%LHPoz44(Ko(bwm5Cm zP2a5Cb1I$E}uwOT7t9Ov+Y04 zsf8umsW)m~ul@l)UmMszdl3(OW=Za^Z`_=@V~sqz_Rc;l@unNlbJl_7$>!TPdf17GhfeA#&EV&x)N@j{xzYsJTH1+3*cd?`9p@%%!(30$!>TsSvfbCUe? z=a)a2c<?O4_3(QEUKR9ST4w#1N1u=gChy#I^JpcgB1D6~mproMy00000W%U?N!0D4+cV> z|3AOq|NZ}5=<1Bws}EHJ0PKml(1X4WrFU;70NCZ6T|>e_E7E86>H}6@G!zh$^|XQ~ zvf`l9qlog@$g0u`fGwk@`mDZW2Pf%SQY>M}LNjm97W~xc{1NZ>c${Nvn)$NhGG~OLb%K^%@PYP&1@=L5EN4~)SRX2 z8eXy}ru9)PK%hvsQpo0#$sNO*xm_q!GO8fvD4K*+He1ST6Kz^O%0FT3iZ)YYIfd#` zOnualP(KEm%4Af#=Q}C^Q8e5ehKiaZ4hy<8npHF_Ap{8Yhm=*BgC0MmX`dVV80huW zv_Iq(q7fg%M%rnig@$DtyK#Mt00q|T4Mk}WO-GneI1=)EVGHYL*=Q*0E^`x_X^EPo zl>Ms6?>5)-TrL+j6w%U+l&%k#C!i~%Te_Lib9lJdL(+IslvJ&xDK%&-UqLa{w-h;Q z=vjQT!koHG1d#b}=6;Xc=M{WzI^4n#+g$noREAi!ENN;M<}ni)3{16Kv0U z*?x3mV&C!j;kDYEr!x;LF8mbB*LIH-*N+a5fQsp^1)IEq-A%yWi#MNO^@qU%ZWvGA ztM6W!$7YtU-gnT`u9*qm`8vt(4?6Z=Z(eCk1HSnFm6>C!FWnlSoalRy{v1@0VC2=g zA5Jw^y1@Em{PC>>tXm1b8!jqpE)GPBrX5UUTt})4$xPkEL(LXICbv>&17(NAb#$ zHva6sgFip4Y5sJ%h}}6bW&MfO*`~22{Npj^?c&TMe%|?RXrA~DuMIlq7Jt2bNp)6% Yh2i#=>U(EDDqUxZNT={wd;gig0UC+1_W%F@ diff --git a/pandora_console/images/custom_field.png b/pandora_console/images/custom_field.png old mode 100644 new mode 100755 index 8a528be329d748b79496501ebd50a134afdb2342..2ee78fdaa89fe4a8aa3608ebd0656ca63e76a459 GIT binary patch delta 351 zcmV-l0igbx3i|>fiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*qmy zL_t(|+G1cp2ln>%|1kss0*HY)WdH%h2$g9-7Cdy|ZazOTd0(t}^+scBL)Nm#@CM@CU zfSz8lDg=W4*qp$EMWG=O8;~75LeaD literal 1306 zcmbVMZD<>19DkC~7fOP)E!xzV9#>^Do7_E@_gk|x$t6p4scBlYgCe_Lo;GK5FT1;% zv_rj8~6fFqsaa`@YBzK!(&Sl(70G8UXhV#pX!MvW4$ArQ?gBZx># z{20n1K0kSA3H1PAD~N+b#!zNID=3niH!<$Aq+&JzJ(04?3**QjM$nijhsmEWUnL1K zA0}V$W$26=M+Gr8rJ;eTzCmGXTnOdK$X=qS%whu)GI*ja6=j_*hsjO5EIylRiX=86 z#(0?A3Th~mCE|*P2%npF3A7&)ey5w7MJ@MV{*chxL#NEb9wHAF=w zOpE-8GGT;C9O+gHlA6hE8WBlGOtq5O;eI&=Cz5|jU4(Xj2+SX;G~ME9MY8u zO~Cya?W&P+?e6c$1mbAe=QI&Fg)ef7Fd-q?NONHl|8eKVJWKn6G=u>!9bjmG5W-;8 z&m|K9CX|Rl&I9S1jh(mwkH?er1estGau6n%P~1y%zBuFY20SrefU9xSvTpFQfNFk4 z?6=B=_vNy24e^Ge4Jt~pHUZg!Vkmk+QHl6~&kczTFNm_KF&ng%FNZYoWt2~9ibQNy zm=$-3;6Ir&oG%uQaRGnAn+(RHWR;u$KUJe}FqAnS{~DK?3eTW<+#Y@`Y_AWJ@y=*? zIo8UnKD?i)G#4E#e>w8k#zw?uztAh5XuN3e1(4L|E6bLT?nYW|EufK@zi1_{RGzrf zS!{3K)9YA&;QfAkvL0BD4p>)H4c;{yy{BV6Zuz=(dDc1u;R@*fas5?G1uWj#Jq&I) z&AtA}!S9aGI-Sn`>BmB!sFwL%2h{Z9H+J9SVGvya>36$MjyAm3<7n<}JJ!+r2hu uS6c)+{ZRAnS5iv_?~R7pTi2KN+r9N*axZsU5AKVZw^cgP$9)_-c;s&iD5-e> diff --git a/pandora_console/images/custom_field_col.png b/pandora_console/images/custom_field_col.png old mode 100644 new mode 100755 index 205fc1e21e5f9599126ddb792ac12b203ce3a98f..2ee78fdaa89fe4a8aa3608ebd0656ca63e76a459 GIT binary patch delta 351 zcmV-l0igc<3i|>fiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*qmy zL_t(|+G1cp2ln>%|1kss0*HY)WdH%h2$g9-7Cdy|ZazOTd0(t}^+scBL)Nm#@CM@CU zfSz8lDg=W4*qp$EMWG=O8;~75LQsbxE@e& zTVQTD4S#IO%$CiMs8d7c2ZFlIi31senwZ56V~m?yj4n}zGh{A~DZU33{e$ceFS*?N zJoo!O-_QGORprBZIjeFI1j!3*03rA-)Zb;<2x1tR`rx`QXl#vEE!S&poGKtpOpXd@ zAi*^VA%TmvH-9daB8V|AhHJE%;6|F46LwC=*i#7wvJs@TETwRKqoAQtp+S_q*l(v! zW2hMOVq1!XL{RYyadAV3DpYq=hWU<0-V?*h)}y5<8X8Cl8i%G5O;VChd9gXWG(78S z97E?ITB8@652_|uh5BVxK#T2!jVD|r>T=piC*g5=tSCj01Wr;o;kJYT~-@#(&O>q1cg(S4I*sGc1hz>HYsUITL40m zS4Bk=WeL?Sa#6WO^I|a4`4kdLFt}(~N-h)%mJCmE3QpPyJdx1znnNeGknnF9OQMtE zc16HLLQ-x~dDxG7OPUO8cY8-V5Jp39QbpJlt_jF|OG1#e0Pte)k3A;FXy5`4%E6S7 zfFfKaBw50^Kn3fjJZw1$93+vpu@u+ib_3GSG9DKJnJmTl2{-F-P!&$bO}Pj%%?(IN zjgxpG?N@|;7r36=a%sORaGI=!Ww|Lm0abBXlap~-LH*Umb`lM8yeR1!y+QN&0znm9 zg;<3uC(yYH)8Y~l5L5|4l5QvAp3j^qFZVM5ux=O0R1gfn7PzthQ#Bk0gX`n*pK(d6 z;0)@=#o>p-;`#^@+!+-v$En};8lie%h%?6J3RF8>sDS;AQx z3oW@lhI1MDzMk>=zK`3df1dqh$4q{AZNZCOy(YACsOZo=&?xebQZxq?Oe4z8`;eFi1)y>KU#BgTs)anxhk&ETWb0>+qRQ zVbYdJi;AC0$y~g~NE627ObC5kNoYO-FYxOYV9O#;e?*97K>E}&1 z*1wQ>4rHyfe%L%pf0K$U-#=4k?)%AZ{oVKGQA2(t_IgeK0Btio@?6H+R*S`wZ7>-6 zO*7Xn8%ItiuUsn3Xy`@yeE{sf469>0h(Gzj7fMy#+4JX%!0;ZE&pvX6KFn?(+4&&x z#^Ft8^Ts|KJ6Ibyp1JMb-tHgY&pcpi?kc*lx$l>Ph85mNPq0o{HE4AEaZA=?w9Dhm&EVUF9#v)Bz&ZE=WtoPO{r6(ONy<%&6q$`c%12bOl9^iy~+1;_0 zCMNA@5GU%;#SfAgLSlSN4ESl8WXha@MOpl4%wp!$4}NgQ4;r(mc*iL7gY}ZjJ^z1x zzu*7$xfioTPqw+dE&xDVI>qL!?_ulhJlFz&BlH;Nw2Uq@Ibsg0V`h=pA&84=0U~Lc zABQ=}i!*1g!#)6lo(2?T^MUVteQaBL~kOUJ7GX#n3J*X8;7sr?! zJGd9ivZCmOX=)6P7mG!#7{pY4948}@2u@HqMFlKGz?e}?z7$Z5?z#dC4MCSQQ&JVg zR^$unv>8RMOz)K-Yx}Z_vDYT6VR(txa1tZzlIlQ?`+uk`@1qSf2k+UmY2s&_Fvp_-~Op=wBCIE0Z1#|x5Tdv+Nd$D|d*8>A|268m%i16NxWBlTvA_CI zvG!fJ7W+64i`Ly@(`-Cn`lj&b&Q8D6y;_;S`v{ z7t#qFwH0^sr@o4RXO_sg-|9zS!GiHwm%BRmObnm@)$0z8f>ibDX|Ns3UOCC$==XIkh>oovJ=r^s0keNOXcH~{`0e(#0RKJq2|FOyCVu^$dRd+r|_L6PDB diff --git a/pandora_console/images/darrowleft.png b/pandora_console/images/darrowleft.png old mode 100644 new mode 100755 index fc9d1fadb1b141328cb5a5adaaa076144282a0f9..9b1006e1a75b618aedeec6628d797c065a851e0d GIT binary patch delta 321 zcmV-H0lxm73EcuAiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*phU zL_t(|+G1cp2ln>%2^fL^0mOh!*?bVq1m%PE00a=aiuKq8|1%H+00M|87YN`qn+cl^ zWI;io>HwT(0|XFBh!KbD=0k%e@ZiCN8}NDKKM>z1#ozxa4n}|gq7wqe5qdgc!J+m& z**<4NQv@?f5U)Z|%s}b==n9#Ue>o2yK76161VE+-kopMZpCIJU^R$m4fB+jhh>^rB z4T=r}s8Ay?^E8lcDA2%uAXR`Qv;b&eB3UklmKey1`2r9-0uB6tPahKjN6trLKOn|H zf`$SO0HuAHH$f@)J*>c{Rz!g!$pJ~o5NPQIa=ef1YDbVkKnyA_7eIr97k&T$n@3Mc TPYJs(00000NkvXXu0mjfk?eIF literal 1181 zcmaJ>O>Em#9DhyPDlO~UK{wF~u_w2D2qpHj6F0SK)}^sSg6679GYGf3&TC_}{=j}+ z+=@eC(*$FawrQH^eNs1&AQ~JHAknc(-HNU2L-aiu>ja=pe1VNpV}Pg?GVRQfy6$0+tva(97A<`q zm#|)4e)BdS10XtVmMf&99g_{mV)YQi29`_N0E~?Xu5K(~0%!5OX=j-GUw+L%vzlRE z7d520Ib1UfD;}O+nJgPC3x-r>#*e_UK&Ao~COQnPMcbEy46~yv({t$N7`Ou=3mN87 zQWb3q<{S@0kwpmujqq?J#qud6rKC6%5RW)s;7~fjBUwz#h=;omL!)`sIk}|dcVkg2 z!_)|IWsa-Y>uf#AI^I0TOOnJPffIxTMI`)Xo9IEp_J^7Z3ib`pbcyNMFjUlMoh6cC zXr_-!u-rXa+uv;yZ5S8mF2}PdEU5|9wEu@%)*jj?CHy$w{}lGi%P!_h*mssZgAQ(P zC=BJwIS=c^@yd>~*zDp|%^{9ob6l947Fix@x?$R(XNRF_a?$pQZX39$WEiT!nr2m& z(xXWwt!A?+HOcd;kd;tU9Zd5W9~#tZnzAVOCu}TGf&`Z z-g7LtQ?zWh&SkWv-Y&P=Iv1%Wm!rvW;b{Lg>ZXhCPk7v0Tx#sCKDOz;dvvkKOUg&| zZuJ(GY&rOO_Tl#ScywQ5_1y=5@1HsFeBYhl$@v3Hw7qZWx`3|!GQWLT?b~dN!A^qF z@%XLCt!~tFI%H>K%)|Uv^z4gg?&Kn$+-?LLbHW>TXAEBKPx9v@?%F<52l31Xdg74UdGy}cuRnm7 zo&=@)U0)3JZ=LFA)|XWHT!GYp_||IvEOUI~!<4--yZbmM(^G`+3fmc5~%6?Vo>aN_#e|BRt h|Ln*~^YY!=%1|XUV%0CYx00M{sn=(upfB-_4-H%W5KLa5E5I|%gWOJFYDL@ts z#A_5l08#D`T%Ke`7kK#aVWWbA!bc!J4x)kl6EHbOEGEAPQUXA%c<|uC2V^@DAb@C$ zfbI+c;s!#o00QwqTn|+2fUXdqfA0l>zW;zTvVoFKWtK*{|B zlF3+2Jdb8Q4FN!a4IRWtAgSC3QVLLRA~5h4P{U9GXl%d?2Bj89py3zDHWWE=1F7{$ zLI;2bJK|E$OpKwxY<~lk{eesmsE`7BaX^wwky0%TT!03_2Xey{WS9XdC*cVKECl2y jLd$@OK*Kf+XgUP|fQ4L2Su+{E00000NkvXXu0mjff#`Od literal 1205 zcmaJ>TWs4@7(TA6wM)~oL78Af=*+1$A&4)zG_}>NNn>ZtsM9EoAV>(+wND$X^<}n8 z(mtRF3WAM^b|Arc3Oum4iD`Qnn*^Iy21OGR(m)6aB!m#K7kJ^Kbx@AGq~oE*lI8RN z`o8bK9=}q^AMOt94FCYTb0cCAfA`?`{>~i$5b=XFiH!$6sqBqgQ(jeZ5J+p*B!W3Z znMOsVX!A!`(I5b1pI$0^WqDLkErV8k3|%v9%m!d^sAenb4D#S4n%2!E_3NdND5z^m z>dCmw%60}-^pOPzjW6U&>cWi5Yt+yoI9L;~fPp*(){I%x6>3RpLs!6O-_1~P1LDmj zsXIxP>0>f0RRk|9bEoYkHc%En22os5fF(T~Fo1Rh&n{KG3ARzC95%JTn14Pz7SdPQ_M-z|mR(!7nBB66)c zN5zAi3i+XIA>$y$vz(G;&9=H&s92umRxBH4#^W>xWkuCZ-?PDxWg%y}o?@yfCnhPZ zLF>9E@QHz_n2`F@F)7M%QY6i@QE4C+i4DiuI3G{6xT2-b8OZcnTgglznL;kB{ui>rZxyp}uq5?LA_dc>qt`RrovSSrt6pne2}<l);??xoo|T<%y!GOjA6HIwJ#@2i?dWRkNnS>5 z*Qx!Tf%n=gpRa?J`_emmK06RvTLz!babGnmx5qAC5v7MY`Z*A<5Fez|=YnmZ=&kfT T-u2TT{*NRl<;63@6VLw(YXE~4 diff --git a/pandora_console/images/darrowup.png b/pandora_console/images/darrowup.png old mode 100644 new mode 100755 index c8b1198d09224cf97ddb1d7ac61f274d6736869a..78819c22e1922c5c994959305b81ae183d65eeea GIT binary patch delta 295 zcmV+?0oeZE3B&>+iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*or5 zL_t(|+G1cp2ln>%=P?8U0*HY)WdH$$6EQ-y{0CBwKr8^n>kl40$cR%1Kmd_}pyp!= zU`P-I00Bfh#E9m=_t4O|0K^7B`~es$g4n#~0K@`lVgf)MK$bHA0%#~8^q>Oy{ymf{ z2n?nVFgYgVU_w#^0`H+>D9I2MebDET0~;wK41r=7kgYAi5*ZDHAb0=*Y=k35B8!B6 zAO(uT1wdSgoN7oi6q;z(1F-@Y=?6d@h>~!S023C&5};+$c_af9p#@?hln)X=4^jtG tPbhPM6yGQ08mKS!Lz6lKMsgq7005R6P1NZ-(HQ^$002ovPDHLkV1f!|Vn_f0 literal 1247 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g)!N$PAXsWKq4CF|bxJHx&=ckpFCl;kLIHu$$ zr7C#lCZ?wbr6#6S7M@JCVPIfZ$qb1oiSYHYO3u&KO9ZLWtH>SkcDv9BmdOwLX% zQAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3a#eP+Wr~u$oq|n;70`g( z)RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`3F4>--v9;Y{GwC^Q#}LSWCJrp1v3*p zLlXl_6H6ThBLhPNeM2LC19M$N11nQ=D+5CXC{P00R+N%v73AUuwF}6zRmvzSDX`Ml zFE20GD>v55FG|-pw6wI;H!#vSGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfB zF)6>a#8wIDQivCF3*g4)6+?pw7-0Gpi3R$GdIlgb!4&%X;#ZoR3s+rS5|oN?FIIz# zLn;eW^@CE2^Gl18ff1Lc46>@g%DE^tu_V7JBtJg~7K#BG`6c|Jz9x%NZ0TXu8+4g*3-U{?| zaSW-rmGtNTe|u(`28+_)Z|*nW@Ch(vTyUVifg#Bykc~+paDswx2cs|xhXNZYC#J_jKIlF-(P4Y9=mfqOVEMgVTo86 zLr~8;#uRgb_wM2B<})Ww6kKwG@q|m@l_w<=1eeX=Jh|oT3$BYbCmbftW@PG6IqJi+ zgds;w`M7vdM`E|&1ohX2yCg+&0$Q0iRIoPjA4m{(*(Q7U$#;(&#*7`wRRS7;4M(5- z-Ql!Yezx_(iANje@V$S`xq;!9JC{Sl#A)+98GLw5m~=GGwYynOn*emnh6AB2YEA4d zlT;kVnR$I3j6_)8IUha2&$WPY!4@O=?khDbWC|y?%ZNDiK5v}D$k-msz}Bs}ZNUKp z38{Gs&a53h%lRF0IJnB^B=Vfi`R-{jg>lt4yDB%?s+STBeSfwcz2rInHK@q(boFyt I=akR{05(dQDF6Tf diff --git a/pandora_console/images/dashboard.png b/pandora_console/images/dashboard.png old mode 100644 new mode 100755 index 461b2e937826c84006d7d194f3d7a1e896395f09..ad2730b71f51658c233ba7c9861810b6fe7f0c94 GIT binary patch delta 373 zcmV-*0gC>f3XuaLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rT| zL_t(|+G1cp2ln>%4j6&}0feDM0jmT+0KsMP8UmEu55)iR+5r$iIJN#qHXCFV6E=ll z!Gi}69)Rh>Fb1zZ00G1ZRaF3_{PC!J0JI{J19di-GtTzixpPHlkhQjA=R#YLceOQwKD4{k$= z3_J7^lrlq!Nn^-{7J?!O=)HO@>J*T?j4Q$(0PzNll#ivRfqBy&iQR}RENKb=xh-Vw TeP%a}00000NkvXXu0mjfG4+q< literal 1310 zcmbVMYiJx*6u$d#Q#V;mz|`&ju)}OxT1;l{o$PbSn(XfEHe0hXZWfH7u(Pu_$&j6g zvy<#5D8#myG**e$M+rqpQ|zB2CW=%l8jxBa2!fy@{wP$?me%}GDq=O>NwQHS^oIj8 zbI+OcoyT|1nd1Zfhdged8vx+R^a?rh_FDHY7XY@`bdO4eJ!Wdi9Mp!*s%T&kFKId(ut^p1h^)rwwTmCp zlw69@j|Q_at0(cO+&g99!KwbdG&LqgOLX^xR9B5B4is#PR81+X6}}duH~jMCY^hnA z+AuN4V)SNGL)if;sTr6GGO$B}Aw-1&3<|(#AlgoG5J47kEDU!b$OpqbMAX(rlW0b1 zn9m96tyn~g(W9oR^DJAfR+(xiqZuPCibkU>L8h|%N=Q<6(O3`QVA;Q$PCFcd*3 z5)TRKRG5pV5=iJou|Sv{|o!4S52W(uSr` z8w~UE4jDl7pUT4_E}jg>BgsgT6cC}eu%-XQ8cUL4t?~HRxYSi-2Cd`v@DpKseXvS) z#vseF@cUB&+0VX=5YN}XE8bpT?{+l7xI91W@aJ89z}f6y;qC=5J@b&w+3a9&-%ob< zL_2wa=AH|R^KhWh`NCZv7o2tqgCE?hH^JSB*58i4KXYxOeCzg%{gk%{EIQpSSL_j? zz@)>TbL{-If8ofV`sHNo*csb_3Gn>d>=(Yrzh1lCda3Cwm zv%-yQO$W0Du-pCyzbbj3a~*1*y0!HA@|C&3%IRY_?mP91cm3q&vsj`Kzt_ zjgP>~=38fXHJr(XKKMSPww-h^g_b{hf{oL!x3}%v>jcZTmg`p+e@)O&U$B*J?@|qO wjfLfR_8wlk_?P|56Zd@knS0^K(telE0gfks9$7q?zGVHeGO2#y%|zkI-`;43PsNiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rT| zL_t(|+G1cp2ln>%4j6&}0feDM0jmT+0KsMP8UmEu55)iR+5r$iIJN#qHXCFV6E=ll z!Gi}69)Rh>Fb1zZ00G1ZRaF3_{PC!J0JI{J19di-GtTzixpPHlkhQjA=R#YLceOQwKD4{k$= z3_J7^lrlq!Nn^-{7J?!O=)HO@>J*T?j4Q$(0PzNll#ivRfqBy&iQR}RENKb=xh-Vw TeP%a}00000NkvXXu0mjfVhE53 literal 1597 zcmbVMdrT8|9RKwpAQnNR)3Q0wV?JhRdv~<-0j0LRw$@l^T6DzCq}TRJZ_wV^9=0@& zhqx+ERJP1$0+a18vN30T%}pmL_?nG2ZgWu*H(kOX?xAeK#{zU$q;7v0|JWs$`+dLn z{d~UfU%S21l9yYU3joNouErhQSDb!xvH;*6{p0vpT3}5ztdsV!5h6qay_a^AkTpQm zk`9vaHg391mIEO0Q`I$Wjcu*QLkFZp+C~};FdQ0ya$S@mJar@sxyf28sDW3l9 ztA*cC*bp0IB>mLtScr7SDyu!QI*-~5>nfn~sD>j5kSqa31NFhMCaQ&}cs1NPt(L*i zlnGm>g`WmhW3xj>Iz&PWDI)P8r6^P?m!fh+Ems#q7=j`)6q6xJ35sYGN)3WS(+|vf z3weDS2X3DB#YtM&&$5h0CW}NO(nyJv4%Ny~wOTDhFd2qPI15R*F~|~8NibZLVZh0- zCqywUMF*iYBjKhSSS`#&`ZR?AW3xRY4u+=-#g$AJB^VhhMPz|MI?m!>MWd+-QCw4qdYtw&1jrz3#kDZ^N9v`#8oU%Q z!AkTh6vvQK6^g3#rMTIo#MCAOikF~BhU0lygIEpBE=Y(hLLk78>331CYy4P+2fL~|D_0`c^?(tMgC%|0%IjM(F z#ut>2<`oa-tm8Q^T;h8Mjsamo(Gl@l`u6E3`RgVR&b;ZJM*^O3q;JFV+#f4z|_0@IId#AjhEWUmFV$d$&XugiPz;FKIha180SZZP{ z)%+;dCMi%&j_H#A-r*VYh5Nfsv>dordvA#$N6aMp1;jvc_S+F~m)}=m$pXA>PX6MS z;XSWhKZzu+^zNQy1oO_jM1tlorNFamRa@&tQEK4`)+9Lka*w58!ee)9W{d#^>iz%SWC z$Ds)q@EMT~MP>4A;##)YcjlehyM)&GBlm^aUg?CF7@#Y;Uz*e799EelH%M zsB~#=GP!MiEiY}ZvyRCVakDFVtLQ)x$Qu#(&+feR7XrQ|?B^$X#`D)W2e6;{3B|Fh zLclYx-?_Bxv+w5i3@Lk0bLDdv6cqGaO6D)FK)T8zv)_OH@X|N;&VXT9l_U+sfcou`@}@&+5?*^jT!7YueU7xgzyoa+{MUYS`BHf$caw~QI) s9gOY2DU|T$w+;yxB@O0Jia(wYK-J1va{a2|So%V@nkw-_2G`bq0Q`(LK>z>% diff --git a/pandora_console/images/delete_mc.png b/pandora_console/images/delete_mc.png index ce16431d43e3158828ace0be69df6b26b2866548..5997579c6dd241de542ad6f307623abccceed411 100755 GIT binary patch delta 470 zcmV;{0V)3f3h@IWiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*u$8 zL_t(|+G1cp0*oNS-roK{h-QKc9suG%fB<4Z0U#wXWemuA00Icb02nxU@E{}1utp^D z0}S{8KmcJy80Le_W`VLd0PzQy1kAz@KoyBVdLgo40+g=DX%RpGF`^3qEe!xt>p|`Y z8tI5tF;EdmfdDoWVVanb#6Su+e*&=sR1!|3`vL?&zVJtLQUh|3GNMNj7FQ?&ZFm4; z00a>E2qW^*;s)gS{W$bG0m2ZUe|# zYzi+RM-Z|E6I#?=z?E*9aF_Tj!j|wG(1nnbe<+rW4FVIO z@dgGgIAT}j;@(D&g3@m^} zKb}l*0qQGwh9G3P)CcxZ_C<6_W^B$-P*4E5LIX&H zQh@~!a{!s3EbakfLouwREN*=G@Zkfz=@gm@Kn4^L5$mAjv;bWY0M6KqLw8W!Jpcdz M07*qoM6N<$f+jAhIsgCw literal 1407 zcmbVMZ%i9y7=KF{6h=oU;5w6$+X0G%_U`(>7YZ%C7Ah+isImHGy|xFvK=11Hkb*M; zMFxg#_-~HI=#0z87N*n8Wf2pHt8Oz{0!j>7)J$be;`}o|jbw^%p+!HCeejaYz0Z5k z@Av$k=Y5`c)YIG`&wnT%03dfYQmyc-Oue!k03>fjvchz~G` zD?)cLtqdLNeda1t1AsKldVQkLy@w3)5jCCiQO6@uhz6jhE*_tf<#vH2F)R~t`@0@laL_7h%^$9ba62$( zEGV#1k>xog#YhMEZqb55rRym~qHgyFF&9f03YH9u(@~62<5(n;%4^L#CblyF%GlI9 z=IxC#SSu6byM-V;kM^<*7}oCofl`i84f(jh!b73EC_dO7VK~u6Sy1>#9b!Wyt~cQX zVbtM94Q?rC~Kf^cZeMx&lGP=uM#;*>+L z&0t+zOr*IWlZng1xM{5RzF5*OFto@EUY_sDbbu$!i+n81M-h9QUQHlwI>>UVozwxX z=SwjH`z#Z33VZ}vt1!uKqQI;*+MN!AjzK-1XJ|EU@V#bBxS z_)oiJwqOsYmK)6vjg9ePI5;x`9F8O3KLICJa>hm3yz%RSd#kH;(t@*A_N=UE#Gjpo z+>|M-V^_XBa_lh$>UUd9fF!$ZxJs(aX%}|S&*oK<*2DK2&Pyh9kbY&$O2NXe(W%6! zB=^|Cq(mW6SpCL#r*GF~O*L$jFDfLGEtOwv@kGFne_8jHj@-JGl{+y!o$X3wc|RMd zl>eMRUTi=*FYYY40IcBUse!!hzm64*mtR(ZCI%-aO~dk`sQ}fiM{bNX+>w45vAVQl zvdacEFR`#gcB1z9qW{qC@`uk+xB5@~fG844b>QnLs2ZKPq0qfFobdcoh^#CF&4IU` zmjC?|xbUa61t1q2zp+;NXVAm_6(_F;^Q@lv>Lhx;f4p$1s4`zEE1#q4AN(XYAknDq zg5)6e`m3JLU%Yav_-H79ZoUMqcz)0R-4$iZ-x``~<&BS?mYiAmuJGpj`|r$MyR?)z z5PoVIl54uaLPhGVyZ}n-nCxyku=LURR z{WHbj^xpC0$~)?uM_iL{){PaO`$Ia@=zQRX)wgxChpyEe-BAL>!jDe2d|Y%qbtSqS L&D4AK{=t6$dmq$i diff --git a/pandora_console/images/down.png b/pandora_console/images/down.png old mode 100644 new mode 100755 index 5eaef82dc1717cc94324080cf6ff4997eaa24d80..f7de8853505d1e74071192331a901a3bb3e54eae GIT binary patch delta 285 zcmV+&0pk9@2)Y6xiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*oM` zL_t(|+G1cp0*oNS-rimSNWDjvU;qdpR0LG=AFBjF01-w&t?!A_4iG@3oBJQD)5x<7 zAb@Cx7;!kx5s3Fg*@g!X9=w3hs|^%810aBg6aobk5T8flCqTstP{I@_Fds-I0PzPP zJ^;i4K>Pq0o{HE4AEaU5DiM> zg{bjjVvL%Ys3aH`01mq}nBj%VO??hWjluQ`tYoS z#%4#->g=Q{Xw=Xk94Lx}z(81mMdOs|ip3CB;T6f*3o{g~q~OUA^+!}j9)&T>K`=nG zew7V!FxX3Ty{ynH^gy2FScc;nw$IP8VxUiCIk@>zq?)7U#FUiStVM1iDvz-(GEAXR zpbH0S%b8#}K@b?0XL#OEGW_n0iIt+?bi1ky5^_~Xx3O-S&|_4x)-(=LMCqRv410^# zbT`LD2F4T>o8f5IYpI$j%l}U`jIC@Jr_i?Ee-gXt85=PvQ=%MdY)x7xo}T@4Zcc*iZ{lFOF$kxBgS5Mw`kaQ6;*6e~$7k}hs! zfBgD2RNuMQ349GX_D28I`=K!4&Sl_2sq`wASRH5w4ei&Tzb}{1wx2E(j?EqMHMEx+ zJI8$;;n2?T$-#?H+z%s()py~aJJ_qhcmDXHJ@tFnnjh}X9cccvzH)A9XZ}lFcYN{1 z#-5u&Cd@UR+_fIa7){OW{rPq9`r5a%SL)gVyXThE+Po-rbkE5h>9+DzPpMoQz12~^ h_Z?p9S$KP49e~?Q;~yV=J>&D9bTU37El0=ae*-XokP)XH00D&8_V-Zw zKC%l0ptJ%`XE70N2S5N}vvfa{o{uiai0o@*&!O{4b_4Ac0|XG!h!HImK%ra!^-u#= z>w$_4fYf`mv|xau5GVlBeIARAf9HX63CJea<8j`6l6*cC6cP;p0*u&ntAI=s0xSd! zS`Wmam}~@MPy{9b#X<3N0f-%eN#X-hhC*X_J^{yolMzrY$k0Tf;Tv!UC^VTZlGRl+2 ztP^8sq?;*dW-hlytlP~((UP$>*<^75v6|-QwP9^L1@ccA+gjV>b0%R6#5QKF679#7 zuLY*HyR#$LkVYduW~sC(az!#qvl`KztQ2GDpMat&BI2V6<46caI24Xz98HF$Ogh2| z>0vAdF=}yahfVRJU?$CT$uytBIL#%4;UEQLl!@|5LD<4(b=#5k5^4EWsoy3R-w`XO zEFwFGHEtM{)&%6shGW=e!-T0ZK7e6PE~&b!aT~OmuS6{MS)ybtLxUR?7S(McK={9z zNBK}BEJZ>%737#ER{1|wV`(s~J0AZUmzIjopnKdJekyFO57Ft)Sadlmdk*n*Kl`&% za=dnK^7i_AyuIgGLOs^i-`)qhU`8SEjrHZ_<%zck&w#cAo_DUqU-i6o!FSo)pLl;6 z-SzId6_5a{-yP_g5bvKq?m7LS+4ythrBjCYQXlYi+=L&0Ie)uz@chA}hjuhR{40JB zeDC2u4uZBHANQh*-mAZ!cuo0gWnkBFO0sgq^VG{XeO`b4m*DD-#o@z1xUlf4=ku@M zL`zF2!M*#gc-MB;2S0h};&0%C7iOjXP*6d~?n`Q;kDWi$r}T7mC!TxYNr#7xNMbEv zbr-LHf449H+0vf1TZzj27Yp#CTW3S(6KB1N^zW;k-@dYQ;70z%pMSWv(6(#w>4n3J jbj=a>d%p2JZ*zVCe%gCvD9&9z%|3NeplE8X^0Aj$c49M6I69fn#6j_)G@&G^pVMUBkv+n~b1t30f z@Zdp5m_r4iv;tOlB5Q{W0JSq>wFn@97_oQ=700WH!Tp@ttIXebFWjujyLfS52< hK&uQMU`s~G003Mybka(Oe|-P|002ovPDHLkV1jpth!X$+ literal 1384 zcmbVMZA=?=82`7-ro0rosS9i}&tt~1*xn0$y9Hl@sN*$1w72fe_(?CyYq zCITZ;99uz?Nfwd~gYn%&w-^#*mNEUXX|iRS`0~MQ$y|sLomuv64DW!ViDVzV=3fBqARwgZl`U1b0ON34ZP8sBR3wc7x&yrnoKL#WZCX}w+U(gzro2VqXm@K8)- zy7?r}aDzuL^Nj$MWQ9~(PsdwHRuu*xaWt+(_^i+}r1I@UZ7FuBhb1_;={cw|M;Zo1UT2`3*ehvdE(ovLC5^MGMqp?S zqW1*h^`O%61Qd}~9`d?T7mNBZ$melm9+dD9&q6qgp$LW}sNaR5q}NZP7_{-ghBuY# zB9j!o;meSMa8}n95SZbtgOpgR#u=$yVs3DafTHnQ)4!0Jzt7fg?^r+ zRau1ADohGnM1bP|%{<`s_|G zWbBM;EXUjL9j-L?^Hhuqr*c1M?ys&kl~kZ3cABQ0_s&=j*`VR-X+i-zIO~qPBMX+j zz!|Doy7C|bzT);?T$xPt+#rX~1LuYD3ClKT|L*D9QtwliJmy-h`t@wO^42zJ_t&HI zNoT%fu9u#vh01T&eOd#o_IE#2tW&llr$Y~-{rl*ax%!G=L-aA|tUH~QPI^P?T$gUTE^i?&gpGBLN)*n4jw$nh^);4h!YqH z0e}F)iWq@f-vem@B(V=nKnu`ay8*+U$ZjPJ00M{+NqYl`!lDLf?ZF0g#sBdb+6dCX zh!%(-ue?VRngH@1P+=n8kOu`Lf4VpmDIp0EK%|8P)H;74Hb9fV0K^-C?mYmC8wDWe zJ^=$2LGkqf$VkMe3Z#Y!%2)uT7GP1c0BSu0dYFQopa4rA(C}o$7nc9Y4om7QBpLt& z7|o-5Jz7p96@Y?15S%oSf*X{6_ETW6A<#g~NJq-5^&}Vu%4{E@dK5uPPL2^zraO-% z^$ME33jLV5st W=wy$TV~I=v000019DmZ6t()!Is&riyeYke5l_hu2<@IjKnlzW#;L_DJb#ac;OY)>S+T5LY zSCdxDuA^g>36p-Y6G5g^EDWuKVZjgfgJ8wg54yoNM5@SqL2%*_KTPU#ZBqryK6r54 z^Z(!f_xry;FZK04QMbEgHvph6)*~dyx7m7Yb^u^|RjreWu+NC3jD96&6h#e#P*zD} z7%PawIDy6N_;a6OKLC|^DVZ`-@xy#ZDL6#S#!)J$1Py?{tE7sV5p2LT9+u<)_3K9; zQ&7qVsH5&U6Ia7HFZE1lxPPKInVA^La9OJB5cHRLLQuel2up=gS?5auYMqxSXG={} zaNWch2~ZnBrQ&@stY{dz9gIE0co6is9LU9RF75zi8N|?tr5UdsF}&N$GYD=z6!E5I zb9_RGZu%lpfXW+&%F}eQSacMf4n-TL5yx>f!_q8kCl+>nTsFj#UDjL63Qmb5akRm z`;~~_O>Fp{SU#*_(NMIcqKuX&pf9f&ik??g818pF5R8i%NwzdrgEsONuqHi^vr$bc z!1W6A(l!w=?0+-&xm{k5;B}#}lchGX+5b~Dngl~z1$D-~g&+DE_!e?vKELtVJ(_alNf-4t(@A>xB zeQ$hP^T*m^sG{K^^V*vScP;M?CLS}}PtV(Kv>*7cw(W%$XfE&BKkNFsgX&oeUz_?1 zg7}BiCTutX-hQXPc~|uV$3eRC4t#Q{QK}B!eIzg|zIN-a&cXWrmj^17xBbcACPy1j z+f&}|pH3yu?7Z1tXM)yeD(B7WW4zgY#kO1}PQoTLdJ#0{UNqaQ8YUZO>cPrEQ1s1A zJveZ+;)nCMsQY)m@-*1r@_6$%=J)Ew$YF49N5|47+tm*i&$K;!qvFw2z56=g_O4zA z^Gp7-9j{jp{k(vkC!1iWywvnX)t%M%XWy;P%eEDrU6}-6{KEJrKOPwrtjjAF=@s7V H9y<9qI%KJ* diff --git a/pandora_console/images/full_screen.png b/pandora_console/images/full_screen.png index af678a252d254273b2477cdd68c1cd14a114088a..297f5bc9cae1821a43f2e5fc7b5929423682b80a 100755 GIT binary patch delta 490 zcmVkiHLMGXdEPkklvuaUe|fdt_HIfwTi@0VLzzW3>k$fMBu)1RUc4qFJDP1E9cp zDEq^~g9innL74y*I{?MR16YIve*mfZFoy$8W<(3u13)oHCMYK#h%W%~1RxfKX#i4< zQ0u{N1_&UMgWUm-oB}9T8PVc95oqlK^mG7n3KN*WC4WS+a>AnC9UnGx_ zmyVEQ3&c-=#uiGzBfF;&n$GUS1h9E#0Z_03h#!DL09gW-NFG4(Lo|&Ce@ONNK!DK% zF(QQsa@vJ~4bYhVfEJn{b@kB9$ABC_$Pvka#or9j6sdqMmavF_Ku;a8!21A8B~Sp$ zE9ZeO>qknY@3Hvk0J1(t9Ek;F*nW^gpqCPHloKHNLgYkGY$_BWC)+WiDN=xXV?R>) z2I4!yA`2Qx^N|xP5Kjc+KzN{RY-3T3E-^a4m}<;org3~QanmJc%Vvyz5D1x&%ph4W~5F3TxGUF}CM-bCQszioDxgLn=ZAz!!Bf6O;}S zgp*vC7!^5T;OH%}0YS_OsXeC0BFzl1B(0o*v8IzL$VQL`Pddf%J)#ae#4bs8ql;hM zK!GH<(O1a`9!dGdgcKT7#kRqgc7Cvjrv=n=5HzG2Xdo%-97rd7WsOO@(G9x{JR52Z z1sf2($Bk|V6^pb2zoLqOwBq$VP7#1|SP2JCJLo!K!wDQCY#8pWCvb*zGB^RY9u#_0 zg-#~Q2Df}c$&Ds-J;h*He}BKV-)>dZE{vdQ8pCav%~lT)_1b`}bLo0ntIS$pMU7Xb zlrAYUFf4K%N}ujVVWgWWBvX;dwqaS@DikakmgZ6zVa2gz(#UHAt?5zmpD=brYwZIm z5sQkN(x>vUADxw1GOXQ`9T`9v4RctPU{knWR^j`SqO6BmHwyn)1xa9V(uEU*(}6o} zIOQS;mycqD0jG@)G!m?xz_T`X;*u0jQBJ4R7a(bZ2-tjf$_~i{9(0jDn%?GyWliT~ zUd;NHpx-Sn^+Yb?S4B=&)OJPb%}zjTLeUj1p`?JnjkFRV!ts)9Xp9DJ=F5tzbW9Y2 zs*(g76=tLzBEX6NWbX1){ze;1x+sUs&eG@>SNK0w!(cF&F&_UKm#hlTpmE$Dekg3O zk0`^PQQ>lA-ac{|?&s++>uXQ{)Umq0?lBi>H zcTUv)Y^vF1@w$$T?w&gNYs0;Zpchf;d&~Ku*~OVszgksryJ^-5UN3xDSaRzfjt(=A1uNR(7_ey7;B1J~d5zxL*0EDRN+@D%yB1FZ@@IWyq_o<(eM{mqp<_7U)G*Zj0wt!espe(~tlU&e%*m+LBW zXGdEfAD>$_ef@`b@@&!1^@s7EAAe!ks&940a{5!K~#9!Vqic5j3C0^-u^$3I=}=K zJOIRv00G2+0-#Dz^y~*x4gdj!q5@eJh9Fc2ZU7KKI1$Xk_drSjh$kF8c(4#Gf#ix0 zKtVy64vw3Wp-&%(1Auq|FrX8OP1_1`KuQ6R+6O?x9-x;R(BjOI7$3|>FE#Kv2wRaj zuyKITn>f<005nJ+An^^*gOU-8Mv$iSQ0@gB=ELF(6u}#y2E%gR0%(PC0cg<&j8p`* lU64ed5FKfh6gF6c2mr87gdEUZW_bVr002ovPDHLkV1lHSlUx7* literal 1387 zcmbVMZA=?w9Dmw_tqfRE$eat)%VCy9q4!*AX?vm2m+MKVWl%^g*|PMwJLmzut9RE? zNR)0Po9qj7nHe*S8O9GRI#OSv#+S@7V#YTm8YYR!+@ivwsC&^5V(>YjXbjm0FS*?F z|KIQTfB!!tEzM7tZrimD08kokVxs7~(|9dg05F|RmC8tXR1d}UHl<7N=Ts5+1*KEO z!%41NjEbBv@cfKe4*-^s+GBbw@+{3ONgHQiY?)*Vu>q)W%%nKJSJd%Nv0IY8#4jIT zCU8mc63;m!Fp>(238`sN725`z+xfv>-Xjo=4S0QqMh23i&f%G4pRCatFR^NuMrT7! z68I`a@AVRELB%31cu-MA+-ZX~JglSeI){yNK##*yjoTpwNy<(_R}BSer;COZzWxx% zn<{kCQHEXjg(NSL(Df8elKuVtw*Fe1qIQ#%$KxTPowVC)5TZsKkaaFoBWqQ83yi4o zs+7_tMaB(_T&I%Oy#$JMErnz%64@{;YwLwVB_lIjill6iOeT%IR?(Us75@oiQ?%AT zkP^wLs3~ccNB!uk%9By;9_+{fqG;&-s)U-t^)U*cPKvS~X1oOYV-qBShE6x6D3=4e z?6A&FQEq=7!-iaTPbfe!wG_;t)UP!%~{QQH-zFFye-2}M`5gp$I8ZB847M>t-R4UN&DwR{;- zl@5ynt13x+wZgQtNdzq8V*i^t!`j&p6@+YUZGc$k3je2SBnpN!#^Yb(l2@S_G>#j? zkA#i&5oNS9Dq4=kj`R(*pXb7izdbYGxxBK{h?V4gQqEG2nfICt%BtS6A75#zX9ZIh zm?>Z8ub~3>Xx|tpdpurX#*<*~NJ*SEA>2m=CD5-Q+gOHN^@z;wh#;mUhz=EHjoGLmM*kd}eJTw-((lhRV$&`}f{yR%A;&-vK{loi? zR(O2(e?Ae~f!P}I&_OIZ0Z;uTWdYHFm185>qTAA$;q383-<{m_kxJ|KSiPLxG3~xJ zZaT0BP~qRP>JN7N$}a;a1@;|V{>}8*Te#JK=`b@}VV%z1yALMVhnBX+ZeG24_K&8; z#fFnxDlb+Pm@nv!he{K#J{%us)LCGGvs&dvu_>m=@Z3S6*f(Q6&@;tl zP0@zwoaL(dz1K?~+51^}>-Ou_zUFx|Gdux0zBxDfa*6QNjVDjPz3}Pi`QEr^Yxfhk zX4E&bcXPKbZx%8i&YOC!4JE$Leg{8kz^BZGj%U8O@!1^@s7EAAe!ks&940c1%;K~#9!VqicA_V)JwK{OMTe*i=P z1Q4bYm@-DFfB}#?4-i1i$SM>R6c`^qe0TtE7)%Qg)H4tQ00D#_0galEWE=ysgA>r~ zf=gfk7AS29#Qg^k9&|)E5(5AP5H^Pd0I>irc}8Rx!yJbM9D&vzz~&1EEQKe_;a z6O!q;oM?a^BsilJTS@>3Aj%QYqy~KQ$e{!Z%J)$22Vm$3V$*;eO7D@_0=V1^3#9~N zoeZ-<0f&Da@Hq(^cz{a-uDoy_YSVsT4X z7|jtQfn;R>3n(Di0Q5#6#TG!5ASfVw4e;n&0JJQTWD9_XgA&wzA{|GRkI-W|fdtF4G;hTiqCc9RdFq)00000NkvXXu0mjfceIaf literal 1517 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM#=yWhy?{3l$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg|4z`(4M84^(v;p=0SoS&=?Nk^)#sNw%#L#8DBx0SeCfMX3s=dIq}524;o|W+r-u zCI*%!mO2VX28IUuhDQ1Z=DLOkR;K1w28Ieypait7C?(A*$i)q67m#PGlu=SrV5P5L zUS6(OZmgGIl&)`RX=$l%V5DzkqzhD`TU?n}l31aeSF8*(!6mggxhS)sBr`ux0c2ug zQhsTPtrF0s5HI8wz>Uo-h6WQb!1OB;3-k^33_xCjDfIQluQWFouDZA+C>7yetOgf{ zR2HP_2c;J0mlh=hBQ8xDWL1Hcb5UwyNq$jCetr%t6azByOY(~|@(UE4gH81e6?_wu zGxI&}`R-SpqC5d^-sh%#jN= zF;4TKdQ)(_#RR8beV}9XK~ako)i5Do`T;TF2^YwLC;iksV0teCChQgKzJ@U{FvWYi zIEGZ*O8WEvzdbY028WmbPs}+oYt}4w2F4>DYkD|4cpXkjNJ=(7`TzgD|9rc@@+=HY z9gLAT>p3d;FEa@S0uCBxNvtQ1ExggVZUU#qHu+)?)kfRI#bfM?>_{tSo@z3Y@4%Y)0FM= zUd>2w5N^F~xK_!lp|^WSe}2a5e~FG~WNcU~=}TMDXL;k3DXi1kPhsiaP1C zJ@t6xuFlo$H=ip#nQ%??zoXal*dsYwyOR=ktV+Aw|MraK^~W=&1TB9vTjg;Qr>soi i_0r8-Zx;P)>QayJ+PASNS?C9-0QPkCb6Mw<&;$T+-zoS2 diff --git a/pandora_console/images/gm_category.png b/pandora_console/images/gm_category.png old mode 100644 new mode 100755 index 7ce3fbe7ef0cb0c0166b158f04e015f56fe3eb94..32d319241c13ed446f9a43e7139f7923a73af2c5 GIT binary patch delta 440 zcmV;p0Z0Dw3g`on7YY>!1^@s7EAAe!ks&940g6dPK~#9!Vqic5j3C0^-u^$3a%4i5 z0SF*e1X2Q3hN6c7Ab?<;{XohAh#vrP;=zLl55Np_fYJ&KgaAMQ;Y5ru%U}R#KGxn5l1lcMdv;ljD}22{9q;~B-@OFPl2K_WFLHz%RT@9 z{eJ)V|BZ)Qj}{jhix31U4*1zN_^!%520emkE~JVjC{(LlSZ$ZP)B#=rh)0m401YJh zZqNpJVX$`@G$4pBE_Q^~aPT-2lam%chp}XmDab~UhNeu4kM#f*je>4ba$&!H`Wc3b zf(z@k1&Ls)8N@~ZkOJC=T03GxJuzCqni|oD3Luj+C0Muq7%rU}FqIRo=v=X$Hu0tt;Byf_#35S^^7@LD3NOb35(3>K3 zF>S1G#}|}bSX@<842};B3|I#0Ewa*$lQd1^1cg(S86wQ-K}qE^W+`pTTVO#tridw3 zlqEE0k&nuKstbdWZl{n;1%tbWrSwjrV9D?dpTbECfhUu>ytdG3wGI3e#-8YO$6yNJ zZ6Gc8DKXfOE>oTiYxiJBIUtONd0G)+Q}_fc$NG{$QUk0DgI_FyC@_T0Nsy$&N;oLO z?j%X4$IkjV2SsyUlC39+yp6rMPABK7rwI?lQY6Vy9xp|ESf|%pPddDI!jb0&q_oOQ zF_8BwLccp)`hi@gSpmE%D;=_&$WK5hE~|1nE~n7ucAJGngM3Vsa++L&w)16yBK8Bp zr^rcktHO-9M+5}@pUj&{D@SuQWwTOVpU;WyaE1R
+m=f>k-N z>jNaXGYVXe(b%0%xS!Jj*3*$$iT=5{*`(V)?-u6`<+?J&fcgY*Jal-o8lI}pjnlUf z&Aw=s_OCWx+1RW-J-lvubbo!3p$O5Al|HXs>_>k%`)k<|{bSkqxXzt0T)pcuebO>p zSfSAx-kmd?(Dc{XFX(!k8tTrytocyUKC-w_fLw1?e~j`(IpkBTq>Df*1l6(+HwsE zSv2OKs{E}+MB}@nSI(FDlpDi$-~Ksz@noc`^LC?q=0}UWd=hKq>VBEZUMrn?LTd;| z*4`Xj<33tIp2_mZjNdNon|%qP@1N3LtzB_1oYQ8&TOU_H>$!jE=;Rj#UyYnJ#5Hrs z*SdJ+<^xN0j`yO-y0eJ8!1^@s7EAAe!ks&940e?wEK~#9!VqicA_V)JsK{OMT?*JkI z0tiD%KTH`TkntZX{s16=7@@K-0fvJI4>BSfhHi`j11 zu7N3FfeIq~BoQWo?xF@{ofrThfJk>OQjj`eQvh>43^0*u15CpQsP`SACMts1Kzsmy z>H-HKJ`W0Vn1+c!91q0%p%Hc;#71%!NaI8xeE}eV7-$YK(hV9o0Ca{UMWFPC=7 zXmTH*;#f7*<1kPF8oZ=A2^0_L8VfC}b( zAXb3-MgfY^!3Ah=K7f{F$XV<^dXYg&BqRF}20#vQL@S>hkS$`NMlist0&G4Qpg8~l X@M3e?LyZhl00000NkvXXu0mjfzW$tW literal 1390 zcmbVMZ%i9y7=KF{1xA4ln1f{TcHrD}?Y-~OYkN03di2_@WMv4A*2E87uLnJ$clGYD zg(ZYG_-9BWEE*AwDaKF6C@wKs)ZiaTmL<+Kn;#}7n!$$|HJM9H79s|(K+zbo4_%*2<w1zQh*TC%CPRijYzjsNF+m{UBj}rQz)ZkM4C?$$PS4_qL9}XTGM;Pf5O-kt%XOD zBGDsi%CIUJ{pfEll8xFu*iiv!M8lj{C8H_)5T^*k2~pOAoCi1l*ke+Rfs`8}$Dm^d8 z0;-b0wkpg>dqeoZ zX!L$x4MU|K>-AYkO`YW4Yo4}U^nT!d@&+h}m#BQ(i5Y=4)qZ3dP`*I%Natq<{%SZb7&T|#sg$WR~9RI;Id1vXy(fw4`^z$!f@6y5f#ga@-{*Q{T2JEg3 zR$q$E9;xa4(!2lQ6P1CNXPdvVGI?GU*-5?>%jVsHP=xe|FHzSaMa%|3Neplz#vy-~bRn7)lx#umOMo!Y~8|n6M~tz-t0P0O2p3WBL|2GnGSJlbKuQ2f zP7tW!16GrP5`rKTp=^*L1+Z|ye;Sm8q6i>>h(^fnRRB`=k(|VcD-`mPLjj+O|8bdy zD_k3~xe=SfdT97E;0jM<>lD$QgU!STpxA*a!bpJF1hFcDO3bG?W&i?=kw69n#g+mV zKRm#vj|GQe2|x;)lRv;h4l>?hYiTrS1tN>HwSYY((=KM)%b zGL#uz09YPz0;!A82ogY(UI=vU3bJD#n)BeQXnD7=PE&eX(|9E^$o5E@dJx*1OwR>CtZ2kCisr&CxA5MWxsF-FA-N9oK_) zlVIlzu%w1UrYiyy6P!X6CMJGiCWFjmLC924Vy0|U2O&(#Ry zF{qy`p)iU!!$!u|BEXuKs#>03i{0p-3YE?*`UK1Ptm)UP8LZ-KZLw z3=x|Q>ieSVsA|N_2@omKU zpIcyfk>OY*&PcnsO`<_9DZO8Um!F|!eN%0c8iodF9>q0Syrk(siu(UhuXiTeCpzE* zy|WVgYMXh8I-rl+B)Fx))h~{x;t8_=X^|6ZIc~#r7pogNk@GcjJYudX(clP0yBRj_ znM6<&VP}0J&AOr8Vo*yQ8iw%@I*YMLtHq2fi_I90R}|_>@lvzVYSyhZS&bDHrfIB& zb8qrOR-DFq9$-y#V&lu;<)zFPC@`C$$0~4MWU^?2nMI4%Sgf_0ist55KGW&83ln{gFsw#n5+0*T;T(g$WPz zM1DN(zqTb(e_)AxUwe9YN)Dq!-tX#KBsU$3#@Zix{MMC_*VmTR_msRt)p|9tI@7%D zt9GTjxPO9fR=rN+z^3Z(k$;937RhYKz`+G$jtG7J{CWQ2+_Ej%UD->X=o%t7JbEI( zilQiN;%@Xe{swokm!|B}BN9E}%v-+aNm<8+PPQEA;Ok1?M#6(Q^Oz vP>P0Md-OS_N)_&tX7J+9_mH>Ntw{j8Z=Tve3MM{`zpVC(D$5a*^QC_Qe`pqU diff --git a/pandora_console/images/gm_gis.png b/pandora_console/images/gm_gis.png index 3d69b9103e0452b3d57e8746cf64b9dad0e732eb..a557f61a7ee2e3e8089f5c3e11ccdef052be0e36 100755 GIT binary patch delta 420 zcmV;V0bBl(4AcXV7YY>!1^@s7EAAe!ks&940d`45K~#9!Vqic5j3C0^-u^$3dccGv zkq8h#3@8Ak1gZ?K=RJ_x01!Yh&VC@}0Ae3Jcn~ZGGt2?W2nPmy03d*HB4kH`zz3im zf?zv2p~qZU{C;3^P${@Kob_=axKVz zG4F90nux3s7E%Rx!XO{3lYqALW6=omTp$qF1Mx*5#&9A?<9Vb2g~t!ne+&QtL|zo3 zIm-YVRe^XlpgRK!6oDEaAPX=dr8;cjKDq!CdZHi%m`L?BOv3|`LkWkc1)-q^N|BDh z064&eCW#CTfeJn#WiSV9u`B@1xCv-~;tdSs0)POcIby^nh$E$=r+QGnxM_E90Q2R0T4FIe^%#uz^eq7LXDL4$xFjwBf+uNkof3aE>9A ziq1o`7%uPuYS0Bd2?J~qBQ6u5MgM**7A0b^2ogH9t4A6qT} O0000eM}Q~82+_IWW)l-kLjjxsc1Hp-dzjS-dfty7O100fVr~GZEf$M4fgK1JM0ye z3W7qIXxL`)Bc?KEHe;AZjmT6~5aaw}e>k0PCe8)tC+Z|a5xOe^?hn}|m;1eMp67X= z_xHZJy4;*hY4lss005~a%akX4XN2FVNB~3uT1pDROwMfM@~I-uYi9^xz$pg-Sv>Y) zB9E}+zS6UV1^`K-yTHcTtl5~8^2qIBjGXt-0viC0j;HO;5`u#qM6sLH%6flnmqBh^ zEBi3TidbnQ;c{n{GemxQPJy$$#Hq$*x->|`V}gK(;Or3ZSx&MTuayn!V!}C`hGoz& zge%d?UYfF5b0H(e5KxL7Npd2oD3qEkN0SkCvU(w;Ku`om6)>VoLJ=%Qg&`<3^2mg0 z3|@rgnKDLd36WOj;y4U4KIU-7Al(v#=U~TGZ@MP4L6OsU*kn>GALClG()$XMiYZ>f0#DWkUYsX$!N&vE3hpG98!NS3J1pZ_13(KTv{at9x%8 z+i;lt9gDp(LGr_A?L)miJv|^!-@mNp%%R(%Z>k3Sr_NamzH1WIN;}2+RSC5NrEc-B zT>QK=>c&xVQ)kbGZC94;&>Rs3zSQqtux5sS4FD;+QX@t>@kFu0G7jDi}C zb#;}qfK(dS6#I8X+UZDF{Lqr_{46m23u&i|-2RXRkLkkZ%m%}W_H!m;7(D__BT`wA64!b-vPIk2Z}B)i|Ps-t>62e zf1qb@ck4_WUu2o+J(YXKvfz{GJN<_FH!j5lZ$6` zw0|xdQ2HK4*Os@nl<@bCchpYA3pZaCJ?vQYi)+h;%5zn!!_)rs#c%1Tz1X+4YY$Jx zPhXE#=u>R#kxtVCUGVOH16kIz;dHa-`oWfavW8nx2@H`w*Iy`k+O+UO&B0Bx@$+#S YfN2l#j}!mc5dKSB%sHl(^v|pQ1$D7NssI20 diff --git a/pandora_console/images/gm_global.png b/pandora_console/images/gm_global.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea99834fac7de1b4448cf78b20d8fd597d7c96c GIT binary patch literal 432 zcmV;h0Z;ykP)#x6WWYkeg#ysT z4>QaVT0DXH0zmcwq9Y26VU8ffaFt>}xk8+Vl4zI#6oUXr%>|g@jA#lA@EL|HXJF02 a)CK^^zKVLX4?DmB0000!1^@s7EAAe!ks&940h>ugK~#9!VqicA_V)G$Aesrv4*&}M z2M8b(6^u}2`+?L!5aT~g2|xfL8`1z11hHXSKmv|XH3kO{9-P2{3jhQVVT5G91G0lb z-~qBiW+YVt3JMAzffgTt8-eV841b^lfB+&HF=BCb1CXi*v4QSjgt}`#RJswDR~vAD z*#Prh0MKXGLB0dx8$h9QAg%cD;ll$!x%oi0A&3o9%L3K79!mFvf(3{jpcrIR0#puc zD?k7Z078nG{pj(H9@m5t$A4TJK%wygh!?`*0-45T>VAST4OCPBq%I%@Zy}VuAK7#! zq?px*CP@cqT!5TqfMgg-zJrB=BT~A5foWzy_5%~m;|UO(X#`r{K#B##_z;#&K_DI|26DhcphXKvF{lAw3I{aa>_fFmGZj;2oj42R)JxfGol^rU%_8 zG|y?sK{NqYIG|N{7og<;GFS-94`}iA0o?)sX`GcZRpukL00000NkvXXu0mjf6j`c? literal 1230 zcmaJ>TWs4@7hD2O7McHImGHXvv$ zMm^!5tY2Zn90&(#F33iM(Jl~RIhNr93>)!tEFX&SEC)6p3P-cmQ9dW8 zH)CNdMwJk3LS;N_E6K)t&ku8R!S+}GbP?G*1s_R>52j$@7eE(C}$xm63$w9}Q zv=uzK(M~s%#V2hjBh${C=6J1(*^-G&r({|nIUJ%nAjyhmxSkD$B=H%;L9(I1j2NS^ z2CZo-ABhJe=|p#^Czxb8E)|G|xo|R`PDXnY>3AxYsBuM8nbe_yYFza(H(ZzNE`x62 z$Rf10BT!A-rVciW=C%5{bl26}^3D)H@I2pzr?Y~A{bK(7Qk6Vk2jjh#(2HtlY zFE+dO=MVU92^le-uY5i7aDBa>Yy-~X@hA2Y4RbqFE&1JDSMPUZnm~2WoxAHVJx%`l z2RT6=e?SZ-&&@17+~L^{8bFoRMQ`@2W_EbdI-t%hmxNsl-fzXlo$MXr?8LKA`h=O+ zX0M;TbolR%&m`Z4OXI|Bd-zj1{#4V22cY$aH`gG%;+cyh&%y2O-?P=9_7!$tIg|N4 zC=e&k9i2a#uNq|T$G>j246aS?S{ZnA3C44lFEixvzx-u)gU7!1!LhWj>&WMwH~C!q z)j7?(mQB34jDd25e`R1+Lhxa$OlJCDNjQb7hQcdQ1le6(YK*;8DWRV3b8SnU&*k6EYAR{|@f-9kp5xpDuUy*<9cRB4tT jyx7*hGu>x6nv9c> diff --git a/pandora_console/images/gm_modules.png b/pandora_console/images/gm_modules.png index e5994df682a0219ecb74e9539d6ad2a0d1b2d39c..441aefe49c08e344440a043c5945ba3de26ad197 100755 GIT binary patch delta 511 zcmV!1^@s7EAAe!ks&940ntfBK~#9!VqicA&!0d4Z*On^AIt$V z8bCBa0HGp~G+YU?AV2^y!WhUB2M-=(WI`5DQBh$a2mk^ICt}2AK8S|f(bCd_q603m zX3ZK@qmbPWG6qQR$7?x20Fmxm^bq0U;Q`|pFJ55y00dZIj5%}WFf3TG032F2HZ}}@ zckbL_xNzYD!;T$0@Y{e5Kt0z0q#GE~Vh!EL6M>30AcqP-05Q-U5aWjfK&LojL@5kx z*|G(%4Hz0g!AVeqfq?S`Wk@fH)C3eS@-pu{~Ona72yMm2$0W^3r}1{1g=Of#F2_XnFE|rfrc*tQV+4Hd4QB*>XCCEBQ{%s3KM{o z0=fl2fNa4ASkeTl2gzd#CP%7fDv%GLbvV3e0s!)#)1~F|tr!3R002ovPDHLkV1lmO B)7}68 literal 1457 zcmbVMeM}Q)7=PPh>59mQV9*%394=D=y}Q!(dKYS2dM#8fkb;6sG#u?gPv~8_9&3Tc zwKyCYwjpMYY|CJbCCo6xT(T*187x`GTrzbMG>gg5&B6ZIhiIHc47&nl`-Aw$F1g(M zJn!>+p5OCzUFD_4$?9!t06?;{gmO#Ytk|nk0w8-ckjzQKR?%K9R`7LVh!z-N_42h0 zRlXo(4vQYMFYLGr@m; z{v`~tUK3oUccHF;jq$N1tpZcgT3YF8ZSW9Y*t`cS43m-rKO@pm*x$$n$*>7t_Df3V zm>PkhWfQT%1h0^)c9lamUSJ@-2F>@N1`IOjG?)%0bVMGcMKKh?vIyHPqUxlL?>l}r5lZx^^&OG zh+-J7Lvbx?Fk+a|YM>l;Tua!CFscAU<385I;s#v-N*D}AtAoNYyOzLlJ!POU0xLi% zyS^Zfb#g(G<~&S1E-S@d#p<7mC2ayji@Z?D^NsNdDEILqAN277$X21(V33RUuv|X;U8-kmzK?hEb8Cb>}k{%p$7iyrW) ztm>Bu_wK38CHmdh63_qs@to{~HpOuNj+y^w!i+rQBz^6=WuR{txU)cIJoosT=VXV?z z-`jImrT(wQmlkJCd3<`eH*d>G@%MSgdEI2Y(lIP=lmDu=+}Do`1jpScOp&wEDAkjd zv#F~6t1_8Wb*8tb`I3BUJn<@31DNC6d%%GlRW9>e?`c*I#tt>?xbew>rPxo@X)mSD I71gx=13``RP5=M^ diff --git a/pandora_console/images/gm_monitoring.png b/pandora_console/images/gm_monitoring.png index 4c2c2575b616e15fdfdcbb36f7d48a791cb51552..03cdb2dbc2b2ecdd9a3f9d12f463b30be3581bb7 100755 GIT binary patch delta 507 zcmV!1^@s7EAAe!ks&940nJH7K~#9!Vqic5j3C0^-o5}x^)o>Q z`+-;xAb=Q908q()5C*Y9$_~H;0RjlC3J_q13MK$42Oxf-pr9c5@ZrM)47dP50O3S1 zN4^JA0zlk&@ZiA)uuGukg9HPCxE`hh=95Mso)2>_vQht$jK}XHfB+)TwOFjV0K^7= zQ1%3%4+>En3sk%xNij%rArij;*#?;J5|PCEq4)xNtbu425COFE0mykkK?i8CC;;&T zptvD=XaEEd?GbV)1puk_$dW)OF`{c=LRXBe2rZ~lLTNpcqVs5>Gas7<7NFfUf>4Ts^1cuWGvMc}^+<;tqz%nU%zJtXU(4s_Q z(>BP(_n~P48Ek-NaC;nFD!mQMfx002ovPDHLkV1h-W$cF#` literal 1403 zcmbVMZA=?w9Dhm?1zJkt+y>&f9O#hI-g8Ia?$X+JeSrqcu&`Loj9hyMoX}o(cZ?RZ z(bO&CvLG^ze!vMh5odha#)qmg>o#2^CJOstq9!vAf{W8E1g48D!z)lUhU|lvT<-b* z@Avz^|DTtd8tc>rr3C;0wYT2om%rOH?|pdyC|-}MBeGB;xdT!&-zN3Y0t*}rA7l}4 zm~LnNEX~CCPq7vNlpS14KnnOCr$T&KM`tj)SU4)P0kGI&Q99JgN=T4x=OR}0#%JeH zgk!AelLjC3MV)L1SKlkJ&Ap8+q2A6A$)L8!5KD}b4TM>VMq=Tvh)Bh(=&D^xK4;Vz zimXDUPAj?=RKVASIC+6Z3_7R{K_iYB^*US+Nj+JE5DCW(J^gAtjJn$v0_Nz zq7uhPkc>q-$ahOtRE~5lg>cm8+b|pv*9#?=42#iG4A(&{9M0smiWVh5`%f5~qQ#bY zl*Rn4$af1NxgTv6S+ZQayF1DNd)r_pJ0<0g;OZK#Dtbe+rmpQ>SUFj!_h{xvRHl{|x) zc{$<@X9nc`e9!B0w8VZ0-dV@$gx(JDv0ciA zJGBInB%|*DMQ%Gdf3WJ{jz>~=Y+KWblb1@l@%c^+w{=1NM>fx32zKUofL|fM*usWuuGb zovOF%inl78-hA=m(#=~#ma0dWD!xw)TmA@DYRXOzC+75X_SCn)x0FghKQXGf_RWQN z^GmkCu_FPX7Y~7}h0~YkK=HjWDOQzm`AGV!Jq^sb?VibzowKGA07Dbo%a{5WUfQ6yV3RG?$+erQ~KGp diff --git a/pandora_console/images/gm_netflow.png b/pandora_console/images/gm_netflow.png index c4807dba98b9b85e476b2580f27e6a662c94be71..d45134531ff711e96717b91df8792ab29d3edacd 100755 GIT binary patch delta 584 zcmV-O0=NC%3ikw%7YY>!1^@s7EAAe!ks&940vSm}K~#9!Vqic5j3C0^-rfL6oo9jy zo(JMUfB<4Z0YD}H;d+oc009IuAOT3t2eA(xJO~zp88#m(V2G>>D*y-}oQM(41rLBm zDuV3*2|~?Z0K@_?9ZXOi0YK^@NCL=KKsM?=kWwJZa)1EBKp>-l*nyC1LB@luF@%PH zCVz709^HllC_4da6HF0Ip#i#o2ACT`&QXNgU3zpiU?RQjTc0Zvc57YVrZHV;La8m>6gbSa4-JAeE1l zC6K`bXbxBa^wtNWiW4M*;YAmb0Azt9dh)~?L_ovmLk)ib4SYsuaxFy4!-+_La*0si zfnvCTP!R(vO4g&f%n&&*gVGa_-+<(p1T?b*u>~2-0+7af3gZ(LR0nVc(E>E_3s4uq zf(e}X(Siph;-STy0eXpyoXbHH`=Q)KXz{ThS^*%Zq(rC#_Cv)#Ak~BY(9G`$D_h}_ z4B{Xayz`;i)BsB|osU$KBtnZbBn4<$3{&d>E1MY!RYFLbVJYbXuJjL0<_fUH00IEl Wk=^u}j`}$O00002tf1>B!?iu=1$x)r9a6|P zs*(^E6JY-Rur2+jF=(8Aa7L4nOpO>5m56_4l$kJ{3CiZoTpWmRp+!HCeejaYz0Y&c z?|FXDzjvy;^GHQ$O(_7NBGAf&(6>7KmJ|V?c_~>TBH;nmA69#$eszSCdEkvn5grR9 zxB))IbFtCm3w$F0+PKggR>Q##Iw~d1T-L^%N+b~)fX3!jl8X-VDi+}f1ksJJy>|)6 zgqRyYW($(Rq>qmatz$CZGuGJ~9UF|gVt8{C)|jG^g9NW~SSm3jDs;+?Z~3LsIjbgc zY|BI)bmQBk!ohCLC&@f!Gm{Nb(hf1Z)eNnq%jz;=6bVTJQUvK}fFx~m&?Lli500YA zv3@$lu(?=Ba^rDTP0|E0GBRQwv6v-!fPgNSiy$e2q8gAzgEA_rT&h7-jCl_XuS8`b zsS1*aWj%5cX;^jRi0O6;iDWRi<5*O3g+e7GQe2XNW|BxGvUzP;D{6@Um&UHvO7Ccr zCqld;4a-r~kA7nwjB0o9Kv_e?hVGID)D&)rk)p#1UQ`2&8%KZ4F(F2iHYW+8!%8|R z((Z)N>9sSg-$A+jEs(K5GVfzIENi#0WD9gTy(|l%pK>`IHpb3C7qpO!-)6~U1EQjG zVwBIv6;Rw9)_G4X?UQ*MY8p=;VcU)2>B`zf~UyscUu^<-}#H=RUpzVAaUKXC@ zW2`JCu&oNy!Y&M47Ke}Z+pW--%iQU+`y77gV10-?X~%Qe*#D^-fyfZq@%YcUOxg%lLy+5txi7l-BkJYuOi2* zsCZxcTD$4|57QrA+WXm;;eD4u-Oq*Tb-&7J?tj#?;dx>al#pj^-Q}6TCq7&rH))pk zeo(qn-MHEO3s@=9v=lvp2`^9Ao=@wSu;N;5!MMME&mGgn>7QQvGyeP9>~lJ6$%Plp zMH8PWZC>r`C({-0zw-FOKJBfe2iv_5hdk|zdp=(s^3)kt58Dl%x9^Uxn7ZCM+o6&& zKm$NmLpMO95}8jlV8IdipmZUKC#DmCls~L^0P-D>BaDT_ViQ!(B_Ihcfbt!HatyGD zW+K5r2P6Xvp;-c%h9_)vm-YiSe;~q+ex$s%A4z;6N;)OM#Rkyg9=W)k08Pta2LS*) XN{01`I=VS&>#bXJHOgWHMyQFf?sxbs! zg~+`QWG$#ppC5J!A_tpMT+iYb0=Ae?!i3vR_6FF16F5c~Fx;vqaMElgaROd{5XGAq z?jZxTXWf?~IgqFCDOGN;z^%x!*D`cFO*U;EX5=-0>!a-Je$`lT9O0YKVfW&mV$#x z4hwLS&@Zw|KYDaIvQoR-JIVr;Xvp0nuQY{;(E{5a=Mu7)b|A_hG|Y!d+-$=M!fL{; z2HavJ2peUgJ#MSP?rtV%BZ22^Y{sQ+%@zY~rYX0XA_%vEGFprZnZP|ZGiA4LaJ>mh zW)duy^UEuK*SW6Sa!HrSF|r^A1tFH30Dn}F1t}^dVONJ4C14-J@`HTzaw=s8v&W6$ zSA>oA;S$Quh{|#_)^5L{?B}$Xrh=&-LQ5+vP3jVynp+ti9d%ahR8Ov`^U8GRrt;5J zz+dG(fPl$)NL6^cAXB@nJ6W)Jw5DtpR2+kPu05U~yavH(e~iw@Pux9Qx@C$oRjNzD zVQ>mO{9A^xUn(3kE~xJxYpR|VpGTbFqsGG0D%Aw^{X6hXCf1~@a8`ddS3LcJ%kU>S zbP|q`U~v$Zn%XqQkeVv09KLy{^VYrE>n0Q&h{NA%Uxrkf^5dZx_@!>-oO4;V?dvBR z(sc`&>eD5c?s#xKntn}J|05Vz^=;9g%8wNtlvo8CYCX}44Vm-9fY2lb=rdex1psvX+&qm=iX<8{TE z`nWOWLzF$Fx5$-q$j@2fdM9{B@QslfLMS9D!CuX*#M+LI^JWo2q1tM zk-T{xNEsl>2?Fibw0= zc}AGx4LHIU7Ab-t0w92h4|1rL0%&1%0cfQmMkqiP9YDe$%?8*!bpV!Xpa2vb0=Rt7 zh?e#ouqs4KdLU4UFYpnqc+z&u;K_(=1jY#YSB)1D7`x*r5fAJ-17UX<_ zB?mY_(*yAUAix;038DuLl4lQ)Y$%q*j}2@98XkyG0TYsepiJ@snhG7UVQ6F<;PMI9 zxI~JcejLGKNK61@GxP#l8bAggND5P^_wCUOD=e-(4^3bSNX0}Ua>2t4V<;#nI6x=` zK_EU3#2+6%e0T!MumqqOX2?JZsG*>Ip#j7mKwJUR2voljtM`F6P5@F9usAXvmOX%K z8ldb6NC_Jh7m3&mRlpOo7oa%-l$GkCE{#V@f(vk^Qw3;P;R7J~e5heq!xRA4os>hK SWU|}<0000kp39PL3*=-uslj6xzg z84_TS72?z_BqN&!jB~QZB^VZEG8K%&WjMd1)fqA6{~~-}if; z&-eZP^_7(rCaY7`0Dxpq5#f`*yJK&B900O6xMW5W9v9rzLIv9>w2?dooB_6hf;=Iz ziSkiopncyQl?#9(NLN-1)!t&<&xUkl45N#LIEf8FZeD~V{mqmBHBe17V}pO4`WS}j zfDNuPc~LLtqJnf$2TxUWlvMgVn*G)QoM(q}Be-NBLn zPjdpzGEmGS*}%36Hdu;uJ%teG^==tv!W)H>N`^#84#9LN5(>rgT0@5gAN5Zd+oHpj z?Hq;ps4&~g`=x#~W^9tB+CA7&3@Al|m-4jK6tab2{jDL25j=zqmj37hbO1+978JwG zM%1iFb1WEUapn*OZnNI%&c_G?hHl!}j%zXGyHS_1!09#-80OYH4LJshjG+Y8+y&xWA23gh%P5un(AGq;$G<{ZLo#9RhFyul6ppQ<5JFi31X{xvR}Drp8| z$F1R)gst_V7-?sCX*m|AGRvj?{KZ2!DeTL4PU{N#-4&FG?hc3rO0TW-@nh=kF)p^*hz!=$+JPi&FJ|-h91# zZ(4UqlouL1ZT8Yfc3c|y;0ez;*{zcxEA8aYA9@Z3=Vfodcei_Zsq?3EN!}M%$y-r> zhiz9{wBj_}lYE0tcws`W+&xG4Rf^hF2mPD97QfK*-UY*InO+#B0gpGxkxlJ{SiM+b-9jnOS#YH>$^7LY&I4 G@A@0C)$^VJ diff --git a/pandora_console/images/gm_setup.png b/pandora_console/images/gm_setup.png index 3712c9077f5c8caa40fa1ce719f9844e7272ee25..5b21e3c15914d91f464e98b5a5e39b16984d2175 100755 GIT binary patch delta 548 zcmV+<0^9wC3%>**iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*xi1 zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X2Q12I2_7Bme>kCSU-Q1+hUi3smw0O#8uu z2N@ag0e}F)ijW=H2*mXuV;F$~?|~dgAl?teAlEE_sRRi)fGh^86l6qmW&)7X$7&Hk z0Acg;dLVXy`51^B&|L-c>3OKwe+8g@hR~n^Ic@_G2Y_9RWTFC4-~rSf^P$3qK(Pxb zCL>1*Oc4+pz%*eEN@x@{phpah4G=)&A!yXDM-D@nsmN}94~>QiK>QJi<)OY81ceAJ zxIk{Jhw2doN`64{WFZjygCbS|$hZ$RDFJHg1*q>CP<#(njFLd1PGP_nf1VA{$PYl0 zcLbVt0G{}vKCOo;`hXPB`=PN0&m|Y3k_VvfLyndC=waB87MTjV#E>c3eZ64 zN0Ukf`f~v^o$rUn%Liyk!jmxz76U<%s(>U^2-GkEP1${DgdYIPIU?oRco3fv$z|uE z3K@`!8380VNb>_E7h(gAdO$-P7}4^|ex!tP0VoCvg7r8I09mvEh&Mvh$_2b(iWVI6 zq3IjlK$LLA8Bs{C6~N)LiAcE(CGzkY`W_l?j?mbLrDS-7AVtc2T!u5^@pb`HlERh( mkPTk|lusn4h*BUo@dE(dLd8OFo1w%20000hdsug4~!wD&x7As%{S zTqp16xk!J{6}}k&Ra6KBm7w=ACM?CYTppuM#^Q(#K(jR&=fYjQ0z-VKAX@N0&R@Wx z5V7C~^j^{%ckofcos#*sRBIrd>I$19xOFdVPBO?qj8{0AjCG3%CTYQ!?K0?`R}(l~ zhA3SYd?l!$*9RSv%tO7F)PzX`1r0har6bKca|5JFiXWRtopVcv11N799Q2MuZ4M>P;j?8Fi$Q zCJiQvGT9BR%W0&|&K8Poq{uZJ8*y1vi-BhKX1h~wrzj_FZ!|O_GDW&fdb`=Y&h>~1 zg%iX4nqL9=UFDkY$z>ce&nc1|kfiRl3GhWFMM^}aICQk>wG{MnVL{Am@(o(am*r*Q zSw7;Dr5IeUFe7Xb0ZIKQbCbj1XhHdy3_4RIYsOc(k^fUQ0tG|l$Kzk)vZg{am_M!$ zKN8m0hZoV#$Y?pnvif6aKR@uW_CRtbw79fnRc*=Hgj~rsRXHeut_TlLEDaA2tKYDl zm?x_;Ae5=UvlZI}hjHx1%WsCQ?~ed%FjPag56pa*nLB(icXRYBZz27wN+{a?j_<%H z`+C%YTg^vb%Qp1v^3=L9l@0u)+^+>?&ScPjE2XX;8clOxtNKU{_v!5{xWnxNvtY9J z>Z^luRh7rHq{}SEv6mK42Ep`)E%1rUztu;Rmof$NI5$}5v;AnDYPzZ;AAF>c z=683CFFP*{0or@MHeA@k6{yzkxb4?R~( zb>OFWcMqLX1x=gaQw5Rvnx9juk9TAa7eyz=RNJSo{i&Kb3Z5)`Jo^mhC*k?Zm-m}=E5(pe{`-o%T1;aHI?P+c3iwMdwY(hzo@-A_Ezx&uYAs3PoHYYxXRC( y)EC>{hE2B2894B8bC#&f1qV57Izew!jbLEn#?T&(b9^d)F?yV>?Aey~fxiJ|N7zyT diff --git a/pandora_console/images/gm_tag.png b/pandora_console/images/gm_tag.png old mode 100644 new mode 100755 index 9a3372d75be845add14a4069b885495b2df44738..a4431f14c5d75d291ff710ef79bb4fed3a43dab7 GIT binary patch delta 497 zcmVe-IlWfY2q*!z7rX0x(qu41@qc z01>qGKZ>O=4v+>rm=VZ$50xu~`GV=-!GnT8S^!8dz-vB00O7NEKUUvjaa{t;LC6|d zkQ9L&SO|0rBa+KOnjFz11SatTf8=;1iyEPHJ9_rVNoZfWQK1z}JI3#fY8&p$ZJ37!;NJe}Q-dx~~h+ zlQO|ng$@7$j3$VYgp81YqjUfz=?TaJObo=AAs_=2p%IOoNBhykhmlB^C1T6$KsEP) zlmZYR0LnY!G!&X(_CqrsF2i6M6sv`dI1GcQKs3V|pot3|e1ICh0l8=ZrK5fviVN`+ z;jn}W0~>$_2QuPt$pdIuM=_vfg9Ie@LnJYIm>eh~8HtFb1we&~NafagB&8S7>We^7 n5HONicq<^e`UBM44`A{D6G^!h!7&F300000NkvXXu0mjfGb6Ps literal 1438 zcmbVMeM}o=7=PPBDM*tk8pmefJf$1lnl3tyD3k)>XNqA_HDc**77=eghS z`F`HRb+rz8!Hxm|fZXLIJi>Q-=9NhS5WN_YhXtXSw>9$hY%?DtIT~03te=KlA+m+` z&}5*i<8!(a07;PXHu8<`hj5AwDai~*84pDSHUO2?@d!z^(LCg*TbQs3{_Xq}3^4%{ zyie;!-H{qP$T+(>y1u*COLezV#sFMh1y#mz!9a-SNhls_4@dF130|{{3+Id)fuS`B z-)4f>gKBiwK{YH#Ls})OpimtK=`>1AgBmr)J&+2;Py|yUs9u4gxK@v&7_{-gf;TSE zjC%a$!| zILeb@iq86F1iu?x?Jc=@4M&qa%XwM0Jv#w)L6&EuK{f)_)N7R(cjzW>jf4Dy!XYfH$~-|5G(Y2nNZF$G^rUs}g1~ zbKD$$LD*a$IxOrACoISH{UySdisoH}#T&osUrnd0C51^dGnf+F#|lpX8DtO8W1xHp zjHV?y+a!~d={n$7f7D=}7DKumE_eHayuY+*f|(mE}w0hWD!iwHFT1zn4#5DUK93 zt(^VvoBRVu9R4BX^iJo%mqm_&qF+zl`P22>oRdAi`8_3~cR_Fc8}uW|{a|{04)hef zcIi#%o|dmi{!m*6Cud7y%Xf_?SENmnnGc>AqGn4gUn;x1D`zMaYb~yDoxdi%nCwXO eJ%0Je<*_)(qmmCh@9V)bH>S&0OH5dOeSZV$HS4DU diff --git a/pandora_console/images/gm_users.png b/pandora_console/images/gm_users.png index 0923a4f602f5eacb920ad416081c889fc7dda399..1659907b35c53787d33aa365f203cbef84f32154 100755 GIT binary patch delta 491 zcmV%4Ir8k%J~nX0Rjj^$$lU<0I`{X7{oXa;s68?+yHcaSPeUP@E{`t zE&vcfxDm)0WTRN1v?CBJz%2y15lA~AX*6U4+USTR0AlaQY6n07F``=tWi|p$Xh2uY zgrpGJzIvP{0~IC!srgvs9f39+e?T``0E@y0K>Pt36aTTf859-@Ak&Zo3l`=80Yo%n zL^2WXW^AS~!x#z*3g?m7j1M0^Jb*R0(7*w70T!sWpyZVZjobs!a6LdUb-`i`h!+6e z`v9NSu-Li}G~_)Yg&?aZz#@eSDJh`?2WZwn_!<-&(69q(P=tC6rg#BKe=!3PV2pS& z2q>r$pxg~W8!wP;C^Y=f<4|u%jN#ZqGXRhJ0AgIqj4l95XTbEPfE?;j07?Lbq^5QO zsJCHd3Mh6KLfQU6TmWT%0L3KGf)B(Px}I3?Vae@*$YIUIKt6DUrecuK&O-}I3_}y4 zULyn+Kn(=BtPm+DIA9nGK?)-v76c_5Z228(2m>_jf?U-P#Oskt=|+NyA5W$LrHXiH h>UaQg&q0(d2LPLPhTnh-E*Ag*002ovPDHLkV1jz8u{i($ literal 1425 zcmbVMeM}o=7=N#YLXd8S44fm3+s(}o*WO*fd!eJHSDzG)v(dd-3nU#4 z@JvKtI2O)Wq?);yU`3=z*HZ{b-0n@oY;>bgQpwN+6+v+ghK9qLyw=cB!9)KO#+K-) zw<|)U9y-d!_<+=pmc3cBRJ(^e$^fNkh-Z05Y6{gsa)DTwW(5~%MWjEPAQL1ogBind zlO8i^F{2sB&2}SM>ojRC&KjK5;aJwjR$Q~L#)&x$CcD!>;(gMGWE@ZW&xBG1;QPPeTmW4X@3_XQ$A?z}G0maroCkHew>#Txo<;FJ3pA<_0KafV zKPTI-ShVdPEEiWH6(-Mk*@Z7d!S%Pk>6KCn%uPn_?xz94P(cEjlUd+4O z)Yc0;IexkFl5f7>Av-l-n|c>fmC1gS!3V+Rp=*a%!Q^>l|F)4EWqW|<h$}A3#I1;*Q6EI-Y;E^!$l| zdq=A}V-=;3UYRN?G#9^FT|Tkzd7!#~?9i_H{%?T$Ihk!G@6(bJaPmZ%@|~4?e`YR8 Mm$QLP)%g4V1_)f>9RL6T diff --git a/pandora_console/images/go.png b/pandora_console/images/go.png old mode 100644 new mode 100755 index 206bc2e3bdc81389fe981115922b346d4f618212..4323b3be2f7d63df576ff9a2ba9a889b0a54d552 GIT binary patch delta 337 zcmV-X0j~a>2<-wPiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*q6k zL_t(|+G1cp2ln>%1|XUV%0CYx00M{sn=(upfB-_4-H%W5KLa5E5I|%gWOJFYDL@ts z#A_5l08#D`T%Ke`7kK#aVWWbA!bc!J4x)kl6EHbOEGEAPQUXA%c<|uC2V^@DAb@C$ zfbI+c;s!#o00QwqTn|+2fUXdqfA0l>zW;zTvVoFKWtK*{|B zlF3+2Jdb8Q4FN!a4IRWtAgSC3QVLLRA~5h4P{U9GXl%d?2Bj89py3zDHWWE=1F7{$ zLI;2bJK|E$OpKwxY<~lk{eesmsE`7BaX^wwky0%TT!03_2Xey{WS9XdC*cVKECl2y jLd$@OK*Kf+XgUP|fQ4L2Su+{E00000NkvXXu0mjfU$1t7 literal 1052 zcmaJ=OH30{6rEC1pb-~n6kNRwCbF>eqotimYZ*GNG%|#gMr-1N>C9^xVLr?}XbTIK zpu|s1jC(a~O$?g2FfPO;35mfa>Owc}>XMBKz9}uZu+C=QySeAwbMHOx{?z2<-r%_) zK@h#!aVdxYjdOQ^AbdZWPfu}R0Hq6P+A5)n;y^;wtRe(iLn*@?RJ7W{HjER5|Gb_r zpn^OhsFpz~UJg|?Y>Xy|c(Q6M>KsI%2+O*eAb-98KmuJ$kk=wIBikuBtB)@`aC&(% zuP)E2yhbK3fp}HG1O`M3s2cO8D^wF?gIB<3FHDo5k%HzD?2y!ZH@^K zjIJs+%~FilQY%rG|DS3YN7*jQ!DGGuBzE&P8`3%GT8oZ~7grkeO4&lnfeNymyk*U| zrZ_cgA=9cP%MxYRX4pz10l;o)^w3#sxT`hNX$X$x+Vnt(PV+%i$qr{!-^?H3@+<0Wy0MQLPyM}s8tjONK=i(7#gdk6l7jt5KOhkd(mFVw%jbA1yl9pV>X$BCC<^6ba>T{C?3)b5R7 r&zZoz%%;C*NZQ?6z0y(Y+kWOFp2UiuPk!4O@ZM`SJt@5!n_2w>Lc&U& diff --git a/pandora_console/images/go_first.png b/pandora_console/images/go_first.png old mode 100644 new mode 100755 index d01939862ea7388acbbca15d2aa4aefe51fb753c..edbfa36567bc538428f0e3ff12b7313c1b705dba GIT binary patch delta 389 zcmV;00eb$(3ZVlbiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r^D zL_t(|+G1cJ2<+|c{{sXNhKK`9lnF!}Ja~{1L<0m6OjZDioq(bZyMb5$Kmg%&&w6Bg zn4sbTQ2ITxAV}4GAeD&W9lWjp2q3au=74T2h>tABfknHOq>auVxR&+ zAaw!cRiH)#Tuw2-=Tv|Iq9Fo>e>l4JKz;)@Pk|CgKU!4P!!$GDFg*dPaRV?UE?`v% zO&TE69sm^u;tWruz*ayOXTsq(L8REi8$%#d9YIkFOZ3QYQ=m#X0|eO6L5$ck3Xs|l zfM!TXTjbnJlA+K< zk8I!ujna-(Vp~h%OYT;)=Hi5AUAmA&B4T~8>zp=T8{0VUk``2) ztsu&ziHQlJRjer>*aNH*6G8$BR9GJ>K;#kah3h0ViFQSThZU{ZZBlrs_JAeJ=l}hE z|NTGnk>RI|^#|(_1TlsN>8SSY)Zf}_1ToxP|M*W`Pyz`hCXOjtR)&Z-DUL!AO0(lI z3fbiJb8E04K`K&wJfS4QrzlQLn^_%W&ZQ-djUfF4If>;apaMqWI4`)-jnBS70iSfE z&)C9vSn|UZKR6@9*vxR8o0;HTNp#=@=+9A_fizTDkV{Vr87k*SckEKySyy8y*nub$ zZge-OL^uNcq6~q}jGH*zP5`^rOjvQ3)%7GGaRSE(62l!P0;g;a3MWA6K{ao3a*T@7 z!ICdca-%6lkthtyX0zt3#VpF>7~yicFr36l(xf3wnQ1{`b0#6vQ?@|E3@7uF!ixgX zEwZEHl;TFUNOx06OX2XIVIfm0lvXk<$4VGs#<6r-&ua&rQKInQF!n`f;?okuqA(*) z$(+`Yv7RzntKGvL=|C+S>a@&jO<^Z#k()|GK?%`rRQqF2@=1!e(-zX=brLj*+nogA z^xElQz(KkKK7zIoc-h8&T)V^ScepG;XON%?B0#$QR-Cr^NsHBC@!1@7nHv%^3M+81 z?3dU4mbih3aw)$ISw)oNqBvQefJjPI#7s(*fInt46CliTyr66J2JPlcLzzDZlR;Tb zgPjUf{5}!j7AH;+4lC{`WlqvIpVvn_>;Y@g>GPr`Zu0+B4by_b^zr!5xRh1e4C=?d z;n#${^?`!6GqScEhqDXI+J2r3(cXCO_UPZ++XEFO^GK_4>#YYD@DZdFe|y4E3*v@H z-=AH4$Iw0u5yKo?OEP(a5mL(S?`kbw%fl-2Zsj0zr_5;G(3JCyPuC6T8`SC>u1!Zx=!T4VokI zzL8m3iXa{DM%Jq$k@i>VH-D}HtG9B`ww&zqyxur#EGTnVju}1Ip6E?nj{N~H@hZ~O zx7zgB5Ob&g^MrROU-+i6H`|>*ixn2ueDe+7Rr0lyo;IqvV@thqZ0%;{Rq?N$11c^V zUa82Rm@eL1%=a&~boXYFA#Sy8f}suWVs2z* r3Nilj5#D4)xSWbVkFEqcRa((krVV3@w)W6u8rvoX1s diff --git a/pandora_console/images/go_last.png b/pandora_console/images/go_last.png old mode 100644 new mode 100755 index 28423a1200a584f40b3486dca53f5940f78edb39..10411ecbd6446e2f587dff58ae1fdb0dfc3391e8 GIT binary patch delta 376 zcmV-;0f+v%3X}sOiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rd0 zL_t(|+G1cp0*oNS-roK{h-QKc3W5lL0K$WS>i5Ig00D$eG6C5zxamMJAFsIp0mMMi zOmwsRfdT?Bb76vtK>Qx26DIin;K758c702TM+ zR0sw6Fnu@`LQOFM;srp{H{df7(wEC9s-Qqp=4#0GdACO{~GfKn95W>E5TMACE~Xz+Prz0ZV8P6BA~0cghj z02MO8TbvSODA0iU&_WO9y+oizj>H(sf}^ZOE~*!hn!=gz$blkD5RZYd$UH!obP52T Wb!RH(Qv8en000019KXD*T{nWA?TncYk6SIIzy}O&t?ItdQxXRfY_7Fxj!x@UENSYxjpOdCIkB_5hy!sHx zo0{+A(jZ>-g`^-cpz8&WBu7R@TqACmqV|(?AP^uahGZBgvT$mnvd$NsvbLwj0H7wQ zVnG)b88;aDoHDEj2^8si3Q{4N+#r^-DiwU%(yl$7w**F(wdYDd34RZr10HczmFSO~{(g z%L1(V6_MX6HvB{^7gZszD{4kjhH4X#8c=ja8&C>(w8!J3@gy&ZvY{~=w4N`3s(1wE zYWhkN=EIO@(IA zIBpC-5;oQc%4la)v>ZzZ?il;op8(-Z@#oy*)zuCQ(`(*gTbcRW^6<@z7}E=WG&hFk z%u6fJ+d^ztxnY(mVOJ=t<9z8=iW$F^#+V0|hsWw}9G$Wbo2`xAiPqDHLR{(5$#anBz{*#M1R^ZpRt_y#9ID1G!;Ek|E*N{ zP{RVxTy02AOyVa}%IzDlsmbCfZCP|=XF4yGu&wy}p6S0{XgzT6w+{BAV|r)k2b-l$ zE=$X$bEV43QtNi}r`wOSXO>NKi;chRD|)be_q#u4SL;jmhsMe6Co&&W1|U zr*h)`{gX`FoxyVCw&~{UPhFch&XDIWADcaTR;`~sSP@|d+c5vlN7m2k?Cg8bUSaIb zjcv2rt0IgWNyZ`_I diff --git a/pandora_console/images/go_next.png b/pandora_console/images/go_next.png old mode 100644 new mode 100755 index c77d7c587c6d2cf3c5551ce5ff12a1931b6418e4..4323b3be2f7d63df576ff9a2ba9a889b0a54d552 GIT binary patch delta 337 zcmV-X0j~bE3he?RiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*q6k zL_t(|+G1cp2ln>%1|XUV%0CYx00M{sn=(upfB-_4-H%W5KLa5E5I|%gWOJFYDL@ts z#A_5l08#D`T%Ke`7kK#aVWWbA!bc!J4x)kl6EHbOEGEAPQUXA%c<|uC2V^@DAb@C$ zfbI+c;s!#o00QwqTn|+2fUXdqfA0l>zW;zTvVoFKWtK*{|B zlF3+2Jdb8Q4FN!a4IRWtAgSC3QVLLRA~5h4P{U9GXl%d?2Bj89py3zDHWWE=1F7{$ zLI;2bJK|E$OpKwxY<~lk{eesmsE`7BaX^wwky0%TT!03_2Xey{WS9XdC*cVKECl2y jLd$@OK*Kf+XgUP|fQ4L2Su+{E00000NkvXXu0mjff#-Ic literal 1332 zcmbVMTTC2f6rSBhKx9)kibA7gm|6{_%yoBXcgn(EX18q0!n$Cj57r%ae%J}jh1o#{ z?8CZ=t(QniN+@Y!f~K_<8`Rh)jhZONXweu+gFg7sD2;8ygO`M+52*ML?4l2(4^A?f z|C~AJJKwqeuOzz;IjiRmKI&1~+95dLu|{yQvA8Az+~WU{F#5*l!U3*F$P!lL4xx8{RBx9G~EI%T5{uxA($;nZeIz32f2(c zX@;aKsD&u>tD{B$gG{$mkhMf&2Uy7!3k6F?n1V)7I7!H|mDiSa&PaiOY3yp9>mAns zkpek&RL{VE4D2g8!`j_DkYxzjaNW8Dn<5PJYGzahiV^1n82p2alF0F1o}rnLkK$?4 z>!T=N$jir~EbWhmDW0Lo62@-6EW3jNe5giDIs`skuaA^XPS=CT;Sye+LJszAw6GBE(EREHm?R?a=(OGC+<2q9uD;%7znXVF z`#=zRv+}d`&99bUd#f7Flhuowqpx<^iB>Zw=eqL9=S@reGCuWK@L0o5wS4L+^2XX- z|KAm>chha1_GYu;?OEd+o4xYA=QP{HhHdU$M}B1jJ-U4RQoHMkN%oV_^)l`#a`o7r z+6iRk;>)hnWqBlY%O)?bwZ7`Gqxp^>zToGb(?iIY-@cIix^PZ3*D%rH9=X5flCAD+ zA-HCr-e|b6l%I136UXQ3PUzn~xPl~ZRV5c1ubasD-X^KiE^p*79>4GO`4_9|PjqxT z%Ic0Z&D>nTD&DVIZ$5hgIXC}Tu+>#}*m-4TwW_wT_|nWkI&G_Yq;PG|(+5J$>%lfE zc&hxD#zV8WORNkXJa64&@n{#n5Kb5V0k)F3jQ{`u diff --git a/pandora_console/images/go_previous.png b/pandora_console/images/go_previous.png old mode 100644 new mode 100755 index ca05e99a4f785bd824e86fcc846af0668610556d..9b1006e1a75b618aedeec6628d797c065a851e0d GIT binary patch delta 321 zcmV-H0lxmB3f%%BiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*phU zL_t(|+G1cp2ln>%2^fL^0mOh!*?bVq1m%PE00a=aiuKq8|1%H+00M|87YN`qn+cl^ zWI;io>HwT(0|XFBh!KbD=0k%e@ZiCN8}NDKKM>z1#ozxa4n}|gq7wqe5qdgc!J+m& z**<4NQv@?f5U)Z|%s}b==n9#Ue>o2yK76161VE+-kopMZpCIJU^R$m4fB+jhh>^rB z4T=r}s8Ay?^E8lcDA2%uAXR`Qv;b&eB3UklmKey1`2r9-0uB6tPahKjN6trLKOn|H zf`$SO0HuAHH$f@)J*>c{Rz!g!$pJ~o5NPQIa=ef1YDbVkKnyA_7eIr97k&T$n@3Mc TPYJs(00000NkvXXu0mjfm@su9 literal 1313 zcmbVMZ)h837{4TI>|fpbVXUpx+f}eQlY8$j$tAbM=FcT-WNBj(u}~+y=H50(le^p9 z)ugp(HY!@}2Uo19SZy~E2QmkuZa6jvowMMFQt^vSXx-2c4oATW>a@PsCe;sRA3Qkj zeV+UMp8wA~mFzjxRNq>UVOUeVn@^!{i}}{tG0gJuFQ42t1tZ#Lq?I9~C}9bJNc4725=OrO!0ILu|0f>SUt&Qd`|Yz*^vl~f@+0u6i+4oh-?xb^uZ z0++-9@uWKe5^4nIr0#JIrpJ3S+3}IAPb9h?#r-7?87M$Qz)OX^taGIRv1yk>XH!iQ z_$I^{2@qRB^(B&cMA0Dbb^=EhcqrWCa#AkfbNL>@X+QyzqDjCyD8RW{4p4aIA&@ss z9O6=Ztl|qv0U~D@Do2vVV$oS-oQgI~Qa+!L1T;z04uo*%W3nNX9J1a~wZKC?t4XRM zDKc(a6b6-1BS4@?w^AsmiNv;HS+5idm5eM2DoHs3Styu!ZK8D}1^*3WN3@<9Qz4mx zx-zO|Q9p({s$^8VyE`(0C>pL;lTcHHJg;O&3s5%Ve1JfIoT4OhyoYCKCgi1f8hE@E zNpjl6E^OJRxKy+0>W~+RB%Qn)D15W13RH zH!I9ZJ465&FQ6#a1=vdFH17_F!aVDVx?FMdlra$KzSFK-__Z(>mVhgq9 zS=;TuuP(oGvJo$X#>=Yh>-%5r55Cbkhgl}mGj$&wNp8IJ;`z45VC>sl`ow*U8^Xld zb#SoU{8MNK)U7z~sl_imce$o7c{o_#GT;BB?es4E-n@G4GfQ#R<~}xI7wdyB>}s3) z?fEa>+S^^T&vW9Yf6x-dPJB2eZY1Bgysj;r{<&-SrK@dkE+?&5mYzMC#~$_sQxleb zQ^zOosO^t+A^E{CzX8$u`Cof7)2Du4vw=@**6jy6*Dcib-7iaJtmD9ym1|Gj!1liV zw7A%^f4zHvIYrXiuOHIqKJyrhWhHd}5 zXIJZ*Z6B;zbE$^1{h<~A4+|Gh`RmfmIs2i->$PX>_-yad=6223j-6XuVq3-UFPN8B MJleyb2@f3q2Mv9(UjP6A diff --git a/pandora_console/images/graphmenu_arrow.png b/pandora_console/images/graphmenu_arrow.png old mode 100644 new mode 100755 index b4acdf302bec39290cd816b3eb81fc0d43d8575b..4323b3be2f7d63df576ff9a2ba9a889b0a54d552 GIT binary patch delta 337 zcmV-X0j~b^3GD(QiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*q6k zL_t(|+G1cp2ln>%1|XUV%0CYx00M{sn=(upfB-_4-H%W5KLa5E5I|%gWOJFYDL@ts z#A_5l08#D`T%Ke`7kK#aVWWbA!bc!J4x)kl6EHbOEGEAPQUXA%c<|uC2V^@DAb@C$ zfbI+c;s!#o00QwqTn|+2fUXdqfA0l>zW;zTvVoFKWtK*{|B zlF3+2Jdb8Q4FN!a4IRWtAgSC3QVLLRA~5h4P{U9GXl%d?2Bj89py3zDHWWE=1F7{$ zLI;2bJK|E$OpKwxY<~lk{eesmsE`7BaX^wwky0%TT!03_2Xey{WS9XdC*cVKECl2y jLd$@OK*Kf+XgUP|fQ4L2Su+{E00000NkvXXu0mjf)Yo>} literal 1268 zcmbVMU2NM_6uxmn8^TIE6;MG%cwX0nMEsZ7iA_Ur?1Y9jX_cg1KuoG@-!`U=o!KsN zD>01;K?g&FZbE>{1O*8S64DUr3lcCi5Yt}PX%Da$#vXu4lZtp{(zt1p!b7zOELpzi z_6qhX<;v7kbHJWE|K1woCT8Ijd;w;V36vI+d%7ZYg)Z$1QyX6sX8 zLCG{@At^yrT(>4tRJ~p&>k-njrzu7d1d3)UmJK6|urqJEsuwn$y)6$4bTr$jxrSxp z4Ug)iHRmP>#B?i#YAu)Bc5FJ$LZOmTo?4?AlBTNFMqZoNj$45L(%8}3Db3d)Re+8) zXKSb*Q+r!rRJ+>;Y8WCm;)rdarl_-urOj2L>1LG#f&P%Xp^Nc2&(Vq!jigzck26eM zW}<0cl2Wlqgpv73%g0VwUdp605kX1`yv#6ZHqOR`44;zHf|QYDj%{JHrsJxn23v6r z6t{^LZi^LV8>+5lmn>_xH36d)%e9<}Rm0^XM>2R$)eN(tX*6gnUj^F6^H9&&Ru$i@ zuxRYSfM((}!^EO=Y%6n#<(M?09*J`~hE}D}U!Q_{ev#`;857?(Z|J={4WSV|4xKz* zcMR|9!ho26Bwlj;-u@igt PH145nI*aZJG5CZ@Lh$t5b;53^Fn+{|_L7?gYoMrQs0>u$}I$*(}_C47?XF^j1Gf5DyLQu>=>HX*mnUOgU zA3l7b00cm$2ax&*-fKMM20Y}b9Vm~0pK!Sz>4FIKmm^VQw_dTq@rdC9OBFO}p4lK|l;DE*C(9gMI)2n@3McPYJs(00000NkvXXu0mjfLO^~V literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^5| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&aw0qiB7zOL+dS;hHgnPb;&J@# zv_RfN4gxOsg;+wEEF73T4lwpjVBnh&z+KwF^6J4yM@0vwx2EL>*p(B~HXB=)FANeA z=6bAufq$yV;;VCay?MO*BcEu1_SSDr2bm@}2J1ISMJ&t9nB@?c`rYB~jJ`y<7175Z z?sZ6icJO0`zzjR}rMJH;{a#p_CRaR(`N-X>z5_b!&sVRCV9wpB*VVx`gV}fErtS{0 z2*%%!Qp4Zy*_ECA{xQ_wU*+emEynexxBkqp;9tkt-SMR5=>PaHrH#ggc7l$j$K$pF PJ;dPY>gTe~DWM4f-_3g} diff --git a/pandora_console/images/group.png b/pandora_console/images/group.png old mode 100644 new mode 100755 index 283fab255db5d15fee9e9ca91bd55500d9c83700..de11fe93799f063f0f5ae5d879ff1a7f9b8f6ff0 GIT binary patch delta 398 zcmV;90dfBC3BLo77YY>!1^@s7EAAe!ks&940bxl*K~#9!Vqm}p7(s-+z5RX=4G=)6 z2q^j=nT9g}0*DcrbMW9nMi`q3s-nam`JsO1y^Vw1%LpMdXKE(074F&HXP9O zfKo3g5j{i+R;XX>acFP=+TMViUKwBl*Z{H|3%VSXHh?Dd53mG}7l53H6x);mfB>U? z%78jK07&H%p}r6pU>A^L03Y}OR2#^7f)t1jL|6cF$ORnHOE~3W0q9u`7K0bi#1){J zBnuj$1{ok51Pz{#NJ$6;0)covHeX@OD+bW`ct}D}I6`yyMj+k*4EqOoOC;p7nOF;O sm0V18Nv6aAXf@Oijgvz3pcpU!09=GEXu31^PWESJ%y$1~x7p$*VY85kFFTpJ$qw21 zac0upA8p|nKXJ_sV#2T@QTv=z1ZB!U|6B-!XgsNldb z_nbNBJKy=cFO3Wx4Q%V$1^@`;2IT_%?)BfcRsfpL+X0gb`@GD!H)>6KRmCA7saX>Q z<_u+u6o{hDK6jf80MK04i{svS{%J|I3|8@N*qUKeZvY13HCs`qi3cahly1hD`&X|q zP}gG2SU8XJcAAv+!8wPF&J7jSxoK6@nD`MmP?IQtK|BT4jEd<>wHULCE77yB<`}qY z;!VexHB#gG5tz0d0>dl{swjeCB*fwn5<}u)$Rmt6%yTFj#7GK9C4}Mn!_a7sHYpY4 z?0PIJ#h9|^*%HT9t5vqz&sxqDhec835YO>^kXi)YS<_Q$LDTJNAjrg39o_bH%Y;6n zGGWblF@`c-OTn=7`3+#xT`v?Z8CO$m4zq|e3_q_`Yu77~e`suK?G|Tk!WD>X%{VIU z$7D~#nbz*XfqX;CMjCc>+7zWCTk4EKOfM(L82X3RbWK8G0bv{sp(u|c0>(lzB4;yE zUd*Jh+>cQMV>90f3MDb$pB6&t6vi1|jNnK*nN5pADx1t?QVrjn>3WK(l15ye#tmio zY&4b1JkVE4J4Ep;r)XJ~#srL%EzfexmJQRRVHU%@qUxrv@f)<3uS^{MIMK3>Wx&-6 zOZp}Z{yXzEU+w=?jiY2Ze?0y*E)5l(LI1ch{8ZRjA7av-ap-cCU%$FU_wztbP8Mrl zPW-X55^rvQ7vRO4%WYfGjs(C=pL*g+x8AqXajvxu?k2auN7~{y@w3P4;D)}tll@xw zxqeTmAN=CQ%Dul{q`(=3ha%%#gg4DxLTn)cTe4 diff --git a/pandora_console/images/group_sync.png b/pandora_console/images/group_sync.png old mode 100644 new mode 100755 index 7b4a3606b51de7f71995f1aeeb5592cfc3bfc1c0..144d0c9b9185234f3a56f6f9956588be84e8f815 GIT binary patch delta 481 zcmV<70UrL+3Xuem7YY>!1^@s7EAAe!ks&940kcU&K~#9!Vqic5j3C0^-hMx_AV|Of zAb?N=7=a@Hf%E|&c7Q1X2`~Tz5F;|@;K758C=$q$Fa-?Q08o(wKmak|0*uH;AOjXC z-3T%PN!$V1-2ceBS&&qLbUi?KA+k;Z5DgGOjJQ-Fdls9cVBiA~2O{wuq4a)~IDp!J zk^rO>fVduuZ$W{-5NPWHMl5c{7CwSN{2phJV=*KFO5XI8#{k(TZ1GT!#gKk%@c@dPgIF|xBCj48q~J(oLP`pb zxIzY5j)};4cn`$u@hP|u%d#NFP+9?ho2Ow;P{bk(itPqslZFE#SneJ}y&+CpLtg2u7~x(^tU3Md04iFhD>2xSu$6i{`bJhTu= z`~tQT#sHc-A3&21u@-!Q>iYon`30Og0VD~;2Y~niDPavY6y&%7pd$l_&1wrwpss`A z3pm8#K?212AYTJ5=|?Foh{-(YMG?r=Q1SWbxf4{Fg9>d%Y9vKykj#hrKmdvZK@I=_ XW6YM&YgT&F00000NkvXXu0mjfm>#-t literal 1362 zcmbVMZ%i9y7=POm*pTYRoB_-9Jf;vs@9r%vZEqC%=i1SYVu5Z}L$pVGa0lF<-5pYh zx+_kD``~acoBBmF6SL`J*kX)xQDH-6NHjB=Y#Pnn2i-oQ$ue{?!?!@u7_tvua=G_; z?)Q8CKktk2w(Zu^drJWT)@TdUfxZ>_cU>_6rXz|~LPDh;PU@Xd9Cuot8y{&0~nHs30}~jm=qwP4{y;*3I<_k`JFh^C^xA z86W2gvYmnVp@Aqc~cK+xe0FrHwr9=d}Kl)J!)af!lKFkjk;TtR`f6pfCY(Ue;xemlZ73=^`K&W7C3^*W??toG-(v!c$x( zqRJw+RAE|JBZ7$A9r3uBBRQ`C@ zJZ`Ri(sXX%)jJJv_S(Z;;Fn{I$qCEuJzasZI}9vtLwVyCv|e5>7dEl^4Nm! z!_ULJ_TKmS!p2^c>C0b3)`YQZOMK_%nc17q5j7TY`eN0YAHI0@iTo`W4Yx7x1yiGc E1FvMl2><{9 diff --git a/pandora_console/images/heart.png b/pandora_console/images/heart.png old mode 100644 new mode 100755 index f7249d87058d4d7c2667fad97bd59b3d5c3d8573..91e8cdc9f6ec4f9291f9689d12f53b7eb58d5ae2 GIT binary patch delta 380 zcmV-?0fYXr3YY^SiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rp4 zL_t(|+G1cp0*oNS-roK{Tm;4e2q07h62+cP<{bcLxGC>fm8t=2LuA~d^{xtJmeXXQe3y63O;WH z8r;ByRB%y0OsU}74M0~0;)*EbtVaw0MW!Qi@xh2Eu@W*I!!Uw|A{icl7VCvTgC@{D a@dE(NlW`~@8%{I;000019KR$p&6=jpcI{eO>*J-P9WM8_yq=9+noCS%>1rCf3WB{{o;GKayW8bz z(xN4u(5;2N2*a1{gMLzmAaSB7elWvsFr8S~z^Pw0KM1RvW2-Q$LVT`msvpV(4~~2O z|NH&^@Be3RaNucM{iF35hS{PKE{?u!`fD*`nBfh@CLy6+3yo+)@|afORfq*rauR}Q zjvt3{$fqU`U4p$BW=e~R5p5*4pB3aB!Rr{Jm{SlN!+QIQ3NK`!29j`Gl>GRe&%eNd znDXNXT`?-A1Yuf?OsQ~aY9Jv@WdvUe?|TaL7FlE<2Q?lPb6F|R7XA3DT^5~nHHm{& zh?eo=Ye9{~20>6(A#f3tL!jI=a61XwN%@??$f$M?cBBJQH0%LYL`~tdoGeV_prl1PKaTzoDKW)TE-yvX9w+5tD7TlU zy#Y5D4tW?~sGsKc(p1gHW?XNGb2$TE+UpE*G#z4mZrU9Tgo8eBe>e~d_1CyjDX;O8 z0Be3lk6qJT;3iYLSy?oyEzQKxn-wYikah9)%EQZ63qnjE zyDvLGTn67=Z`^&W@<{8?hU(T=r%!<+=bFns`z!4$3s?!mpF9<*+jpjZbk6Y20b5VB zA!2#w&!*k8uNfj8*RI@|xo2GXqdjx)%lBrs+CRQw-ceykf8BMfwVVOx=XV_wdM+NV zd;av|g}2I)&eCV?XCCkBwv{mZbEdPUxtWVttF>YA>eUmk-{#x82#hd-7Z08N@x;5w z4a3IYs@;v3yN5e2XX9UY#Y^^{3zeU)n{0bNE$zHCpZKI}TU*^@M;(c%VVPcvWLL1n zSI;J?fc4~dZ>gT!IeU1a!?OL#?~cli_othd4Cd22TCn@)nzK(V-L>kMSTr=ieb7I8 F_;15AwFm$J diff --git a/pandora_console/images/home.png b/pandora_console/images/home.png index 45e95f3b87bd68bc16e3b8116017df93250934bc..d5eb255092b384c6579c6f05b4b9f13a122914ba 100755 GIT binary patch delta 402 zcmV;D0d4+<3a$eoiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*sWQ zL_t(|+G1cp0*oNS-roK{h-N~PH~m-{0L+_5C^~=3Udw+tVee}9KZ#EPGZDsK0pBBva|u4I3t>(`AD8* zK(`VW#s)y@JRZv~05upgL3LgLe^QM&91jX#L!4g51poqwqM#Rm1wGDCK#P(@AdUy( zi9ok*V8WpY1VBOO0K^6;9zs)uJpzD=-V;bwf{cVrgoQ1(unYuZM|43JEGBG#+JHUn zQ4IhD7)|1vg_!6EQu|?%1d3gtpBE5}A3O$P%`ial0b2CH(pn?Xq6WM!Xa$u_&}4)Q z2p}0qFe?YZ$`cX+D8o7eUHbvORNN0u;FJK6!3P*|luq?n!f+xG=VQqm;G&tN*oUTY wK`66C8c-F#QkG^IcaQ23d>Z_9@t&whyfK_BCM*zTA8axs1>^$IooQQf-4Yf zC_=3Ul}~42LN_t=dl`?!1P~1PyvWCdec@e@We`InmS%z;#Blx~#~`@&P{f-l4{%vt zSo1}s2vxEygQMw6rQ)sZ_Uh&!jl$tD&9F4fdI-W(9@Q+d>e0%bbqhQ$OQvF2impN1 zqFB^NtO!LST}?qX(&=@>T6wKdq-1neG-%{yXjQfIT0xhsEdD2q4bkP?sDbG$F6$$v zMEWt%Stpa)-P@53B++nBn+j=)ILzzPh>A5U#YZUe$15u`$M{1GLO~xBWSKw+p-?Qq z3&|iGPR0?x8!>eo8*vlKU^prG10i36M<~gL11OM)35jqhF2s__c%7Tl%9f}}xb9aW ze%HAEdvdviiA75{bGklUpMXqBxAbyJH(;XQ??o^zN{VJ{>;|po%VSe{5zB(9t8k^l zoU%a#Oz6KdU**dGr)o3_hPKD!U*l3&kr}j)>%&ik_4UCT*%^~8$1}ITf0FE{FU7}l z)$fXTYqcI{%Y0OsZ+g(#4w|4KW4P6EgcSq<-l^4=YZ>JbC`QjTE_W_D-kbPq`Cx7l z9Q|fySMyh(E&4=&a_&6xZee!EmPqRtTMCb6#uqOkcEa;ngRxY&;s6a(j@ftSPQ5gf z_H6z*4*z&;x;6Of1Gl?&e(=Ni%(bptH$Oj6JJ=1*b$ocs04MiPYzFtWUEgLjE{&I_ z#J7`QgJ$>RmnY*lzV^B;Bgf``9F88_{`-l$+ZRTSM*{84pN_VN=C1kn%%A@C z#JNvhuOD?q550EkcyHrkweze1JlYLu?`(eI>Y$_J<(rP)i;l=N_578|FAMO}>8Z0r z(Tw~3)+qz+0Il3%*znVx+FP4``T4Lj{z?~muI1ZJ`&xXiH#=Gm?00~Ly=T~uK>DP8 NGo_M!{Ka@-@^3Xwq@Mr) diff --git a/pandora_console/images/hourglass.png b/pandora_console/images/hourglass.png old mode 100644 new mode 100755 index 57b03ce7a61aa3b47d20235987a1c1918c5cb535..ec3ef8570aa994293f78bbbfbe420cfd9f282411 GIT binary patch delta 383 zcmV-_0f7GK1)BpQiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ff~#e*ry7 zL_t(|+G1cp2ln>%|3NepvLHYJF%YK=Ab?P0VJbj?1xeBnhyxf10e}F)iWre?27!YI z4>B^r7*H`mtnS3A9jiqE0mO)AL<714pw0$to&$k+AXY#VYal8x2{{8~>U|`kLZCAy zz&PkJaUYG}kIVrGAku;yYP|rEe=0zeKLB*X0rXG+DXK^JBS2{hvJ&;lg( z1(>zC!ZQJg=c9{bORS(^Ngx#P?}3y6wp7D}7CQoH8Vj&l?SRD@{v^i?K!DK%G2#kN zAT^%|{h;LFNKCMUzyl&3^?+!XLR||gUe@C=a0Aelfg~A)!V^ge1biugD7{002ovPDHLkV1m(KigW+~ delta 719 zcmV;=0xz@+$TtOw>5(BPe*$_*L_t(I%Z-z}Pg7wS#yc`Ny11Aax5mVkIOu<%gM*6Az@v^cVH1;$HJ@2tfu17&^Pebhjth`srpO|asbD=?gpU+WKXx%h zg}DA%|J1=w1E3bQW2brAk)glQS%iL-`SP4IjX^57f7v(dYd$>x7hpfirG&vAWMK7Y zA<+f(N6j4xm{^LNonZzx0_dCZ8IBE5n&KDKD~aH0D2p^xMRccvS!*0!lN(zvRG$BT zg2E6}Pg>%fFHzt(QL1v-EwBis%g{QLc=F!GwU0Xf{S(LZQEJ|u#&)KRT!}@Ql&dTU zhTI+De>~jV1-Qs5qiBev%Z+PP&AWx;h6onDzmeFj@MY5F0hxRi-(y9-Y!Bt}(Go$& zm>r^Sm9W7D4<&`sY=U_sg>W*Dog7(VGz;YyKc0PX;(=@hq9F@<`V|;?db81mgEAf0 zg~Ncl&O~9FD9r3B%)3AoW{JWKDbXYvlDf`+6#x+W1+GGo1iSzM002ovPDHLkV1i!6 BK(7D* diff --git a/pandora_console/images/hourglass_white.png b/pandora_console/images/hourglass_white.png old mode 100644 new mode 100755 index 855f229772db0a6fd5b6e1afae7de111c8b01f48..ec3ef8570aa994293f78bbbfbe420cfd9f282411 GIT binary patch delta 383 zcmV-_0f7FR3Y!BViBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*ry7 zL_t(|+G1cp2ln>%|3NepvLHYJF%YK=Ab?P0VJbj?1xeBnhyxf10e}F)iWre?27!YI z4>B^r7*H`mtnS3A9jiqE0mO)AL<714pw0$to&$k+AXY#VYal8x2{{8~>U|`kLZCAy zz&PkJaUYG}kIVrGAku;yYP|rEe=0zeKLB*X0rXG+DXK^JBS2{hvJ&;lg( z1(>zC!ZQJg=c9{bORS(^Ngx#P?}3y6wp7D}7CQoH8Vj&l?SRD@{v^i?K!DK%G2#kN zAT^%|{h;LFNKCMUzyl&3^?+!XLR||gUe@C=a0Aelfg~A)!V^ge1biugD7{002ovPDHLkV1iDgiW>j` literal 1306 zcmbVMTTC2P7(UAaS+NKqgce)PINQXMba!rhn+e-xcV`B+VR3~u-S}Xb**UP2WoNdt z11!YLQcVM1TC|BJQDccOeIVXme9%M%G-!PweK6MgV2xDT5H(GyNd@r?>|!5CADm<| z=l|#X{`-HX5Z{PaiNxB?E%6qRSAA z<)lH_3ngXj!`6$e&UE>Dq8}CV`$Fpfx!9&Ne_9BN2gAZdc8T?pYSjA^D+bZG@=#R3ltX+zDM zs;*&{MM>6&%^;2<-AN&rkH>cnYlU*5P|1j*lqV=RN#t@?Ufbw`*$e**V^4G;IhKb+ zFD&T8MjG{Fz*!-q+TGug1w_$sPZ%m{iZsOQ>ERsI%orcU(I2;>DxAprMT+u!NIy;b z0u;s45i&q|qdt$|@d$jhVq-6^pAncqSfD+kkEbYs36lYVWdad_^)nGlh*Y>Stzb%8 z8dm(O$ZwfT-IvQn4Jetqk<|5}$^;}bx~Ug3dLE1RdEFEim(r?cX{-kAV z?)pFt?TmqzML#ONU6{z{DAPX7#z5r58#-=4sp4 z{V!z)s;jUShitEI{P_6X$f-Za9Ss+oChPxM7_vQ?`0}rgHLzHP9s8+u=}e6Sn`@Em z-I8y0XaeV<^7-7EXuD!gO_{4!-dhf`_*$3_{{F+*x8(3TsO8~#h@NH|Ib$7Qi z*Cua@neO>#-z~|9pI&~u^VUbU)NIc*?+3|8y$LkM0b^Fot^P8!vL+-P# zcjVVVi!9evgQ{0oXC7<$@aM+Izi$!cbBngbo64f?!j*N<_Dt={#NQpCfyod)6#~CB zEGyR?D@=c!U2WahHgVf242F&_T)X@Vv%mBPKFu`@&pMl5{NcA*O0^k%RpHrh}Jmb*z<~Lyt_)pSyEodTQcZ05(5JuAe^t{DanQ6%%^+_aptM{sr*$ BwgLbE diff --git a/pandora_console/images/images.png b/pandora_console/images/images.png old mode 100644 new mode 100755 index 6fccc5e3ed9b298932cc0f5790cf781a1143708e..490a0a90c5435902c7bdf3bac623c95b3514010d GIT binary patch delta 536 zcmV+z0_Xjl3$p|viBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*x7= zL_t(|+G1e91sFkuy}kW^AhiG>fKa7?qWghZ09oKYhz1BCWP$%sy-xY?$i*o&dxJOi)GhkxV;))ee9F!ey}o5TC~tQu~3F161q*5E}w9 zNb!S%2M;=;gai;w1Q9?9Mj%#1e=^JgIp`RX{S2h)q1-^ArVTJB0jd2UgBa1=ssN-C zKujcOfj}craRWdAQ5*&Hv4#RvQUL061*p&kpp}O35CAGLfco$~R1wHcAOj4LO#}rM zER8urgQ@|_|A6cSVE z8lmEXEJ((~;@bf#2})WAq0#&S7VjX=1(1iJ+3Eu{cIruv1b_fzVxR$FAtLHQA(oF8 zS&2YzEx=oppruTZe*=&rm;o(MIv_>-0et1tdZ{ia literal 1436 zcmbVMeM}o=7=N!Fgff`TV92&)Jr0~>k=|X`uRFQX(rclUVpC8nINkN`fD?MxU5`=7 zW?&m5gKZ356qgxsGGi99@CVUFm%!$X3=Pp}Vw@l2Bbi$?nQYFOfU8%a=pSSzUUIqj zdG7anzMuD~zp^YdeN#FBAk$k;2h?wF;!R5h0D2>mDXPLo#T`_tq&lUAk$K?cq!15# z!%RIN;2ExU?=`*{0BwU%9aMt83X+w=MkawV#=;Sm4M1^8EW)sjyaI>#dO@U+J0FiC zu)tBsa~2=wi@5j(p}bAztJ*57*|tWO;EI@>)bkl>q-w7^|YA z)vXa84e(K^S!UIK)a571YV98GC;?QXA)l57wJA&!EwRmEUR1m^g{XgwoWPNo#g5^) z&5YShnAMKscBhs0xNRoFU5e8?a4czKHEyZRh1p#eo89c9aolYpthm+X^tcFnsmJMd zmnOMhF{&^k%P0K`s^4X<^`TtSCG(6T$<>n7l$-#6gQQ5&1}Or&sw_qv_A#s=CNzl# zE#*t|vapZmJhBvq7b{E(t3-g=|10w)F86<`hN{7!iShW?xFl8T3?_~%!>%)uc z&dBO=d=3gc>XW_af1%5(Vstl3vk9C(ztr)a@)3A$Ze_6f47d?eXlRu z27f=d<#~$(;8XI3@<+>Yt4?3}XRj_}z}&sHfAofHwp8EKfjzz-%w$%Kr}tg?tK`+& z-N#M_Q#uc7v^D)31{&Kvo!V1(#@cP${cHhrH8lN7j$S=%r^lJV7*!|~wVyuGhGKF{5Mea!kH*5oz5CeKI+FH?M}W7^p^*qi2DB|J?YI7r@MM z#{xLq@$$NW4(>z)ax#0$YT%jS`0r-FkE!*I}0(?JXrJ_*cU_Zi(OAZO^Z_P}8A Q^~8PYbyw0CO7|T68<-d4t^fc4 diff --git a/pandora_console/images/key.png b/pandora_console/images/key.png old mode 100644 new mode 100755 index 7c57f9336b06f43bd6357f33eda95b5eaa4427b6..95ad096490c43e31a4c1de1a405093fb599afb6a GIT binary patch delta 398 zcmV;90dfAV3aSGkiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*sKM zL_t(|+G1e92JG$a|HBvtAQ~Wm@GEJ62?7KVh6=bUB*FU(!~lQ*!jFK)oQIjs3=>pP zP?!OwKVrHQrvNqp5J31WHUMG=WHDwuL6`x=4}lKa55$ZQA3i+5h&Q~U;NZc7V0Db> zeg;yY_z(mt_<+xipny-n=MR7Yf1*khH~_H#jL(Qg0Z8&alF$O6yAzqP7`7gX?FhtR zw=)rN!G0Kni3sN=f(RBg_XPkc2bjB%kOyVX1w?xvniAKe86bdUStHQf8;A;1EZOb=P_rZ1u@5xxJ(6o4KqKJ; s*+~k`KzNLjolb!U!oqGLdN`2+07wsTFHk?WGX?9PLo!u)Y& zkOe(}G{H8ID3?+XR%5ChY7dPEjcKG!lPZmg2M1GL*HmseV4Ms{zTy1d6Ib*c8>?Q8c9d7`8zUk1AS>{_XQG zXrRb3`banhQ${x~D817r9-JN+%1@8wIhpP_4BCr4F`!~w0!4LPv-o0+-m=S+v#Vxk zum!QlV)S-U*;E>I>m~-_0Bp^}HU!#20ThB3U#_##q_F4(rgGtA`VWMDEF(9KZ>aU91$mSNdef@rm-G+QdRYSy8W1p!-mQ!#8s z*MMtL%IOn!j3$w8r=S|C)UIL8+9?z%8B>%D1_dCas%~CeXv@yvf5Lbm+8UZNFq6TS zK4IobKSmCf$fR};cjN*|H2m|XLYg9t3wnM+#hRTIVl?>^kQJGS;V48X5`qyHwnY(& z#@hrj5n;JR7ZQR9mTWwT8$}{Ya4^ILyCMiB*mxoiYiVRwD7Ms~&| z%P|%?93=bsVp50?6|d*+J5GnU8qQXTqUgVS+S7Qa;c1`0bD?Q%{khc*$0 z(ww0#HP2S9#vZlMw;$e3pLBXE`()pzR4Cg4s=%M$P`9scW<%`iocF}0bLHk!%luM| zc;A?R?94^Jq3&$DW#)&*jb-uo`{hjssZ7^Gd9Abb(L(Q={ctrPd0W9OgwtZsGbWr{mc^!1^@s7EAAe!ks&940i;PpK~#9!Vqic5j3C0^-o61yO+c1l z00 z03d({A%b}h{W0uZM~o0>v&cLKEA5Ajc3Xh!de^91 zC7J>tc0{rj6k+y2EDuu*1%W_K4opBnP{uir#kmVXnF<=yATS@O_5cf%GZ86fLCInQ z)EWEHoH-Z)K!6RCl!T>}asXmb;dTIj6jel&JPuGMC~x;{)sisM>x#sMrHo z5eKpqO+7d?a7A(gQi;3)6y{je1wg|aBzF*2QbQBQgW;1809y&UEoz6FLI3~&07*qo IM6N<$f?Cn0_y7O^ literal 1345 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 V+sBCrEC2ui07*qoM6N<$0fOG=m(>6O literal 1400 zcmbVMeM}o=7=KHlEeMVYBtQsU4mFIey}NR4>5UGqT+2FEhCnj*mmIwpdP47x>lF$K zTVZB&3ksc1Hzms;irYViEru*gvKc{~bCb-(%#RrHBYu%A%ZxFZ0q=mKCS-qj$>rYX zx##yhzvt^c+1OB*l~I@h0Lb#~XPVS+zV@070O($ovIJEqP&}Yx z7h*eM6J)vmo*S?V0DX{eX;oVN2dRJe@4a^o zMR?AI9=7>$zf=o@{QdzMHV-tk1O~bSP7bZ!hg3x=)jRD4` zD6(#%bh*$CQmy_*q*jz6Vzc1p0B$D`J82&da5|kBZpExtvua@u_X`ReH4EX=qz49u z12QiuyeJ@=N48yzC@xfGx{*Ri^82?O3*pT|sU^drtb`F391DfCywX6K-tSX9aC12#=Na&^S$#ZU^D?&^D4t zVtqnbVTAxp#^u$xn^^jhSgKZrtRl)SqS&3BfX1Mxh~c0pA+^mm3xW9A05517tw9_4 zGEnAwA?KCF5VBrjir@vm`7s?-_O zj$6a83R~*~1$Ad+bvX(ai`&%woc1wvOZ3b3zt+~O^_e)$8-yGbusVjU}1hiTxB^QU&QBnJ_eC1Ap6>g;rifs{)xj&$MbUO z#@UpC@u_)z_Fi!RDEYx{{bk)119#~7!K2_#{K;NjJnsT|;;pruQ{==>V``4{oJTIn zB#|Gj(RV+5{gs*!PTVC=zA ze(ra_O|~O*CDX-qy|w<4AT(x{eY?~N&Kw)Nx##zHUYOWbH2#_CJejupdQp59#2;II z$(S*7BxXLn>tw_`oEX&?wJ|BkzArABjM+8i7gH~IOg*6f>T=41$wYO@Sm6}f?>d*5 tJO49x>gC%HCl_$LR9r5`u#%;@ivZ*d{s9*s?@nlUq0iI6yzOoq{u?b}(lr18 diff --git a/pandora_console/images/mc_plugin.png b/pandora_console/images/mc_plugin.png index ca9829d99c109d36b6b67b6d99d426788c860ed6..41f63ef952a407e07845b167b57651642fc03ee5 100755 GIT binary patch literal 401 zcmV;C0dD?@P)_`C8{J%(vmB9h+=mJ72jT-zm5Nx+ z2M8c+78U@p05&;BT)xKUQ6?g63IJjS5SxXNVxY+z@R{t0OCvx4k&i$jflZtVO_2kT z>c<&eKn3f8Q~)+N13h&B*+cQL70(Y)*K0-AbW|YuPggqW>J16Z70WuLZHxTPZ!4!kK=Er z+~;jF5NO|T%okvOfis0=uEU%Ip)m(}6PV2f%oAA5Ch(q{F0^`z2j^49y-QBMe^?d& zZv6_ajkyO|%s5#>YpZ4LR_=QvBeh%q$ukENkxScSQrqRWs+YTqFBJHgVqdb1TkvN6 zwCp%#8~Kj)ANd!st#e>{Q*~@rgUk)4W3SF|3r@VI#MThyS))6Bl~jVQK!ADDOU^ad z6qzqEcyP+Rl}|qXck$^6M(qUQ&koO&g1S9eW0D;G`s|K0Nw}*g=luEaP!1^@s7EAAe!ks&940pLkQK~#9!VqicA_V)G(=mP%%0*HYy z04W0qAe@qnB&h}gfB+)iA|QW1h-QIu41kmX5G%kGFoB4J2M=BV;sa2LjX;I(8PSYP zgzEIiX*WOsF+x?J2T}(3TnV&_5ub~(`T*Gmkb*`a207ROXxapjgMn;AAU+Ru=L4XB zxFSr$d#E5bumFe)p-$ep_jv+=OV>l3K`UaRY96*>r z0^5%grD&23KpcQeGZT_Rn4)+f?g#SwvHAh(oOozFfI?^jG*lX)iD*5tKUkogg+LA{ z2peFMNJ$0+EKZc#@|* zwk*g*r0YPwdw?r7;sfYDhzA-1@@fE5<_85|Bhd8=Km`Rf-8n#AdjUzW0U959ZxAKo zNwlB>FcE6eezd~U0V%D5vkrPB7h-b-4$u!Z`~egfLL=G$ia`!=gw+5Cpb7l~o)oel ziqU}rQji%Su|ePiBc4>D0L{NJLtyn1ER`JuVtKSO7zRLj-w{-G(LAF806Zh7PXwCs Q%K!iX07*qoM6N<$f}kG6rT_o{ literal 1457 zcmbVMeM}Q)7=PPh>59mQV9*%394=D=y}Q!(dKYS2dM#8fkb;6sG#u?gPv~8_9&3Tc zwKyCYwjpMYY|CJbCCo6xT(T*187x`GTrzbMG>gg5&B6ZIhiIHc47&nl`-Aw$F1g(M zJn!>+p5OCzUFD_4$?9!t06?;{gmO#Ytk|nk0w8-ckjzQKR?%K9R`7LVh!z-N_42h0 zRlXo(4vQYMFYLGr@m; z{v`~tUK3oUccHF;jq$N1tpZcgT3YF8ZSW9Y*t`cS43m-rKO@pm*x$$n$*>7t_Df3V zm>PkhWfQT%1h0^)c9lamUSJ@-2F>@N1`IOjG?)%0bVMGcMKKh?vIyHPqUxlL?>l}r5lZx^^&OG zh+-J7Lvbx?Fk+a|YM>l;Tua!CFscAU<385I;s#v-N*D}AtAoNYyOzLlJ!POU0xLi% zyS^Zfb#g(G<~&S1E-S@d#p<7mC2ayji@Z?D^NsNdDEILqAN277$X21(V33RUuv|X;U8-kmzK?hEb8Cb>}k{%p$7iyrW) ztm>Bu_wK38CHmdh63_qs@to{~HpOuNj+y^w!i+rQBz^6=WuR{txU)cIJoosT=VXV?z z-`jImrT(wQmlkJCd3<`eH*d>G@%MSgdEI2Y(lIP=lmDu=+}Do`1jpScOp&wEDAkjd zv#F~6t1_8Wb*8tb`I3BUJn<@31DNC6d%%GlRW9>e?`c*I#tt>?xbew>rPxo@X)mSD I71gx=13``RP5=M^ diff --git a/pandora_console/images/mod_data_inc_abs.jpg b/pandora_console/images/mod_data_inc_abs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c5a2519293c1f6a94346555fc4f51238f4d366b GIT binary patch literal 2047 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 literal 0 HcmV?d00001 diff --git a/pandora_console/images/module_group.png b/pandora_console/images/module_group.png index 2661dd1c59a2b6930f4f6149d0608494eeff7a9e..9e2569f37ecb4b6ef7f7067edaa4fe02db1160b2 100755 GIT binary patch delta 438 zcmV;n0ZIO=3ef{0iBL{Q4GJ0x0000DNk~Le0000P0000L2nGNE0mLkIj*%fJe*tqz zL_t(|+G1c}U=Uy+2<+|c9Y7ew1_&Swng7T%oBKH~@{WLLh#?h@8NXG(3Q&LIbFVMpzIdr(xtUSAZ(UkYho!{sJ^~K#JpG z&Y&RMlK}t%jDD#D>h$+Slx-h?fhGu43ksL>M3`R)R6hYZMG;YW!qo^6f9VMUY%z!q zHURNNEaDf?GC#<$dgNq+GpS?qE)dU0OA+;0)E$JX-H+E2SYCoADF>*_6rgNmumFe? zu$XlKnr;^Y&1xW6TA^h#ni@VG-$3;+NC07*qoM6N<$g3JV>5&!@I literal 1323 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 AJpcdz diff --git a/pandora_console/images/module_sync.png b/pandora_console/images/module_sync.png old mode 100644 new mode 100755 index ad37c081ff7905e3fcb66ede73cedff8af203df4..a8d12ed358e371ae822a99bf9ae090ea521f9b0d GIT binary patch delta 549 zcmV+=0^0qq3%~>+iBL{Q4GJ0x0000DNk~Le0000N0000L2nGNE0ovt7J&_?Ne*xl2 zL_t(|+G1cp0*oNS+uQs9moHx!m_Qs50|Wp92n8|P+uQ$#vIUu7q6ZHi`~VO@jOa>% zDjR^5KA3a<{Q3Xw?d|`!Z{PkO$q2a0{U8kE0|XH92&hW{M6+O+$-vME#0_vKu2``G z=2VcY7~m2S5fNC;#c&Zo01@jTe~|wSz>b0nya!SOxHJIW0}9jiKxQD!O#;Y{wz09n zrYR7`6Ud$cX;4v7VK6W-Aj-Y_v4kBQ00amNV#zWA(sOHVT7=SxNcxT00000NkvXXu0mjftrOJW literal 1454 zcmbVMeM}o=7{9hqI;2u!+ypmyE#Oc`@227u4SDotEF=diIZ!4&<@(W-5s=a zGuEjaGcmvhjx94`N@in>9}9`b#RxIWU~GsJOT2crCHW8p$z7WXukd{+^U9CH83TNf`KT-lOPdojd8|=S-EJ}D4a8D zSP2#(e2ZDR6qMiX0d|_DfL4W61rZ$zbeIao5FEod0X2dmFsg=))UaAzB_OJ}ju=lSs$yJO)&fCs zK{mqh5jqAk7RdnJ#+#Kwq)RD88Mk}IaEx0nlu$A_K{7C^Lf~jLlh-1esr0dnt}?V}n9Jn#!_dp?3FnlmQCS7`L$zp($i5K?mESRE&2KW~J~)6^ew6h}M9h zs2)S~YD8y1QG-=SI30R5?y#YR21T+qR^t*{q2M})9(QUn6m_T#n8A+gZ8oRXj@U57 zp5?k?98boARMu}q@Vm^_-IHsyvlPkGtdFK!vlHM6(>%?EX$IKqwJH?2$zUXw(PSF5 zlrKTCk#;KNWa%hatgtb%N(4?q@BDA(gj4NwpmxNm(b$yB+|d828Y~0@XU5}SUi5Z`_Aj@bgCZ&uo+ z;OL*8c3^=h++}d046zP=YC~h#rxt5Z@-kRChaNvC0vZmc{vCKdN zw{xsF!~sdaVdul$a?3}e**qp?EiXvOR)?X!Zcn>tYWu*ulU-L2-=5sWmY%CF+`c1qA&%|1kss0tiFNewZ>QAQm`y@E{|I0}w!rNCq@Q74rin3t6C?13+94 zV!(9Z1ONeq6)^(Mb^y{2NMiLcv+I#nG9g(A0uNvgcOc5I00G2^q@n?jgDwF5v4I82 zXnQ1|!vRpy0jO1sENF83@!8IVe`X3u!V!&+stah10FZi*$ITyr8U+CYi1;8!@|*)M zML-i9n22En$Pw z!~vMX4+Qd8BGEAe5MVSx$O+#7NS&w9JVRi3TtE&a0a#EYhaxcm=%D#PU@8G-1`8gA z|A{dW8dDGPB@n6r`Wg!LRwEw0jkro*76Reb01Vp=KxRLhINpfFW~c+up!--dAW9X3 omTC;Jrc)#h4&;O*sBDI@0a#aSPIgd~u>b%707*qoM6N<$f*>o7W&i*H literal 1289 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 diff --git a/pandora_console/images/op_alerts.png b/pandora_console/images/op_alerts.png index 4cae888813b7f35367265d991d0df0eb177f37a2..f74aae6b82d7734db4b154230280cda9ddbf265c 100755 GIT binary patch delta 401 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 literal 1402 zcmaJ>eM}p57`}4dm`EqYD4%0T%cf?uch{BDo^f9YkSZO+()m+S`f69 zg|GzY%Gf}&EP*XEW`>OUk8woUCMt1GyXS@Vtqwpre zN#Opr;51PI0ALB}a`SHcUd+c(3OtEXL?~8Z13*P(gvEW$1P^(MCX&`k7cWjoA=0mt z)|c54J8L2WWOX}7)V0^TeC^FXtzTNX2dao*f&fMEI255;=nxjsNmq3-;hc2CQfL*z zH|wO2l5*P}kcr_4s7!&#eTW)`)G7t4LbNJvDWpVD1V)uGQZ7dktgIYEP-yLu3eh-! zBjz+)*J25lP8#5O7K7n%IIIZoRxn%>jB2%77*WDXrCdPBLv1vVN91%!mQpYiAs2| zPx83FxPr01`UEZPJ0~o*=INXL!rfZ1nGLSUPu`V8q7uwR47U?~eSPd!&|v}e06MY@ z{Nv~DfiWPjAR3W5rrwMK-slV9w{r>Ed{@oiRkP*M`_P?CeJD4+!_W~0jAPk(NLS0I z*s{K3`=Q~E^Y1*7DE8>G3MLmeW&ag8F_9k38$Ou`9Pu1_&5iEp?P$8+toCs2|@hznpedHL09@eQC%la_bUh zU;W`bm$>)Y_ti@6;DNKi0Zpu1bQi8`Fe;A?o+|A6ZD-=6tzTxko1=}?z9!N5?2|ns zUyzu7QC#Sp>c(3zRLw$+o;Cu- diff --git a/pandora_console/images/op_inventory.png b/pandora_console/images/op_inventory.png index 91ef51461882f838ac7b5a3bdf3b954d3cd25dfc..2ed99dcac6bf3ba79dfd4f1b59c212a1bf5928bd 100755 GIT binary patch delta 458 zcmV;*0X6>S3grVKiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uR{ zL_t(|+G1cp2ln>%^FcHdls^$f00a<*k_I6D4_9{Z;6X+Z4G=(ZS#&K-Xxa;4Y(}Vn z0gw`a2?C8f01!Y7L;;}A{VYhF03dY$#X_K28-Ub%6hV*^VQz-GzyaBIfB<5|=NTk$ z0ct#U#X!CQESx|t1<@=x!aD$Hf07`~Iaq@Y3KD?$0Z`LUUx3^Y6eTA*A&^7?wH1rtbhX#g~tEP!U3`Ou;Rl;ji9^93nk3eJU4 zHpmb`Xg(s_`x~GJk)KYXATe4GbXh$aX&!Dl09Uh{q&-3}u>b%707*qoM6N<$f}I|s AlK=n! literal 1382 zcmbVMZA=?w9Dmxfg3J=eCIU9@JkV)kd(V}Ywij;n<*uc=Vl9nA<_C`JL2uBz<9dvi zFBXUqmnDPY3kgfs86$i^WBg#8F99RNmpC`Y#KAr|UlYyDVw@2ZvicM#YC`tGOD^~P z|M&a--~Z2Zk+z_zysjJoU<$P|QS_}Tyk$lJbT26;2?@0t+o83~J=zeb3cwqey9F$i zgH)1xalC!I3vL z-a|#1z_u?W(Rf1B6pA2*hK8&|jaFIhB}lj1O+XuAvsn--AZa0n#?c>ZT#QrD;esUTv_q#2 zHn~XB7I>`X^`4~G%vNktk_j=t9*3LM{Cg@~~+>n&g zIEfdEensSWi^~RX%ccCPz-h7?ljZ*61Vj?DCZ`gzg8ADWRuT(yyeJhkg$8Zq%LuA? zT!;r$If-pnm=br10J{F0x!dN0tdH^f8~sj)i$$4lapV7|Y6J>~D2&Iy#-*r2Ggvt8 z3_lWf)<=-g&ZuZPKC53jkM{HV5aW%d*Sa_I`4+>SaHK2{2vpv`2&Qyj=5_kt<}ZX~X{N5A>B6^*>$@PAz~+&z0oTt98r0zWql)w7jcsrefl1=jDTuAv?LQ8#jG%tno~(slO55J!@+|G z1zBJmAP$7GA7C@r0mcRhAgl;xKFH<;K%4+Hn~@19upX+w0H%NiNf$`45hRYR9R>=q z+71vvj98r30HUDWM4-hFFcc#je+_aOnpFpYVvbB$+>i+6UqBLbKn~mqND}j*bR#r4 z8L+w;%?21~1Udoa4+ek$A{wEas(|E#jX={TU<-x!*wYPzAyC5wSO}a)Qq+j%`}63r z4L1RZK~7kYB({JFi&gzt#1dGLOqmb0-T}!OprjcO; z3lo?@jE4^&9#BwF09j{&t{RkJu*Lu=U1G}_00Bl5#E8QM3eX@8AfO+VD+_^M!J9Hc zp|~GQ5;*{kg7-KK{{T%w575(F0#c&HNOMqE^8;}K9+x`;4L-nxC8ME(4NwE?fp{W; z;Fyn5L_!O`59k>aY9I*YYNO@&325p;alwFGz&Rpih(IL8^+;+!URQ*M`9Y}59w7PP z0=l6OkRoV39xtwkx+nq3b@fn3DB>zh=Obw#7AycpP$J%Rid2f{<4LOvpamgD1q1-G WREnJAJ+7kw0000mh}q z7MNLCFq35&WZ4JE-gGew`T<|(icy0J$zpsr#+OJ;G)pF*aJmhzK+zbo4_b ztdFI`L;atyO%SAtaDku{^tKa>5H-*l8$%)*lhF{=)RKtNOfM^e5ZlA?Hu(0tH(+tN;F7B`}jDKu)!O=gnZ7Z5g2Tk zNWC_AGpL}q6F3Et1ttTkXHYW+%tixdM6E_^J-|^6MKByeEqV+kOcnygz}5rH-o$V> z;UlRnU$SI_Ba##&5M*$0&@k9w5X2q?vs$ePiX%9#mo4=1Azq>rdOlv2Wgyu&BXTi` z6L^qeq(j1hWP{~MH&cklyxwhMKE72bxnxL!jv<%^o~k@xe4hjauI--hn4ueYcQ=Iz|PW{;`_(f}&Vws-1sL3y=m zTB!l^I7Lxvtph+0tM`sTAMQ&2p-P?d=h>mTuTupx_N${^&7bcD^=ZiT!%rXL6#KO4cGsJ^6-AMf{7CuD3vZQPol~R= zXR+%Q9!9x*uNHf$s{5-8tB<^F(iFQ(*IvJ*J96%qs>df*E-H$({t1Bz42lIf^v|BbIeGcl({55 Lt`72AYuDJ{k#x^c diff --git a/pandora_console/images/op_monitoring_selected.png b/pandora_console/images/op_monitoring_selected.png new file mode 100755 index 0000000000000000000000000000000000000000..73ea934fcec265e953b919b5a8a291dfba8a9c95 GIT binary patch literal 1539 zcmV+e2K@PnP)eOv)^%BwoMWHQ1YK;^SX^~pg0#d0E5-$i4 zNR@brEs(gpREPo*mxmzw)Jyu1_94^KB$N|Cruic? zvgtObO?Uk{%WYk{H~*W!9_DX#a<$F6T(jH2*a(``=wr?}!qa3RFz;ZpOh(V~9K zPeD8pMjl>h1A-uOX!lnLBcHL%ENN{RMNSaMJa75y-~7di&vpRjKYcFTjQg(uE&IxS z0`Za)bjyC&CzBW@jC>R+(Y3tw--dDU?U)$H-@x`e3>&v1kTA5NmDTRzQ!l>#t-k@C z{c~r-ZJ&I4_2scB3aVYFR<^wkmepa|bYt^;x8N9&4_S?k7Ocg#xIk%g| z+N%@yPCoXG?X}j{?TbI|IyD;BGNxN+EPDs}D{)*YdBwF9S(PPqppK zTm+0Y;L-O1EL3MxVdQ7Wvv*R?e;7j>CaLDgCQ77~935x%kA^m~#|e5AQk5tC&^@lJ zdGg6gipCVB^iC8hfgd>pkqeODWb#6FRs(igUX#h(E{60E(J=o(5P1}hDKd%DrMmgv zH6i4Z<*k!Xl^;ZKTnK4jQq3Yunw?FKuc)%VGpVGJC3Tw?rGSi~6-g<%uSRh+Q_9S| zb4%eP+j>`f?|l8Qt1o=RbQ_0KY92|* z+W-`x)v%WDvi$b#g;eDQf%LSl4n5TFukJmz{PSORo!Y~l{wh)I6GZO#nc8cTK)R$U z#xv7H_wT)T@(VB7etYS_$ww+bcw?6;w#b5*KQf~Mg{MFI{4aZM{qr#~+2oj+ON_nU zbL*-X+IcUuZ$H;~leAW(Xzajrn?Fh_=@-kn-Fw`?{FxhCgpo%sHF^Et)Z9T?QojNq zzxlgncx?H(D3_ctoS^%;3$2qh?PbjkdX>JvG1+!jihaL>?RN+xAA!J+oQxZqX9n9SYHurYo3Cr3ZNZy@RMCX*Mcv*NzWmv2od=`(BH zGf7D(6!j?-IRSv_Hi_Z@LmMKc=IQ$#6e)od^pJ%D2&Rh<)Xq1LK5**F@7sV2*xS_f z`0{~$USJgT+br`BOV7S~v3=?@nZ)Rcm>55F&}0K$Eg(x8VeA7jnZziCRD~Twdl=8&@$#ki zUp~25JA4!{fhAyV|J+&sriL?rWX1qyW=H4Bcb4{kQIqvgMR8CHBOgUhph_u{YG%z3 z`&C6s{_r=a9$y+*YI?xpt2ZoF+{`W)si)U2-v2XI{1Yvdz?(XSRV)Ai002ovPDHLkV1h5M`MUrB literal 0 HcmV?d00001 diff --git a/pandora_console/images/op_netflow.png b/pandora_console/images/op_netflow.png index 08b0c15fb66cfb84d64cd33177ac89fcd64ba0b2..5b825dcaae86f4554c70c87e7e3e6267ab48ecff 100755 GIT binary patch delta 587 zcmV-R0<`_u3grYLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*yu3Q`WFCqe}`LUqAi z-~eL-1P~*Z5a|a}Fy|!#O?rUte<}fx#ZU);93%j9A=JeSfb2vjsHXQw^aUvU0Fu`d z;DHO$2{Q?Z9iePTsAm{3+>GQDbO3TU*f4+qA{sHGg@OYtFhSu5G;IPl>)*qCj|L2Z z8ZIy)DFTI|Ayo1M$bC@Ho=5gQ$Rq`jPH5uU0QH0cEMgd;?%I!J(gA1!e-MDuU~wj> zBn&hHaUoQ3Ba-+7Ca84`&}f?gwax%)bs|)5A|q1bD1bUX0haP%P5`G;q~Mv4qzDE+ z02K-1%8U-kX%hwj0*oez5r+#vo(K7nkSjm|)d=*;2SRCRKYAeHFz^79rQierGn@&@ zzy>4(K?)3^fvJcTuONdIf06Q#AT%w2eD)q_h5~YFCV-U6!DSUtY&|sNJ%D9M2p3Wg z0ObRqc@Ehp^O4I32aH0GOaSr)6O?fPTO>fe$%s_iHX?}yV$rh!B}|bt!itSTq?Fzd z754`vW>9beZA=?=7{5}W$N{Eh{5}Q*;<-LNbFj`oTn#q5H6bF;S<9nk9pUB}S9YxFxb=ig!SnADEY1?*BY_ ze!u7Uy!`K^ue+(K|I99w4@ZHO~yD84MApWk|RR{lmPmuewwkscR#-j z13GMhUod!4FXyD9v^&L9J*n@Xh^2N!9PQgOJGr$~Y211vk3@1ift3T!;ea=_VR&|<(#hG<6eY#_W| z+{45Lk_k~BmjxC%v@{*Yjiz>IyU}59*E(rTyn9*q`oThdMVejm8)mPn1>ilvxi4#vJiFQMCQs`0cW)t_C35>UgdK<(Fi^GeWGT*YqG_n zkrg&9Ho1%44;0f!3x0U&XUinTYn<+oNY*!QiT**|ahUB02su#{@Y%8axYMTGJ*fjWOMd9TBbC>Q^ kpEs}Uudsxp?@rQ;40^gMnbTjspp^b~p3ZL9yrXyYUlqZ{_W%F@ diff --git a/pandora_console/images/op_recon.png b/pandora_console/images/op_recon.png index ee916227c890153bdc5277b02ffce543ea0ace6c..b92fb49a4202dc8b8c852c448179410f94fe1771 100755 GIT binary patch delta 651 zcmV;60(AZ23#A1iiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*#BI zL_t(|+G1cp0*oNS-roK^klM%s6yp5APWtE7~~RrAbxMDTx5@b{%Q0E5>#ZaRYfp|VN zSR9Z%IuWR;fd#5?J&08gB&f7&EyM6rhzmDLTv$sgCZlEdqH8b9_n6@ z=@&o|0h0#^Aku;y$y5PoEP_m22sCj4woo_^4gE$S-T(~^5MK}!Y_Je$e}I|-@=!fA znhc=9_a0;*Ge{vYoq|B6aTMrHRhp_be02(U{P!mDmJ}A*aQ%?hW3{8M~3Z(HN5a)wp1|$!&8l;O6DTrXP z<4AJM00gL|3~vyGfhb&@e*iaO14kfEfZYH`U;^2|xB+g^5y}KQ0wYM1@4|!Bs6Qkm zZA$NP_ujkv%Uk3Qk-dc>dm?KkXI&!Yn{KlDCp0?Hy$U+O{ss0|4lXv?J-C#>8h}mb zp0$-6CXA9Qnr7gAI^4;H7Qi0B3P3LzTIpUqQWI0+@kM&vl_VbtVGcH%*hev*g90<& zDBoA0X+)pksbjSa?-`*y)jfsVbFSHKgg7qL!fDv_(lB#){KZmNvUUP^W8Vm{W8U^3 lK{r1z!Aem)%s}y7%nOHuw;v*g6m0+i002ovPDHLkV1lhM^_Ktu literal 1506 zcmbVMZEO=|9DllQ-3ye?ZNN4(JYI=YTzfCOw!6Bn-R`bi4aH?^urV5UZEy70dUw0t zTsL3VfCF4m$0UmQWjIXGp~6^V6cREJg2^@sA*jR;2sjf%L=qt=lKFJ3=m+$Jmt5|7 z{`dR+|G)ps^SsuwzR6rvSp)zu2b#H7^exZ41ttIt@2F-OZ7Os=thXs0das~~pdqG2 zL>Nd28^u;pi1l@UCDs98j7y=g9uBT^N0o$K$YAWLgo@Yz)Ok~?5bYFo7!fy0vIo0% z5hQ{tE5@bfeobuaUmuG0cSe~Q=BNymXnKxLM6jff{K%N0#76|c`cxmdaL-ijQgUK zp*~f_Tg9Z(qeW3aI;>eTs@;DF$^elX_fwjLnj&;@O0*{-%6fqFVCauMCdJ%@qn02^ z7frY*!dXj_wGB?r&$}pwZzQ=IlF0hFAD3}*w9CcQwGPHbl03x_4B6N~F%;*g8fccz zaszTw7v!jzjVqzJ2ubpO2Z6Ybf91MaO%!xR3n@xhb^==BimoK%iVE2_hn<8$Au7ok zOQu10^W{WMdO?i&H6;NTD(sf-r+{#=e%?uw>|*A%tdn)|q|49pjvB&=EplW3r)oG7 zgJ;I$ALEiWp&869?+riN+&ey^jLwXP4#yWppaGCm9N-#4sSA-m=jXk~r3Zb|!Gcm_ zPBkci{+I|W^58P?SYG!p#zThU$8&Ov*Hvs+U;Stz|I!xXt(D+1|8kcY6zZ zywg3Ye6OPI$;Xe4?nsJl*|m`uM=Uw6AdKuoQP5ZJM)g`y8VwAAF$l z98|&fuh~0?4F?Qm?alQjeuIbp-q$^58KOt`Rykj-U-vusiA#^CnZyOb4l(^YbRtRkXvr7H@8&H zG|iriS3I=lr}Q^n`jRtPx#>J>oCQOxh9ky`H5VrV^IYQ?0c?fGBl+)zLF?rFw%?0n z!=CZmd-u$Z@u&LsTOS;~Iv=k7x#^~PBJbMH&F_O?)G)%IuHXG8YttG#eD)JX4Px13 zc}aTt}Jkn7rSBJu-5eCD?6_IanVCRQ87B`*=qUq*8` z*=XSW?rz^;XrFK9rO|ZN>PL$w(-)X`f14QO03gQC-Ja0rKFr*@0e(IANn`uwzX19T B^KbwF diff --git a/pandora_console/images/op_reporting.png b/pandora_console/images/op_reporting.png index 27d4c6a9d4110893496fa90d58e2ba12833bde95..510b316351ab84339f8b4ce24f7e5ad0f92ceabb 100755 GIT binary patch delta 332 zcmV-S0ki(-3FrbLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*p?f zL_t(|+G1cJ2<+|c_X7kFVI}`TG(Z3mhd`Hr8JoLU{w`ApapvS4!>3!0(}K>Pu# zJpcj32-Ru;q|W1UkK)0D2Oq$U6##M=@pu~K@&`<$c$bBUz zsKnR9g?g700001P@Fg#D=t~*j>}{K(S=` zoTKmi&eaEphaUB|w6_2Nyy+C5alUQt+uQ^IcEs>%j&r}A$lF|}d2(VI^#kDPQF3`ZFYIO|T_r>pLsV45VFS=VP%%Vl9NDmd#uP1zU;W@C94c}Y z-xCrj!QfC)Nllq3J2jM(rp6^k#s?mO{T0>`P?0Udin>>`*h&;%(`6mo4U;%rgV^Iy z{8mwUVHk3{iC~DJ{1O$WVK_+8L5c}7y)Z!06iEk2s?SeTY^aZ=Xt@61PBv2>Wixzo zJ(uG}@uF=TEJ>EjWup8Lp_^kQ%`gl}1;{|a?;!lvq-Kj1zh-sU6?kMxrefHNu0dB( zEa)XWiaV9wYC$zNWHoDjOwPc_ifE8DLAfo}fr9Y=P*vSPTXqKBuJ=EMt=y!6$PBXd zk|{Zh8|`*e87yZa(bmnJuJ5f+ak!}4x>eK-$YnzW4FyqBG&i!w5Ck@@S+=N2D9uN4 zM}trlnN4sUA4x{~BEfi)rV{}sOozF_B*#SJ$-zV-Ugz?_c+W)K$3FG^=c0OK4NQb*{X5E#XbMq*Dy(uJ&K6u7{laam|gxb)1dUN1Ai* zrgPYD|IA~~zx70#AIw!Q7H+Jr4tRXfdii+6U9cTi+a90a?n%BGsM*~yKwr*$GAr+2 ze70v{=Jk#y-*luCR*j3z7k)q1+FU!-_?9de7O?zEuJC@#7GLbIhf}5PUnd$MT?I4m z{W{>mfC*Fnt)~I;@n^pk3b2(DY447?6K`~ZjJHu8nQhoczxvXP9?*Eta{I`MKabVE zx_odOztBJ1oqC{_4P806tK{vyei%EPkAA+&e_!=YE)|WQ^LIzGWUzB(+LOV1V}-@& z3p+{bEMk6_klZ>sZTrSI#$l_n5Sl*%X*kojlXb@by3#Qw&I;d4cpp! zX%EP3;g_(fcUEFK-^kA3MD<$i!>+ljix+}te+2V?5LJq5oj!df{>;)jEdN?l=uGXq zNbSHkH&Y8>*Z!ye#$LJ9F>&wH*L#hg^sXn2*3|FnJ@S+uQ?U~>BJC! IDn2sv5BK+%|3NepvLHYJFVeU`56|=B00000NkvXXu0mjf`cSGb literal 1428 zcmbVMe@q*76u;7PR4kT(C^9l`2Ttbb{V4r;PU;Q3;^05J`z=;p*DgQ69|*DLDGq&iUxpYcRI!M}Wb z8ix3|3*KZ6VWFg#>)``K64x=*9$|-iS!Wz}w?NHlLUoYf6b4Es`UIIsyWn}hgnG`Y zQ5c#xQF>kQ0;y<-hP)vvzu^?u-XX>hZY}L zjV8srh%n_}jHOC0xJOZv1d66oDJ0d1h*CF-JDpAxGoxm+NwqM^gMz}OO@dsT_dszn zEAdH%7X>Kik%@@|iVIemE~Jo1hC)k@1$nVhYRS+vlSFX@LlcQyUh~$n66XG)v8=Tm z8BB6$n3Kf;iBy zeR*t9kQGK?xqMt+jk}1Y?usS662~Z_6cNR~`~=WFq9V#YViNLpSP>iwF)T0SG`R*X zI~+NOT(`UOY6f4>dr{&a$In4KBn&HnIPqfq%X&AXR~gt;W){UOliT9>F17GNC1b| zu?728q7L#BSXxp_VlM3WXQ6Gz*|TlCSL$^&v~qjTFmSk%1m65+ui@~xqMa!$pr?oX z42DW*Wue`8w7daqe5zm+*|m=R>Qntk`Z}RKopX8wx|7y7wDA*e>X$!Ouv(QQ7xog{_nxNrv z?aUh>{UZo%(Vx?h6LZ&B=+53aR92*K%ItVxQ~l~^)~s0X24>SxJ1|-G#Ckt?YhqH@ zxl?;Epz;AyW%YG;e$cbg%b)8Xu1f;1{b9JsR=cvX0XO2dKuy(S;EOMT zwf9fN=*_wqz2@gVM=oTKpU}Gw%zkn4djFkOYyUd4Z|86Hueaz^n$b^Iy*_yItwHxF z`0~MP%sYVPrz-NZ2Qyba=QWXfc7Ni@mP`@pI}OY{qM>VaSIow-!W-H0qRcDb%h<+y zM;=`p&TI?M0=oOkUM(|{AHH3?v9r0w@q#I!zvS<$c3ioqSQBo@R8W7Wr|T;tzCvJ* W+_0thgE=a9PX>MM)cdVlcl-@L?`OiMka$6?03d)Ep@s_psr7i&Jveyq zU?R-e0wBi`n<}Wd0%>jl0v0rWBQb6USu-Dxx(`6-1OfyQ$ssWx<^dca5FQ@{;?IEv ziDLky`f&so!uLRd3qZ<|U@+0de?(9kFu-Es0dx~T0I36nO#DC~hysa@8Grzz31URc zY571rkxa8ddILcLg`SKr00kS!%>MSc@&*G^@=qYfFl>%sqD7dp;IRDxkZPc+p`h#q yr1lf(eMVwkdH^|PQ0h_z^g^5jU_jHv4*;Q(OME=nV~hX*002ovPDHLk0$_rT%WXLT literal 1148 zcmaJ>TWr%-7(OATgQ|tDbOI_N9h|5FiTFm7##T*}*fEV%M^%z(*q){;wA)a6B9y+2SDs)0$zClX%iFL64K52 z1CP)c0MWQrsp6_ODH^U#>mi12+8$v8FgD)wbYl)-SVJ?GBT+Bz-KU^sO4JugjnzCE z%~}&JAC+6hiqV=g1d|%y1IL;o5wH=~Vbk941Y%R7mUTsP4&4j|mmzpgqTVM})uy2A z`UoazHes+S4yHzEZiE#^gk6wlIhNsgh8<0Cte6}XSq`o|6p7}W(_%?cS7H%MqGmDn zM22ZJ8gyef?fNqeCkO(=@(j->2qF>8J6LZfoFLX#P*7m_mWM6ZfuW*abL&{5NT%;g zu)S4TCs=6{X&BSgJ%*#%u%tFn(>@Nh?NxMuOXx$s|0^6+<~_ueP~g^mgA8su7KZXf z*+)8d{fg`EZ+CHO*2Qix>v~WwCut69x?wq?XPKdCV!;Wp?ii?`NEFeaEz1;>>0CO? z%5r){W;rg;3n?xoXH{89=hSRIpKEg!*Qndb!ELVjfva@nhRa}kB(j2h>mV{!-?ia# z(W2EkmuyG96|UJimt03KLy}>_(f()DZ5P>}@VL6T#8_Q@Nde?K_V)B9im+L_k)MI~0; z1|r95F&+p5@h2yT4}t5^_yO>INLBZq@81;NaHPCudhkRD`u+2CWa8(;6pnnKeq7)6 z=<2o0-4~_4{!Dxh{!zI7-B;k3&FgNhy)mj*$I|_uZhZW-mK|V0=}lGYnbeffXK qv*>X5P;~Li%2_TvY%AXG+00M{so3iuB$_zjRKmZ}j{s&WifXM*_5Je#YGgT01;s;zFTaRS*dqTm5 z6`(7e2#Z`Gz#aiWYa5`E4f5#(5F0revY>?_Ea4guvYIG2I%1K3fT0i=W(R;&Ad;d5 zKruyFmQ7zyM$2UuQ00~df^FeJ;R3JMDIk&+5BkO0atK79D_cmOe}g8@rw zVZae16NpW6=*1lImY~DUt;WNI`M|xwygx0IM!zA?I2)&j0`b M07*qoM6N<$f~G-}v;Y7A literal 1331 zcmbVMZA{!`9Pa^RaEcxqhL;gmizZBW*XJqs(l#8gy@S&o;&D1${BY&^99QAm+Lm#k zbC-pg!AN+SGBXopWbuPrmJy?I`oYaD%8W5F(L{|O)Fq1ZgKlPm34%|7Lu1H3*tF^M z|M&m<{ogy%(cW5QudovYQ50$uBKTcqJq7s$VLPc6DOe~s16^jPnlJ}M9T82E+KtFi zO6)-qBuazNUPE;Rk(-pGU1nE!A0Jm!F43}arBfP46GUA@S`*{F$RxW_kF5BqU*G?L zB4x=>?e~O1SZhH^xot>CokQ)>_)u@0lc-WLA;)nvU}%PMVhg7+sF-5fsTkE+1_2pyUDixl zRY;3b>{k0tKZPS*Pa&m+!<)p4u~8^oGCD14G;{$vm9p|$vo_2K`X`Jnt&QlQhUf?~ z)P6mV`;n;5f^qHc?8q|2(eRJyGH#04C#doM6jIEP;HU5xmn2I(@UQ?vpBwlX;AJ6X zo4i6W;A6NzGZbne$Z~9jb+a4{xV=8M8G0ZLFr3fl5xfHAU@Z^=p4u!nq!^~C#8K9- zjQwt4y?4a&EjkiSRgbD_Uv>gIlB%g1NmV0TIz28(hQ+w7SQ@KA>-h>umk%N-sH-V* zt-`##MFgPfKbf;FUN#V58R&zo061y`EB&9U(Kr~|8jpXCOIC$v&^m4oKNdFE2Pt@G zbi5qrmD2C=eu^QXDVqMKdwF%WA-9q=%1&1To1<}Tp4kV!oUa5#0eQjJ@$GNBbL@@J zOMkWf0m1AutvQ5kxVxGmeu+uaaQW@spCm5HB|E=BtCLUvS#{;OaM4a?Cj7_tzEgGM z>)Q)AfScU2GJdY`Y(9A~^H9XP2lL*@_s^`B=PF)(aU1*9D-|=J6~~5i9J^}Fs{IG-OXIr= zVvkn*bTipC?vx#)j^LX|cYH37OqLZ9wxE7scC2=Gc+H0l@URumAu6 diff --git a/pandora_console/images/operating_system.png b/pandora_console/images/operating_system.png old mode 100644 new mode 100755 index 4a31064f1dc01444bc383fb10f20c720830b1ab5..ab3f2f9f2f2603e460c45dcffa8a3b5c3efb2d83 GIT binary patch delta 328 zcmV-O0k{6{3FHDHiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*p$b zL_t(|+G1cJ3IGHUDzdk?H$WF~0MP&e1mg&xYhi-Y21MHd5I{I>-j8fMklg??JDzw8 zf!hA#wFe-87@?{HfK)y{g$EBFbYy|DK?(zbSOF+_0gIIl$PR-!uAdlZ>?aT`AR84K z(X7L8JIJjtHb4Lojfi!^L|7;se+1$KK&uYmia#b|twvT@Ppm=*VigkQ>-#|J0jVj} z0bBAyj~(>zEX0;*@B)AUqX}Zf;>3gGW>)kJ!hoDafOtPNsW_4lxD7CanP}mC7A#_* z_-`aR9S|_|12hOekZULttz$m`PjM{|#0gOL0w8{fL)`^nlo-9x!wP(2xgo aN&EoPQB2$S8jZ970000Ops}UvAITPR;zY7$mpU_!p=moxW$Pvui6vE1 zY{wfTjFA4UrJ+!|mi?4GE?WuP%U~<>Lt)8&=vMa9y>)#X9U~0(uobea#Lo5*`Y?ge zJ@xNGw#!Gf;(w@+#?3!$1FskT9 z3^NsZ8t1XB%%9!BLjbtTYGKlz%pT)QdL<}3m|(qP5H_v-o;~+V;znwX;oA za2sOJB&Z!xli3^;bQ8m9kO`C+7C|-=L=h$)i4VdMgBTixXod?QhL3VQgJA2SNHkNK z;`5@^ibbphRkm$|r|DX)7OaJXx;agwcsx!sAvzQa5JbS5*KD~S(5ypk4@U_HT-L)N-jm774_0w1#5OjOi<(`sHh6hL}Ls>T!i653>!lz zHp+@piVMY4V@M1mrtM=duEd5VhQMN@l7vty6z908$ciYA!i<=ThTGhXX4$eeFVQ{p|V!|3&ZeXReKm8#dGT z&MHg4&X=#Q93H-s|5HBl;ktK?@+#~zH$5N!^cT3?_{jVG_m4nla@bh7c1O71Rp?rK zGr9U*b3J)fa$j3nJet3B^5AuETD{@_Vc}cX%@=cp@du#&j_9sEe-ES#po;Q=SP>NFpb&xi1jJ@UG8G&tKwJovn1JNv z3qZah$!-P+paDea!Sx;*O&g)X<_PrA0gxOMRDl81r=W-hN#sKl&VHcyevA}=6o#NM z1u577#05aS0G6gdpg9SYG8O`H0F*xw*?sGg(iVtc0OCWF7XwBD21+CVe<=l!wLqs_ zpj|iu1lSObaV!A_O4<(4{Gbm_4Ic>wAhwVPh5CA^L7+Gege4^;HJ~`24=UGycmhzq z5UZh3SKWsyWPoKfpm;wtHNg@QNWKv$*8r5e4~=@TdT3hyz=Y&FWCIzX=@|qPptK_t zgFrl*8V0D(?t{!i&qW4MM6bha2Nx62!pI&fb`a`Hkn8)AvVtQloEh;%QUEl2!b(+` ks~n(~K7aOV07*qoM6N<$g67h?XaE2J literal 1338 zcmbVMZ%o`|7=QUA1I96QNEpsh%Y9e~cYRxWf7)=nyIt?(WQXLqL|kILa(&?nw7s=u z93(Pu`yev{F=WPM$za1sj3L9#sL{k2K5R>1nTc7{EYX>{NF>__zo@vJZ-GM-$v)Vm z>H9qW{ht5NJJHepysf;h8~|X8whD3lt+n3L5&#O`$=FmZ95BOOW~bI;4v9JfK}qXI zL{t%bQ5=cV@QE9!1%RTooai#UV#oNDrZ`0ll2{B9T=FRD;j@$W6OEK3i&v zBsL*tzmMDssw>t(gftxyE+=%PpqnP#tdnLT$8t>s18GRn3fz%;WZM^(d}P`*Gdx8N4GlSmnw^^7OVJ$1QIMe+#(@zIV^}rCtV1;#@)iVSq;xrB z%9=`87R7FD(Dacw(ybJfOf0rzST(i_g-b?d#SBF|A*Co*UYlscjH7?T*cELghBJtY zBSRb1Q@9^J4S6!I-QyiuKpYMKqAug6hy#L_8dQ*KMg<><|2QRC;-Sk6Y1+d=4+Gs^ zn)U|WLL}^AxbRV0Xr^J_#%^2>BS3+32ZIsXMblv>7zziyZrIFuIW7{6uz7A&HB3=W zp}b!i``zYpkLB_q9f_um6nZDn1Io}&4 zr9?Hl4tl;lwNNwt!5_&Z&Syb^aO?1~GW(UiW3~4#ZX}m-3rYXX=ssg()PAG*i*rTA zRqbWx!7D}6{`yr%VQt;5J9eNq%_w8*`z2dp>rYPv4uX%$8gupEU9)eDPmBwoDsc6a zamn^eaDA+L{>Q521HG+hAB0>r!~{2+4pjEfUoTvGdivh|)2>-=uAaO7b;ZWi!16E~ z{&ntVUm!j(_F&H*_WiFOompQC)}8
'.$sub["text"].'
'; + $submenu_output .= '
  • '; - if (isset($sub['sub2']) || $selected) { - //$submenu_output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle")); + if (isset ($sub["type"]) && $sub["subtype"] == "nolink") { + $submenu_output .= '
    '; } + else + $submenu_output .= '
    '.$sub["text"].'
    '; } else { //This is an internal link @@ -301,7 +303,7 @@ function menu_print_menu (&$menu) { foreach ($sub['sub2'] as $key => $sub2) { $count_sub2++; - $link = "index.php?sec=".$sec."&sec2=".$key; + $link = "index.php?sec=".$subsec2."&sec2=".$key; //Display if one submenu2 was selected! if (strpos($key, $sec2) !== false) { @@ -354,8 +356,9 @@ function menu_print_menu (&$menu) { $seleccionado = ''; //Print out the first level - $output .= '
  • '; + $output .= '
  • '; + //onclick="location.href=\'index.php?sec='.$mainsec.'&sec2='.$main["sec2"].($main["refr"] ? '&refr='.$main["refr"] : '').'\'">'; + $output .= '
    ' . ui_print_truncate_text($main["text"] , 60). '
    '; //$output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle")); if ($submenu_output != '') { //WARNING: IN ORDER TO MODIFY THE VISIBILITY OF MENU'S AND SUBMENU'S (eg. with cookies) YOU HAVE TO ADD TO THIS ELSEIF. DON'T MODIFY THE CSS diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 92af706a14..c1a2661e9a 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -54,7 +54,7 @@ li:hover ul { display: block; } padding: 9px; margin-left: 0px; color: #fff; - width: 88%; + width: 89%; } .menu li.subselected a{ @@ -115,6 +115,10 @@ li:hover ul { display: block; } background: url(../../images/arrow.png) no-repeat 90% 50% !important; z-index: 1; /* Positions it on top of the rest */ } +.menu li.has_submenu .flecha{ + background: #222 url(../../images/arrow.png) no-repeat 90% 50% !important; + z-index: 1; /* Positions it on top of the rest */ +} .is_submenu2{ background-color: #E4E4E4 !important; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index f3929da1ea..e951df2bad 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -1,4 +1,4 @@ -/* +/* Author: The Pandora FMS team Name: Default theme @@ -79,10 +79,10 @@ select { vertical-align: middle; } input.button { - font-family: Arial,Sans-serif; + font-family: Arial,Sans-serif; border: 4px solid #ccc; background: #fff; - padding: 2px 3px; + padding: 2px 3px; margin: 10px 15px; } @@ -259,7 +259,7 @@ div#main_help div.databox, .license_databox { -moz-box-shadow: -1px 1px 6px #aaa; -webkit-box-shadow: -1px 1px 6px #aaa; box-shadow: -1px 1px 6px #aaa; - + } div#main_help div.databox h1{ @@ -319,7 +319,7 @@ div#menu { div#head { font-size: 8pt; width: 100%; - height: 60px; + height: 60px; padding-top: 0px; margin-bottom: 20px; border-bottom-style: solid; @@ -368,17 +368,17 @@ div#foot { /* Set rules to fill background */ min-height: 100%; min-width: 960px; - + /* Set up proportionate scaling */ width: 100%; height: auto; - + /* Set up positioning */ position: fixed; top: 0; left: 0; z-index: -999; - + background-color: #DDD; background-image: url(../../images/login_background.jpg); background-repeat: repeat; @@ -405,7 +405,7 @@ div#login { border-top: solid 1px #000; border-bottom: solid 2px #000; border-right: solid 2px #000; - font-size: 12px !important; + font-size: 12px !important; } div#login_in, #login_f { /*margin: 0 auto 0 140px; @@ -424,7 +424,7 @@ div#login_in, #login_f { height: 100%; border-radius: 4px; overflow: hidden; - + /* Browser without multibackground support */ background: #ffffff !important; /* Safari 4-5, Chrome 1-9 */ @@ -442,7 +442,7 @@ div#login_in, #login_f { } #login_outer { -moz-box-shadow: 8px 8px 30px #777; - -webkit-box-shadow: 8px 8px 30px #777; + -webkit-box-shadow: 8px 8px 30px #777; box-shadow: 8px 8px 30px #777; padding: 3px; border-radius: 11px; @@ -463,7 +463,7 @@ table#login_layout { div#error_login { #margin: 0 auto; - #margin-top: -10px; + #margin-top: -10px; text-align: center; margin-top: 5px; margin-left: 5px; @@ -475,8 +475,8 @@ div#error_login { div#error_login_icon { #margin: 0 auto; - margin-top: 10px; - margin-right: 7px; + margin-top: 10px; + margin-right: 7px; text-align: center; #margin-left: 20px; width: 20%; @@ -560,7 +560,7 @@ input.login { width: 135px; height: 18px; font-weight: 100 !important; - + letter-spacing: 0.3pt; } @@ -586,9 +586,9 @@ input.login_password { .databox_error { width: 657px !important; height: 400px; - border: none !important; + border: none !important; background-color: #fafafa; - background: url(../../images/splash_error.png) no-repeat; + background: url(../../images/splash_error.png) no-repeat; } #ver_num { @@ -633,20 +633,20 @@ input.datos_readonly { input.sub { font-weight: normal; - + -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; - + font-size: 8pt; - + background-color: #333 !important; background-repeat: no-repeat !important; background-position: 92% 5px !important; - + color: white !important; padding: 3px 3px 5px 12px; - + border-color: #333; } @@ -663,7 +663,7 @@ input.percentile, input.binary, input.camera, input.config, input.cancel, input.default, input.filter, input.pdf { padding-right: 30px; height: 23px; - + } input.next { @@ -866,20 +866,20 @@ th { font-size: 7.5pt; letter-spacing: 0.3pt; } -tr.datos, tr.datost, tr.datosb , tr.datos_id, -tr.datosf9 { +tr.datos, tr.datost, tr.datosb , tr.datos_id, +tr.datosf9 { #background-color: #eaeaea; } -tr.datos2, tr.datos2t, +tr.datos2, tr.datos2t, tr.datos2b, tr.datos2_id , tr.datos2f9 { #background-color: #f2f2f2; } -tr.datos:hover, tr.datost:hover, tr.datosb:hover, tr.datos_id:hover, +tr.datos:hover, tr.datost:hover, tr.datosb:hover, tr.datos_id:hover, tr.datosf9:hover, tr.datos2:hover, tr.datos2t:hover, tr.datos2b:hover, tr.datos2_id:hover, tr.datos2f9:hover { - #background-color: #efefef; + #background-color: #efefef; } /* Checkbox styles */ @@ -892,7 +892,7 @@ td input[type=checkbox] -webkit-transform: scale(1.3); /* Safari and Chrome */ padding: 10px; margin-top: 2px; - display: table-cell; + display: table-cell; } td.datos3, td.datos3 * { @@ -1118,11 +1118,11 @@ div.title_line { line-height: 18px; margin-left: 3px; margin-right: 0px; - + -moz-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; - + -moz-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; @@ -1221,8 +1221,8 @@ div.title_line { text-align: center; -moz-border-top-right-radius: 3px; -webkit-border-top-right-radius: 3px; - border-top-right-radius: 3px; - + border-top-right-radius: 3px; + -moz-border-top-left-radius: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; @@ -1343,7 +1343,7 @@ table.databox { -webkit-border-radius: 0px; border-radius: 0px; border: 0px none #E2E2E2; - + } .databox th { @@ -1364,7 +1364,7 @@ table.databox { } .tactical_set legend{ - text-align:left; + text-align:left; color: #3F3F3F; } @@ -1404,7 +1404,7 @@ table.rounded_cells td { padding: 4px 4px 4px 10px; -moz-border-radius: 6px !important; -webkit-border-radius: 6px !important; - border-radius: 6px !important; + border-radius: 6px !important; } .databox_color { @@ -1793,15 +1793,15 @@ div#event_control { padding: 2px 5px; cursor: default; display: block; - /* - if width will be 100% horizontal scrollbar will apear + /* + if width will be 100% horizontal scrollbar will apear when scroll mode will be used */ /*width: 100%;*/ font: menu; font-size: 12px; - /* - it is very important, if line-height not setted or setted + /* + it is very important, if line-height not setted or setted in relative units scroll will be broken in firefox */ line-height: 16px; @@ -1949,7 +1949,7 @@ td.scwWeek { color: #111 !important; } - Today selector + Today selector td.scwFoot { background-color: #daedae; color: #111; @@ -2004,39 +2004,39 @@ td.scwFoot { /* Cells divs to set individual styles with the table objects */ div.cellBold { - width: 100%; - height: 100%; + width: 100%; + height: 100%; font-weight: bold; } div.cellRight { - width: 100%; - height: 100%; - text-align: right; + width: 100%; + height: 100%; + text-align: right; } div.cellCenter { - width:100%; - height:100%; - text-align:center; + width:100%; + height:100%; + text-align:center; } div.cellWhite { - width: 100%; + width: 100%; height: 100%; background: #fff; color: #111; } div.cellNormal { - width: 100%; + width: 100%; height: 100%; background: #6EB432; color: #fff; } div.cellCritical { - width: 100%; + width: 100%; height: 100%; background: #f85858; color: #fff; @@ -2050,34 +2050,34 @@ div.cellWarning { } div.cellUnknown { - width: 100%; + width: 100%; height: 100%; background: #AAAAAA; color: #FFFFFF; } div.cellNotInit { - width: 100%; + width: 100%; height: 100%; background: #3BA0FF; color: #FFFFFF; } div.cellAlert { - width: 100%; + width: 100%; height: 100%; background: #FF8800; color: #111; } div.cellBorder1 { - width: 100%; + width: 100%; height: 100%; border: 1px solid #666; } div.cellBig { - width: 100%; + width: 100%; height: 100%; font-size: 18px; } @@ -2217,9 +2217,16 @@ ul.operation ul.submenu li a:hover { #font-weight: bold; } +ul.operation ul.submenu li .SubNoLink:hover { + background: url('../../images/menu_op_mark.png') repeat-y right !important; +} + ul.operation ul.submenu li.selected>a { background: #222 url('../../images/menu_op_mark.png') repeat-y right; +} +ul.operation ul.submenu li.selected .SubNoLink { + background: url('../../images/menu_op_mark.png') repeat-y right !important; } ul.godmode li a:hover { @@ -2231,10 +2238,19 @@ ul.godmode ul.submenu li a:hover { #font-weight: bold; } +ul.godmode ul.submenu li .SubNoLink:hover { + background: url('../../images/menu_gm_mark.png') repeat-y right; + #font-weight: bold; +} + ul.godmode ul.submenu li.selected>a { background: #222 url('../../images/menu_gm_mark.png') repeat-y right; } +ul.godmode ul.submenu li.selected .SubNoLink { + background: url('../../images/menu_gm_mark.png') repeat-y right; +} + li.links a:hover { #font-weight: bold; } @@ -2335,24 +2351,24 @@ span#plugin_description { .menu_sidebar { color:#111; background: #3f3f3f; - + margin-left: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: left; - font-family:arial,sans-serif,verdana; + font-family:arial,sans-serif,verdana; font-size:10px; border:1px solid #000; position:absolute; margin:0; width:400px; height:260px; - + -moz-box-shadow: 0px 4px 4px #010E1B !important; -webkit-box-shadow: 0px 4px 4px #010E1B !important; - box-shadow: 0px 4px 4px #010E1B !important; - + box-shadow: 0px 4px 4px #010E1B !important; + filter:alpha(opacity=97); -moz-opacity: 0.97; opacity: 0.97; @@ -2362,11 +2378,11 @@ span#plugin_description { -moz-border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; - + -moz-border-bottom-left-radius: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; - + border-right:0px solid #000; } @@ -2374,17 +2390,16 @@ span#plugin_description { -moz-border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; - -moz-border-bottom-right-radius: 8px; -webkit-border-bottom-right-radius: 8px; - border-bottom-right-radius: 8px; + border-bottom-right-radius: 8px; } .menu_sidebar_outer { margin-left: 3px; - background: #ECECEC; - width: 100%; - text-align: center; + background: #ECECEC; + width: 100%; + text-align: center; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; @@ -2410,7 +2425,7 @@ span#plugin_description { -moz-border-top-left-radius: 10px; -webkit-border-top-left-radius: 10px; border-top-left-radius: 10px; - + -moz-border-bottom-left-radius: 10px; -webkit-border-bottom-left-radius: 10px; border-bottom-left-radius: 10px; @@ -2420,7 +2435,6 @@ span#plugin_description { -moz-border-top-right-radius: 10px; -webkit-border-top-right-radius: 10px; border-top-right-radius: 10px; - -moz-border-bottom-right-radius: 10px; -webkit-border-bottom-right-radius: 10px; border-bottom-right-radius: 10px; @@ -2438,13 +2452,13 @@ a.tip>img { } input.search_input { - background: white url('../../images/input_zoom.png') no-repeat right; - padding: 0px; - padding-left:5px; - margin: 0; - width: 80%; - height: 19px; - margin-bottom: 5px; + background: white url('../../images/input_zoom.png') no-repeat right; + padding: 0px; + padding-left:5px; + margin: 0; + width: 80%; + height: 19px; + margin-bottom: 5px; margin-left: 2px; padding-right: 25px; color: #999; @@ -2478,15 +2492,11 @@ DIV.forced_title_layer { font-weight: bold; font-size: small; font-size: 11px; - /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=9)"; - /* Netscape */ -moz-opacity: 0.9; - opacity: 0.9; - -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; @@ -2500,42 +2510,42 @@ div.legend>div { } div.nodata_text { - padding: 5px 12px 0px 68px; - font-weight: bold; - color: #C1C1C1; - text-transform: uppercase; - display: table-cell; + padding: 5px 12px 0px 68px; + font-weight: bold; + color: #C1C1C1; + text-transform: uppercase; + display: table-cell; vertical-align: middle; text-align: left; } div.nodata_container { - width:150px; - height:100px; - background-repeat:no-repeat; - background-position: center; - margin: auto auto; + width:150px; + height:100px; + background-repeat:no-repeat; + background-position: center; + margin: auto auto; display: table; } #snmp_data { - width: 40%; - position: absolute; - top:0; + width: 40%; + position: absolute; + top:0; right:20px; - + #background-color: #fff; #padding: 10px; } #rmf_data { - width: 40%; - height: 80%; - position: absolute; - top:0; + width: 40%; + height: 80%; + position: absolute; + top:0; right:20px; overflow: auto; - + #background-color: #fff; #padding: 10px; } @@ -2549,7 +2559,7 @@ ul.subsubmenu { -moz-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px; - + background: #ECECEC !important; } @@ -2778,7 +2788,6 @@ table#policy_modules td * { display: inline; } - .context_help_title { font-weight: bolder; text-align: left; @@ -2842,7 +2851,6 @@ table#policy_modules td * { .status_tactical img { border: 3px solid #000; border-radius: 100px; - } #sumary{ @@ -2869,6 +2877,22 @@ table#policy_modules td * { border-color: #E2E2E2; } +#title_menu { + color: #FFF; + float: right; + width: 70%; + #padding-top: 8.75px; + vertical-align:middle; + letter-spacing: 0pt; + font-size: 7pt; + white-space: pre-wrap; + height: 35px; +} + +.no_hidden_menu{ + background-position: 5% 50% !important; +} + #menu_tab li.nomn, #menu_tab li.nomn_high { background-color: #ECECEC; @@ -2902,6 +2926,7 @@ table#policy_modules td * { padding: 10px; } + /* The items with the class 'spinner' will rotate */ /* Not supported on IE9 and below */ .spinner { diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 9edd0083e3..f0e7daabee 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -34,79 +34,89 @@ if (check_acl ($config['id_user'], 0, "AR")) { $menu_operation["estado"]["id"] = "oper-agents"; $sub = array (); - $sub["operation/agentes/tactical"]["text"] = __('Tactical view'); - $sub["operation/agentes/tactical"]["refr"] = 0; + $sub["view"]["text"] = __('Views'); + $sub["view"]["type"] = "direct"; + $sub["view"]["subtype"] = "nolink"; + $sub["view"]["refr"] = 0; - $sub["operation/agentes/group_view"]["text"] = __('Group view'); - $sub["operation/agentes/group_view"]["refr"] = 0; + $sub2 = array (); - $sub['operation/tree']['text'] = __('Tree view'); - $sub["operation/tree"]["refr"] = 0; + $sub2["operation/agentes/tactical"]["text"] = __('Tactical view'); + $sub2["operation/agentes/tactical"]["refr"] = 0; - $sub["operation/agentes/estado_agente"]["text"] = __('Agent detail'); - $sub["operation/agentes/estado_agente"]["refr"] = 0; - $sub["operation/agentes/estado_agente"]["subsecs"] = array( + $sub2["operation/agentes/group_view"]["text"] = __('Group view'); + $sub2["operation/agentes/group_view"]["refr"] = 0; + + $sub2['operation/tree']['text'] = __('Tree view'); + $sub2["operation/tree"]["refr"] = 0; + + $sub2["operation/agentes/estado_agente"]["text"] = __('Agent detail'); + $sub2["operation/agentes/estado_agente"]["refr"] = 0; + $sub2["operation/agentes/estado_agente"]["subsecs"] = array( "operation/agentes/ver_agente"); - $sub["operation/agentes/alerts_status"]["text"] = __('Alert detail'); - $sub["operation/agentes/alerts_status"]["refr"] = 0; + $sub2["operation/agentes/status_monitor"]["text"] = __('Monitor detail'); + $sub2["operation/agentes/status_monitor"]["refr"] = 0; - $sub["operation/agentes/status_monitor"]["text"] = __('Monitor detail'); - $sub["operation/agentes/status_monitor"]["refr"] = 0; + $sub2["operation/agentes/alerts_status"]["text"] = __('Alert detail'); + $sub2["operation/agentes/alerts_status"]["refr"] = 0; - enterprise_hook ('services_menu'); + $sub["view"]["sub2"] = $sub2; enterprise_hook ('inventory_menu'); -} - -if (check_acl ($config['id_user'], 0, "PM")) { - $sub["operation/servers/recon_view"]["text"] = __('Recon view'); - $sub["operation/servers/recon_view"]["refr"] = 0; -} - -if (check_acl ($config['id_user'], 0, "AR")) { + + // Fix: Netflow interfaces have to check RR ACL + if (check_acl ($config['id_user'], 0, "RR")) { + if ($config['activate_netflow']) { + $sub["operation/netflow/nf_live_view"]["text"] = __('Netflow Live View'); + $sub["operation/netflow/nf_live_view"]["refr"] = 0; + } + } + if ($config['log_collector'] == 1) { enterprise_hook ('log_collector_menu'); } - $sub["godmode/agentes/planned_downtime.list"]["text"] = __('Scheduled downtime'); - + //SNMP Console + $sub["snmpconsole"]["text"] = __('SNMP'); + $sub["snmpconsole"]["refr"] = 0; + + $sub2 = array(); + $sub2["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console"); + $sub2["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser"); + $sub2["operation/snmpconsole/snmp_mib_uploader"]["text"] = __("MIB uploader"); + $sub2["godmode/snmpconsole/snmp_filters"]["text"] = __("SNMP filters"); + $sub2["godmode/snmpconsole/snmp_trap_generator"]["text"] = __("SNMP trap generator"); + enterprise_hook ('snmpconsole_submenu'); + $sub["snmpconsole"]["sub2"] = $sub2; + $menu_operation["estado"]["sub"] = $sub; + //End of view agents +} + +if (check_acl ($config['id_user'], 0, "AR")) { + + //Start network view - $menu_operation["network"]["text"] = __('Network View'); + $menu_operation["network"]["text"] = __('Topology maps'); $menu_operation["network"]["sec2"] = "operation/agentes/networkmap_list"; $menu_operation["network"]["refr"] = 0; $menu_operation["network"]["id"] = "oper-networkconsole"; $sub = array(); + + $sub["operation/agentes/networkmap_list"]["text"] = __('Network map'); $sub["operation/agentes/networkmap_list"]["refr"] = 0; enterprise_hook ('networkmap_console'); - $menu_operation["network"]["sub"] = $sub; - //End networkview + enterprise_hook ('services_menu'); -} - -// Reports read -if (check_acl ($config['id_user'], 0, "RR")) { - // Reporting - $menu_operation["reporting"]["text"] = __('Reporting'); - $menu_operation["reporting"]["sec2"] = "godmode/reporting/reporting_builder"; - $menu_operation["reporting"]["id"] = "oper-reporting"; - $menu_operation["reporting"]["refr"] = 60; - - $sub = array (); - - $sub["godmode/reporting/reporting_builder"]["text"] = __('Custom reporting'); - //Set godomode path - $sub["godmode/reporting/reporting_builder"]["subsecs"] = array("godmode/reporting/reporting_builder", - "operation/reporting/reporting_viewer"); //Visual console $sub["godmode/reporting/map_builder"]["text"] = __('Visual console'); //Set godomode path @@ -165,8 +175,64 @@ if (check_acl ($config['id_user'], 0, "RR")) { } $sub["godmode/reporting/map_builder"]["sub2"] = $sub2; } + // Agent read, Server read + if (check_acl ($config['id_user'], 0, "AR")) { + + //INI GIS Maps + if ($config['activate_gis']) { + $sub["gismaps"]["text"] = __('GIS Maps'); + + $sub2 = array (); + + $gisMaps = db_get_all_rows_in_table ('tgis_map', 'map_name'); + if ($gisMaps === false) { + $gisMaps = array (); + } + $id = (int) get_parameter ('id', -1); + + $own_info = get_user_info ($config['id_user']); + if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) + $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); + else + $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); + + foreach ($gisMaps as $gisMap) { + $is_in_group = in_array($gisMap['group_id'], $own_groups); + if (!$is_in_group) { + continue; + } + if (! check_acl ($config["id_user"], $gisMap["group_id"], "IR")) { + continue; + } + $sub2["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["text"] = mb_substr (io_safe_output($gisMap["map_name"]), 0, 15); + $sub2["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["title"] = io_safe_output($gisMap["map_name"]); + $sub2["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["refr"] = 0; + } + + $sub["gismaps"]["sub2"] = $sub2; + } + //END GIS Maps + } + $menu_operation["network"]["sub"] = $sub; + //End networkview +} + +// Reports read +if (check_acl ($config['id_user'], 0, "RR")) { + // Reporting + $menu_operation["reporting"]["text"] = __('Reporting'); + $menu_operation["reporting"]["sec2"] = "godmode/reporting/reporting_builder"; + $menu_operation["reporting"]["id"] = "oper-reporting"; + $menu_operation["reporting"]["refr"] = 60; + + $sub = array (); + + $sub["godmode/reporting/reporting_builder"]["text"] = __('Custom reporting'); + //Set godomode path + $sub["godmode/reporting/reporting_builder"]["subsecs"] = array("godmode/reporting/reporting_builder", + "operation/reporting/reporting_viewer"); $sub["godmode/reporting/graphs"]["text"] = __('Custom graphs'); @@ -175,9 +241,6 @@ if (check_acl ($config['id_user'], 0, "RR")) { "operation/reporting/graph_viewer", "godmode/reporting/graph_builder"); - $sub["operation/agentes/exportdata"]["text"] = __('Export data'); - $sub["operation/agentes/exportdata"]["subsecs"] = array("operation/agentes/exportdata"); - enterprise_hook ('dashboard_menu'); enterprise_hook ('reporting_godmenu'); @@ -186,49 +249,6 @@ if (check_acl ($config['id_user'], 0, "RR")) { //End reporting } - -// Agent read, Server read -if (check_acl ($config['id_user'], 0, "AR")) { - - //INI GIS Maps - if ($config['activate_gis']) { - $menu_operation["gismaps"]["text"] = __('GIS Maps'); - $menu_operation["gismaps"]["sec2"] = "operation/gis_maps/index"; - $menu_operation["gismaps"]["refr"] = 0; - $menu_operation["gismaps"]["id"] = "oper-gismaps"; - - $sub = array (); - - $gisMaps = db_get_all_rows_in_table ('tgis_map', 'map_name'); - if ($gisMaps === false) { - $gisMaps = array (); - } - $id = (int) get_parameter ('id', -1); - - $own_info = get_user_info ($config['id_user']); - if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) - $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); - else - $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); - - foreach ($gisMaps as $gisMap) { - $is_in_group = in_array($gisMap['group_id'], $own_groups); - if (!$is_in_group) { - continue; - } - if (! check_acl ($config["id_user"], $gisMap["group_id"], "IR")) { - continue; - } - $sub["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["text"] = mb_substr (io_safe_output($gisMap["map_name"]), 0, 15); - $sub["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["title"] = io_safe_output($gisMap["map_name"]); - $sub["operation/gis_maps/render_view&map_id=".$gisMap["id_tgis_map"]]["refr"] = 0; - } - - $menu_operation["gismaps"]["sub"] = $sub; - } - //END GIS Maps -} - // Events reading if (check_acl ($config['id_user'], 0, "ER")) { // Events @@ -333,41 +353,28 @@ $menu_operation["workspace"]["sub"] = $sub; //End Workspace -// Fix: Netflow interfaces have to check RR ACL -if (check_acl ($config['id_user'], 0, "RR")) { - if ($config['activate_netflow']) { - $menu_operation["netf"]["text"] = __('Netflow Live View'); - $menu_operation["netf"]["sec2"] = "operation/netflow/nf_live_view"; - $menu_operation["netf"]["id"] = "oper-netflow"; - } -} + // Rest of options, all with AR privilege (or should events be with incidents?) if (check_acl ($config['id_user'], 0, "AR")) { - //SNMP Console - $menu_operation["snmpconsole"]["text"] = __('SNMP'); - $menu_operation["snmpconsole"]["refr"] = 0; - $menu_operation["snmpconsole"]["sec2"] = "operation/snmpconsole/snmp_view"; - $menu_operation["snmpconsole"]["id"] = "oper-snmpc"; - - $sub = array(); - $sub["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console"); - $sub["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser"); - $sub["operation/snmpconsole/snmp_mib_uploader"]["text"] = __("MIB uploader"); - $sub["godmode/snmpconsole/snmp_alert"]["text"] = __("SNMP alerts"); - $sub["godmode/snmpconsole/snmp_filters"]["text"] = __("SNMP filters"); - $sub["godmode/snmpconsole/snmp_trap_generator"]["text"] = __("SNMP trap generator"); - enterprise_hook ('snmpconsole_submenu'); - $menu_operation["snmpconsole"]["sub"] = $sub; - // Extensions menu additions if (is_array ($config['extensions'])) { - $menu_operation["extensions"]["text"] = __('Extensions'); + $menu_operation["extensions"]["text"] = __('Tools'); $menu_operation["extensions"]["sec2"] = "operation/extensions"; $menu_operation["extensions"]["id"] = "oper-extensions"; $sub = array (); + $sub["operation/agentes/exportdata"]["text"] = __('Export data'); + $sub["operation/agentes/exportdata"]["subsecs"] = array("operation/agentes/exportdata"); + + $sub["godmode/agentes/planned_downtime.list"]["text"] = __('Scheduled downtime'); + + if (check_acl ($config['id_user'], 0, "PM")) { + $sub["operation/servers/recon_view"]["text"] = __('Recon view'); + $sub["operation/servers/recon_view"]["refr"] = 0; + } + foreach ($config["extensions"] as $extension) { //If no operation_menu is a godmode extension if ($extension["operation_menu"] == '') { @@ -388,13 +395,35 @@ if (check_acl ($config['id_user'], 0, "AR")) { if (array_key_exists('fatherId',$extension_menu)) { // Check that extension father ID exists previously on the menu if ((strlen($extension_menu['fatherId']) > 0)) { - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["refr"] = 0; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["sec"] = 'extensions'; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["extension"] = true; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; - $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; + if (array_key_exists('subfatherId',$extension_menu)) { + if ((strlen($extension_menu['subfatherId']) > 0)) { + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["refr"] = 0; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["sec"] = 'extensions'; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["extension"] = true; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; + } + else{ + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["refr"] = 0; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["sec"] = 'extensions'; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["extension"] = true; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; + } + } + else{ + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["refr"] = 0; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["sec"] = 'extensions'; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["extension"] = true; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; + } } } } From 7286bd012f07b178da80bbad69e64e4ab1dc504b Mon Sep 17 00:00:00 2001 From: artica Date: Fri, 10 Apr 2015 00:01:10 +0200 Subject: [PATCH 053/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 6af20ab4af..da36775146 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150409 +Version: 6.0dev-150410 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 1e228ac2e5..c39540c0a4 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150409" +pandora_version="6.0dev-150410" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 6b3be49ddb..a372bfc0d6 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150409'; +use constant AGENT_BUILD => '150410'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 316adac6e7..53496f3beb 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150409 +%define release 150410 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 336df4fe5c..4a27a78cc7 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150409 +%define release 150410 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 17e4c43977..c5a1c22158 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150409} +{150410} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 3798131fd9..472cf2de3c 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150409)") +#define PANDORA_VERSION ("6.0dev(Build 150410)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index fe8eb1c8dc..8e749457da 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150409))" + VALUE "ProductVersion", "(6.0dev(Build 150410))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index c1a19db019..78d05dcf59 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150409 +Version: 6.0dev-150410 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 8cddc27284..e5341e00ae 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150409" +pandora_version="6.0dev-150410" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 0bcd684e9e..18e8d47bb9 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150409'; +$build_version = 'PC150410'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 44c0eaeac4..0e0ad9c374 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Fri, 10 Apr 2015 09:29:33 +0200 Subject: [PATCH 054/191] Add new funcionality to menu and fixed other problems --- pandora_console/general/main_menu.php | 46 ++++++++++++++-------- pandora_console/godmode/menu.php | 8 +++- pandora_console/include/functions_menu.php | 8 +++- pandora_console/include/styles/menu.css | 4 +- pandora_console/include/styles/pandora.css | 25 ++++++------ pandora_console/operation/menu.php | 14 +++++-- 6 files changed, 66 insertions(+), 39 deletions(-) diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 65b849bd62..bb40add98d 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -216,19 +216,16 @@ $(document).ready( function() { }, 3500); }); */ - $('#menu').css('width', '115px'); - $('#main').css('margin', '0% 1.5% 0% 0%'); - $('li.menu_icon').addClass( " no_hidden_menu" ); - $('ul.submenu').css('left', '114px'); - $(window).resize( function() { - if($(window).width() <= 1262){ - $('#main').css('width', '86%'); - } - else{ - if($(window).width() >= 1300){ - $('#main').css('width', '90%'); - } - } + $('#menu').mouseenter(function() { + $('div#title_menu').show(); + $('#menu').css('width', '130px'); + $('li.menu_icon').addClass( " no_hidden_menu" ); + $('ul.submenu').css('left', '129px'); + }).mouseleave(function(){ + $('#menu').css('width', '45px'); + $('li.menu_icon').removeClass( " no_hidden_menu"); + $('ul.submenu').css('left', '44px'); + $('div#title_menu').hide(); }); } else{ @@ -243,8 +240,8 @@ $(document).ready( function() { openTime2 = 0; handsIn = 0; handsIn2 = 0; - - $('.menu_icon').hover(function(){ + + $('.menu_icon').mouseenter(function(){ table_hover = $(this); handsIn = 1; openTime = new Date().getTime(); @@ -268,7 +265,7 @@ $(document).ready( function() { }); -- $('.has_submenu').hover(function(){ +- $('.has_submenu').mouseenter(function(){ table_hover2 = $(this); handsIn2 = 1; openTime2 = new Date().getTime(); @@ -289,13 +286,28 @@ $(document).ready( function() { }); $(document).ready(function(){ - $('#page').click(function(){ + $('#container').click(function(){ openTime = 4000; if( typeof(table_hover) != 'undefined') $("ul#sub"+table_hover[0].id).hide(); if( typeof(table_hover2) != 'undefined') $("ul#sub"+table_hover2[0].id).hide(); }); + + $('div.menu>ul>li>ul>li>a').click(function(){ + openTime = 4000; + if( typeof(table_hover) != 'undefined') + $("ul#sub"+table_hover[0].id).hide(); + if( typeof(table_hover2) != 'undefined') + $("ul#sub"+table_hover2[0].id).hide(); + }); + $('div.menu>ul>li>ul>li>ul>li>a').click(function(){ + openTime = 4000; + if( typeof(table_hover) != 'undefined') + $("ul#sub"+table_hover[0].id).hide(); + if( typeof(table_hover2) != 'undefined') + $("ul#sub"+table_hover2[0].id).hide(); + }); }); diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 6c484e4655..9d6dd80a24 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -100,7 +100,8 @@ if (check_acl ($config['id_user'], 0, "PM")) { enterprise_hook('agents_submenu'); if (check_acl ($config['id_user'], 0, "AW")) { $sub["gmassive"]["text"] = __('Massive operations'); - + $sub["gmassive"]["type"] = "direct"; + $sub["gmassive"]["subtype"] = "nolink"; $sub2 = array (); $sub2["godmode/massive/massive_operations&tab=massive_agents"]["text"] = __('Agents operations'); $sub2["godmode/massive/massive_operations&tab=massive_modules"]["text"] = __('Modules operations'); @@ -242,7 +243,8 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub["gextmaneger"]["sub2"] = $sub2; if (check_acl ($config['id_user'], 0, "DM")) {//meter en extensiones $sub["gdbman"]["text"] = __('DB maintenance'); - + $sub["gdbman"]["type"] = "direct"; + $sub["gdbman"]["subtype"] = "nolink"; $sub2 = array (); $sub2["godmode/db/db_info"]["text"] = __('DB information'); $sub2["godmode/db/db_purge"]["text"] = __('Database purge'); @@ -261,6 +263,8 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub = array (); $sub["gextmaneger"]["text"] = __('Extension manager'); + $sub["gextmaneger"]["type"] = "direct"; + $sub["gextmaneger"]["subtype"] = "nolink"; $sub2 = array (); foreach ($config['extensions'] as $extension) { diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 7384ef8e95..1bac6043fb 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -358,7 +358,13 @@ function menu_print_menu (&$menu) { //Print out the first level $output .= '
  • '; //onclick="location.href=\'index.php?sec='.$mainsec.'&sec2='.$main["sec2"].($main["refr"] ? '&refr='.$main["refr"] : '').'\'">'; - $output .= '
    ' . ui_print_truncate_text($main["text"] , 60). '
    '; + + $length = strlen(__($main["text"])); + $padding_top = ( $length >= 18) ? 6 : 12; + + $output .= ''; + $padding_top = 0; + $length = 0; //$output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle")); if ($submenu_output != '') { //WARNING: IN ORDER TO MODIFY THE VISIBILITY OF MENU'S AND SUBMENU'S (eg. with cookies) YOU HAVE TO ADD TO THIS ELSEIF. DON'T MODIFY THE CSS diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index c1a2661e9a..2db07ec2fb 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -70,7 +70,7 @@ li:hover ul { display: block; } margin: 0px 0px 0px 0px; position: absolute; z-index: 999; - left: 39px; + left: 44px; min-height: 30px; height: 30px; width: 160px; @@ -95,7 +95,7 @@ li:hover ul { display: block; } } .submenu2 li a { - background-color: #111; + background-color: #222; margin-left: 0px; padding-left: 0px; display:block; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index e951df2bad..c2088582d6 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -233,9 +233,11 @@ div#page { clear: both; } div#main { - width: 90%; - margin: 0px 4% 0px 0%; + width: auto; + margin: 0px 2% 0px 0%; float: right; + position: relative; + min-height: 850px; } div#main_help { width: 100%; @@ -310,10 +312,11 @@ div#menu_container { } div#menu { - width: 40px; + width: 45px; float: left; - margin-top: 10px; height: 828px; + z-index: 999; + position: absolute; } div#head { @@ -1860,8 +1863,6 @@ div.warn { padding: 2px 1px 6px 25px; } - - .submenu_not_selected { font-weight: normal !important; } @@ -1881,7 +1882,8 @@ div#page { width: auto; } div#main { - min-width: 720px; + max-width: 93%; + min-width: 93%; } ol.steps { @@ -2239,7 +2241,7 @@ ul.godmode ul.submenu li a:hover { } ul.godmode ul.submenu li .SubNoLink:hover { - background: url('../../images/menu_gm_mark.png') repeat-y right; + background: url('../../images/menu_gm_mark.png') repeat-y right !important; #font-weight: bold; } @@ -2248,7 +2250,7 @@ ul.godmode ul.submenu li.selected>a { } ul.godmode ul.submenu li.selected .SubNoLink { - background: url('../../images/menu_gm_mark.png') repeat-y right; + background: url('../../images/menu_gm_mark.png') repeat-y right !important; } li.links a:hover { @@ -2881,16 +2883,13 @@ table#policy_modules td * { color: #FFF; float: right; width: 70%; - #padding-top: 8.75px; - vertical-align:middle; letter-spacing: 0pt; font-size: 7pt; white-space: pre-wrap; - height: 35px; } .no_hidden_menu{ - background-position: 5% 50% !important; + background-position: 12% 50% !important; } diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index f0e7daabee..3e54825c35 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -80,7 +80,8 @@ if (check_acl ($config['id_user'], 0, "AR")) { //SNMP Console $sub["snmpconsole"]["text"] = __('SNMP'); $sub["snmpconsole"]["refr"] = 0; - + $sub["snmpconsole"]["type"] = "direct"; + $sub["snmpconsole"]["subtype"] = "nolink"; $sub2 = array(); $sub2["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console"); $sub2["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser"); @@ -135,7 +136,8 @@ if (check_acl ($config['id_user'], 0, "AR")) { } - + $sub["godmode/reporting/map_builder"]["type"] = "direct"; + $sub["godmode/reporting/map_builder"]["subtype"] = "nolink"; $layouts = db_get_all_rows_in_table ('tlayout', 'name'); if ($layouts === false) { $layouts = array (); @@ -181,7 +183,8 @@ if (check_acl ($config['id_user'], 0, "AR")) { //INI GIS Maps if ($config['activate_gis']) { $sub["gismaps"]["text"] = __('GIS Maps'); - + $sub["gismaps"]["type"] = "direct"; + $sub["gismaps"]["subtype"] = "nolink"; $sub2 = array (); $gisMaps = db_get_all_rows_in_table ('tgis_map', 'map_name'); @@ -327,6 +330,8 @@ if (check_acl ($config['id_user'], 0, "IR") == 1) { } $sub[$sec2]["text"] = __('Incidents'); + $sub[$sec2]["type"] = "direct"; + $sub[$sec2]["subtype"] = "nolink"; $sub[$sec2]["refr"] = 0; $sub[$sec2]["subsecs"] = array( "operation/incidents/incident_detail", @@ -343,7 +348,8 @@ if (check_acl ($config['id_user'], 0, "IR") == 1) { // Messages $sub["operation/messages/message_list"]["text"] = __('Messages'); $sub["operation/messages/message_list"]["refr"] = 0; - +$sub["operation/messages/message_list"]["type"] = "direct"; +$sub["operation/messages/message_list"]["subtype"] = "nolink"; $sub2 = array (); $sub2["operation/messages/message_edit&new_msg=1"]["text"] = __('New message'); From e29497c3947b0c4db2cf0205906f3ded10da913b Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Fri, 10 Apr 2015 09:43:44 +0200 Subject: [PATCH 055/191] Changed style of Nodo --- .../godmode/agentes/agent_manager.php | 8 ++-- .../godmode/agentes/configurar_agente.php | 4 +- .../agentes/module_manager_editor_common.php | 14 +++---- .../godmode/alerts/alert_list.builder.php | 2 +- .../godmode/alerts/alert_list.list.php | 2 +- pandora_console/godmode/alerts/alert_view.php | 4 +- .../godmode/massive/massive_edit_modules.php | 2 +- .../manage_network_components_form_common.php | 2 +- pandora_console/images/agent_critical.png | Bin 1376 -> 422 bytes pandora_console/images/agent_mc.png | Bin 1343 -> 443 bytes pandora_console/images/agent_notinit.png | Bin 1379 -> 430 bytes pandora_console/images/agent_ok.png | Bin 1373 -> 431 bytes pandora_console/images/agent_unknown.png | Bin 1406 -> 430 bytes pandora_console/images/agent_warning.png | Bin 1362 -> 414 bytes pandora_console/images/alerts_action.png | Bin 1418 -> 454 bytes pandora_console/images/alerts_command.png | Bin 1408 -> 449 bytes pandora_console/images/alerts_extern.png | Bin 1431 -> 448 bytes pandora_console/images/alerts_sync.png | Bin 1404 -> 468 bytes pandora_console/images/alerts_template.png | Bin 1423 -> 429 bytes pandora_console/images/arrow.png | Bin 220 -> 215 bytes pandora_console/images/bell.png | Bin 1540 -> 405 bytes pandora_console/images/bell_extern.png | Bin 1590 -> 448 bytes pandora_console/images/bell_pause.png | Bin 1658 -> 440 bytes pandora_console/images/books.png | Bin 1356 -> 453 bytes pandora_console/images/box.disabled.png | Bin 1641 -> 472 bytes pandora_console/images/box.png | Bin 1665 -> 489 bytes pandora_console/images/builder.png | Bin 1365 -> 423 bytes pandora_console/images/calendar_view_day.png | Bin 1530 -> 464 bytes pandora_console/images/extensions.png | Bin 1257 -> 355 bytes pandora_console/images/network.disabled.png | Bin 1542 -> 402 bytes pandora_console/images/network.png | Bin 1539 -> 404 bytes pandora_console/images/op_alerts.png | Bin 429 -> 348 bytes pandora_console/images/op_events.png | Bin 363 -> 324 bytes pandora_console/images/op_gis.png | Bin 425 -> 334 bytes pandora_console/images/op_inventory.png | Bin 485 -> 440 bytes pandora_console/images/op_monitoring.png | Bin 559 -> 434 bytes pandora_console/images/op_netflow.png | Bin 613 -> 446 bytes pandora_console/images/op_recon.png | Bin 677 -> 544 bytes pandora_console/images/op_reporting.png | Bin 360 -> 344 bytes pandora_console/images/op_satellite.png | Bin 468 -> 383 bytes pandora_console/images/op_snmp.png | Bin 328 -> 309 bytes pandora_console/images/op_workspace.png | Bin 446 -> 353 bytes pandora_console/include/functions_html.php | 4 +- pandora_console/include/functions_ui.php | 2 +- pandora_console/include/styles/pandora.css | 19 +-------- .../agentes/alerts_status.functions.php | 6 +++ .../operation/agentes/alerts_status.php | 2 +- .../operation/agentes/status_monitor.php | 39 ++++++++++-------- 48 files changed, 53 insertions(+), 57 deletions(-) mode change 100644 => 100755 pandora_console/images/alerts_action.png mode change 100644 => 100755 pandora_console/images/alerts_command.png mode change 100644 => 100755 pandora_console/images/alerts_extern.png mode change 100644 => 100755 pandora_console/images/alerts_sync.png mode change 100644 => 100755 pandora_console/images/alerts_template.png mode change 100644 => 100755 pandora_console/images/arrow.png mode change 100644 => 100755 pandora_console/images/bell.png mode change 100644 => 100755 pandora_console/images/bell_extern.png mode change 100644 => 100755 pandora_console/images/bell_pause.png mode change 100644 => 100755 pandora_console/images/books.png mode change 100644 => 100755 pandora_console/images/box.disabled.png mode change 100644 => 100755 pandora_console/images/box.png mode change 100644 => 100755 pandora_console/images/builder.png mode change 100644 => 100755 pandora_console/images/calendar_view_day.png mode change 100644 => 100755 pandora_console/images/extensions.png mode change 100644 => 100755 pandora_console/images/network.disabled.png mode change 100644 => 100755 pandora_console/images/network.png diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php index f3654cfb6f..5d3d055b0c 100644 --- a/pandora_console/godmode/agentes/agent_manager.php +++ b/pandora_console/godmode/agentes/agent_manager.php @@ -140,7 +140,7 @@ if ($disk_conf_delete) { echo '
    '; -$table->width = '98%'; +$table->width = '100%'; $table->class = "databox_color"; $table->head = array (); @@ -276,7 +276,7 @@ $table->data[7][1] = html_print_input_text ('comentarios', $comentarios, html_print_table ($table); unset($table); -$table->width = '98%'; +$table->width = '100%'; $table->class = "databox_color"; $table->head = array (); @@ -390,7 +390,7 @@ $table->data[7][1] = html_print_checkbox('quiet', 1, $quiet, true); ui_toggle(html_print_table ($table, true), __('Advanced options')); unset($table); -$table->width = '98%'; +$table->width = '100%'; $table->class = "databox_color"; $table->head = array (); @@ -531,7 +531,7 @@ ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/'); echo '"' . implode(', ', $elements) . '"'; ?>, - width: 300, + width: '100%', theme : "advanced", theme_advanced_path : false, statusbar : false, diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index 53a058765e..b353e08e3a 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -1578,9 +1578,9 @@ echo '
  • '; // Set the position and width of the subtab function agent_wizard_tab_setup() { - $('#agent_wizard_subtabs').css('left', $('.agent_wizard_tab').offset().left-14) + $('#agent_wizard_subtabs').css('left', $('.agent_wizard_tab').offset().left-5) $('#agent_wizard_subtabs').css('top', $('.agent_wizard_tab').offset().top + $('.agent_wizard_tab').height() + 7) - $('#agent_wizard_subtabs').css('width', $('.agent_wizard_tab').width() + 26) + $('#agent_wizard_subtabs').css('width', $('.agent_wizard_tab').width() + 19) } function agent_wizard_tab_show() { diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php index fe30c3087c..24dd9a8146 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_common.php +++ b/pandora_console/godmode/agentes/module_manager_editor_common.php @@ -114,14 +114,14 @@ if (strstr($page, "policy_modules") === false && $id_agent_module) { $update_module_id = (int) get_parameter_get ('update_module'); $table_simple->id = 'simple'; -$table_simple->width = '98%'; -$table_simple->class = 'databox_color'; +$table_simple->width = '100%'; +$table_simple->class = 'databox'; $table_simple->data = array (); $table_simple->colspan = array (); $table_simple->style = array (); -$table_simple->style[0] = 'font-weight: bold; vertical-align: top; width: 26%'; +$table_simple->style[0] = 'font-weight: bold; width: 26%;'; $table_simple->style[1] = 'width: 40%'; -$table_simple->style[2] = 'font-weight: bold; vertical-align: top'; +$table_simple->style[2] = 'font-weight: bold;'; #$table_simple->colspan[4][1] = 3; $table_simple->colspan[5][1] = 3; @@ -292,13 +292,13 @@ else { /* Advanced form part */ $table_advanced->id = 'advanced'; -$table_advanced->width = '98%'; -$table_advanced->class = 'databox_color'; +$table_advanced->width = '100%'; +$table_advanced->class = 'databox'; $table_advanced->data = array (); $table_advanced->style = array (); $table_advanced->style[0] = $table_advanced->style[3] = - $table_advanced->style[5] = 'font-weight: bold; vertical-align: top'; + $table_advanced->style[5] = 'font-weight: bold;'; $table_advanced->colspan = array (); $table_advanced->data[0][0] = __('Description'); diff --git a/pandora_console/godmode/alerts/alert_list.builder.php b/pandora_console/godmode/alerts/alert_list.builder.php index 6333c52976..cec333e051 100644 --- a/pandora_console/godmode/alerts/alert_list.builder.php +++ b/pandora_console/godmode/alerts/alert_list.builder.php @@ -37,7 +37,7 @@ $table->head = array (); $table->data = array (); $table->size = array (); $table->size = array (); -$table->size[0] = '20%'; +$table->size[0] = '10%'; $table->size[1] = '30%'; $table->style[0] = 'font-weight: bold; vertical-align: top;'; $table->align[0] = 'left'; diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index d1220ca3f6..c3f5e1fef9 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -353,7 +353,7 @@ if (! $id_agente) { else { /* Different sizes or the layout screws up */ $table->size[0] = '0%'; - $table->size[1] = '30%'; + $table->size[1] = '10%'; $table->size[2] = '30%'; /* if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) { $table->size[4] = '25%'; diff --git a/pandora_console/godmode/alerts/alert_view.php b/pandora_console/godmode/alerts/alert_view.php index 9d41bef93c..09ff5f1786 100644 --- a/pandora_console/godmode/alerts/alert_view.php +++ b/pandora_console/godmode/alerts/alert_view.php @@ -50,7 +50,7 @@ ui_print_page_header (__('Alert details'), "images/op_alerts.png", false, "", fa // TABLE DETAILS -$table_details->class = 'alternate'; +$table_details->class = 'databox'; $table_details->width = '100%'; $table_details->size = array (); $table_details->data = array(); @@ -129,7 +129,7 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) { // TABLE CONDITIONS -$table_conditions->class = 'alternate'; +$table_conditions->class = 'databox'; $table_conditions->width = '100%'; $table_conditions->size = array (); $table_conditions->data = array(); diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index e3907c6017..a277981df9 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -209,7 +209,7 @@ $snmp_versions['2'] = 'v. 2'; $snmp_versions['2c'] = 'v. 2c'; $snmp_versions['3'] = 'v. 3'; -$table->width = '99%'; +$table->width = '100%'; $table->data = array (); diff --git a/pandora_console/godmode/modules/manage_network_components_form_common.php b/pandora_console/godmode/modules/manage_network_components_form_common.php index 7a305394fe..e7e2767615 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_common.php +++ b/pandora_console/godmode/modules/manage_network_components_form_common.php @@ -35,7 +35,7 @@ function push_table_row ($row, $id = false) { $table->id = 'network_component'; -$table->width = '98%'; +$table->width = '100%'; $table->class = 'databox'; $table->style = array (); $table->style[0] = 'font-weight: bold'; diff --git a/pandora_console/images/agent_critical.png b/pandora_console/images/agent_critical.png index 096c8f4e772dc35b738226ac1e0187414c8e8690..cf9d190feee3cd36ff31e5f8e55c9bcfa3be2245 100755 GIT binary patch delta 394 zcmV;50d@Z13Z?@giBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s8I zL_t(|+G1cp2Y*~#{)1>HD8CUT01!Z!N`SZ@tc+#P9!4Pj5ySxqAVzdUfZzg9fgux` z-~o^z13mx{Kv)qY)R+JuwI0L{NIcWBl+pb0$yYJ31<00a>A5hIpR5I|ES2(bk9ITMi3TV_kolGn(tw94WM9yMYaMVH!>0H8Cbvz0w&2}+gofp{XC zq6DCO1<`}Y06loHMJZkY5MV`EE{WIMg35v&e8hNHnvbm*f(kyo^3k8Bpa**OF124D6*Ljz5^79@ zgR(FnMnoYoHvE;?1VNUh6z$b}Lk}@=Rdx#|#+{K<1{;E!S~4jiJ}ByNOdOCDAF}ZI z5d@YJKBR{XVWCv3n3OukHL+{FGa4TsjC&JEOEcV*VGIMZs0(mL9#Yaw#)mB1WsJM2 zMiF=!q7V9zm7sbkm?GSOz`TUF0md;oEY)49SNibv?zP=;-LEd$iH5Y6B?ndc7!yqd4v|5U%u?q6-<9lCI5L;Kg)Y zlTx~*DzIr$h^ZsG4>2NLNkLA9LaTwgdtvykI15;2YDZ2d~qkF1jAE&Bi_h) z0FPso2LKO8@ofPb_XhlcZv=AKr{!|{M5ync$K8<8A0@qem@8o{9Ec>HHv@+xBn z&Fkv$8^Y@Ph>Ec@nz0YJQvNJi!I%{)ndW>3SZvL{Z(06S%b_!zz*H5 zb6F_H)0VvizSvZ;{s$;f$wI;zOHo6Zp6$lmPkdt|7FxdeU}Sq{q|oZ<4BofrQI?tQ zul@dJ^~PdgzhG;hsl6k6^we+AFCFY9_^6hJ=6>C<^p@q@vKMM*ZZ1shf_8sa#ICEG zYv|*&cMGD!aAeWRUTf~K1u7hSj;%j3HD3jmteP{t8QSrw^VuHjMEQ-0%UQ?n-m%i` zCyp)S=MP#-9=HC;_x;_=MkkA3y~J*9cGS%bl%II6{lGpO6qvC%XD-??%kD?^m)F^M z@kBEOM9hx@(dBH#@|DL~Z@*jrC$Ke0~ diff --git a/pandora_console/images/agent_mc.png b/pandora_console/images/agent_mc.png index a7355cddb3e34547e635831574404926f5ed0208..c4d7aa9d43ceae11b681104491f778342cf2ccec 100755 GIT binary patch delta 415 zcmV;Q0bu^W3cCX#iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s-d zL_t(|+G1cp2ln>%|3Ne}h)_^aU^mkO@uj07#Gl9{>m-tcVe6OaPEt4`PEXXM#$?1wi&N;nNOsMI%&f16GRw z0*HJBH2ysnvH3uJ9#;@CAccw}e@qVK6BZ;%M`V>i$pct@hi0tv&K-1X-Y*`%shi1KBX&!wdmMqX8_k6$rVJiCE9T0$vbg zJPtMd=+OyEmGgmkBATKEpnC<;gU0|pc(6q&UH}kaOtgqbni$H0Bcl`mb*X+>+Q*|` z02&JyK-mD4gs>)esG$nbz~+Shilp!cHSPX!L6%Mqbnrh)CKn zf^kJ0MM)$|lLx*+9ROG}a%#{ROzh>-n&J{o8&^TeVl)69p+Z(nk0ApNqfuE65;s5j zjDWHfB=&g|R3gixjNCJ&qyDMhRC;PG9gv7nC+sM2*nxr!5f+qjHOCc##HwEopG`GM zz*Q4tEJ&=88cg&-Uegiux+rIw^3l-eanT+s;0ZV&L(vpTGbF`2X^Qi*97V(OL*Qt- zG{Pl?SUDD!f<(qJvK&d~^Lba^?b7s7k`4p{B*l;nj#4Jg>C{j_(yjHDqMiTu?V?*m)YBGz+ zB+6+MdK&j*#9jg8+TA{oX^7cy59l&(ia0K4=?Mj?MqCII_>W7HC64m?DVkpFjs_Hzh>9?g}=p<_u9y zqe@&E$1P)-+hRFhN1~zWDNP%%Oh8{oGqhYr%R;{2>!M*oOv|dNF&ng&uYh#<5hTTQ zO@XTw=Hv|+1l%kii~2k?U(Vdm`*=1=voRiXr+h>iEB&9Uk(dl=j>mt-rJ}+!Xdc&x z9}Da2gH*gTI$nDi*NUCsU_|H-)WUZqja&;^gv)QDbMKCPv`vEMJBIl~Y zuY`XOg~9ZT)1Fdya_e)b1y<@iv z-&D_5)owf4?Q3p3111JSjei7}Yfn3>H^bwNr@{86_u#{!r4Jf1e#_;it3#z3EBxq^ zrS0t5FcE&frSJTwU%t7mvAeG2(Pmg&tZmgF9{}xp;I);$N!ws^(K7qgR&c=n^8C;9 zk@JUdR98FZbt^6KaK_KT;!z7p{n_ax^{=Z|IXB2aCl{I m$FEy{8aX=fT;0b#Ht@oSuN}Mj(l3kVl@^co3U7A}9r_1d-LwP% diff --git a/pandora_console/images/agent_notinit.png b/pandora_console/images/agent_notinit.png index d548ac966dc2b668ce53742dc1fb22ed775252eb..5f60679b31f08878d7d2f54b844a2ce7c030bb23 100755 GIT binary patch delta 402 zcmV;D0d4-{3a$eoiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*sWQ zL_t(|+G1cp2hrP}{s+-aP<|sw03d)cl>l)+SlLo9X+|LZ5ySxqAVzdUfZzg9fgux` z-~o^z13mx{Kv)qY)R+JuwI0L{NIcWBl+pb0$yYJ31<00a>A5hIpR5I|ES2(bk9ITMvw){xeqmIKadUcJ4r zC!#4z0J>KYJ$MYzg9lrb;spQ!Hgpgpj*L+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`Gtf;oFf&vzGto0N zF|ahT)KM@pFf`CNG}1RP*EKY-GBvj{FjRm7C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX) z@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal z@=Hr>m4GgVcpk{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e|}q z7h@x1M+-w2BLg!FLqiKkGZ!~kb0bSvCqoxwLj#x@*z~#?I=UK|nVLD78yOoKx*9nd z7+5+PnwlG$xHy`cn3%!zdgc|EB<3Zj!tBii+6&cdidV0db5UwyNq$jCetr%t1q5W| zm*f{`ATTynp z9O`ptLlb99M^{%TM^_UwW1#CHdQ->=HGQCC^g+o3DY?LefN2oKgeQI=2cCUW^MHA# z2$(tk>|s0)%%2lIT^vIyZYBNs|KFb3D1k}P(0bnc^pupA4u#bW8zV2UGBR}t-sLgq zxcBdkjj+&t23JW3hQ#a4tU3Ya2SRnePDx^!^}W8cT}3%=E(2pr@FdRZd^76*H~-;2 zWKez3P0{j@;EN9CgvS@(GVIb}RB_w&6sYRDeuXpp8fhtKhu`;^H5pAxxf}TWS|SfL zJ&9mm@yKDx1KS1_{!0ft7IAW%OYV$!PwADYW3uF5p}}w>rvI>Z(*cgZ4rLAuECMHI z&G6XT*tuxO!Kal0S;soWH5fF-ShRjLh@9a)QOIdV)3^p#C5`n9Zf}r} z)(Co&ShVBHK%MFHai%06_Ngx%vg`!Z7o-dJbhxiu!NK6VfLU(Ab1nhi z(`&AD2(x-A{bLmTC6}Q6t+TIUL7HpCLAE8Y7XG{=xbwncVR?o<| z@Bm1V0UrPeAgqWHYD@r-S`T7_EQdK1E&#HJ37d9gL6El^fHZbj00a>E2x#nkEMoJ4 z_&ly4Vn7NNN0=PQCoD*kj>sy3f075V1`e9F4roFTfEpiw7yto8eZ+_*6a>)J2m-DD zz=)>$kh#ou!=)r?6O7Q}K02?}p5l2QT08;(1w2w!>05ldZfU*H7X$j#oQ~?^8 z4~WdIpkgBcYVZLTY$YKQADbEQT#E!QLJcJ?)sX_w4gElbo)5$(dsu=LL`vEDKwJnE xyFeg36M$4b)UpRSBMM3Jd?H=$NXT-E0RR9Ze&vw!OZNZ(002ovPDHLkV1kQ8k7NJ< literal 1373 zcmbVMZD`zd7|&g$S9a9(pxv7|L+YfHUXp+AJ>IqVk~@3SyLH!dy~&WKN!rWWOJb6G z*Wya9+=tdt))f>H1&0$0>YPqNnPBY>wI7Q6P*|PA)iLK_vQ_N_sZf))SN%}-!9d9W zdGh?8=l8t*$2*cw*Y4Q21A?I1cpH_{zk7|hrW%4w7w&#~-w@PjM(q@P)jTb8P>2ijF>}d!v-znBpnSw{?>v-GyR+j_i%l@5J2u- z{1SnAHh^@w5_m$2a9O@>Smrv1lWAtSpYgFsYYXfzkh+5$r_yjCHy|ivA%Lv=CH1qR z#t?YjMC}hC8>BLc4mcvp9PC1IJA=Cc>~^BSiTj+sW|+VMjsXJ0J$8VTE)R(Vc=JK@ zXfoSNrl{CvEL{p9Syh!t49n;9Xx@Q}avuhKJ|Bh?7(v)|3%fETsC2}wYAnNqT6h%U48RU2SJ3X$!E32 z=G&u?sXQiB?^(E~_`fTaJ;B4(b-~5^L6dc%R%)0C{sPUfUSIm`lG5P)NyDdA*tEWN7nX2boi*H!c^$>gRo1Yp&-K7!uDHt-3 zv5EGxS7)fh*Oq?wH@TRywO*^Ynj2mUzI>|srnh+Kp(he6%WKd=!L)1qtuID}OCtkk z+CF;stG(u1&Bx}{NIcWBl+pb0$yYJ31<00a>A5hIpR5I|ES2(bk9ITMvw){xeqmIKadUcJ4r zC!#4z0J>KYJ$MYzg9lrb;spQ!Hgpgpj*L#7k`DkVaJ#5B<@>Vw=4Jz+`Sg#^R#icE`s8-LM~=`U3+xQv%|h-F z-OIMIG!q-R$<_go5#+o++2`3u2KbPUR&8|Akf5LesB4G{bfAxwp>DR93tQpGb6>#_ z$5`S0Mi1%{9Bhzt4T)^~P>VM()E6KaxS<}Zi;@aKh?Qw58tM;AWYh|;^ODM0RUs`gi!5Z+p)~>2gh3{Q4l|&HfvARX6hjdVM^JMOhLT1ziDFRdffa8e z(?hmVO(|cBWQBvWERYBii9~b}y^a@q5sV-R1jP{?uTd;&q*z#{qcvfvBF#XtQb6Pc znd8Hd%1C$fgR&J?BHc(KBzQcV#9=8_D5Ydblok+7ha#bnn%BCuB)75uhOwo!RwSz+amj^P-RGEsV5Z?|9+ zj+!hOX0e;7CZ`!EoQ)Wz$Ivv#R#>B<$<*Y)O_oN~j$uxmFq@4EA4Xt$lyVyNX{CO)S=KFX-xr zihungi^<8fffG{`6H|#%HZyo~kN-&ynk<`tlI>kN7%Zxttm*&{)@-q&cQyC6&&zrF zcZx8-_Df7Sya49(e8P^_!9=`C~cn(;eUAnewcoI@?M7Ohrnr`$D{{v(^ B+_3-v diff --git a/pandora_console/images/agent_warning.png b/pandora_console/images/agent_warning.png index 0c92600ac22588a8ca5469eb46ab658f3ca1daca..a63e0ac4fb68dd1cfa92f725fe00c2a365bff695 100755 GIT binary patch delta 386 zcmV-|0e$|`3Z4TYiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r*A zL_t(|+G1cp2fwZ`{|C`bP<|sw03d)cl>l)+SQ(qnUq&GP5ySxqAVzdUfZzg9fgux` z-~o^z13mx{K)4amm;k5?{-ZnTKa9A5hIpR5I|ES2(~W8VeUd*#IR8VKGzzgh|M)SnHw5%>g;y zvF1=9ADbEQT#E!Q0&xJzsg4wYZs-Rh^n4(z>%07*qoM6N<$f|7iXpa1{> literal 1362 zcmbVMZ%i9y7{5{qlK@@8&GBdCauA(^_U^s@zfkF)Yo)qkg_^NsaXap=^a8!B*TWW^ zp=-)kntd1=7ov&d0~+HNbumj^bh2z8l*DN@7#1U$4nJ%kM5k_=Y!TlBihdyb;3b!P zpXZ+6^ZcHF?_{{=$(pLhDg;4lg57j4{5GiXwh9E%e7JJ{jw&erex*-}Dk(OYBIT7nLCG!r&hhCvX&Pqs^q* z;{Y^C*c<>jJT^Mux06o47tm%vlzeQ34FHdyuvtA`J81^MPkIT$=>=9hu+Sc>#bPUA zgJM!)M3yhb6=2*Atn-0b$|v)TBFPa+8ZJ#hI3_7lGA1QZU!TjLI*ouMO9ss~@A?zEO`+&vg^!WW=kKbZ5L-y-f?*CK`hh%VdJpMB- zB^8`O^|(3wP}p1_UW7X%!{wNoxSfIfnF-RKNcy{h`>U&6TJmt2;kpP`201R5N6#SV z4it5ovb#igI1~nQZyVUAInY%eOy2_e0I@55!ot=I3$!Y#@`BFSUEC5OQ((*8*C6ThCRN zyOF80larCA={<#}gKr*hn_bN}>y|T@Tk^VM_JXFZw(ofJRBfzc9C`hS=1|+pXFCfI zztp&-uf4W_-aD!biCy8krjLj`+lXHJ{Hb%6)VDL|bGp|1+b8ySo!pCl{fW+fa9g{J zsKexJ?zJMi@9eGcoziBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tJo zL_t(|+G1cp2ln>%|3Ne}h)_^aU<6_ZfB?c!vL2?41&A*~F#|vVF(RqB52Or%_&g8? zG9sG{0tXKsWMsex00IarVnlOfA`s`JoBaT2wjvXnP6e=AfvOsSbR$8F00M}akOH7d z4#0q6c=+()2NrC>hXe$H*a3(Se}Ejvh({qt$S{!=I9O~j1e$sQSq>n8sE43oifTPj zFaSuc2gMQ4>IFdlepo0VhX5#X7$E8U08}gpayKXxkbQ4}W~%^lP%#mTDU!pJ397RI zhdkUw79{sH;;>!;=*|b|!80F7C6J#JfB+!CXo47th;ERx;~_3T*nlHBf7Ao9BT)VT zPD6nT1)xd90gLnlP_Y5T0Z_xxfg=+Rm%YbfAgmNPj}+*z7z4SK5#(BYd59Pw2sGpa z*2F{sFu<8YX%_p?u$)hZ8Q}a*bdmyE^d6R-kw7E1q(zGN6`|!VxKM$*s)3Nx0ZhSm VmS-YixBvhE07*qoM6N<$0fHhRonQa} literal 1418 zcmbVMZA=?=7{8Xcj;s@T6E-5ZV+_Zj_rIgB7dmKry|uD3QtIfIec-q|=n1{+t_Ku! zuDs}A8hH_Q(Jv!Wvn-3l#6+?su0%~BMrE)pjx3QmT@3Lh3*&Ioa1T~ zf!85&s}f90P>GL;wuld=SN( z#5NONlG^m8NLC~u%OL_qJ3BjdofSG!YC$oJ#exDH#qn|lQ6BCRWI9qVgo_duNG{As zd`RX+0ghXwo5Xh6iYSq8q!0{wJX?l^@MfWulA#eggkm~?27~du*3n_v%l#9^w&<|0 zE5xB*E-bc7jM9(hq6Ar~-Qyj_fl4&QQHfWYLbs73(;nmm*-csz<&Tc#Sppc$0K-gr zV8VgXjA3S*k))g^+~TxjWCaEiHn!tZMw=1S>v0QZFk+Y!H|xy~i^*=MYz|=814n}E z7Q!+uFkHefulU{MVvpq#4vC{>QSymmTVew00-`L217Zkv)Ejgd?4cQ6h-=~v+Q^sW zB))@VDM<{%>lG&W?IIve)PFN4DV%a*4nS2@*pW>x`+us2D#4)f@%Y!cBvi@_#*bUW zuLxV~!wJgHNXl|Nvme}7_H)ur+I*3ProYzKs*-k2RPz&>tg$yVpBF;vfhUjWlUiT@ zj^hv<%^QAm^{jfb6ux%1%KnA=e5oAPMk7_#5WO(4E1Lf6XRq}gd^D6^5X*#@hn+Xt z@0>mH$J0ypRI03_XRJb1B^zSS!rZTnI$37L-)uJL#mG&!?O` z_rP*MwRCv}ygUB=>f$V%mlII@x^6{He%pB8{Cr?0H9vdtCbR->Of4LhE35B8PX%Hh zj29jrjSZM1#~7B)PWC=At6oxn-Iy}BZ2Rcdx1gL0Kfe@6ozfJmE}psXFzkbie_8Y2 zQ#I^=c{kO4LahOF^O=LulmosUT`6NVSR0r6{*g8+u>W zHkfu>{X>8MSBw2?@2S#ybE_F?^~~JV>63>VZC9R~PJVrI-}%|>9;7DY+@296^UB@W z^y%m)$&N3re~wROM+*kc2%&mMGh8#YGI6AD^!Jg`gVW9)m-_*9F(aD0>lN3hy~Q)j z@OQXf^)b{nG@llE@em5xC>%|3Nepl400Ia@Nk2>(Ouzs{0|XE=vLOlz3XDMf;NioE9~hy6 z`+<}Lh<)(jK}H6A03d*HBcL$?Fxx>iBeJVuW-}2o!U3-WfB?d!O96@90An*^3qB;! z2*mY3EC_Vi2Sy}?@X$a8$RUI5e+vg3PBOsi3^b=W0!=-DEC&!kJ zfz*B=eI7{|#4lh%QUsDrfN~9x+iCh6R99fg@6GgN1q`$Y5;AJpf3pC&HH>fCdPHvNO8tnefFm0RSqL3eXLtMnnk^ z8~X~B#y%sKSSA&Gfac5#48){vXhD&HCcFS>Kq65t#bdAmQsgZprT_#0uCIFjac3=Y P00000NkvXXu0mjf&;gr+ literal 1408 zcmbVMZA=?=7{9g@Xr*>+21_^PJeIgA?cJ5@%U$StZLh~_C^V&JRloFT4|;>%-R=%3 zjd67&5%RJ@QH=|&1!F%sD_%*&gFQcDKs7!gM82%OE9^IAvCN{sy{jBU|! zd_-j77%K~dQcCSdZ*zsL*6z`c%0M+5qD$h`rZ5APkQ&Ugyb`9okow1-=F$Y>^dKne z#t^pyad}YG<9AVX$nC&G0hDS*k&2D&xU|dfLa|mqPCH#F8gh6rPY`zp0<=Gf1TZ96 z;f8rxVfYkV@yn@xH@WyDxkON68AXudf-q2-fM`Zg1UVy!V6fY1N5Ke_;`p+r+@Oto zDOTc!*fcE(S#Z6=1h-uTl$-u<<`nIqLue48TU!IrCO7?mss^jUz~%Ay*SJ(v>I{~T zTf?skTkFH}>dr{&au^%_+@tR2RG9L|bBjG|rIJrqS0sNa&An|RKdA=`mQ!c^3uI_w za?MOm10;Zg&p$Nl#TUt;(oyAjapfrzBLQZyR-Zg)X>9b5YZfk=#B+r!cYMz!3ypfW z`TXvdYWbm_K0iWU`*m)}@@ZW6fev($z_q31Oil7N>O<{IU)}M2^w^iWsuMqzuA6?G z)tSSy`H5%epSap?$SOYITO$}EZx?nf48(nw0l|^o$>=#!j#yV)J{k5y>WP{ zJ(g?YpQ*3^{b@WA?z93LI{z|MU!1&Ey}zb*#4!H&UyQyf762|jsr`JSaQgjIj(rD$ zCUI{#J^$8)_h$Mv`)-aQmS%j%+zD*ja~q2lY(gvKr#LXz(E_r^qQA)ndrYYH!U$GdK6TNcb{JZAMcValyNlgWk$NmQR*3n4- diff --git a/pandora_console/images/alerts_extern.png b/pandora_console/images/alerts_extern.png old mode 100644 new mode 100755 index 248bc68c3164be744af4923363e60991bc25a90f..eea1468e090e1eccdd3d722c90caac3bbaf0f5ba GIT binary patch delta 420 zcmV;V0bBl;3%~;*iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*t1i zL_t(|+G1cp0*oNS-roK{kUGEu6>J0%00D%GfJzFW${3h{SOBIBAb=Q=RO|;*i9kI6 z;K75Aj7WkGAU05tkpUk72q63jW;>8xkL+p&nAuF&bg=+cC1Cdw8UP3&k`N;{mmvX1 zAg+gcTo65o9MDZe4jE)$IFRHFe>A5Q0!^KOEC&!k)JN!{U;w1f1Mvi))rCmT5oAJA z)DKkz0tIM6x1SMDn1X;J5GMdlZ(t(eG_WG{@Wcz4kUW7k{h?=>20Vrx09t+=qk9s&U5xm|=$`re;>6`26Y#`ru|5*`p8ezBQr7kfy72G#)AMnmop z*+KhgGSGYWbJ_%eJjk^8MZc#3r?`-cOxma-AznfQV5*DoB-KfaP#fLBux5B;_9GZ# z0%rJetq1k+b~?zo`UJYUud#*d>!geUxULp5MR3VMh!#mG66#{Zc*G3v_{F7jQjNgS zj)~Z5hIdK%JzmJp2{fctq16eHG=A^F%;M8aTJ609$1Pd z1ln;Q;oOTQNoF`Giad@WJv}|Do*ES=bRd|~XhcvoqE=T+7S-WiRwN_UZ1{M}13`x= zf#F4lW1*x+vW@E&&9KCDH-!-I@$5Th!+V92N`^#89>G*75(*{r+OZCcKKdUT2U>?) zdU+c0(P6Gzprn4ZA5Vd$+TA-)(okZ9Hwlc?6taupsO}KWif+OTOMg@WCV-<_1BzjK z4XRh8Is=9otUAK!(5sCO8%ES%Xv)VySf@j4GZ>sw$<%fXbEvJT)kxU1cAJi{T8%YC z3hQRWBFR#8DlQ|%-NT~y#Nu{=CPhwY;kd5U1bBm-$c2L(580cwDh%?F6vHMp$p-D_ zOV9%I6diC1TnO5!FwPvn0M-0AbDQ02L?!lmoz?;GVFUlCYKTMzNshro6>%M;wG#uk#F1LiA0?|ciO^CD+=WWKmj=ebhK5gj5*7p z5O~1=l$KUH8ja?{hyuo#xU2PA@vNn?Y!Csr>!B-IW2Mn(8Ayw6G1(W^FHdDW^4#6e9?dLWU7gfa zjOMuB2IEJU6DJO*E7#>y^Balh4;OrO-7TKqo*Y^?y?iIT%scm+OhdntXfj?MVIQn2 z{&3)AOqi^f+AIOHcn4Z*(rK%|3Ne}h)_^aU<6_ZfB?c!QUFuN1jGVB+z8?T1P~*Viv2(;5yodk z5_ABu4<0|X3W26hK$ZgtAfgd75h1Z3m_#lzqX`-S z1)l@4z{7_RcLMq6fx?|YydF6O`hipdnt>aj3Fkf|o-hRgMWCl1pa&B+kbo^b@d758 zCvbThJz+QCG3)@)od?hp3CKP1p+O&z=B2bd?JGm zltCS^1ql;{abkcoh0-kcp|QLl8jGZW1;8LkBsxg}Em{wa1oSN9NOrLVEOAzXN**B7 j0xC2CXka8Ervm^><98jg4}NvP00000NkvXXu0mjf%aE3o literal 1404 zcmbVMZA=?w9Dhm$3sPEO3k+X459W~3-V1%Z3mtvAb`&img#i0t!nJqM8{A!YJ?v45 zmSv2ML>)4fpi$zCF4O3m=m(?OnAXiDnoZdUL*nZe=QMFFON=otcn1`XA^YGZmwW!t z{eHjy%k%#~M>;!p8%t_R0072N8x>K%)!J()0zmg-!YHW5HaXBIcZmaXik4X5WyB~8 zg?M_9jj%K`y8i;(0)Rfwb@$1A;YZ1s$XjU*V^#Qs$_AjNRY}mXAy$T>>>ww&;Ts>G zfgz4@!@c$}8cz7xIM=BN(`K7u2GVssPW*G^FsuLXuS6@TxAUuC;9h zhE^f+kQ-hLsxRCL`9+C^>{iqgLme38uvsx1O4x`d2uCp#!Egk1S}>HfJ4qCS)*o2) zCNTqKgbJ?vQY|+em*oVBAgNT!nrgO+(jbBn1c9J9g5wqyVM&e(GObvIWL;i?Vv{k6 zOURrkK$;>Q6-Q(@tVX()0-p$nH-v@cdZE;kAqt&9Fe{4iyq4E0Iw?okf5O-lo$MY> zut7PH74S9_sD{NcEP#7`IN_ySK3_BD^f^#xo*NR9 zGA+c|ykAcByUxY#$R+&}OUt6vEsDeW4(N=FvY3pE3CQ1Nw_;G3j&XvvqaDy%z7#8Q zkF!ir5_xE~!X&pz1Ss*J%>9@xKm-WfZo_@SpbK8-GXJM)h#Cx{wa35OCBLQiptjs- ze%06*A68IjMpB0Z4DQXU^La8vdApUR=wB-0eYI-Kj^dBu>cf@e)#pqH8-qt$UekHNbZvV*=P8TCmy11>xioZI6>m5@^}>_J z<%x=PMcYETsj#}{=vVhRAh4LR@9Dp5`(^!S<<|_ksY?d`-Q!>Tu7jf|C(q&f3gh4> z(VA}-%RC>|&Y3SBpXk&F8y*amc(%Ic-|TsArpS|-etVqB9DAw(yV7#`E#uEWRq#4n z=-cx%%AZ-{<@v%(hn1CAUHzW-3ZbgoJMORl{(bPv(yf&X`dit;@^oXt^CnZ~k2>>t zeYRlw<`|fL>Ao*53v*NR-sA&w+qM{}ruO{>kCeWiJNraDJCix4zj&oMr9bh??fUIq uaj#+LcfTLc-l+S41dYFCc9xweiwin%sLsb@``kwDJ`4pqsCRt*2mS_7XUH1> diff --git a/pandora_console/images/alerts_template.png b/pandora_console/images/alerts_template.png old mode 100644 new mode 100755 index b549cea379c9f9f7c748f966dc1a00368ca424ca..0e93db814bc60f1a135e7195ade30c5f0e8d9742 GIT binary patch delta 401 zcmV;C0dD?}3#|hoiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*sTP zL_t(|+G1cp2ln>%|3Nepl400Ia@Nk2>(Ouzs{0|XEwnjwuqTz~N3K}JTX;C>+G z0Ahm#8Snvs0K$!c#t6V{2hohku7;V-M92sSyb1sU2$wDeY~qaAf)5FRLLnZAKL8zO zh#W-l&_D*rA%pA-2OLf^!0HS%f2TMCO+A1t2M|EyBlNI?@zFzJK9EWP;tL>OgHjBT zT>!)rkVD`+kTO8`Jy5&=NKatI6Q(GhVj|#V2W;Vq7cfDsEx;k4k1Os$o)Lh01SP;( zu$ZzRSIiLw00N9Ah>?is2L%c!Ha`HdA<&->uw;_^K&%LpW5JVj_rn4VX9_^<`#?Dm z`vA}YSn;zSi8jQQ+yjsl;scm1sK(*LMie*y42WZZ` vKva@KDkzY_0-ynjl%`Vyq{v%HOaTZ0pbv0iWKO|N00000NkvXXu0mjfrU;US literal 1423 zcmbVMeM}o=7{9ixAg&oGBZFala~LIa?S1t7q~F(*&K65)VqF&PwfB~uw0GV0kb>yy zj33kB2)b!Bi{PAY@gpQ^rn1H1mWakBi}7QU#Xl5{#$@1@xZuEg1&YRy{oy5-d!Ofi zzvugT_k}y})YUfEA_$@jbkGsyyQTcrXc0v9LQW?rLX+%|$=zZ~?q?;4csMZuK_JWa zzzAfyf!&|Mb_CI+`Djdzg@RO4%o^A-#!$%S6gGmiy9zlr*$ZWmfIYn6K<6euMgh+` z(0j}wJe2dnG~Y2O!S2D%XmYSOY3ERv6SNm7#XuIyEGT3%LY^u(&}F-naxSYe6f8sJ zUI)4oR4fz*K2d_eY{2zN+(H10$v~KJyUD&CkT`*31c~8RJ%LkZD}@ta^+6SH5|^SP zG_&eUksN4RmU9$__4oH1`i%xr>cI%R-HzcTMv{63q0bKpGF#9K`PPaB8s?J{pObk} z0A-78LhO?rs1oT)3fWvJv}RbyuNF!v8CGC(7-7J%Y_^=&GCD6u;6Guki_S*}auAEa zyx1otm42jJD`cg1*LG9}D$!7POT5w)HbaZazAO~v0PR4PKL(EHDBNtr3Bqc^tt4)- z5roZSp&7rGwEMjTZ6xrDjrF*U#bY5%M!%ggTL{8W+DtZ|-Rku+9v|*C;l2ttAmn9M zNWzL=Uh%uirLW1Qd=g}3QHqLUrZNHHv?z=Dw3q|FZnJ>^AvVbiWlgz3EBVq;;va+@ zBZ*nCTw#h|F9O=i{5Nx&AsIj6!x^K|i>`9H|5G(g2?i^V$G^sa8d)o$RXu9WKIj^Mm=6g;76E*6~8i|v+& zTHLknOc6D)|9RF~K>gQm?)(#b-Vg`4j^{4d3g_qqecOb_KKz8xl%_Vj-aFwoE;<>We*414;mM_G4}JMnHS*2O!kd}no6eW7$bi3-e#aZ% F`!`v`+eQEY diff --git a/pandora_console/images/arrow.png b/pandora_console/images/arrow.png old mode 100644 new mode 100755 index 9ae83c21247ea62b6ef038613cbc45346a8f1a2a..748c4e7cb66a46321db98aa64f7df9c89d8f2714 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRY!N$PAcq?vtFOVZy;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B@gg)5S5Q;#N|E13LpFi{t-B28D(I2?oX%#lQ0eJv10@ zG698!IT;>(zA;7W08e5QSHl)f1181}egTIavJ5OtCzv<`9GTrx$`@F0#V%kx#>Qb# za+p=(1LFdw_Wv9Oaw(d2M>##Z?my;g`fk7~v8++1E2W8flMI91owlO^{-1h)j$rU~ L^>bP0l+XkKYCu3h literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^93VCa8<3oGNZ$fTu_bxCyDxi^mK6y zskpUvq9a#RfJDpl|DPGk8p>NWYey~w;>ew0-F;K@qpn1Mz2eKf zS<FkpH&PV{MA2KDt9JFPE>K4wp0HeADc_qJ2vgN QK*uq7y85}Sb4q9e0J&UMtN;K2 diff --git a/pandora_console/images/bell.png b/pandora_console/images/bell.png old mode 100644 new mode 100755 index 77cc6847cf133500be23d592062e2d5d8e5ac2ab..0bd91345015387206f5c273b2195b61c440a4de2 GIT binary patch delta 377 zcmV-<0fzpB43z^RiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rg1 zL_t(|+G1cp0?Z)7-roMdf`YsC&_5&#tg$EBFWW*K{4Co4> z2CT5HWU5vxf@yGL1Gow;|PHST!9WtS`UD}UH}tk!D0x=tp-3GNLC~O1Q<;aBazV$ z^89=#Hxb#NBpC`#CZHTEfJ4a#AXWrg@Bv>GAsc7_O;Q4Q90X3Au=0bTPoY2%PeKqT z5NoIbDLIZKue(q_|yXc XN3>8`6tADn00000NkvXXu0mjf6hMJ- literal 1540 zcmbVMeQXnD7=OFl)}=5Rn}Ka2yWIwASbHB`Kd!WEyI#9>X|Z-q*rJkMuh;e1+B>f| zT9z5w4Pi7I6;VkbIFK0p3?E_^z%ZuKEr=%ihs0=rK}ZIXk7Ni2X1$IT`GfF>mt5|B zo_l`J^LxJDZN4=vrK)Nb0HD;}O8Mn)Rqib*20(G-+R{=$AwI~$ z?kL^O`dK=(@s&x|3;-120v%F^*JEP%sD{qjXp&JuMgw5BCIy=5VI?@oc5^Wca{c&8 z1m;2(WUbDNc?Aa>;adAew!ME%fa&jH$Pi*}g3U>j>>$cYG@Oj~#^R==1)1|}lFvCc ziokOwQjZ0>PpZS~gB`rc!a5D6W-vVt>l-zABStoo4KRV>7>W}pW>DjpNoO!&I6VI# zax^g%Hu)*nd@NbAAQ4FtOemU2Bs2-Fh8Me0oFqvUBT#}+%NFYR#+XDW)v1@U+Eso`VJPNCG=!^uRHIk%UdE80ZF*`{$>m1E`%5EpM zR37V&#U(n%u=%*09CsdTcr4cB5LsH{#Q@Lu<|n`x;UzvE;RV>yuG8SKmu9$FPLpfU z{d_4_-=1%>Mn zfOe`}k{T#BBV*$e6B9SOS3s@%%f5}IMBgn%VHrdy4>W_}iqsu*>$1u^d%U4>WEjhkH!3ox%QhUmnKsr` zj_N8)j;Y|3&~_dYmJXd5ywv|zqWs`%m6??Xrf%EXz^>_$O2}U-EJ}}^TyQ3vUS2+S zVV}~rtJ)V_5>`)iZhEtRHk-ZrOV+wNnjIRiAU*W@NmWS-Ae|Kzo%T1D{m{C%P_@3u z=YcF%MGtndwG(bC@uco5!qBrd;N#n87t&AM{b_hgIWh%a%HZZw@A9iR53EitZu4Be zDs1%_hw3uLBetoNyJq1;usy5jF&`YQ3Ew-u=YzES>#7wkigaye!_3a&_g9V0%v_&d zcV+)G+utd+rQUuwIQiq1(VuG%fxzKr#tteSTa4=3ao9J0{reXN8bDA9uNyXu3V#>A zSi1#E4eTqKnN;o@C}^wJ(%0Pj4M%GmmfE}nb2dci-}4l`Ysw$ojA`k^Uyx_)4Z zzTlR6jI%VHV@~fF87vQ6oc*KbMmGCtd-fFgylLJ0%00D%GfJzFW${3h{SOBIBAb=Q=RO|;*i9kI6 z;K75Aj7WkGAU05tkpUk72q63jW;>8xkL+p&nAuF&bg=+cC1Cdw8UP3&k`N;{mmvX1 zAg+gcTo65o9MDZe4jE)$IFRHFe>A5Q0!^KOEC&!k)JN!{U;w1f1Mvi))rCmT5oAJA z)DKkz0tIM6x1SMDn1X;J5GMdlZ(t(eG_WG{@Wcz4kUW7k{h?=>20Vrx09tD82|TW-3y&744H#{I1eTuws+TUeL2>(*IrAjl+|uRMbuu~YkPF<9oHKx zGm!%F>f(s_ftLsbP~N6NjmZo_2oC5_!Zav|BTOQQ3DJ&8vI%5f$BKL)eDIRX{h#Na z-}C&QxBo`Zf_bGSQ%e8vYQvMAH+6MXLZc#w^2sGN-^73V}W0QKe+M+IZF00rm>lQ6-59X$?1 zOvnT;s&k`m&PGQWXFE?fwJ&H6w#S0T5NvLM>QlJrAWjPul!~_`l6cAlkNL&Lb54!G z(3pu3Gr_0!tPUhx z){uFuE0GkaM3BzMWyHASSmKFT+{V+C!1B#3+mfFEPm~qdWR&F~TT`6|gWOb*N#r!S z20h4^qz7Vkxd_`?cx{xE zI6ecittAdY4J7ZtCr)NEnQWw5=G>?1iKcna9f@2e(-t1Ef(_;A;d*CP*QBtye}LOy zDDRN%lUKGrhjr1u-Xr|=vtYBq0;ulNQ?Eh$SD}4370}KyU2*Tk%;NHGM~dK%z*G0+ z6#yTQo_tEzu=(4D^pXO(BK3NK%3`R_O1j@A-XM5WW^VB%tI}THJopw=ojxacIwS`b z-Rms_SJ&PcRrXJn8kYPGqD``OyLJ~-4SNNzbj#23b;s`>tNiKh4Do&Clqsj3%Pl~z z>fOFIQ?m3ozoVqu|0Yg@2qr?@Jsv4&}o(t;5>FFT$H@D(lOZ#o-Q2l zcKpgjZ~HpuU6FKn0@^p%&kdcdta`Z?6igbua;xyGa@$}`u?0C%bqEa2JhcDf;QfgA zdD?&BY-IT8&Q8hpWq!XD-8gvhfZlAHcNE7K#q=!($ zP%@^95pYJjdPIJ3_m1wN1mMUw1Vf(0qNN zKt1bs*)OPc{^eJc$~_+|mB-D&PdfWRclO!Y#d}{}T6V5X(YMK}@+oo4P$Se=QP#J^ cD$HI8Ja?66;@1~{le@`X_66jpR{!dM0l8r#_5c6? diff --git a/pandora_console/images/bell_pause.png b/pandora_console/images/bell_pause.png old mode 100644 new mode 100755 index 3b329946f28235688e70463a42d2b0bd463e05c8..66d25147719dc18553c9654d98cc7d889ee75f2c GIT binary patch delta 412 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 nP+$l^V>|&Gz7q!|+W-J|6S*_J{G0U2?hidG7iB zp6|Ctm$4=+G%6GTfG|xup2dBa`rhCm0Pt%WY5m(Lu&O*Zn=W8&1VaLtk=B!-#zbr- zvq-{Ny3Iw(0l>eI%E@E%wCiLB+QcV(HhjCu!l3~`o@%!ch9Z&$_2gE{oC0~;J0OrU zra&vri2} z;EV}dlmg8Lm8aE#X*5HEB0iF6K*T60PU53Uh%`yM3KSqH0;2*LktCvsOeB#ZC^+{( zoHxc;Aj`tlbG|q!1uA4&iwuTsHXGk2MgAMc z3$3j=r4|y-BCT`@W8nHx5IYa%YWH$SK0_`VStdhqO(BYL+E8L5&8!Abfw(_>BW0A~ zVq7Q?V#z2jK*Y%?nv98YwMrt8s+1@$M3H%p7hw^#N`#~dl~N(5LQ$0fQ(*{(B`GDS zRE3F>(0Q!JY-I_vft>eCaen8p*h{gpG=?Ntn#rN*;`s^C71AtiEu<}ATDFLff?C2r znSB~xgJ$!^NrrllG^!ce1kO}gM!g^cwM3#uQArXanax}&P>C_2Se-0VOO#@j6q>^t z|4-FmE*RK19{(Aac@;N_UW<~{0bEtUPJ*E^if(5{1T**cf3U%$RCe&u0jKL9!`QSM4Nf3J7K(=k0Z_>tqtk+?iy*jyc; z(?zCtls&u?)^+!CBM}vcK<|eJ={5${7X$jhisQUs@XTR{gjMtpx%WNu-0XlKPk5pm zE?>MjF>tT{sl?gpwoWsgS(QpKasyf)n`&&B4D@1CswJ;%T4 z*TDEKKw)hR!&3%*qSz5#6W;Sh`Zfg+5aBw|kltEebF|Gb$k54=dOLPJ;broiPUk{L zLZV;yCSVb20gwu4?7{UP0>Q=cZkO9FM9`R3K?T?@`sUelZQ=Rbu9SJlA56D(_I#6x zMJ71jh>k9so(jvj0ruqP<}P)73)ENcK3MiXP*y7Q$fM=@oLwaxy2 zDP+yB>H{wR4jb2)7y0h6a@Y)J& zk#{*_IC{5qKN>f&Gu0|S-#z~BSc&Lb<>AiezOJf}UG-lUMFo_Hb~U%RB;V*hnNzYU zb7#iAjaMEC@_Dy^qz(iOXCG?axO-so)YUqz*X4u;mn|C~Y^>2%jkkb%oL{9=#}*`v z)GiHZ8j%mQWUm_^t8!f$U2&zaJ3QQVYk6-*=heuj?mY<`ZrDS1%D*mos%}01@%>M$ v9)4y%cJ^d**UHEz_XA$(W`ZVfr7pS2i|w%~f12Q*_FeuORR(@snP2e_2l;Qt diff --git a/pandora_console/images/box.png b/pandora_console/images/box.png old mode 100644 new mode 100755 index 6d8540a1b117c47bd12516610256e8552cc43782..b58d6db41b373783c1c716d992038fddfcec4363 GIT binary patch delta 462 zcmV;<0Wto84e0|RiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*ue0 zL_t(|+G1e92F%UP_rnQ2?avq4EoWd;vx@XMF%#Cdh`I{@WD>;p__HUt8FdI0KUM<6u;h#Ns{ zSOkDfyN|H!c7!rV-Ke*h3*LkGd) z2NYrf(3~286q3jQ6j%q5G7@rNE`(;R2XI5t%7uPtl3EBNh!~w}R0K)NyfV~GDZU6uP07*qoM6N<$ Ef{yE_VgLXD literal 1665 zcmbVNeM}Q)7=PPBRleOY6qIo*>SmPQ2mO{pTdox*1%xivZ6-b1lU8Z3wpS_0TtV6J zV*`;mrX)yqR_`(9bjQysD->G~6IEU_j_g7e;btbx;T0vJ6ZW3s$R0RnYI*3ZL zj3lfztNX|t0C+aL(L|dJMM?|h5D{UF$mejeYyfidd@jPWilm_mveNEU3Ga1w2_d^x zC0r^oAO=@HX|os9y25G+ALK{uHlrUUfT`j847E$g>7*!|~FoMAtmc=5nJT*?5@MSqYnGp*( z>9M%&F4|5xp|C}wg7VTTAsgw_6dW#t;hABlXR=Ui$zUJhf>99yI~?J>CeR+bjQl5z z=b}Bv8W#zdksiwHwy^zJkr^Sgwfk>JVIUigvczp?n?h9Kl*Q{Hopd3t60(0pR=ZV+ zOYv+hTO&tt43WxFRIZWYdYueY=(H%FjUo{n&*NfpT#M*rTDeZ5Ls1>3)yVW3sT9$n z5{X=g=_1@hr-vq-7Bb@3&ib9?YW|a}%y*LnO}UK}RTY_lQX5569vkI?^2;S66fzJN zyECi_H|S};IO(>pA+35h<$xwCth7HT0tA&KC@K>pvdPRbT%y%zahX&n*2}dT;Uw4k zf2szv!NB41_}92ZRO}3fkI#mm6`rjR>121t%`Qhna>ro+xE+PK#^}3LG0HG`Jj~3k zXk?nJM=Kw>t}|V4=f<0V=~{b~S&uZGYB~@N`AegA_-oZin9{UQQ}R>QfDkkc@b!8< zKQJCLXRkXFy({`Sv^p7xM^sn_i0}muRXl$HW z?~RM=Xg($`GUE@Ewa5Q7)qtN4*U)>(E{1$bgE@S0>j`0?^4F=!# zCcPA}o%Tizj1<)E7{oX6xRAf#*Aw{u_#$iXsjiX`PjEMDh+!TIgwu8uFAFksF}JM~ z2r8}ubJU`Ny)&ZC2_1aiUgAY0?uV;$$MgETgUnc}AjDZ9dcvd|Mw(+sJEiH#Te&|D z4-YfV?Qx7|-$!UdYGH<3C8<(H{2P0pf9Fw4~1F!W|q_+*GA8c&p zrS*g5Tc*vsDAyYFQ&P;ITV~^5oLBFDGcjhmsq~!84x$9h=4~Im-8`$iX)*U!{(7cl zjRHB+nRF(2ubsLMDIBK%)K0B0TyUk7B1D1=rgHPygrm}M=^)NX@F#Arb zpyrRJ#BDbh`S%SO`M$oNy21TnO-tj~0~u|Wp--;pecSSP)@!6K^-Inr%t`4T0o`ZGa( z{1T@mkgh)c&4$*X9xET3(%Oo&c5nm7+Woz+1k4{zrN`>GZoSTlU1|$XxgbssUkZh~ KV*G&C-0(LF7-kCq diff --git a/pandora_console/images/builder.png b/pandora_console/images/builder.png old mode 100644 new mode 100755 index ded8866673bee40c83e53a916a43b4b7c490c7c8..964ab6af6698f6876ad4943ce8777993664b9512 GIT binary patch delta 395 zcmV;60d)S=3a0}hiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*sBJ zL_t(|+G1cJ3IGHUCbGA;{|};>kOct(h!I^D2re8vc+ij$DyRSzybly)#A`l40AWRp zXl65@7=tXqgf4*W)&~SF0tg^xY=S`J926831Rg$o_yVi1k?cGG#12p)MU5w1lG9078OW95Eu#{n6OAVLg_*vZUo{2 zyy*^RJ&a~S4wqK{^lOat;%oP;wwvA$b5Gz-WRP3FUWa z_E`wT^+?hSfcPOOw}S!<6w9O54moQvG48WI2A3$T6ftrRI5SxAQ pWl&@Q%Jv3G;dTM3a3NUq0|3U{tJ002ovPDHLkV1lOSi}C;f literal 1365 zcmbVMZAcq;82`tpaj9whVYE>u9%ow=P42~9k~_@I%Oy>Qu@WN->soT=PIH*top2pdF5Wa1=uk3`bCp14AjoL!lV7`@p(4 znH``KbY$0;F8ScBs!9}sjE;^vN86pEJcwWyhrHkeA}|J;Q>sTPVF`NP&?M%!wlTyph*7T2T|+KVj^PR+3{9 zha@;f9Fa46KL(o0WW9Eec4PqcXsA;%uQ!Fs(PCyK&k1Ub_QCoeC(E-GN_bHW^SDqC zj=H@V<_);%NZ5mu;UGr0V`$mNeq47L52Nj2w>N^37#7CKkPD@W5Z>HemaAHuL$?$@qF&ea!FU`sP za~vCy#XPiKVT#`;g8yWW(?l>3q&@DiE8-0X;9V~Jf2xM)!63$X{A*mwDt!ix(U)aBK;*RS@Rf@x!f93%F>iJlu5sv6|%yrS%Q(y@S`@f7w3)1}uwT zA6$DTeKvQmRQcWYU;Q68e%S|1m9J_olf{Z=U*nN_bfha=-KcFI=($sI|B^+sez9=c zw(`@J2{R;U8>PlG4U4t|0jqZ6Y=N5LUPGpDUNIe6__kiE`u==sEhY!uqeGoH4%h7fJ)KU9<;8Sh(uNPOpDW&fIz7b4M{taEa BzmNa` diff --git a/pandora_console/images/calendar_view_day.png b/pandora_console/images/calendar_view_day.png old mode 100644 new mode 100755 index 1fb83613e060af662d27b7c8dcd8e5413fd3a2ef..93f5dc06b2f1b93b887e2ed62b8106fd9e5579e1 GIT binary patch delta 437 zcmV;m0ZRV*3(x~0iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tny zL_t(|+G1cJ3IGHUkq97w7(s-+z5Rb=!Gi}6GBUv!fB*hr0OA8ctccerfB?d7KG19j zAiW=m9{{leNRS0)HcS=B0bmPlY^(*K^mz~s7Cds~=m#imh|?l~03yrRFqgpq$Ql8x zA%PSciJ%YxvISuwgX|L~WZggqe=k6@*?<^lU;vN}00G26b$~VQk>d#p9GP$!Ab?dA zi;3v+4lKw5z{q|Nq$UFK0U+)NMFcSD95KQZ2m+zB0#vaB)__NgQjnqxFaZ{{7&-to z2?RDE%drsYAxEME93a4Gf{-&2D0Q8u&^$w6V!OaZFqToHB#?j_0gRA`e}YCF8Vm@? z*JF)NXkKYRN?8Wb6txhR8G&N^(UO28H2CTXB_@#O|4`c3fqG~ydG$g1JQ;e<>f|L3P(!q1yBnFp<)bJQ$7yYf(&iIla27FQ=~$V fYyga8uw?*MW{YD26OWDn3jhEBNkvXXu0mjf+TxqE literal 1530 zcmbVMdrT8|9KV(~;$Q>ip_%82B20RZzAto0dj%RPBTy!8ZtHP9=vmr3uLmtoCtyUk zCC+4|S>}RlZiyyLQMYAI7%vABATH<})9C~@GmK!!V2CevMe6p4@sC|{x!?DDpU?OG z{k>a|pR+VFDG~sHrKVh>Q2ZwP-|$cXker_Udd4pZ#uA~3EfYK>PXk#twv+}z(=iwCVl#zan%x@bqfh1%huv^FU7WiZ2wiw2yuK!RRph0Be5b;7T=)py1*IiQafy z8D2+|Hy2N4JTBD9Fu2h zPy$0#8Wh!JsfcW&8q*r}C?Q9YfQ_edvr!EuR$i{vYm6vr#IgvzLT@l&2DQqFD7ESU z*W_{wq>G{hei_m4A{Tom7dP-UDX_eSWh(*`P+(^T)@^4w&`_k5p`e+h7?)q;Z_wj> z37TiBXj?YVI>Chsd%s=3{%C&p{%_`I?yv03YsDqf@NOqpUR&HWE*%FpeY?KQx=oT8 za%yUN{NnuTt@~g9=-{$t@$qA`v2Sjc1jpn@?5qjtDcN;qV*V%f+bwBB%eRw2U+tdQ zKJ^Xj4`J5MsICp?*SUsUYDcEVdZTNq(&J$Oi+n2@+SRiBd+ zHqe++jZGGO_s&E7lU*~nigT|FUGDi(qU)KRyw>01ysG-u6s+CSVNXd(iOcLz0%LUr z89$~nKybpARG+2e+{Un)7gjW#n>_N`0GQI$jZ6rTDKx}!8Rc3y`G&Tw2iAKy*fc8cnKt|fZz?%j^>rE?$uIS{_7Yc%6MoAE(E iJllCJRu>U{cx5zTe-$1*F?k@~e;b>O`NVO(weBC^f+X$$ diff --git a/pandora_console/images/extensions.png b/pandora_console/images/extensions.png old mode 100644 new mode 100755 index 92f4796ce887bb0273b91beb46750cf2a9ae7e50..bf408cc821c9f803a6c471d8227e09adc2c3a474 GIT binary patch delta 327 zcmV-N0l5C@3F87GiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*pza zL_t(|+G1cp2mk;7Zvf)|Ovr)&0feFCKa7o{3?P7DvH>7NpzQm|s@5Z^Q((Xc00M}x z?J$}NNIRe_U?NI85cFeJ1Q0;vy9^5UBZUAQAS-l05^um_z<=z4%fKLy?p<6?0okB{ z#utF`0Ro7I2x!fDWZ%LP6ewMQfA}m=!S_H)0Hy#)9Y8W;Jy1-L0ay4TnFtO(CSsjN zv_cka;R&Q3pb1~Va1S;><-`##SIIO3?v8fDKUu^lQR@OwfR<96|#HxRN?Ha37iz zK{x@Ap{Qw-09eS#$k;%nXAOXO0~0NRk%`ukBml~y|M7zc0%59v%kTy?9m9!<{eGG! ZO#n=Bt!2uG*ZTkf002ovPDHLkV1iP9e82zz literal 1257 zcmaJ>ZD<>19KYkbm~P9Oxj8na^zjxXz9e^-HCc1!OwwGkMs_8nVFvca>)n&)+TM$I z*ClNQ(+<{7>c+-g_d&7D7Q&Fh#1CT@-9*+ZScW3LprGu_z_%~X7TOx`x~B7k@!+`U z|L6Dn{a>Fuo#{T}+Wz=<1VLQsE;eg@_uH@2fgtF#=29%2oi~wHC`BiCg_EIlEUDBeE2aA zB$2^i3UVZ;C16qN8qs0TNOw*c84$uE9(@5s%CsdQLz4$(c~CLvGJ|jE($?8_6FAs_ zm;(&{AgMf;0SQ%yAm}H30vVz}sNGMsli~L8b09!cBtZoT^01F0>EL0Sq`>BbThVl} zKxf(1W-QBM@S3I|4@!`=Em_6bY?IY6qReXqOhYBf2b^Pp$#(&ALjd?!bWab zgG3e@>X0s2gDV`gLuqtEhrFrkIaM93cQI2`P1Pu>8c6g6{S@GMK~ikb27}}1v|^aN zBEU4u;FgA8l0-V#(b*9vS+b)&K~hvQ5DrnHL_C!UcXX!W$z*4p%c{bV3>CA^6(4e` zhFp6YWX+1qLR~rm#gwkfV54YSYM4tR*-&qjD>lp}k!r{#tYip#wEr4)-DT~MecW1H z%h+0ds95{1TZ{em+h?Y&yLCLx#&hNGd)I2UD7KRvpR8qeKjrWs?%34g=a=>$xb@8P z$=tj5P$$?67ZEX!?5$1o*IEj9zeL@!@*AJ{$Hd=9Jt1t*ooZ9{@(%Bbnd`02nZeXs z7qKRHck}$2aUOJ4=>F*WZ(sB7yLo554gE{ljXghodW@}Hz2%;`(K3};KKH9sL2%}R z_dX^e_vV*t=YDXCbnK+TTsV7qC89?vkM23|aFelbDwC~8pZGiR-A`h(ehRy`R6uV} zfK#iJJLg=*rGZ$_DstTW+rrNij!VxL+rC23)cdYKxfefOsl>8Pa1@)3l+d$l*vuN{ z3C}woSzBmYy;e1D&g~M>kMIJsk3y?s;JwPi-Cc`Mzq9R19{F*#I(xegz01WEBp09P|Ka+5@;kP`Ka;v;S~6 z;IkjueN0#+3Xy~qG29F^(Ev!Df5#V!AcFt`i1;9fnyLV#6!4gM06Fe20PzPb>Oev1 z$bzKH5LfadDyU$ojEPv!kgX8eosP)i$AT6N7myPVws0hrw+xAn8Grzz2|`Zz3ebck zK&Dxs6krI-AjpBF05$LeuGq(ufk2KifSQ3~D6);j1Tu0q_&`05aqPC&|k2N=o04ii{ U=MBd+M*si-07*qoM6N<$f}awKfB*mh literal 1542 zcmbVMeM}Q)7=N!VwgOcY#34h^t8VCM@1sY*Lh08PTeQfqvP#^-(H^uyd*ymaC8$N` zHeJmy8kSAA6=w)@iy!REY|8}a65S?on^}h0SD0>NCL6GksnNMBP`5vbf9#UWz0Y&M z-}C*vdn+r}$kUgk0|4Ys2UR6}^OCP@4gk=bzr8(~6nMLb-@w-Mtu)5~i;t~iU}unS zV5%6}x2^dCQv!h4A8>nkk87R5%LY|+5~GR+!vY(C5>qrxdm9-Zu45VkAtUnp`)3e1 z;4>nR6}vE3*v9w+jy8_j&{pC0wl#Y7KEzZCmqZPMfgr=va5UHyiWs6sWXi5VI49L8 z0#8BsMk6vEl*d&G+gOf)i&dD?i)nCJL#l8R)06rln80uh#R(MCDsjwEtTkXbJo6xe zH_lgYsG`bdd9Fzj;OGaQP{6iO%=8l}T1uENk@FqzjBI>J{m|AsLu zI^y0IX3#1o!nSZ;p&#{%6j`X<{T(HNLNtc;TtH|F-9)k8mLL=2os(%;S_;sbU3cFXs9x~meAX+IHkt1l#SWA7Mq&VSZsDXp|#?;U9A(kpf6V2Z5U-& z6LwvS>kLJBI^<#mkfo^aVHUBZs5dobw^CuqKcQE!^ zI<|=SmalT;jhRSO$AGP<+%mWo__6cvjwim^fArJ3SML zA`g)F-=sE)_+jZ=CGEhi6pe59kDq~RZguqcDK4MQI6qln&&$|y3S9m|TKUSiPuHAx qgnm6MHGfDBFuIkc^aF=JP6y956pk)=?bFlAo7rivppIK>cl`r|E&=cW diff --git a/pandora_console/images/network.png b/pandora_console/images/network.png old mode 100644 new mode 100755 index 30707e06ef16a5ef1e469eae76806fc3377f4062..6e8f0f5b291c9c9bf0e955a2247682c88e7c4459 GIT binary patch delta 376 zcmV-;0f+vB43q;QiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rd0 zL_t(|+G1cp2ln>%|1kss0tiFNewZ>Q5OMI}K}HY_5I~Gb1{{DY763{bvOqZ?K?h_V zH~~NaVMUBUvq9SHk;EKeW;-COWWuJM1>I(xegz01WEBp09P|Ka+5@;kP`Ka;v;S~6 z;IkjueN0#+3Xy~qG29F^(Ev!Df5#V!AcFt`i1;9fnyLV#6!4gM06Fe20PzPb>Oev1 z$bzKH5LfadDyU$ojEPv!kgX8eosP)i$AT6N7myPVws0hrw+xAn8Gry|VxR$FK?-jL zXhISo(=1R5Fa%`~QEp-QnSU92C=dhMNZk@k+eLkiBU z)kRSmL1&zfEvXuH>Y_M@a~~?iZB9*yQxlDuW^?W%bDPef+d zvp$w)S{l!?l>lh!Ie$P7cxo(RKBA>l7;P*fC~N>K=f(s&yn>Zsh+WP_t;n5^Pa%+F ztjI!x2lEI{ww|kQ71_GhT7S58McB+BbLYUym_;!VVPzV|A`MZ=60;)1b}h;|rA84r z43Sq@kw-xVJYMMJMHU*gSXme|;?Stq;(E-iH$M*v498HMK(X>N9J3h8Ef@|*9z^jb zGRrJJ(lz2sk*r9)EDIJCZEkMXHtV#!xE#gJW;2QrC_$7dh%%`qD$}vDs8o`+K(bO; z5jR^pq)u+ooZC26u!yQe!!0hMSh3q($73f(~R;id>1mEEKjQT}Kdj&z)2mBrENTkiPG@jXM7aUSDV<5_g4v*>oES;z2+EY^ zx}%azN5gE|FQ@n&;o6_dwKzqVmU+?7^9|_<@YeG(FV*t`bk-TPIP}nAE}GJ$8uTb% zk`=j?EaMXS2pq1kg?my2xCz7Yay?c)lDWxgbYZxibm~on2{RxgT;~5&4ON0cQ{(ZU zaY?I`8B84?55FQjULQ89?2M=^#}#S8p8%+FH);3Bu7w^94b9aML3Mt6dwWh#MdX>U z)rN|OqWEQX_l%DU2lO{;^ecZ!G*sQ{4)uj9 zN_Q37GC8EpYoiK+3806nZ4U%4>($RQt4m7neXltJ*6mAd&Jx$CN-qYv!mJ{D{>Itk zp9|K;UE5TZy9w;w%qbl=XC&S0E>xdipPkrJHRtl8*xEtO<$+f3G;mFrc3_84X{(bE z@3*R5C1VT64a_eBs@B=Nr)DHz+q{s&k-Xdg=Iy~l_LIBLPZk=n!j@0|^1uJuZ%g|=oNSu2>H_oK)vG6* zmtH?Mqp+g$+@$^`?0S2B)sNegTzqfG>U`h8zSSR`59kkZMKdB_o5^ABjF6Z-%F diff --git a/pandora_console/images/op_alerts.png b/pandora_console/images/op_alerts.png index f74aae6b82d7734db4b154230280cda9ddbf265c..6ab2f2cbc4bfa8d8e4dfe201664c89a05c2ade4b 100755 GIT binary patch delta 285 zcmV+&0pk9x1Ka|TNPhtSNkl);y(}osShkr!9pOu01!Y77yzn_feA=E z0O>{$2OxluW#7Y8APYMDM*`(OnJk1`se|)5Qo>qyVHr806*yIL!wL zAY7KN2VwzYT!s!DuqkxFq4+;G#pnOy1_HR85`fD@fB>Q>=zkSJAwft{1Hq`q6#^*9 z5j}EI;u8qKX^;pvI}oK12p%Bo62KGa`;ikLa{MB*4`7&zC86vmD)!rtEgKZs_53O0fWfB-^8KqUq+WlTUE z08<7KK*%co!&Jajfdn0p6<{?N#s&x=tO({n0U-4rh%X#Gc+ijuD)}Bt8^A5Z&<@lZ z08@d@_5>IkAb^;0D0r`+pm6iy!-qF8T!q(T3=9i^E=@#n7=N;LXdnS4*q|UESD-+{ z1JxN&iTOyTDFU7F044_zK;$E6BIk z1bSfu$%Xz0>lE4NPht4NklauKQ5Fi= zLW1Z}Ko5ZcByJ-;2fQ#(kBf9Enl*0qBAQWJd%* zfDH@+hQa#(xPbyW1`6OX>^;8JODHoJU=e!&#EQT`|A0#qBLSDb2U6%RngGNfK?wK)P8K@00BfaVk8jp8-O0XfJ@BEr z<$fR(OE86s#6;%on1UW$wT@0JTL~NP?0*oezk;r^sk3(7!=%ok5c!>d5cTR diff --git a/pandora_console/images/op_gis.png b/pandora_console/images/op_gis.png index 2e83d429ad820814172a670545308acb91877426..affca8ea7386409c6047c002561593a57b36682b 100755 GIT binary patch delta 271 zcmV+q0r38*1I_}FNPhtENkl);y)0;MPM9&076Cop#Vb}KmcK=00IMK z!2~1;ECwS1fB?dcfI8nJ8-d|!Mj&9qrjrRK3*{%`v;!c37_nFi@<;&Gga%wLEBKEC zV3>?A1YmAtLKFCaMXeyAzyg5;ba8+HA{t=}37GFU09|zfn}3xCSOVZZ&SZoIB#;zT zOvHMI7=?-GZd4%3GbAT)m}0VH1|Y!bi=Y9qA5Wx#hyVZp00>D%PDHLkV1n1wYGeQa delta 362 zcmV-w0hRvF0;vO#NPhuKNkl)!rtEgKU@UH0SF*e1QNxn3?P6QvFN*S z@Zdp1CaBW>f;{p=CxPRQ70Ho%_0t#6UAb>~< zawHQSfYg2{cLUJWKy0CK9$WOnoB)eNkni8)uoVSGvjC3P|Y$i)k=r6dIkf-)X!)Pr&?1%@t!F_@7>A3l6|LqS2|BarDq zMwm_@Cid?WD6qiU7L?+F20kE|q=<|-lya76Lva`mk7Zl{0OgW)Ou6@(ApigX07*qo IM6N<$f>)%98~^|S diff --git a/pandora_console/images/op_inventory.png b/pandora_console/images/op_inventory.png index 2ed99dcac6bf3ba79dfd4f1b59c212a1bf5928bd..e108cc444a70e0923582db437d8762fc108c0b0c 100755 GIT binary patch delta 376 zcmV-;0f+wO1Goc_Nq<^NL_t(|+G1cp2mk;7@5c}X2p|k4`+@j9h|L5d7#SG_K{P-B z!DZ34FrjH*&p-$O1Q2luXp{pJ5+?wkdmWGk1Yp{+>Hr8JMq~?cSq}8|0StT4_yR!u zAK4%#ERIV6X#|?~0f-rK1{)O22Vw(|CVXxNMa=~q&Ta&`8-E~xhz?=WLIS9$0bi=Y zHe@rEZX;r@pJ0jwrMbA$pAJHTQH8mp)# z0_6&U)IyZ(fM((c6YC?pRs5&?kf43XFe2;~iY zJ^|&K^U&NFk8w*K3jsqw>7W3JA3%Kpq62}ByMRw0UYCN>4Ags$P@jU5?FDFh2LS_; z4Fzf{02u%@=mDD7`Jt9vAldssO%p&t05ymxuM-tfupoeWoupz3sW>knGnr3-6%znB W9tli|&FvHb0000h)L_t(|+G1cp2ln>%^FcHdls^$f00a<*k_I6D4_9{Z;6X+Z z4G=(ZS#&K-Xxa;4Y(}Vn0gw`a2?C8f01!Y7L;;}A{VYhF03dY$#X_K28-Ub%6hV*^ zVQz-GzyaBIfB<5|=NTk$0ct#U#X!CQESx|t1<@=x!aD$Hl7Aq~Iaq@Y3KD?$0Z`L< zbO{WTQDOxR00a=x2swfRa47=X)WCr3OB`|4fYqHy3f2Rui?|ZadT4lp;_?IBN-QQO zLL)p7C3esi0wq5nc@Pv!fmjtnB@2PLABYWs8ZSUY1j9r|P|RQpcqS}iW{5Mu(bFUv z0Qvp`K!7nZ(0>4+dmI#-3ZN86qB&qaKvz2Ait&ZW5r`*6I6w`008KvjIFma8gFw** z%4i_^0&-mA%|mF0oQE3l0O~~$Xv7thL>UUx3^Y6eTA*A&^7?wH1rtbhX#g~tEP!U3 z`Ou;Rl;ji9^93nk3eJU4Hpmb`Xg(s_`x~GJk)KYXF&|nFbXh$aX&!Dl09Uh{q&-3} Qu>b%707*qoM6N<$g6B$|q5uE@ diff --git a/pandora_console/images/op_monitoring.png b/pandora_console/images/op_monitoring.png index 243e4638600181b83412c1aca71c8eb47c75fa2d..f964c68fb21756bc656a82b384361842b7fbf66d 100755 GIT binary patch delta 370 zcmV-&0ge8z1hNB=Nq1 zV893jSnU7^Ae^BB@(>U!;By%aD4_8JkQMGnk}yDGzef&STz@A2M>8M+n^Qp6-^Zm0 zAb`jY`UE65_7e()^Js1sKvsn8HV0&%BPT6*q(Xr|5I3UPCV(r5V37~A$pNNtK2*{G zDJ%=1PH@2GMhpN>LCC(w5o&_KRQ3Tqi29KXT2EGF00bEQ5Hz_mripu{pB!?1w{ zw7h^0*5fiT0BeVa_fX3kkg_i}a2}hX`*A2PKuXvS1cJi>IUU15A`lxQ6@U+*Yy&7C zr0D>Z9SBu>fKZ+!1_(f1j}GpW8m@%Ed18`O0eYUt0rnG2QbZ&-1!B|!0FFB|v8}16 QIRF3v07*qoM6N<$f}zZkwg3PC delta 496 zcmVO55J!@+|G1zBJmAP$7GA7C@r0mcRhAgl;xKFH<;K%4+Hn~@19upX+w z0H%NiNf$`45hRYR9R>=q+71vvj98r30HUDWM4-hFFcc#j4S#YOnpFpYVvbB$+>i+6 zUqBLbKn~mqND}j*bR#r48L+w;%?21~1Udoa4+ek$A{wEas(|E#jX={TU<-x!*wYPz zAyC5wSO}a)Qq+j%`}63r4L1RZK~7kYB({JFi&gzt#1dGLOqmb0-T}!OprjcO;3lo?@jE4^&9#BwF09j{&t{RkJu*Lu=U1G}_00Bl5#E8QM z3eX@8AfO+VD+_^M!J9Hcp|~GQ5;*{kg7-KK{{T%w575(F0#c&HNOMqE^8;}K9+x`; z4L-nxC8ME(4NwE?fp{W;;Fyn5L_!O`59k>aY9I*YqiN;%325p;alwFGz&Rpih(IL8 z^+;+!URQ*M`9Y}59w7PP0=l6OkRoV39xtwkx+nq3b@fn3DB>zh=Obw#7AycpP$J%R mid2f{<4LOvpamgD1q1-GREnJAJ+7kw0000vas%A;Kp;R+J64MT0tj1(tcQ6Bh!v3Kn2hqLBX9{stspQoKEM(dC}CWH#sDbpK7bSe@d6-z&wv)DFyA`>aRItGBatb}5toSx z$l}l#1Pg$Cx*jS1&qLV-C{`2WYxHnzK(cNp(^5I|TFBf9NCvl$tI0{4OJKp;L3#DYNl9^@lkWOgg*#Px~0W4w| zq3+s`WYPg>0)G&I(qM5Ws3Z(D0&yW!aU+uW116|-4A5ws0JY8lYIP!1ZXzR6;wXSR zJ^_~UVNL+2Ql#LSkE93&J^&R7;>wH;$Y~P>00N9Ah!KYiK%NKrk&r7u0o4ff$_GMe zXg_)&;V|$3lBM7T05hBk$-o9A13?N5p@FH06t5tI6n~NOkRUWIfPD5IXodoEX(oV_ z%E4t7P;5Ok<2`_7NC+2F4glo?pm`42C-afZ2M3Hok4yma1rwBU09zzLy~&7F+BPDI z1!B>&0VPb4G{TCFLZp=54;A+ZC1y}?0p&M9vob8^9{|MyvBkasG#Cs>^mQTD(gs^@ q0aE!u93g;3`UBLfjmQN!3;+O(n$sg5#^*Kw0000);{X5u1t6LQD)<42Hvj|>0}22t>4zy} z0%8HEG6sMEf*Fv2q&T0Ek^bRh#i01!a9(SHa~01;pp0O|EmxdfO3CNxb4 z(6u`N@q3(h00a=ag#tjlAFA^{NH;#0&4^V9IZ_w^0*LIOFZhoD^O5D4kV63!??9Xg^&~80 z1dvU-j}%nMAORM!$YBce#D1u!&Le41fQ2c@JrALg4GY%;&{P2nW4MX$(M&c#5;uS; zga!6{WCvp85`SP+2|^`6)@_6(bdc#lIYn&Yi0t$8WJLx*fL^NL20#!7>IRO$D2~Dg z#tm>1M{opn0!Ls4Mvx}0IWM5TZ1~Vnpx3+mZwb>F1YjY?a+@+!11=M=7PXei{G%Y+ zQD-TSueINKm|akC4^U&T`3OIa&_OI+YI;Y;uLXJYnOhlZdvsDXK#W9rbKLY)hnSj^ z4vM9OP}u3-aFl(Q3E8SNchgBuZEs=^MA|@D`b#$-DHST(kCc-^I<9X&KH{|Prr09I Y35yMZg-tpuWdHyG07*qoM6N<$f;URV9smFU delta 616 zcmV-u0+;=u1f>O#NPhxHNkl)!rtEgJdoPR0u@{c#0vld2w4>aGf>HW z1qFqV4@je_+4|00Iar zf|>sxNErh0d7#;hOhADEsCfY}1t1FzfEeTwdmw&*u6+WC4S&>Lh}9y10AfTJ0O~4$ z`VwSRAyDTB48>5R6M=X>G*}#vJUS7mseuKma6OQ6gem~h3Lxh|6@wftkIm!@NTz`_ z210ECg@Ym^ntMTEu^#GPkm(md5do722q4me9LZDxXe@$ETnIFA0k%*$4-NfBAl?8C z4G>=t6l|~%Xn%m30`gEjG@1;c!S^0yATvlIFr9%?QYR2=KuvrJ4WbN?=YaALVM+A> zETEwZz%d04DsW`5AcY+RQtVuST3Zhd_=m9c`T!a$3{Vq6;65nPK~qlydJIi~dJ3fR zArR+-Vg@7+vl^s}5h;jZvExW`%m4(ar3`Nngn=kroPPi}VFO1XPJrD2M_>Zkz_-=;_*d# z+?6CB31JR4o7hJ&o`V82-YDN!plL*(;HhJ^4DT7CJk>pg+jFkjZG<>3)WT`l^wKbM zc>KjuSF&~jcw^rPuw&l#A3--iFu_VuJj_7xUCaxIgSQ_dh7@f80000i diff --git a/pandora_console/images/op_reporting.png b/pandora_console/images/op_reporting.png index 510b316351ab84339f8b4ce24f7e5ad0f92ceabb..8929df8db46b4175203a160465f4eb82d34d3a20 100755 GIT binary patch delta 281 zcmV+!0p|Yb0@wnONPhtONklqq z(D_W*6tZA*8Vj1D3qbqTK81Z--hFJoTiYK6~AE<63Fv1qF5NSCmw>#iVq|oABfnx7NQ~Uv9GTnY0 vF8u&4l^u{=Mj|-z6DV^Xh){X}RB!?S_Ul(FtsRoA00000NkvXXu0mjfG!b?* diff --git a/pandora_console/images/op_satellite.png b/pandora_console/images/op_satellite.png index 90e3eb1f77f2e437b3177c6a7f2f9e7496a3f352..4912a499985aa9d5f1e881fe317a7eaf343cc608 100755 GIT binary patch delta 319 zcmV-F0l@y$1OEb$Nq-?pL_t(|+G1cp0*oNyKM(*ZK?Woa13&;_BA~>43_*YZLRXQ1 zP4GW%Ly-VL0O2)P0f_el@p%xR1uA|Yh!cVM1BwffEo4IRED+$d10aBKSquXG#3%yU zyB>%gKpKGfK0d`T@Sa#FfPe!bh3D~wH9!DS6#N1p4}qcqS$~`fhx!LVEPyq&fCORg zgSz)TR*xZv5tMHLat1c57a(f_QVPIm{yqb_3^>TM02+4Kz%|3NepvLHYJFVeU`&kpnA00000NkvXXu0mjfmMNvx diff --git a/pandora_console/images/op_snmp.png b/pandora_console/images/op_snmp.png index ba427d0759d265766c27cb6079e14eb4eba795a4..b43951c9fd4f61b2114ce248c27bdc56b96ad170 100755 GIT binary patch delta 244 zcmV^aTa1z5eu3x_hT{95u1sQ^ldls1FqPC0!5+&93a4G zi-4{a0OI@q$p;|40_cW15b!@CNBxIoFcy4@h)S?PfH&R=DJC^zVsmK&kuGhZOIgN3 uiVKJZOxThZImr>Dv_X?JAgkCyDpvrqsh!b9?V8L00000}c8Nq_1|L_t(|+G1cJ3IGHUkq97wsE7ap2s^U3w{Jk>?`OiMka$6? z03d)Ep@s_psr7i&JveyqU?R-e0wBi`n<}Wd0%>jl0v0rWBQb6USu-Dxx(`6-1OfyQ z$ssWx<^dca5FQ@{;?IEviDLky`f&so!uLRd3qZ<|U@+0dM1N2kFu-Es0dx~T0I36n zO#DC~hysa@8Grzz31URcY571rkxa8ddILcLg`SKr00kS!%>MSc@&*G^@=qYfFl>%s zqD7dp;IRDxkZPc+p`h#qr1lf(eMVwkdH^|PQ0h_z^g^5jU_jHv4*;Q(OME=nV~hX* O002ovPDHLkU;%>7xo9x} diff --git a/pandora_console/images/op_workspace.png b/pandora_console/images/op_workspace.png index e6704cbaf2c34d99cda7daf7b97f2d6c52396623..7a383a168746fc9a37ba575819091625b4011f32 100755 GIT binary patch delta 289 zcmV++0p9+;1K|RYNq+-LL_t(|+G1cp2mk;7KM$fAp`8CfDiI)n7_cb=$uKY>3jzcX ziY!b8R#h-tZ~}k;!jGWFCt!6Fy6YhVK)^(_`2Ycg%hCoQb|BVuFfbpV!uL=t0P+r0 zg8(t6!oYi6iUsgF10aAX3WWerNDxw#fNVFi9C|F+lN#$Fuz#MAuM?o`_gI4nl>D#- zCQ9-_PeRB5l$_8#lSqn3)}z@hKypL?1Q;{JKmbre!V+-vDKT*Uf7}3PIwO>sH{y|d zK#nU7fOtQYPJpu4L)maSQVSDe0Y)$|;>sYT_zISa3AuDX2`*hvN)YTP*FZ)h3%2_TvY%AXG+00M{so3iuB$_zjRKmZ}j z{s&WifXM*_5Je#Y zGgT01;s;zFTaRS*dqTm56`(7e2#Z`Gz#aiWYa5`E4f5#(5F0revY>?_Ea4guvYIG2 zI%1K3fT0i=W(R;&Ad;d5KruyFmQ7zyM$2UuQ00~df^FeJ;R3JMDIk&+5B zkO0atK79D_0CzE|g8@rwVZae16NpW6=*1lImY~DUt;WNI`M| cxwygx0IM!zA?I2)&j0`b07*qoM6N<$f=J_!9smFU diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index 56b90d73f9..1940d8ec3a 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -816,8 +816,8 @@ function html_print_extended_select_for_cron ($hour = '*', $minute = '*', $mday # Print selectors $table->id = 'cron'; - $table->width = '98%'; - $table->class = 'databox_color'; + $table->width = '100%'; + $table->class = 'databox data'; $table->head[0] = __('Hour'); $table->head[1] = __('Minute'); $table->head[2] = __('Month day'); diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 5a9e852b93..15f3ec2b6b 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -2397,7 +2397,7 @@ function ui_print_page_header ($title, $icon = "", $return = false, $help = "", $buffer .= '' . ui_print_truncate_text($title, 38); if ($help != "") - $buffer .= "
    " . + $buffer .= "
    " . ui_print_help_icon ($help, true, '', 'images/help_w.png') . "
    "; $buffer .= '
    '; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index c2088582d6..9bbeb2d72c 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -914,21 +914,6 @@ td.datos_id { color: #1a313a; } -tr.rowPair { - background-color: #efefef; -} -tr.rowOdd { - background-color: #f2f2f2; -} - -tr.rowPair:hover { - background-color: #E0E0E0; -} - -tr.rowOdd:hover { - background-color: #E0E0E0 -} - tr.disabled_row_user * { color: grey; } @@ -1350,7 +1335,7 @@ table.databox { } .databox th { - padding: 10px 8px; + padding: 5px 7px; color: #fff; } @@ -2867,7 +2852,7 @@ table#policy_modules td * { } .databox.data td{ - padding-left: 10px; + padding-left: 5px; border: 1px solid #E2E2E2; } diff --git a/pandora_console/operation/agentes/alerts_status.functions.php b/pandora_console/operation/agentes/alerts_status.functions.php index a8f89fd54a..7d1ae0306f 100755 --- a/pandora_console/operation/agentes/alerts_status.functions.php +++ b/pandora_console/operation/agentes/alerts_status.functions.php @@ -40,6 +40,7 @@ function printFormFilterAlert($id_group, $filter, $free_search, $url, $filter_st require_once ($config['homedir'] . "/include/functions_tags.php"); $table->width = '100%'; + $table->class = 'databox filters'; if(defined('METACONSOLE')){ $table->class = 'databox_filters'; $table->width = '96%'; @@ -48,6 +49,11 @@ function printFormFilterAlert($id_group, $filter, $free_search, $url, $filter_st } $table->data = array (); $table->style = array (); + $table->style[0] = 'font-weight: bold;'; + $table->style[1] = 'font-weight: bold;'; + $table->style[2] = 'font-weight: bold;'; + $table->style[3] = 'font-weight: bold;'; + $table->style[4] = 'font-weight: bold;'; if(defined('METACONSOLE')){ $table->style[0] = 'vertical-align:middle; font-weight: bold;'; $table->style[1] = 'vertical-align:middle; font-weight: bold;'; diff --git a/pandora_console/operation/agentes/alerts_status.php b/pandora_console/operation/agentes/alerts_status.php index 200e82e9f3..cbf1b1b781 100755 --- a/pandora_console/operation/agentes/alerts_status.php +++ b/pandora_console/operation/agentes/alerts_status.php @@ -383,7 +383,7 @@ if ($print_agent) { } $table->width = '100%'; -$table->class = "databox"; +$table->class = "databox data"; if(defined('METACONSOLE')){ $table->cellpadding = '0'; $table->cellspacing = '0'; diff --git a/pandora_console/operation/agentes/status_monitor.php b/pandora_console/operation/agentes/status_monitor.php index b14acede5e..c381460d9c 100644 --- a/pandora_console/operation/agentes/status_monitor.php +++ b/pandora_console/operation/agentes/status_monitor.php @@ -97,8 +97,9 @@ if (!defined('METACONSOLE')){ $sortField . '&sort=' . $sort .'&pure=' . $config['pure'] . $ag_custom_fields_params . '">'; //echo ''; $table->width = "100%"; - $table->cellspacing = 4; - $table->cellpadding = 4; + $table->cellspacing = 0; + $table->cellpadding = 0; + $table->class = "databox filters"; }else{ $filters = 'style[4] = 'vertical-align:middle; font-weight: bold;'; } else{ - $table->style[0] = 'vertical-align:middle;'; - $table->style[1] = 'vertical-align:middle;'; - $table->style[2] = 'vertical-align:middle;'; - $table->style[3] = 'vertical-align:middle;'; - $table->style[4] = 'vertical-align:middle;'; + $table->style[0] = 'font-weight: bold;'; + $table->style[1] = 'font-weight: bold;'; + $table->style[2] = 'font-weight: bold;'; + $table->style[3] = 'font-weight: bold;'; + $table->style[4] = 'font-weight: bold;'; } $table->data[0][0] = __('Group'); @@ -501,8 +502,8 @@ if(!defined('METACONSOLE')){ } $table_custom_fields = new stdClass(); -$table_custom_fields->class = 'databox'; -$table_custom_fields->width = '99%'; +$table_custom_fields->class = 'filters'; +$table_custom_fields->width = '100%'; if(defined('METACONSOLE')){ $table_custom_fields->width = '100%'; $table_custom_fields->class = 'filters'; @@ -924,10 +925,10 @@ if (($config['dbtype'] == 'oracle') && ($result !== false)) { } } -$table->cellpadding = 4; -$table->cellspacing = 4; -$table->width = "98%"; -$table->class = "databox"; +$table->cellpadding = 0; +$table->cellspacing = 0; +$table->width = "100%"; +$table->class = "databox data"; if(defined('METACONSOLE')){ $table->width = "100%"; $table->cellpadding = '0'; @@ -1002,7 +1003,7 @@ if (! defined ('METACONSOLE')) { } if (! defined ('METACONSOLE')) - $table->align[10] = "right"; + $table->align[10] = "left"; $rowPair = true; $iterator = 0; @@ -1213,7 +1214,6 @@ foreach ($result as $row) { } if ($row['history_data'] == 1 && $acl_graphs) { - $graph_type = return_graphtype ($row["module_type"]); $url = ui_get_full_url("operation/agentes/stat_win.php", false, false, false); @@ -1247,7 +1247,11 @@ foreach ($result as $row) { $row['server_name'] . "\", 0, " . SECONDS_1DAY . ")'>" . html_print_image ("images/binary.png", true, array ("border" => "0", "alt" => "")) . ""; - + + $data[7] .= ""; } $data[8] = ui_print_module_warn_value($row['max_warning'], @@ -1414,7 +1418,8 @@ ui_require_javascript_file('pandora_modules'); period = ; } } - + valor = $("hidden_name_module_"+module_id); + console.log(valor); $.ajax({ type: "POST", url: "", From 488c4976b01873d4e29bfaea71ce9f1ce55b0f69 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Fri, 10 Apr 2015 12:34:19 +0200 Subject: [PATCH 056/191] ACL fixes --- .../reporting/visual_console_builder.data.php | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/pandora_console/godmode/reporting/visual_console_builder.data.php b/pandora_console/godmode/reporting/visual_console_builder.data.php index c59ab17934..f3bf4a0399 100644 --- a/pandora_console/godmode/reporting/visual_console_builder.data.php +++ b/pandora_console/godmode/reporting/visual_console_builder.data.php @@ -17,21 +17,24 @@ global $config; check_login (); -// Visual console required -if (empty($visualConsole)) { - db_pandora_audit("ACL Violation", - "Trying to access report builder"); - require ("general/noaccess.php"); - exit; +if (empty($idVisualConsole)) { + // ACL for the a new visual console + // if (!isset($vconsole_read)) + // $vconsole_read = check_acl ($config['id_user'], 0, "VR"); + if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], 0, "VW"); + if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], 0, "VM"); +} +else { + // ACL for the existing visual console + // if (!isset($vconsole_read)) + // $vconsole_read = check_acl ($config['id_user'], $idGroup, "VR"); + if (!isset($vconsole_write)) + $vconsole_write = check_acl ($config['id_user'], $idGroup, "VW"); + if (!isset($vconsole_manage)) + $vconsole_manage = check_acl ($config['id_user'], $idGroup, "VM"); } - -// ACL for the existing visual console -// if (!isset($vconsole_read)) -// $vconsole_read = check_acl ($config['id_user'], $visualConsole['id_group'], "VR"); -if (!isset($vconsole_write)) - $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); -if (!isset($vconsole_manage)) - $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); if (!$vconsole_write && !$vconsole_manage) { db_pandora_audit("ACL Violation", From 10c94d51d9c72551cde4bb5b590cf4f15e905db0 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Fri, 10 Apr 2015 12:34:42 +0200 Subject: [PATCH 057/191] Error fixes --- .../godmode/reporting/map_builder.php | 2 +- .../reporting/visual_console_builder.php | 35 +++++++++---------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/pandora_console/godmode/reporting/map_builder.php b/pandora_console/godmode/reporting/map_builder.php index 8b7fdb26d6..c1b8d5eaa0 100644 --- a/pandora_console/godmode/reporting/map_builder.php +++ b/pandora_console/godmode/reporting/map_builder.php @@ -260,7 +260,7 @@ if ($vconsoles_write || $vconsoles_manage) { if (!defined('METACONSOLE')) echo ''; else { - echo ''; + echo ''; } html_print_input_hidden ('edit_layout', 1); html_print_submit_button (__('Create'), '', false, 'class="sub next"'); diff --git a/pandora_console/godmode/reporting/visual_console_builder.php b/pandora_console/godmode/reporting/visual_console_builder.php index 449ba31136..f3ab691db0 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.php +++ b/pandora_console/godmode/reporting/visual_console_builder.php @@ -26,8 +26,21 @@ enterprise_include_once('include/functions_visual_map.php'); set_unless_defined ($idVisualConsole, 0); // Set default $idVisualConsole = get_parameter('id_visual_console', $idVisualConsole); +if (!defined('METACONSOLE')) { + $action_name_parameter = 'action'; +} +else { + $action_name_parameter = 'action2'; +} + +$action = get_parameterBetweenListValues($action_name_parameter, + array('new', 'save', 'edit', 'update', 'delete', 'multiple_delete'), + 'new'); + +$activeTab = get_parameterBetweenListValues('tab', array('data', 'list_elements', 'wizard', 'wizard_services', 'editor'), 'data'); + // Visual console creation tab and actions -if ($activeTab == "data" && ($action == "new" || $action == "save")) { +if (empty($idVisualConsole)) { $visualConsole = null; // General ACL @@ -35,8 +48,8 @@ if ($activeTab == "data" && ($action == "new" || $action == "save")) { $vconsole_write = check_acl ($config['id_user'], 0, "VW"); $vconsole_manage = check_acl ($config['id_user'], 0, "VM"); } -// Retrieving the visual console data -else if (!empty($idVisualConsole)) { +// The visual console exists +else if ($activeTab != 'data' || ($activeTab == 'data' && $action != 'new')) { // Load the visual console data $visualConsole = db_get_row_filter('tlayout', array('id' => $idVisualConsole)); @@ -57,8 +70,6 @@ else if (!empty($idVisualConsole)) { $vconsole_write = check_acl ($config['id_user'], $visualConsole['id_group'], "VW"); $vconsole_manage = check_acl ($config['id_user'], $visualConsole['id_group'], "VM"); } -// The visual console should exist. -// The only exception is the visual console creation. else { db_pandora_audit("ACL Violation", "Trying to access report builder"); @@ -74,25 +85,11 @@ if (!$vconsole_write && !$vconsole_manage) { exit; } - $pure = (int) get_parameter ('pure', 0); $refr = (int) get_parameter ('refr', $config['vc_refr']); $id_layout = 0; -if (!defined('METACONSOLE')) { - $action_name_parameter = 'action'; -} -else { - $action_name_parameter = 'action2'; -} - -$action = get_parameterBetweenListValues($action_name_parameter, - array('new', 'save', 'edit', 'update', 'delete', 'multiple_delete'), - 'new'); - -$activeTab = get_parameterBetweenListValues('tab', array('data', 'list_elements', 'wizard', 'wizard_services', 'editor'), 'data'); - //Save/Update data in DB global $statusProcessInDB; From a02acad7c4fd037b8478057d22edf8e89bddec88 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Fri, 10 Apr 2015 13:43:02 +0200 Subject: [PATCH 058/191] Change visual of menu and funcionality --- pandora_console/general/main_menu.php | 18 +++++++++--- pandora_console/include/functions_menu.php | 9 +++--- pandora_console/include/styles/menu.css | 32 ++++++++++------------ pandora_console/include/styles/pandora.css | 11 ++++---- 4 files changed, 39 insertions(+), 31 deletions(-) diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index bb40add98d..6b02af10cf 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -216,16 +216,26 @@ $(document).ready( function() { }, 3500); }); */ + handsInMenu = 0; + openTimeMenu = 0; $('#menu').mouseenter(function() { $('div#title_menu').show(); + handsInMenu = 1; + openTimeMenu = new Date().getTime(); $('#menu').css('width', '130px'); $('li.menu_icon').addClass( " no_hidden_menu" ); $('ul.submenu').css('left', '129px'); }).mouseleave(function(){ - $('#menu').css('width', '45px'); - $('li.menu_icon').removeClass( " no_hidden_menu"); - $('ul.submenu').css('left', '44px'); - $('div#title_menu').hide(); + handsInMenu = 0; + setTimeout(function() { + openedMenu = new Date().getTime() - openTimeMenu; + if(openedMenu > 1000 && handsInMenu == 0) { + $('#menu').css('width', '45px'); + $('li.menu_icon').removeClass( " no_hidden_menu"); + $('ul.submenu').css('left', '44px'); + $('div#title_menu').hide(); + } + }, 1500); }); } else{ diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 1bac6043fb..03e0705cc1 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -305,13 +305,12 @@ function menu_print_menu (&$menu) { $link = "index.php?sec=".$subsec2."&sec2=".$key; - //Display if one submenu2 was selected! - if (strpos($key, $sec2) !== false) { - $display = ""; - } - $class = "sub_subMenu"; + if ($key == $sec2) { + $class .= " selected"; + } + // Define submenu2 class to draw tree image if($count_sub2 >= count($sub['sub2'])) { $sub_tree_class = 'submenu_text submenu2_text_last'; diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 2db07ec2fb..bcc0825dd0 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -32,7 +32,7 @@ margin: 0; } .menu li.selected { - background-color: #80BA27 !important; + box-shadow: inset 4px 0 #00AF21; } .menu li a { @@ -43,18 +43,14 @@ text-decoration:none; } -.menu .godmode li { - background-color: #B2B2B2 !important; -} - li:hover ul { display: block; } .submenu_text{ background-repeat: no-repeat !important; - padding: 9px; + padding: 11px; margin-left: 0px; color: #fff; - width: 89%; + width: 86%; } .menu li.subselected a{ @@ -71,8 +67,8 @@ li:hover ul { display: block; } position: absolute; z-index: 999; left: 44px; - min-height: 30px; - height: 30px; + min-height: 35px; + height: 35px; width: 160px; } @@ -83,26 +79,26 @@ li:hover ul { display: block; } } .sub_subMenu{ - min-height: 30px !important; - height: 30px; + min-height: 35px !important; + height: 35px; width: 160px; } .submenu li a { - background-color: #222; - border-style: none; - border-color: #666; + #background-color: #222; + #border-style: none; + #border-color: #666; } .submenu2 li a { - background-color: #222; + #background-color: #222; margin-left: 0px; padding-left: 0px; display:block; } .submenu2 li a:hover { - background-color: #111 !important; + #background-color: #111 !important; } .menu li img.toggle { @@ -116,7 +112,7 @@ li:hover ul { display: block; } z-index: 1; /* Positions it on top of the rest */ } .menu li.has_submenu .flecha{ - background: #222 url(../../images/arrow.png) no-repeat 90% 50% !important; + background: url(../../images/arrow.png) no-repeat 90% 50% !important; z-index: 1; /* Positions it on top of the rest */ } @@ -134,6 +130,7 @@ li:hover ul { display: block; } .submenu_selected { margin-bottom: 0px !important; + box-shadow: inset 4px 0 #00AF21 !important; } .menu .menu_icon, .menu li.links { @@ -160,6 +157,7 @@ li:hover ul { display: block; } #icon_oper-events { background: url(../../images/op_events.png) no-repeat 50% 50%; } + /* users */ #icon_oper-users { background: url(../../images/op_workspace.png) no-repeat 50% 50%; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 9bbeb2d72c..1712ae71c4 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2191,14 +2191,14 @@ td.datos_greyf9, td.datos_bluef9, td.datos_greenf9, td.datos_redf9, td.datos_yel font-weight: bold; } -.menu li { - background-color: #fff !important; -} - ul.operation li a:hover { #font-weight: bold; } +.menu_icon:hover{ + background-color: #585858; +} +/* ul.operation ul.submenu li a:hover { background: #373737 url('../../images/menu_op_mark.png') repeat-y right; #font-weight: bold; @@ -2237,7 +2237,7 @@ ul.godmode ul.submenu li.selected>a { ul.godmode ul.submenu li.selected .SubNoLink { background: url('../../images/menu_gm_mark.png') repeat-y right !important; } - +*/ li.links a:hover { #font-weight: bold; } @@ -2279,6 +2279,7 @@ li.links a:hover { border-top-right-radius: 5px; border-right-style: solid; border-right-width: 0px; + } input#text-id_parent.ac_input, input, textarea, select { From ddfb4ed2c4154fdf581bad198c3aafc8b23c1d3a Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Fri, 10 Apr 2015 14:10:12 +0200 Subject: [PATCH 059/191] Fixed a visual error --- pandora_console/operation/agentes/networkmap_list.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index ccd003e8c6..585440ec7c 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -226,10 +226,6 @@ else { // The value of the checkbox will be the networkmap id to recover it in js to perform the massive deletion $data[4] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true); } - else { - $data[3] = ''; - $data[4] = ''; - } $table->data[] = $data; } From 7d7b6ef02f240b4359f3c03e8e4bd822d305c32a Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Fri, 10 Apr 2015 19:16:06 +0200 Subject: [PATCH 060/191] Updated the help info --- .../include/help/en/help_profile.php | 119 +++++++++--------- .../include/help/es/help_profile.php | 33 ++--- 2 files changed, 79 insertions(+), 73 deletions(-) diff --git a/pandora_console/include/help/en/help_profile.php b/pandora_console/include/help/en/help_profile.php index 3dc910b699..58327eb36a 100644 --- a/pandora_console/include/help/en/help_profile.php +++ b/pandora_console/include/help/en/help_profile.php @@ -10,66 +10,71 @@

    The following list defines what ACL control allows in each feature at the console:

    -
    -
    FeatureACL Control + +
    FeatureACL Control -
    View agent data (all tabs)AR -
    Tactical viewAR -
    Network map viewAR -
    Group viewAR -
    Create reportRW -
    Create user custom-defined graphRW -
    View report or custom graphRR -
    Apply report templateRR -
    Create report templateRM -
    Create incidentIW -
    Read incidentIR -
    Delete IncidentIW -
    Become owner of another incidentIM -
    Delete incident of another userIM -
    View eventER -
    Validate/Comment eventEW -
    Delete eventEM -
    Execute responseEW -
    Create incident from event (Response)EW&IW -
    Manage responsePM -
    Manage filtersEW -
    Customize event columnsPM -
    Change owner/Re-open eventEM -
    View userAR -
    SNMP Console viewAR -
    Validate trapsIW -
    MessageIW -
    Cron jobs PM -
    Tree view AR -
    Update manager (Operation & Admin)PM +
    View the agent's data (all tabs)AR +
    Tactical ViewAR +
    Group ViewAR +
    Visual console editingRW +
    Creating reportsRW +
    Creating user-defined graphsRW +
    Viewing reports, visual maps and custom graphsRR +
    Applying report templatesRR +
    Creating report templatesRM +
    Creating incidentsIW +
    Reading incidentsIR +
    Deleting incidentsIW +
    Becoming the owner of another user's incidentsIM +
    Deleting another user's incidentsIM +
    Viewing eventsER +
    Validating and commenting eventsEW +
    Deleting eventsEM +
    Executing responsesEW +
    Creating incidents from events (response)EW&IW +
    Managing responsesPM +
    Managing filtersEW +
    Customizing event columnsPM +
    Changing owners / reopen eventEM +
    Viewing usersAR +
    SNMP Console viewingAR +
    Validating trapsIW +
    MessagesIW +
    Cron jobs PM +
    Tree view AR +
    Update Manager (operation and administration) PM
    Extension Module GroupAR -
    Agent managementAW -
    Remote agent configuration managementAW -
    Assign alerts to agentsLW -
    Define, alter and delete alert templates, actions and commandsLM -
    Group managementPM -
    Create inventory modulesPM -
    Module management (includes all suboptions)PM -
    Massive management operationsAW -
    Create agentAW -
    Duplicate remote configurationsAW -
    Downtime managementAW -
    Alert managementLW -
    User managementUM -
    SNMP Console management (alerts and MIB load)PM -
    Profile managementPM -
    Server managementPM -
    System auditPM +
    Agent ManagementAW +
    Remote Agent Configuration Management AW +
    Assigning alerts to agentsLW +
    Defining, altering and deleting alert templates, actions and commandsLM +
    Group ManagementPM +
    Creating inventory modulesPM +
    Module Management (includes all suboptions)PM +
    Massive Management Operations AW +
    Creating agentsAW +
    Duplicating remote configurationsAW +
    Downtime ManagementAW +
    Alert ManagementLW +
    User ManagementUM +
    SNMP Console Management (alerts and MIB loading)PM +
    Profile ManagementPM +
    Server ManagementPM +
    System AuditPM
    SetupPM -
    Database maintanceDM -
    Administrator extension menuPM -
    Search barAR -
    Policy managementAW -
    Disable agent/module/alertAD -
    View visual consoleVR +
    Database MaintenanceDM +
    Administrator Extension MenuPM +
    Search BarAR +
    Policy ManagementAW +
    Disabling agents / modules / alertsAD +
    Alerts validationLM&AR or AW&LW +
    Network-map viewMR +
    Network-map editionMW +
    Deletion of owned network-mapMW +
    Deletion of any network-mapMM +
    Visual console viewVR
    Visual console editionVW -
    View network mapMR -
    Network map editionMW +
    Deletion of owned visual consoleVW +
    Deletion of any visual consoleVM
    diff --git a/pandora_console/include/help/es/help_profile.php b/pandora_console/include/help/es/help_profile.php index 3221309b06..88d035914c 100644 --- a/pandora_console/include/help/es/help_profile.php +++ b/pandora_console/include/help/es/help_profile.php @@ -13,16 +13,16 @@
    - -
    OperacionBit de acceso + +
    OperaciónBit de acceso +
    Ver datos agente (todas las vistas) AR
    Vista táctica AR -
    Vista mapas de red AR
    Vista de grupos AR
    Crear un visual console RW
    Crear un informe RW -
    Crear una grafica combinada RW -
    Ver informe, grafica, etc RR +
    Crear una gráfica combinada RW +
    Ver informe, gráfica, etc RR
    Aplicar una plantilla de informeRR
    Crear una plantilla de informeRM
    Crear incidente IW @@ -34,7 +34,7 @@
    Validar/Comentar evento EW
    Borrar evento EM
    Ejecutar respuestasEW -
    Crear incidencia a traves del evento (Respuesta) EW&IW +
    Crear incidencia a través del evento (Respuesta) EW&IW
    Gestionar respuestasPM
    Gestionar filtrosEW
    Personalizar columnas de eventosPM @@ -47,13 +47,13 @@
    Tree view AR
    Update manager (Operación y Administración) PM
    Extension Module GroupAR -
    Vista de gestion agente AW +
    Vista de gestión agente AW
    Edición del agente y de su .conf AW
    Asignación de alertas ya creadas LW
    Definir, modificar plantillas, comandos y acciones LM
    Gestión de grupos PM -
    Crear modulos de inventario PM -
    Gestionar modulos (Incluidas todas las subopciones)PM +
    Crear módulos de inventario PM +
    Gestionar módulos (Incluidas todas las subopciones)PM
    Operaciones masivas AW
    Crear agente AW
    Duplicar configuración remotaAW @@ -63,17 +63,18 @@
    Gestión de consola SNMPPM
    Gestión de perfilesPM
    Gestión de servidoresPM -
    Auditoría del sistema (edicion y visualizacion)PM +
    Auditoría del sistema (edición y visualización)PM
    Setup (todas las solapas inferiores incl) PM
    Mantenimiento de la BBDD DM -
    Extensiones administracion PM -
    Barra busqueda AR +
    Extensiones administración PM +
    Barra búsqueda AR
    Gestión de PolíticasAW
    Desactivar agente/módulo/alertaAD -
    Ver visual consoleVR -
    Crear un vicual consoleVW -
    Ver mapa de redMR -
    Editar mapa de redMW +
    Validar alertasLM&AR o AW&LW +
    Vista de mapas de redMR +
    Edición de mapas de redMW +
    Borrado de mapas de red propiosMW +
    Borrado de cualquier mapa de redMM
    From ec514cd27e2dfd765fa9bdebb2175b26a2c24da8 Mon Sep 17 00:00:00 2001 From: artica Date: Sat, 11 Apr 2015 00:01:12 +0200 Subject: [PATCH 061/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index da36775146..1999626029 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150410 +Version: 6.0dev-150411 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index c39540c0a4..0596403640 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150410" +pandora_version="6.0dev-150411" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index a372bfc0d6..04ed477038 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150410'; +use constant AGENT_BUILD => '150411'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 53496f3beb..acabe7f3e3 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150410 +%define release 150411 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 4a27a78cc7..ffca62d51b 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150410 +%define release 150411 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index c5a1c22158..86764a4fe4 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150410} +{150411} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 472cf2de3c..cb252e88f6 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150410)") +#define PANDORA_VERSION ("6.0dev(Build 150411)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 8e749457da..c801708616 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150410))" + VALUE "ProductVersion", "(6.0dev(Build 150411))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 78d05dcf59..e150d5ab44 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150410 +Version: 6.0dev-150411 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index e5341e00ae..47d0db7746 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150410" +pandora_version="6.0dev-150411" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 18e8d47bb9..92873982e5 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150410'; +$build_version = 'PC150411'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 0e0ad9c374..405a800396 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Sun, 12 Apr 2015 00:01:09 +0200 Subject: [PATCH 062/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 1999626029..d30dbe9c89 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150411 +Version: 6.0dev-150412 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 0596403640..eb1afc2044 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150411" +pandora_version="6.0dev-150412" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 04ed477038..418cba30d5 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150411'; +use constant AGENT_BUILD => '150412'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index acabe7f3e3..feb00205f4 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150411 +%define release 150412 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index ffca62d51b..11b412e884 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150411 +%define release 150412 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 86764a4fe4..b3725e791d 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150411} +{150412} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index cb252e88f6..d497098ada 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150411)") +#define PANDORA_VERSION ("6.0dev(Build 150412)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index c801708616..7dc87c672a 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150411))" + VALUE "ProductVersion", "(6.0dev(Build 150412))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index e150d5ab44..1778d822c4 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150411 +Version: 6.0dev-150412 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 47d0db7746..ae24ef48c7 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150411" +pandora_version="6.0dev-150412" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 92873982e5..f9b713192e 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150411'; +$build_version = 'PC150412'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 405a800396..9ed4893957 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Mon, 13 Apr 2015 00:01:09 +0200 Subject: [PATCH 063/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index d30dbe9c89..d47d3b9ad6 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150412 +Version: 6.0dev-150413 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index eb1afc2044..258af354ac 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150412" +pandora_version="6.0dev-150413" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 418cba30d5..b6c3c4846f 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150412'; +use constant AGENT_BUILD => '150413'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index feb00205f4..613338637a 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150412 +%define release 150413 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 11b412e884..d6d4eb4959 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150412 +%define release 150413 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index b3725e791d..3f13f891aa 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150412} +{150413} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index d497098ada..83960cdd3b 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150412)") +#define PANDORA_VERSION ("6.0dev(Build 150413)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 7dc87c672a..c09822074b 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150412))" + VALUE "ProductVersion", "(6.0dev(Build 150413))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 1778d822c4..4cd77e55aa 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150412 +Version: 6.0dev-150413 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index ae24ef48c7..1a4aacc89f 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150412" +pandora_version="6.0dev-150413" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index f9b713192e..61e2905e02 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150412'; +$build_version = 'PC150413'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 9ed4893957..c0920e36b5 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Mon, 13 Apr 2015 09:07:52 +0200 Subject: [PATCH 064/191] Fixed menu and add new option in events sub_menu --- pandora_console/godmode/menu.php | 28 ++++++++++++---------- pandora_console/include/styles/pandora.css | 4 +++- pandora_console/operation/menu.php | 1 + 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 9d6dd80a24..e7cf61fc1d 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -190,35 +190,39 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub = array (); // Options Setup - $sub["godmode/setup/setup&section=general"]["text"] = __('General Setup'); - $sub["godmode/setup/setup&section=general"]["refr"] = 0; + $sub["general"]["text"] = __('General Setup'); + $sub2 = array (); + + $sub2["godmode/setup/setup&section=general"]["text"] = __('General Setup'); + $sub2["godmode/setup/setup&section=general"]["refr"] = 0; enterprise_hook ('password_submenu'); enterprise_hook ('enterprise_submenu'); enterprise_hook ('historydb_submenu'); enterprise_hook ('log_collector_submenu'); - $sub["godmode/setup/setup&section=auth"]["text"] = __('Authentication'); - $sub["godmode/setup/setup&section=auth"]["refr"] = 0; + $sub2["godmode/setup/setup&section=auth"]["text"] = __('Authentication'); + $sub2["godmode/setup/setup&section=auth"]["refr"] = 0; - $sub["godmode/setup/setup&section=perf"]["text"] = __('Performance'); - $sub["godmode/setup/setup&section=perf"]["refr"] = 0; + $sub2["godmode/setup/setup&section=perf"]["text"] = __('Performance'); + $sub2["godmode/setup/setup&section=perf"]["refr"] = 0; - $sub["godmode/setup/setup&section=vis"]["text"] = __('Visual styles'); - $sub["godmode/setup/setup&section=vis"]["refr"] = 0; + $sub2["godmode/setup/setup&section=vis"]["text"] = __('Visual styles'); + $sub2["godmode/setup/setup&section=vis"]["refr"] = 0; if (check_acl ($config['id_user'], 0, "AW")) { if ($config['activate_netflow']) { - $sub["godmode/setup/setup&section=net"]["text"] = __('Netflow'); - $sub["godmode/setup/setup&section=net"]["refr"] = 0; + $sub2["godmode/setup/setup&section=net"]["text"] = __('Netflow'); + $sub2["godmode/setup/setup&section=net"]["refr"] = 0; } } if ($config['activate_gis']) - $sub["godmode/setup/gis"]["text"] = __('Map conections GIS'); - + $sub2["godmode/setup/gis"]["text"] = __('Map conections GIS'); + + $sub["general"]["sub2"] = $sub2; $sub["godmode/setup/os"]["text"] = __('Edit OS'); $sub["godmode/setup/license"]["text"] = __('License'); diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 1712ae71c4..c7a0e38130 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2911,7 +2911,9 @@ table#policy_modules td * { padding: 10px; } - +.godmode{ + border-top: 4px solid !important; +} /* The items with the class 'spinner' will rotate */ /* Not supported on IE9 and below */ .spinner { diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 3e54825c35..0e74d2c5e8 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -261,6 +261,7 @@ if (check_acl ($config['id_user'], 0, "ER")) { $menu_operation["eventos"]["id"] = "oper-events"; $sub = array (); + $sub["operation/events/events"]["text"] = __('Events'); $sub["operation/events/event_statistics"]["text"] = __('Statistics'); //RSS From a7f748b7be14019c305b3379711b0c4803058965 Mon Sep 17 00:00:00 2001 From: Vanessa Gil Date: Mon, 13 Apr 2015 11:27:23 +0200 Subject: [PATCH 065/191] Ticket #1354. --- pandora_console/ajax.php | 5 +- .../pandoradb_migrate_5.1_to_6.0.mysql.sql | 10 +++ .../pandoradb_migrate_5.1_to_6.0.oracle.sql | 9 ++ ...andoradb_migrate_5.1_to_6.0.postgreSQL.sql | 9 ++ pandora_console/godmode/setup/setup_auth.php | 7 ++ pandora_console/include/config_process.php | 5 ++ pandora_console/include/functions_config.php | 23 +++++ pandora_console/include/load_session.php | 89 +++++++++++++++++++ pandora_console/pandoradb.oracle.sql | 9 ++ pandora_console/pandoradb.postgreSQL.sql | 9 ++ pandora_console/pandoradb.sql | 10 +++ 11 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 pandora_console/include/load_session.php diff --git a/pandora_console/ajax.php b/pandora_console/ajax.php index 979248003a..d7d51a453c 100644 --- a/pandora_console/ajax.php +++ b/pandora_console/ajax.php @@ -24,7 +24,10 @@ require_once ('include/functions_db.php'); require_once ('include/auth/mysql.php'); // Real start -session_start (); + +if (session_id() == '') { + session_start(); +} // Hash login process if (isset ($_GET["loginhash"])) { diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql index f51651480a..459e04b1df 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql @@ -84,3 +84,13 @@ ALTER TABLE `tperfil` ADD COLUMN `vconsole_management` tinyint(1) NOT NULL DEFAU UPDATE `tperfil` SET `map_view` = 1, `vconsole_view` = 1 WHERE `report_view` = 1; UPDATE `tperfil` SET `map_edit` = 1, `vconsole_edit` = 1 WHERE `report_edit` = 1; UPDATE `tperfil` SET `map_management` = 1, `vconsole_management` = 1 WHERE `report_management` = 1; + +-- --------------------------------------------------------------------- +-- Table `tsessions_php` +-- --------------------------------------------------------------------- +CREATE TABLE tsessions_php ( + `id_session` CHAR(52) NOT NULL, + `last_active` INTEGER NOT NULL, + `data` TEXT, + PRIMARY KEY (`id_session`) +)ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql index 36ff8004e0..1edf86c129 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql @@ -84,3 +84,12 @@ ALTER TABLE tperfil ADD COLUMN vconsole_management NUMBER(1, 0) DEFAULT 0 NOT NU UPDATE tperfil SET map_view = 1, vconsole_view = 1 WHERE report_view = 1; UPDATE tperfil SET map_edit = 1, vconsole_edit = 1 WHERE report_edit = 1; UPDATE tperfil SET map_management = 1, vconsole_management = 1 WHERE report_management = 1; + +-- --------------------------------------------------------------------- +-- Table tsessions_php +-- --------------------------------------------------------------------- +CREATE TABLE tsessions_php ( + id_session VARCHAR2(52) NOT NULL PRIMARY KEY, + last_active NUMBER(20, 0) NOT NULL, + data CLOB default '' +); diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql index 3ca472b93c..154d65b308 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql @@ -82,3 +82,12 @@ ALTER TABLE "tperfil" ADD COLUMN "vconsole_management" SMALLINT NOT NULL DEFAULT UPDATE "tperfil" SET "map_view" = 1, "vconsole_view" = 1 WHERE "report_view" = 1; UPDATE "tperfil" SET "map_edit" = 1, "vconsole_edit" = 1 WHERE "report_edit" = 1; UPDATE "tperfil" SET "map_management" = 1, "vconsole_management" = 1 WHERE "report_management" = 1; + +-- --------------------------------------------------------------------- +-- Table tsessions_php +-- --------------------------------------------------------------------- +CREATE TABLE "tsessions_php" ( + "id_session" SERIAL NOT NULL PRIMARY KEY, + "last_active" INTEGER NOT NULL, + "data" TEXT default '' +); diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php index 3a0998034b..1e7b0e34e1 100644 --- a/pandora_console/godmode/setup/setup_auth.php +++ b/pandora_console/godmode/setup/setup_auth.php @@ -117,6 +117,13 @@ $row[] = __('Yes') . ' ' . $config_double_auth_enabled, true); $table->data[] = $row; +$row_timeout = array(); +$row_timeout[] = __('Session timeout (mins)') + . ui_print_help_tip(__("This is defined in minutes"), true); +if (empty($config["session_timeout"])) $config["session_timeout"] = 90; +$row_timeout[] = html_print_input_text ('session_timeout', $config["session_timeout"], '', 10, 10, true); +$table->data[] = $row_timeout; + echo ''; html_print_input_hidden ('update_config', 1); html_print_table ($table); diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 1ceaff3c3a..495ae3a033 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -118,6 +118,11 @@ date_default_timezone_set("Europe/Madrid"); config_process_config(); +config_prepare_session(); +require_once ($config["homedir"].'/include/load_session.php'); +$resultado = session_start(); + + if (!isset($config["homeurl_static"])) { $config["homeurl_static"] = $config["homeurl"]; } diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index ff4e4b1401..01de2fe9c1 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -325,6 +325,8 @@ function config_update_config () { $error_update[] = __('Password'); if (!config_update_value ('double_auth_enabled', get_parameter ('double_auth_enabled'))) $error_update[] = __('Double authentication'); + if (!config_update_value ('session_timeout', get_parameter ('session_timeout'))) + $error_update[] = __('Session timeout'); ///////////// break; case 'perf': @@ -1312,6 +1314,10 @@ function config_process_config () { ""); } + if (!isset ($config["session_timeout"])) { + config_update_value ('session_timeout', 90); + } + /* Finally, check if any value was overwritten in a form */ config_update_config(); } @@ -1525,4 +1531,21 @@ function config_user_set_custom_config() { $config['metaconsole_access'] = $userinfo["metaconsole_access"]; } } + +function config_prepare_session() { + global $config; + + // Change the session timeout value to session_timeout minutes // 8*60*60 = 8 hours + $sessionCookieExpireTime = $config["session_timeout"] * 60; + ini_set('session.gc_maxlifetime', $sessionCookieExpireTime); + session_set_cookie_params ($sessionCookieExpireTime); + + // Reset the expiration time upon page load //session_name() is default name of session PHPSESSID + + if (isset($_COOKIE[session_name()])) + setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, "/"); + + ini_set("post_max_size",$config["max_file_size"]); + ini_set("upload_max_filesize",$config["max_file_size"]); +} ?> diff --git a/pandora_console/include/load_session.php b/pandora_console/include/load_session.php new file mode 100644 index 0000000000..da9846fcab --- /dev/null +++ b/pandora_console/include/load_session.php @@ -0,0 +1,89 @@ +$SessionID, 'last_active'=>$now, 'data'=>$val)); + } else { + $now = time(); + $retval_write = db_process_sql_update ('tsessions_php', array('last_active'=>$now, 'data'=>$val), array('id_session'=>$SessionID)); + } + + return $retval_write; +} + +function mysql_session_destroy ($SessionID) { + $SessionID = addslashes($SessionID); + + $retval = db_process_sql ("DELETE FROM tsessions_php + WHERE id_session = '$SessionID'"); + return $retval; +} + +function mysql_session_gc ($maxlifetime = 300) { + global $config; + + if (isset($config['session_timeout'])) { + $maxlifetime = $config['session_timeout']; + } + + $CutoffTime = time() - $maxlifetime; + + $retval = db_process_sql("DELETE FROM tsessions_php + WHERE last_active < $CutoffTime"); + return $retval; +} + +$resultado_handler = session_set_save_handler ('mysql_session_open', 'mysql_session_close', 'mysql_session_read', 'mysql_session_write', 'mysql_session_destroy', 'mysql_session_gc'); + +?> diff --git a/pandora_console/pandoradb.oracle.sql b/pandora_console/pandoradb.oracle.sql index 57a9a8f871..85ea3bcbeb 100755 --- a/pandora_console/pandoradb.oracle.sql +++ b/pandora_console/pandoradb.oracle.sql @@ -1935,3 +1935,12 @@ CREATE TABLE talert_snmp_action ( al_field9 CLOB default '' NOT NULL, al_field10 CLOB default '' NOT NULL ); + +-- --------------------------------------------------------------------- +-- Table tsessions_php +-- --------------------------------------------------------------------- +CREATE TABLE tsessions_php ( + id_session VARCHAR2(52) NOT NULL PRIMARY KEY, + last_active NUMBER(20, 0) NOT NULL, + data CLOB default '' +); diff --git a/pandora_console/pandoradb.postgreSQL.sql b/pandora_console/pandoradb.postgreSQL.sql index 7d3ed285a8..3fcefb1bf1 100755 --- a/pandora_console/pandoradb.postgreSQL.sql +++ b/pandora_console/pandoradb.postgreSQL.sql @@ -1698,3 +1698,12 @@ CREATE TABLE "talert_snmp_action" ( "al_field9" TEXT default '', "al_field10" TEXT default '' ); + +-- --------------------------------------------------------------------- +-- Table tsessions_php +-- --------------------------------------------------------------------- +CREATE TABLE "tsessions_php" ( + "id_session" SERIAL NOT NULL PRIMARY KEY, + "last_active" INTEGER NOT NULL, + "data" TEXT default '' +); diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 32fd2a49b0..9bbf46866d 100755 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1796,3 +1796,13 @@ CREATE TABLE IF NOT EXISTS `talert_snmp_action` ( `al_field10` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- --------------------------------------------------------------------- +-- Table `tsessions_php` +-- --------------------------------------------------------------------- +CREATE TABLE tsessions_php ( + `id_session` CHAR(52) NOT NULL, + `last_active` INTEGER NOT NULL, + `data` TEXT, + PRIMARY KEY (`id_session`) +)ENGINE=InnoDB DEFAULT CHARSET=utf8; From b533897415ea2e5f181a0f97e87949c6b3c0da57 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 12:46:30 +0200 Subject: [PATCH 066/191] Fixed problems with print pie, show more data that data in list event,Nodo and Meta, tiquet: #2076 --- pandora_console/include/functions_graph.php | 61 +++++++++++++++++++ .../operation/events/events_list.php | 20 +++--- 2 files changed, 73 insertions(+), 8 deletions(-) diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index 9c259451ac..3fe50bede8 100755 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -2468,6 +2468,67 @@ function grafico_eventos_grupo ($width = 300, $height = 200, $url = "", $meta = $config['fontpath'], $config['font_size'], 1, 'bottom'); } +function grafico_eventos_agente ($width = 300, $height = 200, $result = false, $meta = false, $history = false) { + global $config; + global $graphic_type; + + //It was urlencoded, so we urldecode it + $url = html_entity_decode (rawurldecode ($url), ENT_QUOTES); + $data = array (); + $loop = 0; + + if ($result === false) { + $result = array(); + } + + $system_events = 0; + $other_events = 0; + $total = array(); + $i = 0; + + foreach ($result as $row) { + if ($meta) { + $count[] = $row["agent_name"]; + } + else { + if ($row["id_agente"] == 0) { + $count[] = __('SYSTEM'); + } + else + $count[] = agents_get_name ($row["id_agente"]) ; + } + + } + + $total = array_count_values($count); + + foreach ($total as $key => $total) { + if ($meta) { + $name = $key." (".$total.")"; + } + else { + $name = $key." (".$total.")"; + } + $data[$name] = $total; + } + + /* + if ($other_events > 0) { + $name = __('Other')." (".$other_events.")"; + $data[$name] = $other_events; + } + */ + + // Sort the data + arsort($data); + $water_mark = array('file' => $config['homedir'] . "/images/logo_vertical_water.png", + 'url' => ui_get_full_url("images/logo_vertical_water.png", false, false, false)); + + return pie3d_graph($config['flash_charts'], $data, $width, $height, + __('Other'), '', $water_mark, + $config['fontpath'], $config['font_size'], 1, 'bottom'); +} + /** * Print a pie graph with events data in 320x200 size * diff --git a/pandora_console/operation/events/events_list.php b/pandora_console/operation/events/events_list.php index b049083d92..0ca4564a16 100644 --- a/pandora_console/operation/events/events_list.php +++ b/pandora_console/operation/events/events_list.php @@ -731,6 +731,17 @@ else { $history); } +if (!empty($result)) { + + $graph = '
    ' . + grafico_eventos_agente(350, 185, + $result, $meta, $history, $tags_acls_condition,$pagination) . + '
    '; + html_print_div(array('id' => 'events_graph', + 'hidden' => true, 'content' => $graph)); +} + + if (!empty($result)) { //~ Checking the event tags exactly. The event query filters approximated tags to keep events //~ with several tags @@ -744,14 +755,7 @@ if (!empty($result)) { } } -if (!empty($result)) { - $graph = '
    ' . - grafico_eventos_grupo(350, 185, - rawurlencode ($sql_post), $meta, $history) . - '
    '; - html_print_div(array('id' => 'events_graph', - 'hidden' => true, 'content' => $graph)); -} + // Delete rnum field generated by oracle_recode_query() function if (($config['dbtype'] == 'oracle') && ($result !== false)) { From 8d8476118fec25b8678a5d2ff658a1872e50e6c2 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 13:44:29 +0200 Subject: [PATCH 067/191] reorganize menu and changed styles of menu --- pandora_console/general/main_menu.php | 12 ++++++++ pandora_console/godmode/menu.php | 20 +++++++------- pandora_console/include/styles/menu.css | 10 +++---- pandora_console/include/styles/pandora.css | 32 ++++++++++++++-------- pandora_console/operation/menu.php | 4 +-- 5 files changed, 49 insertions(+), 29 deletions(-) diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 6b02af10cf..2062bf372a 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -302,6 +302,10 @@ $(document).ready( function() { $("ul#sub"+table_hover[0].id).hide(); if( typeof(table_hover2) != 'undefined') $("ul#sub"+table_hover2[0].id).hide(); + $('#menu').css('width', '45px'); + $('li.menu_icon').removeClass( " no_hidden_menu"); + $('ul.submenu').css('left', '44px'); + $('div#title_menu').hide(); }); $('div.menu>ul>li>ul>li>a').click(function(){ @@ -310,6 +314,10 @@ $(document).ready( function() { $("ul#sub"+table_hover[0].id).hide(); if( typeof(table_hover2) != 'undefined') $("ul#sub"+table_hover2[0].id).hide(); + $('#menu').css('width', '45px'); + $('li.menu_icon').removeClass( " no_hidden_menu"); + $('ul.submenu').css('left', '44px'); + $('div#title_menu').hide(); }); $('div.menu>ul>li>ul>li>ul>li>a').click(function(){ openTime = 4000; @@ -317,6 +325,10 @@ $(document).ready( function() { $("ul#sub"+table_hover[0].id).hide(); if( typeof(table_hover2) != 'undefined') $("ul#sub"+table_hover2[0].id).hide(); + $('#menu').css('width', '45px'); + $('li.menu_icon').removeClass( " no_hidden_menu"); + $('ul.submenu').css('left', '44px'); + $('div#title_menu').hide(); }); }); diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index e7cf61fc1d..1dfd0294fc 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -25,7 +25,7 @@ $menu_godmode = array (); $menu_godmode['class'] = 'godmode'; if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AD")) { - $menu_godmode["gagente"]["text"] = __('Resource management'); + $menu_godmode["gagente"]["text"] = __('Resources'); $menu_godmode["gagente"]["sec2"] = "godmode/agentes/modificar_agente"; $menu_godmode["gagente"]["id"] = "god-agents"; @@ -67,7 +67,7 @@ if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, } if (check_acl ($config['id_user'], 0, "UM")) { - $menu_godmode["gusuarios"]["text"] = __('Profile management'); + $menu_godmode["gusuarios"]["text"] = __('Profiles'); $menu_godmode["gusuarios"]["sec2"] = "godmode/users/user_list"; $menu_godmode["gusuarios"]["id"] = "god-users"; @@ -84,7 +84,7 @@ if (check_acl ($config['id_user'], 0, "UM")) { } if (check_acl ($config['id_user'], 0, "PM")) { - $menu_godmode["gmodules"]["text"] = __('Configuration management'); + $menu_godmode["gmodules"]["text"] = __('Configuration'); $menu_godmode["gmodules"]["sec2"] = "godmode/modules/manage_network_templates"; $menu_godmode["gmodules"]["id"] = "god-modules"; @@ -121,7 +121,7 @@ if (check_acl ($config['id_user'], 0, "PM")) { } if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, "AD")) { - $menu_godmode["galertas"]["text"] = __('Manage alerts'); + $menu_godmode["galertas"]["text"] = __('Alerts'); $menu_godmode["galertas"]["sec2"] = "godmode/alerts/alert_list"; $menu_godmode["galertas"]["id"] = "god-alerts"; @@ -143,7 +143,7 @@ if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, if (check_acl ($config['id_user'], 0, "EW")) { // Manage events - $menu_godmode["geventos"]["text"] = __('Manage events'); + $menu_godmode["geventos"]["text"] = __('Events'); $menu_godmode["geventos"]["sec2"] = "godmode/events/events&section=filter"; $menu_godmode["geventos"]["id"] = "god-events"; @@ -161,7 +161,7 @@ if (check_acl ($config['id_user'], 0, "EW")) { if (check_acl ($config['id_user'], 0, "AW")) { // Servers - $menu_godmode["gservers"]["text"] = __('Manage servers'); + $menu_godmode["gservers"]["text"] = __('Servers'); $menu_godmode["gservers"]["sec2"] = "godmode/servers/modificar_server"; $menu_godmode["gservers"]["id"] = "god-servers"; @@ -241,11 +241,8 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub["godmode/admin_access_logs"]["text"] = __('System audit log'); $sub["godmode/setup/links"]["text"] = __('Links'); $sub["godmode/update_manager/update_manager"]["text"] = __('Update manager'); - $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); - $sub["godmode/setup/news"]["text"] = __('Site news'); - $sub["godmode/setup/file_manager"]["text"] = __('File manager'); $sub["gextmaneger"]["sub2"] = $sub2; - if (check_acl ($config['id_user'], 0, "DM")) {//meter en extensiones + if (check_acl ($config['id_user'], 0, "DM")) { $sub["gdbman"]["text"] = __('DB maintenance'); $sub["gdbman"]["type"] = "direct"; $sub["gdbman"]["subtype"] = "nolink"; @@ -258,6 +255,9 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub["gdbman"]["sub2"] = $sub2; } + $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); + $sub["godmode/setup/news"]["text"] = __('Site news'); + $sub["godmode/setup/file_manager"]["text"] = __('File manager'); $menu_godmode["gextensions"]["sub"] = $sub; } diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index bcc0825dd0..3313dc16cb 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -32,7 +32,8 @@ margin: 0; } .menu li.selected { - box-shadow: inset 4px 0 #00AF21; + box-shadow: inset 4px 0 #80BA27; + background-color: #585858 !important; } .menu li a { @@ -46,7 +47,6 @@ li:hover ul { display: block; } .submenu_text{ - background-repeat: no-repeat !important; padding: 11px; margin-left: 0px; color: #fff; @@ -62,7 +62,6 @@ li:hover ul { display: block; } border:0px; } .submenu { - font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif; margin: 0px 0px 0px 0px; position: absolute; z-index: 999; @@ -108,11 +107,11 @@ li:hover ul { display: block; } border-left: 1px; } .menu li.has_submenu > a > div { - background: url(../../images/arrow.png) no-repeat 90% 50% !important; + background: url(../../images/arrow.png) no-repeat 90% 50%; z-index: 1; /* Positions it on top of the rest */ } .menu li.has_submenu .flecha{ - background: url(../../images/arrow.png) no-repeat 90% 50% !important; + background: url(../../images/arrow.png) no-repeat 90% 50%; z-index: 1; /* Positions it on top of the rest */ } @@ -239,7 +238,6 @@ li:hover ul { display: block; } background-color: #AAA; } - ul { margin: 0; padding: 0; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index c7a0e38130..0e88ac4e68 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2196,7 +2196,16 @@ ul.operation li a:hover { } .menu_icon:hover{ - background-color: #585858; + background-color: #585858 !important; +} +.submenu_not_selected:hover{ + background-color: #585858 !important; +} +.submenu_selected:hover{ + background-color: #585858 !important; +} +.sub_subMenu:hover{ + background-color: #585858 !important; } /* ul.operation ul.submenu li a:hover { @@ -2254,17 +2263,12 @@ li.links a:hover { font-weight: bold; } -.operation.ul, ul.operation .operation ul { - background-color: #373737 !important; -} - -.menu ul { - background-color: #555 !important; +.operation { + background-color: #333 !important; } .menu li, .menu .li.not_selected { border-radius: 0px 0px 0px 0px; - background-color: #373737 !important; display: block; min-height: 35px; border-bottom: 0px none #424242; @@ -2870,15 +2874,14 @@ table#policy_modules td * { float: right; width: 70%; letter-spacing: 0pt; - font-size: 7pt; + font-size: 8pt; white-space: pre-wrap; } .no_hidden_menu{ - background-position: 12% 50% !important; + background-position: 11% 50% !important; } - #menu_tab li.nomn, #menu_tab li.nomn_high { background-color: #ECECEC; padding-right: 3px; @@ -2911,6 +2914,13 @@ table#policy_modules td * { padding: 10px; } +.godmode, .menu_icon ul li{ + background-color: #222; +} +.operation .menu_icon ul li{ + background-color: #333; +} + .godmode{ border-top: 4px solid !important; } diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 0e74d2c5e8..690763c49d 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -255,13 +255,13 @@ if (check_acl ($config['id_user'], 0, "RR")) { // Events reading if (check_acl ($config['id_user'], 0, "ER")) { // Events - $menu_operation["eventos"]["text"] = __('View events'); + $menu_operation["eventos"]["text"] = __('Events'); $menu_operation["eventos"]["refr"] = 0; $menu_operation["eventos"]["sec2"] = "operation/events/events"; $menu_operation["eventos"]["id"] = "oper-events"; $sub = array (); - $sub["operation/events/events"]["text"] = __('Events'); + $sub["operation/events/events"]["text"] = __('View events'); $sub["operation/events/event_statistics"]["text"] = __('Statistics'); //RSS From 962e7c9583d609f992844f5021952ab433fc3861 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 13:57:15 +0200 Subject: [PATCH 068/191] Fixed color when menu is selected --- pandora_console/include/styles/menu.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 3313dc16cb..525f0bcdd0 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -129,7 +129,7 @@ li:hover ul { display: block; } .submenu_selected { margin-bottom: 0px !important; - box-shadow: inset 4px 0 #00AF21 !important; + box-shadow: inset 4px 0 #80BA27 !important; } .menu .menu_icon, .menu li.links { From cc03dcd127c1309def0784e2e884c22515a2fb52 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 15:05:41 +0200 Subject: [PATCH 069/191] Fixed visual list of servers in administrations servers --- pandora_console/godmode/servers/servers.build_table.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index 34aa45c9bd..da2cfffe1b 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -161,6 +161,10 @@ if ($tiny) { unset($table->head[7]); unset($table->head[8]); } - -ui_toggle(html_print_table ($table,true), __('Tactical server information')); +if ($tiny) { + ui_toggle(html_print_table ($table,true), __('Tactical server information')); +} +else{ + html_print_table ($table); +} ?> From 20280f5f88cd4ab3cf381a3b722e4fd7a46b35a4 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 15:05:41 +0200 Subject: [PATCH 070/191] Fixed visual list of servers in administrations servers (cherry picked from commit cc03dcd127c1309def0784e2e884c22515a2fb52) --- pandora_console/godmode/servers/servers.build_table.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index 34aa45c9bd..da2cfffe1b 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -161,6 +161,10 @@ if ($tiny) { unset($table->head[7]); unset($table->head[8]); } - -ui_toggle(html_print_table ($table,true), __('Tactical server information')); +if ($tiny) { + ui_toggle(html_print_table ($table,true), __('Tactical server information')); +} +else{ + html_print_table ($table); +} ?> From 85b00c080cbb604fc2d2296839200e13695ab9a0 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 13 Apr 2015 15:50:49 +0200 Subject: [PATCH 071/191] Draw pie with filter results and changed label, tiquet: #2076 --- pandora_console/include/functions_graph.php | 4 +- .../operation/events/events_list.php | 53 ++++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index 3fe50bede8..c07af3b298 100755 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -2473,7 +2473,7 @@ function grafico_eventos_agente ($width = 300, $height = 200, $result = false, $ global $graphic_type; //It was urlencoded, so we urldecode it - $url = html_entity_decode (rawurldecode ($url), ENT_QUOTES); + //$url = html_entity_decode (rawurldecode ($url), ENT_QUOTES); $data = array (); $loop = 0; @@ -2525,7 +2525,7 @@ function grafico_eventos_agente ($width = 300, $height = 200, $result = false, $ 'url' => ui_get_full_url("images/logo_vertical_water.png", false, false, false)); return pie3d_graph($config['flash_charts'], $data, $width, $height, - __('Other'), '', $water_mark, + __('Others'), '', $water_mark, $config['fontpath'], $config['font_size'], 1, 'bottom'); } diff --git a/pandora_console/operation/events/events_list.php b/pandora_console/operation/events/events_list.php index 0ca4564a16..cf2bf6efea 100644 --- a/pandora_console/operation/events/events_list.php +++ b/pandora_console/operation/events/events_list.php @@ -732,10 +732,61 @@ else { } if (!empty($result)) { + if ($group_rep == 0) { + $sql = "SELECT COUNT(id_evento) + FROM $event_table + WHERE 1=1 " . $sql_post; + } + else { + + $sql = "SELECT COUNT(1) + FROM (SELECT 1 + FROM $event_table + WHERE 1=1 " . $sql_post . " + GROUP BY evento, id_agentmodule) AS t"; + } + $limit = (int) db_get_sql ($sql); + if ($group_rep == 0) { + switch ($config["dbtype"]) { + case "mysql": + $sql = "SELECT *, 1 event_rep + FROM $event_table + WHERE 1=1 " . $sql_post . " + ORDER BY utimestamp DESC LIMIT 0,".$limit; + break; + case "postgresql": + $sql = "SELECT *, 1 event_rep + FROM $event_table + WHERE 1=1 " . $sql_post . " + ORDER BY utimestamp DESC LIMIT ".$limit." OFFSET 0"; + break; + case "oracle": + $set = array(); + $set['limit'] = $pagination; + $set['offset'] = $offset; + $sql = "SELECT *, 1 event_rep + FROM $event_table + WHERE 1=1 " . $sql_post . " + ORDER BY utimestamp DESC"; + $sql = oracle_recode_query ($sql, $set); + break; + } + + //Extract the events by filter (or not) from db + $results_graph = db_get_all_rows_sql ($sql); + } + else { + $results_graph = events_get_events_grouped($sql_post, + 0, + $limit, + $meta, + $history); + } + $graph = '
    ' . grafico_eventos_agente(350, 185, - $result, $meta, $history, $tags_acls_condition,$pagination) . + $results_graph, $meta, $history, $tags_acls_condition,$limit) . '
    '; html_print_div(array('id' => 'events_graph', 'hidden' => true, 'content' => $graph)); From 4392958648d1f0764a017aef559a0e227a966a9a Mon Sep 17 00:00:00 2001 From: Vanessa Gil Date: Mon, 13 Apr 2015 16:58:05 +0200 Subject: [PATCH 072/191] Ticket #2044. --- pandora_console/godmode/groups/group_list.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pandora_console/godmode/groups/group_list.php b/pandora_console/godmode/groups/group_list.php index 0f9430119e..c081dad769 100644 --- a/pandora_console/godmode/groups/group_list.php +++ b/pandora_console/godmode/groups/group_list.php @@ -147,6 +147,10 @@ if (defined('METACONSOLE')) { agents_meta_print_header(); $sec = 'advanced'; + echo '
    '; + echo __("Edit or delete groups can cause problems with synchronization"); + echo '
    '; + } else { From 5533100ac43a23f5722f0e64767bb2bd90b5e631 Mon Sep 17 00:00:00 2001 From: artica Date: Tue, 14 Apr 2015 00:01:14 +0200 Subject: [PATCH 073/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index d47d3b9ad6..141a7b7401 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150413 +Version: 6.0dev-150414 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 258af354ac..55b06aca1e 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150413" +pandora_version="6.0dev-150414" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index b6c3c4846f..19af2b797c 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150413'; +use constant AGENT_BUILD => '150414'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 613338637a..b5e0146499 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150413 +%define release 150414 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index d6d4eb4959..0bb9380568 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150413 +%define release 150414 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 3f13f891aa..6c89eb5811 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150413} +{150414} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 83960cdd3b..555c1b5ef6 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150413)") +#define PANDORA_VERSION ("6.0dev(Build 150414)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index c09822074b..ac7829a9ce 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150413))" + VALUE "ProductVersion", "(6.0dev(Build 150414))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 4cd77e55aa..8cd5b54800 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150413 +Version: 6.0dev-150414 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 1a4aacc89f..2a74e24632 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150413" +pandora_version="6.0dev-150414" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 08c69cd18f..01061d410d 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150413'; +$build_version = 'PC150414'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index c0920e36b5..286272b057 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Tue, 14 Apr 2015 08:37:11 +0200 Subject: [PATCH 074/191] Update maxlenght to password field in use detail editor, tiquet: #2098 --- pandora_console/operation/users/user_edit.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/operation/users/user_edit.php b/pandora_console/operation/users/user_edit.php index f5b46e2f26..992a473bbe 100644 --- a/pandora_console/operation/users/user_edit.php +++ b/pandora_console/operation/users/user_edit.php @@ -231,9 +231,9 @@ if ($view_mode === false) { if ($config["user_can_update_password"]) { $data = array(); $data[0] = __('New Password'); - $data[0] .= $jump . html_print_input_text_extended ("password_new", "", '', '', '40', '25', $view_mode, '', 'class="input"', true, true); + $data[0] .= $jump . html_print_input_text_extended ("password_new", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true); $data[1] = __('Password confirmation'); - $data[1] .= $jump . html_print_input_text_extended ("password_conf", "", '', '', '40', '25', $view_mode, '', 'class="input"', true, true); + $data[1] .= $jump . html_print_input_text_extended ("password_conf", "", '', '', '40', '45', $view_mode, '', 'class="input"', true, true); $table->rowclass[] = ''; $table->rowstyle[] = 'font-weight: bold;'; $table->data[] = $data; From f3de8d5bc85d24810b02d4b80abaaf7abf3d824c Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 14 Apr 2015 09:36:41 +0200 Subject: [PATCH 075/191] Changed visual of tactical view --- pandora_console/include/functions_events.php | 56 ++++++++++--------- .../include/functions_reporting.php | 18 +++--- .../operation/agentes/tactical.php | 17 +++++- 3 files changed, 53 insertions(+), 38 deletions(-) diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index a0704e6061..6e664f153b 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -815,7 +815,7 @@ function events_create_event ($event, $id_group, $id_agent, $status = 0, * * @return string HTML with table element */ -function events_print_event_table ($filter = "", $limit = 10, $width = 440, $return = false, $agent_id = 0) { +function events_print_event_table ($filter = "", $limit = 10, $width = 440, $return = false, $agent_id = 0, $tactical_view = false) { global $config; if ($agent_id == 0) { @@ -861,7 +861,8 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret $table->cellspacing = 4; $table->width = $width; $table->class = "databox"; - $table->title = __('Latest events'); + if (!$tactical_view) + $table->title = __('Latest events'); $table->titleclass = 'tabletitle'; $table->titlestyle = 'text-transform:uppercase;'; $table->headclass = array (); @@ -987,32 +988,33 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret $out = '
    '; $out .= $events_table; - if ($agent_id != 0) { - $out .= ''; - $out .= '
    '; - $out .= '
    - ' . - __('Events -by module-') . - '' . - graph_event_module (180, 100, $event['id_agente']) . '
    '; - $out .= '
    '; + if (!$tactical_view) { + if ($agent_id != 0) { + $out .= '
    '; + $out .= '
    '; + $out .= '
    + ' . + __('Events -by module-') . + '' . + graph_event_module (180, 100, $event['id_agente']) . '
    '; + $out .= '
    '; + } + else { + $out .= '
    '; + $out .= '
    '; + $out .= '
    + ' . + __('Event graph') . + '' . + grafico_eventos_total("", 180, 60) . '
    '; + $out .= '
    + ' . + __('Event graph by agent') . + '' . + grafico_eventos_grupo(180, 60) . '
    '; + $out .= '
    '; + } } - else { - $out .= '
    '; - $out .= '
    '; - $out .= '
    - ' . - __('Event graph') . - '' . - grafico_eventos_total("", 180, 60) . '
    '; - $out .= '
    - ' . - __('Event graph by agent') . - '' . - grafico_eventos_grupo(180, 60) . '
    '; - $out .= '
    '; - } - $out .= '
    '; unset ($table); diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 4ea953ce9a..88a49692b6 100644 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -1288,7 +1288,7 @@ function reporting_get_stats_servers($tiny = true) { $table_srv->style[1] = $table_srv->style[3] = 'text-align: left; padding: 5px;'; $tdata = array(); - $tdata[0] = html_print_image('images/module.png', true, array('title' => __('Total running modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/module.png', true, array('title' => __('Total running modules'), )); $tdata[1] = '' . format_numeric($server_performance ["total_modules"]) . ''; $tdata[2] = '' . format_numeric($server_performance ["total_modules_rate"], 2) . ''; @@ -1304,7 +1304,7 @@ function reporting_get_stats_servers($tiny = true) { $table_srv->data[] = $tdata; $tdata = array(); - $tdata[0] = html_print_image('images/database.png', true, array('title' => __('Local modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/database.png', true, array('title' => __('Local modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_local_modules"]) . ''; $tdata[2] = '' . @@ -1316,7 +1316,7 @@ function reporting_get_stats_servers($tiny = true) { if ($tiny) { $tdata = array(); - $tdata[0] = html_print_image('images/network.png', true, array('title' => __('Remote modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/network.png', true, array('title' => __('Remote modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_remote_modules"]) . ''; $tdata[2] = '' . format_numeric($server_performance ["remote_modules_rate"], 2) . ''; @@ -1328,7 +1328,7 @@ function reporting_get_stats_servers($tiny = true) { else { if (isset($server_performance ["total_network_modules"])) { $tdata = array(); - $tdata[0] = html_print_image('images/network.png', true, array('title' => __('Network modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/network.png', true, array('title' => __('Network modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_network_modules"]) . ''; $tdata[2] = '' . @@ -1342,7 +1342,7 @@ function reporting_get_stats_servers($tiny = true) { if (isset($server_performance ["total_plugin_modules"])) { $tdata = array(); - $tdata[0] = html_print_image('images/plugin.png', true, array('title' => __('Plugin modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/plugin.png', true, array('title' => __('Plugin modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_plugin_modules"]) . ''; $tdata[2] = '' . format_numeric($server_performance ["plugin_modules_rate"], 2) . ''; @@ -1354,7 +1354,7 @@ function reporting_get_stats_servers($tiny = true) { if (isset($server_performance ["total_prediction_modules"])) { $tdata = array(); - $tdata[0] = html_print_image('images/chart_bar.png', true, array('title' => __('Prediction modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/chart_bar.png', true, array('title' => __('Prediction modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_prediction_modules"]) . ''; $tdata[2] = '' . format_numeric($server_performance ["prediction_modules_rate"], 2) . ''; @@ -1366,7 +1366,7 @@ function reporting_get_stats_servers($tiny = true) { if (isset($server_performance ["total_wmi_modules"])) { $tdata = array(); - $tdata[0] = html_print_image('images/wmi.png', true, array('title' => __('WMI modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/wmi.png', true, array('title' => __('WMI modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_wmi_modules"]) . ''; $tdata[2] = '' . format_numeric($server_performance ["wmi_modules_rate"], 2) . ''; @@ -1378,7 +1378,7 @@ function reporting_get_stats_servers($tiny = true) { if (isset($server_performance ["total_web_modules"])) { $tdata = array(); - $tdata[0] = html_print_image('images/world.png', true, array('title' => __('Web modules'), 'width' => '25px')); + $tdata[0] = html_print_image('images/world.png', true, array('title' => __('Web modules'))); $tdata[1] = '' . format_numeric($server_performance ["total_web_modules"]) . ''; @@ -1417,7 +1417,7 @@ function reporting_get_stats_servers($tiny = true) { $tdata = array(); $tdata[0] = html_print_image('images/lightning_go.png', true, - array('title' => __('Total events'), 'width' => '25px')); + array('title' => __('Total events'))); $tdata[1] = '' . format_numeric($system_events) . ''; diff --git a/pandora_console/operation/agentes/tactical.php b/pandora_console/operation/agentes/tactical.php index 8f45c86cec..4c0ec73ab1 100644 --- a/pandora_console/operation/agentes/tactical.php +++ b/pandora_console/operation/agentes/tactical.php @@ -229,7 +229,7 @@ if (!empty($acltags)) { $tags_condition = tags_get_acl_tags_event_condition($acltags, false, $user_strict); if (!empty($tags_condition)) { - $events = events_print_event_table ("estado<>1 AND ($tags_condition)", 10, "100%",true); + $events = events_print_event_table ("estado<>1 AND ($tags_condition)", 10, "100%",true,false,true); ui_toggle($events, __('Latest events')); } } @@ -241,7 +241,20 @@ if ($is_admin) { $tiny = true; require($config['homedir'] . '/godmode/servers/servers.build_table.php'); } - +$out .= '
    '; + $out .= '
    + ' . + __('Event graph') . + '' . + grafico_eventos_total("", 180, 80) . '
    '; + $out .="
    "; + $out .= '
    + ' . + __('Event graph by agent') . + '' . + grafico_eventos_grupo(180, 80) . '
    '; + $out .= '
    '; +echo $out; echo ''; echo '
    '; From 50f15dc5076acd2301563552506f7c0fa101832f Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 14 Apr 2015 09:37:28 +0200 Subject: [PATCH 076/191] Fixed errors php in menu --- pandora_console/include/functions_menu.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 03e0705cc1..248208be7d 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -32,6 +32,7 @@ function menu_print_menu (&$menu) { $sec = (string) get_parameter ('sec'); $sec2 = (string) get_parameter ('sec2'); + $menu_selected = false; $allsec2 = explode('sec2=', $_SERVER['REQUEST_URI']); if (isset($allsec2[1])) { @@ -206,7 +207,7 @@ function menu_print_menu (&$menu) { //This is an external link $submenu_output .= '
  • '; - if (isset ($sub["type"]) && $sub["subtype"] == "nolink") { + if (isset ($sub["subtype"]) && $sub["subtype"] == "nolink") { $submenu_output .= '
    '; } else @@ -321,7 +322,8 @@ function menu_print_menu (&$menu) { if (isset($sub2['title'])) $sub_title = $sub2['title']; - + else + $sub_title = ''; $submenu2_list .= '
  • '; $submenu2_list .= '
    '. $sub2["text"].'
  • '; From b8dd9705f1f8a77cdc8e0e597d8a255182aaeb3d Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 14 Apr 2015 09:56:04 +0200 Subject: [PATCH 077/191] Fixed style when option of submenu is selected --- pandora_console/include/functions_menu.php | 4 ++-- pandora_console/include/styles/menu.css | 22 ++++++---------------- pandora_console/include/styles/pandora.css | 4 ---- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 248208be7d..f7eb096a4a 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -324,8 +324,8 @@ function menu_print_menu (&$menu) { $sub_title = $sub2['title']; else $sub_title = ''; - $submenu2_list .= '
  • '; - $submenu2_list .= '
    '. + $submenu2_list .= '
  • '; + $submenu2_list .= '
    '. $sub2["text"].'
  • '; $sub_title = ''; } diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 525f0bcdd0..572cffae6f 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -81,36 +81,30 @@ li:hover ul { display: block; } min-height: 35px !important; height: 35px; width: 160px; + font-weight: normal !important; } - -.submenu li a { - #background-color: #222; - #border-style: none; - #border-color: #666; +.sub_subMenu.selected{ + font-weight: bold !important; } .submenu2 li a { - #background-color: #222; margin-left: 0px; padding-left: 0px; display:block; } -.submenu2 li a:hover { - #background-color: #111 !important; -} - .menu li img.toggle { visibility: hidden; float:right; /* Positions it back where it should be */ border-left: 1px; } + .menu li.has_submenu > a > div { background: url(../../images/arrow.png) no-repeat 90% 50%; z-index: 1; /* Positions it on top of the rest */ } -.menu li.has_submenu .flecha{ +.menu li.has_submenu .flecha { background: url(../../images/arrow.png) no-repeat 90% 50%; z-index: 1; /* Positions it on top of the rest */ } @@ -119,14 +113,10 @@ li:hover ul { display: block; } background-color: #E4E4E4 !important; } -.submenu_not_selected a, .submenu2_not_selected a { +.menu li.submenu_not_selected a, .menu li.submenu2_not_selected a { font-weight: normal !important; } -.menu li.submenu_selected a { - font-weight: bold; -} - .submenu_selected { margin-bottom: 0px !important; box-shadow: inset 4px 0 #80BA27 !important; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 0e88ac4e68..ecc87ba860 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2259,10 +2259,6 @@ li.links a:hover { background-color: #222222 !important; } -.menu li.submenu_selected a { - font-weight: bold; -} - .operation { background-color: #333 !important; } From 1a612ff3a8f09ea42e5b1216b7534119f638de12 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 14 Apr 2015 09:56:49 +0200 Subject: [PATCH 078/191] Changed style in tactical view --- pandora_console/operation/agentes/tactical.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/operation/agentes/tactical.php b/pandora_console/operation/agentes/tactical.php index 4c0ec73ab1..d1d28564a6 100644 --- a/pandora_console/operation/agentes/tactical.php +++ b/pandora_console/operation/agentes/tactical.php @@ -246,13 +246,13 @@ $out .= ''; + grafico_eventos_total("", 250, 80) . ''; $out .="
    "; $out .= '
    ' . __('Event graph by agent') . '' . - grafico_eventos_grupo(180, 80) . '
    '; + grafico_eventos_grupo(250, 80) . ''; $out .= '
    '; echo $out; From 7cb8e9dd16c7140d9e4bc419434146e3487e8b44 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 14 Apr 2015 10:12:13 +0200 Subject: [PATCH 079/191] Changed visual to tree view --- pandora_console/include/styles/tree.css | 2 +- pandora_console/operation/tree.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/styles/tree.css b/pandora_console/include/styles/tree.css index e9eb0863bc..0e28a26f97 100644 --- a/pandora_console/include/styles/tree.css +++ b/pandora_console/include/styles/tree.css @@ -155,7 +155,7 @@ div.tree-table-cell.tree-table-cell-tree { div.tree-table-cell.tree-table-cell-detail { padding-left: 10px; - width: 350px; + width: 550px; } div.tree-element-detail-closed { diff --git a/pandora_console/operation/tree.php b/pandora_console/operation/tree.php index 12a69aed64..a26cf387bb 100755 --- a/pandora_console/operation/tree.php +++ b/pandora_console/operation/tree.php @@ -126,6 +126,7 @@ else{ $table = new StdClass(); $table->width = "100%"; +$table->class='databox filters'; $table->data = array(); $table->rowspan = array(); From df42c4715f2fe4d64e7626e9ca93f15785a2f28e Mon Sep 17 00:00:00 2001 From: artica Date: Wed, 15 Apr 2015 00:01:11 +0200 Subject: [PATCH 080/191] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_console/pandoradb_data.sql | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 141a7b7401..1effddd289 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 6.0dev-150414 +Version: 6.0dev-150415 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 55b06aca1e..11ae90b120 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150414" +pandora_version="6.0dev-150415" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 19af2b797c..61208a9ecb 100644 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -41,7 +41,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '6.0dev'; -use constant AGENT_BUILD => '150414'; +use constant AGENT_BUILD => '150415'; # Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index b5e0146499..7d8c25e9db 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150414 +%define release 150415 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 0bb9380568..bc7e14bb72 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 6.0dev -%define release 150414 +%define release 150415 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 6c89eb5811..ad29612d06 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{150414} +{150415} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 555c1b5ef6..bd802809cd 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("6.0dev(Build 150414)") +#define PANDORA_VERSION ("6.0dev(Build 150415)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index ac7829a9ce..7b53f52163 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(6.0dev(Build 150414))" + VALUE "ProductVersion", "(6.0dev(Build 150415))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 8cd5b54800..98e19d2c62 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 6.0dev-150414 +Version: 6.0dev-150415 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 2a74e24632..10985ef87b 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="6.0dev-150414" +pandora_version="6.0dev-150415" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 01061d410d..e2253ad8cd 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -22,7 +22,7 @@ /** * Pandora build version and version */ -$build_version = 'PC150414'; +$build_version = 'PC150415'; $pandora_version = 'v6.0dev'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 286272b057..f432a71e4a 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -63,7 +63,7 @@
    Date: Wed, 15 Apr 2015 09:45:13 +0200 Subject: [PATCH 081/191] Changed styles from views in nodo --- pandora_console/extensions/module_groups.php | 34 +++++++------- .../extensions/realtime_graphs.php | 21 +++++---- pandora_console/general/logon_ok.php | 6 +-- .../godmode/agentes/agent_template.php | 2 +- .../godmode/agentes/module_manager.php | 4 +- .../godmode/alerts/alert_list.list.php | 2 +- .../godmode/servers/servers.build_table.php | 14 +++--- pandora_console/include/constants.php | 10 ++--- pandora_console/include/functions_events.php | 15 ++++--- pandora_console/include/functions_graph.php | 20 +++++---- pandora_console/include/functions_ui.php | 2 +- pandora_console/include/styles/pandora.css | 44 ++++++++++++++----- .../operation/agentes/alerts_status.php | 2 +- .../operation/agentes/custom_fields.php | 4 +- .../agentes/estado_generalagente.php | 8 ++-- .../operation/agentes/gis_view.php | 5 +-- pandora_console/operation/agentes/graphs.php | 20 +++------ .../operation/agentes/group_view.php | 4 +- .../operation/agentes/tactical.php | 9 ++-- 19 files changed, 125 insertions(+), 101 deletions(-) diff --git a/pandora_console/extensions/module_groups.php b/pandora_console/extensions/module_groups.php index aade3cac02..60f72ae20d 100644 --- a/pandora_console/extensions/module_groups.php +++ b/pandora_console/extensions/module_groups.php @@ -178,7 +178,10 @@ function mainModuleGroups() { if (!empty($agentGroups) && !empty($modelGroups)) { array_walk($modelGroups, 'translate'); //Translate all head titles to language is set + $table = null; + $table->headstyle[] = "width: 20%"; foreach ($modelGroups as $i => $n) { + $table->headstyle[] = "width: 7%"; $modelGroups[$i] = ui_print_truncate_text($n, GENERIC_SIZE_TEXT); } @@ -186,12 +189,11 @@ function mainModuleGroups() { array_unshift($head, ' '); //Metaobject use in html_print_table - $table = null; - $table->align[0] = 'right'; //Align to right the first column. + $table->align[0] = 'left'; //Align to left the first column. $table->style[0] = 'color: #ffffff; '. - 'background-color: #373737; font-weight: bolder; padding-right: 10px;'; + 'background-color: #373737; font-weight: bolder; padding-right: 10px; width:20%; '; $table->head = $head; - $table->width = '98%'; + $table->width = '100%'; //The content of table $tableData = array(); @@ -247,29 +249,29 @@ function mainModuleGroups() { else { if ($fired) { - $color = '#ffa300'; //Orange when the cell for this model group and agent has at least one alert fired. + $color = '#FFA631'; //Orange when the cell for this model group and agent has at least one alert fired. } else if (array_key_exists(1, $states)) { - $color = '#cc0000'; //Red when the cell for this model group and agent has at least one module in critical state and the rest in any state. + $color = '#FC4444'; //Red when the cell for this model group and agent has at least one module in critical state and the rest in any state. $font_color = '#ffffff'; } elseif (array_key_exists(2, $states)) { - $color = '#fce94f'; //Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state. + $color = '#FAD403'; //Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state. } elseif (array_key_exists(3, $states)) { - $color = '#babdb6'; //Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state. + $color = '#B2B2B2 '; //Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state. } elseif (array_key_exists(0, $states)) { - $color = '#8ae234'; //Green when the cell for this model group and agent has OK state all modules. + $color = '#80BA27'; //Green when the cell for this model group and agent has OK state all modules. } elseif (array_key_exists(5, $states)) { - $color = '#729fcf'; // Blue when the cell for this module group and all modules have not init value. + $color = '#5BB6E5'; // Blue when the cell for this module group and all modules have not init value. } - $alinkStart = ''; + $alinkStart = ''; $alinkEnd = ''; } @@ -284,13 +286,13 @@ function mainModuleGroups() { array_push($tableData,$row); } $table->data = $tableData; - echo "
    "; + echo "
    "; html_print_table($table); echo "
    "; - echo "
    "; + echo "
    "; - echo ""; + echo "
    "; echo ""; echo ""; echo ""; diff --git a/pandora_console/extensions/realtime_graphs.php b/pandora_console/extensions/realtime_graphs.php index 49729935fd..0cf679ead1 100644 --- a/pandora_console/extensions/realtime_graphs.php +++ b/pandora_console/extensions/realtime_graphs.php @@ -42,9 +42,9 @@ function pandora_realtime_graphs () { $canvas .= ''; echo $canvas; - $table->width = '99%'; + $table->width = '100%'; $table->id = 'table-form'; - $table->class = 'databox'; + $table->class = 'databox filters'; $table->style = array (); $table->style[0] = 'font-weight: bold;'; $table->style[1] = 'font-weight: bold;'; @@ -62,7 +62,7 @@ function pandora_realtime_graphs () { $graph = get_parameter('graph', 'cpu_load'); $refresh = get_parameter('refresh', '1000'); - $data['graph'] = __('Graph') . '
    ' . html_print_select ($graph_fields, 'graph', $graph, '', '', 0, true); + $data['graph'] = __('Graph') . '  ' . html_print_select ($graph_fields, 'graph', $graph, '', '', 0, true); $data['reset'] = html_print_button(__('Clear graph'), 'reset', false, 'clearGraph()', 'class="sub delete"', true); $refresh_fields[1000] = human_time_description_raw(1, true, 'large'); @@ -70,8 +70,8 @@ function pandora_realtime_graphs () { $refresh_fields[10000] = human_time_description_raw(10, true, 'large'); $refresh_fields[30000] = human_time_description_raw(30, true, 'large'); - $data['refresh'] = __('Refresh interval') . '
    ' . html_print_select ($refresh_fields, 'refresh', $refresh, '', '', 0, true); - $data['incremental'] = __('Incremental') . '
    ' . html_print_checkbox ('incremental', 1, 0, true); + $data['refresh'] = __('Refresh interval') . '  ' . html_print_select ($refresh_fields, 'refresh', $refresh, '', '', 0, true); + $data['incremental'] = __('Incremental') . '  ' . html_print_checkbox ('incremental', 1, 0, true); $table->data[] = $data; @@ -85,10 +85,10 @@ function pandora_realtime_graphs () { $data = array(); - $data['snmp_address'] = __('Target IP') . '
    ' . html_print_input_text ('ip_target', $snmp_address, '', 50, 255, true); + $data['snmp_address'] = __('Target IP') . '  ' . html_print_input_text ('ip_target', $snmp_address, '', 50, 255, true); $table->colspan[1]['snmp_address'] = 2; - $data['snmp_community'] = __('Community') . '
    ' . html_print_input_text ('snmp_community', $snmp_community, '', 50, 255, true); + $data['snmp_community'] = __('Community') . '  ' . html_print_input_text ('snmp_community', $snmp_community, '', 50, 255, true); $table->colspan[1]['snmp_community'] = 2; $table->data[] = $data; @@ -99,12 +99,11 @@ function pandora_realtime_graphs () { $snmp_versions['2c'] = '2c'; $data = array(); - $data['snmp_oid'] = __('OID') . '
    ' . html_print_input_text ('snmp_oid', $snmp_oid, '', 100, 255, true); - $data['snmp_oid'] .= html_print_button (__('SNMP walk'), 'snmp_walk', false, 'snmpBrowserWindow()', 'class="sub next"', true); + $data['snmp_oid'] = __('OID') . '  ' . html_print_input_text ('snmp_oid', $snmp_oid, '', 100, 255, true); $table->colspan[2]['snmp_oid'] = 2; - $data['snmp_ver'] = __('Version') . '
    ' . html_print_select ($snmp_versions, 'snmp_version', $snmp_ver, '', '', 0, true); - + $data['snmp_ver'] = __('Version') . '  ' . html_print_select ($snmp_versions, 'snmp_version', $snmp_ver, '', '', 0, true); + $data['snmp_ver'] .= '  ' . html_print_button (__('SNMP walk'), 'snmp_walk', false, 'snmpBrowserWindow()', 'class="sub next"', true); $table->colspan[2]['snmp_ver'] = 2; $table->data[] = $data; diff --git a/pandora_console/general/logon_ok.php b/pandora_console/general/logon_ok.php index 46a85c96eb..40a1210cc1 100644 --- a/pandora_console/general/logon_ok.php +++ b/pandora_console/general/logon_ok.php @@ -39,7 +39,7 @@ if (tags_has_user_acl_tags()) {
    " . __('Legend') . "
    " . __("Orange cell when the module group and agent have at least one alarm fired.") . "
    " . __("Red cell when the module group and agent have at least one module in critical status and the others in any status") . "
    - -
    + cellspacing = 4; $table->head = array (); $table->data = array (); - $table->style[0] = 'text-align:center;'; + $table->headstyle[0] = 'text-align:center;'; $table->width = "100%"; $table->head[0] = '' . __('Pandora FMS Overview') . ''; $table->head_colspan[0] = 4; @@ -103,7 +103,7 @@ if (tags_has_user_acl_tags()) { + data)) { unset ($table); } else { - echo '
    No modules
    '; + ui_print_empty_data ( __('No modules') ) ; } ?> diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index 3c3a40ae6d..e2772e28d3 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -126,7 +126,7 @@ if (($policy_page) || (isset($agent))) { echo "
    "; echo ""; -echo '
    '; +echo '
    '; echo ""; echo "".__("Get more modules in Pandora FMS Library").""; echo ""; @@ -478,7 +478,7 @@ $total_modules = db_get_value_sql($sql_total_modules); $total_modules = isset ($total_modules) ? $total_modules : 0; if ($modules === false) { - echo "
    " . __('No available data to show') . "
    "; + ui_print_empty_data ( __('No available data to show') ); return; } diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index c3f5e1fef9..8100675159 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -674,7 +674,7 @@ if (isset($data)) { html_print_table ($table); } else { - echo "
    " . __('No alerts defined') . "
    "; + ui_print_empty_data ( __('No alerts defined') ); } // Create alert button diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index da2cfffe1b..cddbd8813f 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -38,6 +38,7 @@ if ($servers === false) { } $table->width = '100%'; +$table->class = 'databox data'; $table->size = array (); $table->style = array (); @@ -46,10 +47,12 @@ $table->style[0] = 'font-weight: bold'; $table->align = array (); $table->align[1] = 'center'; $table->align[3] = 'center'; -$table->align[4] = 'center'; -$table->align[5] = 'center'; $table->align[8] = 'center'; +$table->headstyle[1] = 'text-align:center'; +$table->headstyle[3] = 'text-align:center'; +$table->headstyle[8] = 'text-align:center'; + //$table->title = __('Tactical server information'); $table->titleclass = 'tabletitle'; $table->titlestyle = 'text-transform:uppercase;'; @@ -74,7 +77,7 @@ $table->data = array (); foreach ($servers as $server) { $data = array (); - + $table->cellclass[][3] = "progress_bar"; $data[0] = '' . $server['name'] . ''; @@ -100,12 +103,12 @@ foreach ($servers as $server) { $data[5] = 'N/A'; break; case "export": - $data[3] = progress_bar($server["load"], 60, 20, $server["lag_txt"], 0); + $data[3] = progress_bar($server["load"], 100, 10, $server["lag_txt"], 0); $data[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"]; $data[5] = 'N/A'; break; default: - $data[3] = progress_bar($server["load"], 60, 20, $server["lag_txt"], 0); + $data[3] = progress_bar($server["load"], 100, 10, $server["lag_txt"], 0); $data[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"]; $data[5] = '' . $server["lag_txt"] . ''; @@ -153,6 +156,7 @@ foreach ($servers as $server) { unset($data[8]); } array_push ($table->data, $data); + } if ($tiny) { diff --git a/pandora_console/include/constants.php b/pandora_console/include/constants.php index a265450a5a..a13d5ed194 100755 --- a/pandora_console/include/constants.php +++ b/pandora_console/include/constants.php @@ -120,13 +120,13 @@ switch ($config["dbtype"]) { /* Color constants */ -define('COL_CRITICAL', '#f85858'); -define('COL_WARNING', '#ffea59'); +define('COL_CRITICAL', '#FC4444'); +define('COL_WARNING', '#FAD403'); define('COL_WARNING_DARK', '#FFB900'); -define('COL_NORMAL', '#6EB432'); +define('COL_NORMAL', '#80BA27'); define('COL_NOTINIT', '#3BA0FF'); -define('COL_UNKNOWN', '#AAAAAA'); -define('COL_ALERTFIRED', '#FF8800'); +define('COL_UNKNOWN', '#B2B2B2'); +define('COL_ALERTFIRED', '#FFA631'); define('COL_MINOR', '#F099A2'); define('COL_MAJOR', '#C97A4A'); define('COL_INFORMATIONAL', '#E4E4E4'); diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 6e664f153b..bba8d14fb0 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -857,10 +857,10 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret } else { $table->id = 'latest_events_table'; - $table->cellpadding = 4; - $table->cellspacing = 4; + $table->cellpadding = 0; + $table->cellspacing = 0; $table->width = $width; - $table->class = "databox"; + $table->class = "databox data"; if (!$tactical_view) $table->title = __('Latest events'); $table->titleclass = 'tabletitle'; @@ -953,7 +953,7 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret $data[2] = events_print_type_img ($event["event_type"], true); /* Event text */ - $data[3] = ui_print_string_substr (io_safe_output($event["evento"]), 75, true, '9'); + $data[3] = ui_print_string_substr (io_safe_output($event["evento"]), 75, true, '7.5'); if($agent_id == 0) { if ($event["id_agente"] > 0) { @@ -961,7 +961,8 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret // Get class name, for the link color... $myclass = get_priority_class ($event["criticity"]); - $data[4] = "".agents_get_name ($event["id_agente"]). ""; + $data[4] = "". + agents_get_name ($event["id_agente"]). ""; // ui_print_agent_name ($event["id_agente"], true, 25, '', true); // for System or SNMP generated alerts @@ -975,7 +976,7 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret } // Timestamp - $data[5] = ui_print_timestamp ($event["timestamp"], true, array('style' => 'font-size: 8px')); + $data[5] = ui_print_timestamp ($event["timestamp"], true, array('style' => 'font-size: 7.5pt; letter-spacing: 0.3pt;')); $class = get_priority_class ($event["criticity"]); $cell_classes[3] = $cell_classes[4] = $cell_classes[5] = $class; @@ -985,7 +986,7 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret } $events_table = html_print_table ($table, true); - $out = ''; echo '
    '; + $out = ' - "; + "; } ?> @@ -552,8 +553,8 @@ else - - + @@ -1109,14 +1115,24 @@ else html_print_checkbox ('event_graph_by_agent', true, $event_graph_by_agent); ?> - + + + + + + + + @@ -1170,7 +1186,8 @@ function print_SLA_list($width, $action, $idItem = null) { global $config; global $meta; - $report_item_type = db_get_value ('type', 'treport_content', 'id_rc', $idItem); + $report_item_type = db_get_value('type', 'treport_content', 'id_rc', + $idItem); ?>
    '; $out .= $events_table; if (!$tactical_view) { diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index c07af3b298..f28fbc493d 100755 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -2337,7 +2337,7 @@ function graph_events_validated($width = 300, $height = 200, $url = "", $meta = * @param bool if the graph required is or not for metaconsole * @param bool if the graph required is or not for history table */ -function grafico_eventos_grupo ($width = 300, $height = 200, $url = "", $meta = false, $history = false) { +function grafico_eventos_grupo ($width = 300, $height = 200, $url = "", $meta = false, $history = false, $noWaterMark = true) { global $config; global $graphic_type; @@ -2459,9 +2459,10 @@ function grafico_eventos_grupo ($width = 300, $height = 200, $url = "", $meta = // Sort the data arsort($data); - - $water_mark = array('file' => $config['homedir'] . "/images/logo_vertical_water.png", - 'url' => ui_get_full_url("images/logo_vertical_water.png", false, false, false)); + if ($noWaterMark) { + $water_mark = array('file' => $config['homedir'] . "/images/logo_vertical_water.png", + 'url' => ui_get_full_url("images/logo_vertical_water.png", false, false, false)); + } return pie3d_graph($config['flash_charts'], $data, $width, $height, __('Other'), '', $water_mark, @@ -2534,7 +2535,7 @@ function grafico_eventos_agente ($width = 300, $height = 200, $result = false, $ * * @param string filter Filter for query in DB */ -function grafico_eventos_total($filter = "", $width = 320, $height = 200) { +function grafico_eventos_total($filter = "", $width = 320, $height = 200, $noWaterMark = true) { global $config; global $graphic_type; @@ -2591,10 +2592,11 @@ function grafico_eventos_total($filter = "", $width = 320, $height = 200) { break; } } - - $water_mark = array( - 'file' => $config['homedir'] . "/images/logo_vertical_water.png", - 'url' => ui_get_full_url("/images/logo_vertical_water.png", false, false, false)); + if ($noWaterMark) { + $water_mark = array( + 'file' => $config['homedir'] . "/images/logo_vertical_water.png", + 'url' => ui_get_full_url("/images/logo_vertical_water.png", false, false, false)); + } return pie3d_graph($config['flash_charts'], $data, $width, $height, __('Other'), '', $water_mark, diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 15f3ec2b6b..d240cb2c81 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -931,7 +931,7 @@ function ui_print_string_substr ($string, $cutoff = 16, $return = false, $fontsi $font_size_mod = ""; if ($fontsize > 0) { - $font_size_mod = "style='font-size: ".$fontsize."px'"; + $font_size_mod = "style='font-size: ".$fontsize."pt'"; } $string = ''.mb_substr ($string2, 0, $cutoff, "UTF-8").$string3.''; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index ecc87ba860..74bde03aa3 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -315,7 +315,7 @@ div#menu { width: 45px; float: left; height: 828px; - z-index: 999; + z-index: 2000; position: absolute; } @@ -613,12 +613,6 @@ input:-webkit-autofill { /* END OF LOGIN STYLES */ /***********************/ -label { - display: block; - padding-top: 4px; - font-weight: bold; - text-align: left; -} th > label { padding-top: 7px; } @@ -665,6 +659,7 @@ input.target, input.search, input.copy, input.add, input.graph, input.percentile, input.binary, input.camera, input.config, input.cancel, input.default, input.filter, input.pdf { padding-right: 30px; + margin-top: 15px; height: 23px; } @@ -1316,6 +1311,11 @@ span.rmess, span.nrmess { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; + padding-bottom: 5px; + +} +.databox_color{ + padding-top: 5px; } table.databox { @@ -1335,8 +1335,10 @@ table.databox { } .databox th { - padding: 5px 7px; + padding: 9px 7px; + font-weight: normal; color: #fff; + padding-left: 10px; } .databox th * { @@ -1723,7 +1725,7 @@ form#filter_form { } ul.action_list { margin: 0; - list-style: none inside url(../../images/arrow.png); + list-style: none inside circle; } ul.action_list li div { margin-left: 15px; @@ -2456,7 +2458,7 @@ input.search_input { margin-top: 8px !important; } -a>img, td>img, td>input, td>span { +a>img, td>input, td>span { vertical-align: middle; } @@ -2853,8 +2855,23 @@ table#policy_modules td * { } .databox.data td{ - padding-left: 5px; - border: 1px solid #E2E2E2; + padding-left: 10px; + border: 1px solid #EFEFEF; +} + +.databox .search{ + margin-top: 0px; +} + +.databox.data td.progress_bar img{ + border: 3px solid #000; + border-radius: 100px; +} + +.databox td{ + padding-left: 10px; + padding-top: 7px; + padding-bottom: 7px; } .difference{ @@ -2909,6 +2926,9 @@ table#policy_modules td * { .databox.filters td{ padding: 10px; } +.databox_color td{ + padding-left: 10px; +} .godmode, .menu_icon ul li{ background-color: #222; diff --git a/pandora_console/operation/agentes/alerts_status.php b/pandora_console/operation/agentes/alerts_status.php index cbf1b1b781..aa917a4dec 100755 --- a/pandora_console/operation/agentes/alerts_status.php +++ b/pandora_console/operation/agentes/alerts_status.php @@ -574,7 +574,7 @@ if (!empty ($table->data)) { echo ''; } else { - echo '
    '.__('No alerts found').'
    '; + ui_print_empty_data ( __('No alerts found') ); } //strict user hidden diff --git a/pandora_console/operation/agentes/custom_fields.php b/pandora_console/operation/agentes/custom_fields.php index c5dca3565f..c1b23265c2 100644 --- a/pandora_console/operation/agentes/custom_fields.php +++ b/pandora_console/operation/agentes/custom_fields.php @@ -49,15 +49,17 @@ else { if ($fields === false) { $fields = array(); - echo "
    ". __("No fields defined"). "
    "; + ui_print_empty_data ( __("No fields defined") ); } else { $table->width = '100%'; $table->class = 'databox data'; $table->head = array (); $table->head[0] = __('Field'); + $table->size[0] = "20%"; $table->head[1] = __('Display on front') . ui_print_help_tip (__('The fields with display on front enabled will be displayed into the agent details'), true); + $table->size[1] = "10%"; $table->head[2] = __('Description'); $table->align = array (); $table->align[1] = 'center'; diff --git a/pandora_console/operation/agentes/estado_generalagente.php b/pandora_console/operation/agentes/estado_generalagente.php index e3b776deed..1fe7cf476f 100755 --- a/pandora_console/operation/agentes/estado_generalagente.php +++ b/pandora_console/operation/agentes/estado_generalagente.php @@ -100,7 +100,7 @@ $table_agent->cellstyle[count($table_agent->data)][2] = $status_img = agents_detail_view_status_img ($agent["critical_count"], $agent["warning_count"], $agent["unknown_count"], $agent["total_count"], $agent["notinit_count"]); -$data[5] = $status_img; +$data[2] .= "  " .$status_img; $table_agent->data[] = $data; $table_agent->rowclass[] = ''; @@ -492,13 +492,13 @@ $table->style = array_fill(0, 3, 'vertical-align: top;'); $data = array(); $data[0] = html_print_table($table_agent, true); $data[0] .= - ' + '
    ' . - '' . + '
    ' . '
    ' . __('Events (24h)') . '
    ' . + '

    ' . graph_graphic_agentevents ($id_agente, 450, 15, SECONDS_1DAY, '', true) . - '
    '; // ACCESS RATE GRAPH diff --git a/pandora_console/operation/agentes/gis_view.php b/pandora_console/operation/agentes/gis_view.php index 28c33cc5d7..e96cc42f96 100644 --- a/pandora_console/operation/agentes/gis_view.php +++ b/pandora_console/operation/agentes/gis_view.php @@ -49,7 +49,7 @@ foreach ($_GET as $key => $value) { echo "
    "; /* Map with the current position */ -echo "
    "; +echo "
    "; if (!gis_get_agent_map($id_agente, "500px", "100%", true, true, $period)) { ui_print_error_message(__("There is no default map. Please go to the setup for to set a default map.")); @@ -125,8 +125,7 @@ $result = db_get_all_rows_sql ($sql, true); if ($result === false) { - echo "
    " . - __('This agent doesn\'t have any GIS data.') . "
    "; + ui_print_empty_data( __('This agent doesn\'t have any GIS data.') ); } else { ui_pagination ($countData, false) ; diff --git a/pandora_console/operation/agentes/graphs.php b/pandora_console/operation/agentes/graphs.php index 35e94c148b..a42704673f 100644 --- a/pandora_console/operation/agentes/graphs.php +++ b/pandora_console/operation/agentes/graphs.php @@ -106,17 +106,12 @@ if (empty($modules)) { } $table = null; -$table->width = '98%'; +$table->width = '100%'; $table->style[0] = 'font-weight: bolder; text-align: right;'; $table->style[1] = ''; $table->style[2] = 'font-weight: bolder; text-align: right;'; -$table->valign[0] = 'top'; -$table->valign[1] = 'top'; -$table->valign[2] = 'top'; -$table->valign[3] = 'top'; - $table->rowspan[0][0] = 6; $table->rowspan[0][1] = 6; @@ -174,7 +169,11 @@ else $date = $utime; if ($combined) { - echo "

    " . __('Combined graph') . '

    '; + + echo "
    " . __('Combined graph') . '  '; + html_print_button(__('Save as custom graph'), 'save_custom_graph', + false, 'save_custom_graph();', 'class="sub add" style="margin:0px"'); + echo "
    "; custom_graphs_print(0, $height, @@ -186,11 +185,6 @@ if ($combined) { false, 'white', $modules); - - echo "
    "; - html_print_button(__('Save as custom graph'), 'save_custom_graph', - false, 'save_custom_graph();', 'class="sub save"'); - echo "
    "; } else { foreach ($modules as $id_module) { @@ -220,7 +214,7 @@ echo "
    "; //Dialog to save the custom graph echo "
    +
    + +
    @@ -1222,17 +1239,17 @@ function print_SLA_list($width, $action, $idItem = null) { $server_name_element = ''; if ($meta && $server_name != '') $server_name_element .= ' (' . $server_name . ')'; - + echo ''; echo ''; echo ''; - + if (enterprise_installed() && $report_item_type == 'SLA_services') { enterprise_include_once("include/functions_services.php"); $nameService = enterprise_hook('services_get_name', array($item['id_agent_module'])); echo ''; echo ''; echo ''; @@ -1325,6 +1342,7 @@ function print_SLA_list($width, $action, $idItem = null) { function print_General_list($width, $action, $idItem = null) { global $config; global $meta; + if (!isset($meta)) $meta = false; @@ -1359,10 +1377,13 @@ function print_General_list($width, $action, $idItem = null) { case 'update': case 'edit': echo ''; - $itemsGeneral = db_get_all_rows_filter('treport_content_item', array('id_report_content' => $idItem)); + $itemsGeneral = db_get_all_rows_filter( + 'treport_content_item', + array('id_report_content' => $idItem)); if ($itemsGeneral === false) { $itemsGeneral = array(); } + foreach ($itemsGeneral as $item) { $server_name = $item ['server_name']; // Metaconsole db connection @@ -1373,13 +1394,17 @@ function print_General_list($width, $action, $idItem = null) { continue; } } - $idAgent = db_get_value_filter('id_agente', 'tagente_modulo', array('id_agente_modulo' => $item['id_agent_module'])); + $idAgent = db_get_value_filter( + 'id_agente', 'tagente_modulo', + array('id_agente_modulo' => $item['id_agent_module'])); + $nameAgent = agents_get_name ($idAgent); $nameModule = db_get_value_filter('nombre', 'tagente_modulo', array('id_agente_modulo' => $item['id_agent_module'])); $server_name_element = ''; if ($meta && $server_name != '') - $server_name_element .= ' (' . $server_name . ')'; + $server_name_element .= ' (' . $server_name . ')'; + echo ' @@ -1389,6 +1414,8 @@ function print_General_list($width, $action, $idItem = null) { ' . html_print_image("images/cross.png", true) . ''; + + if ($meta) { //Restore db connection metaconsole_restore_db(); @@ -1427,8 +1454,19 @@ function print_General_list($width, $action, $idItem = null) { ui_print_agent_autocomplete_input($params); ?> - - + + @@ -1460,7 +1498,8 @@ $(document).ready (function () { minuteText: '', secondText: '', currentText: '', - closeText: ''}); + closeText: '' + }); }); function create_custom_graph() { @@ -1699,13 +1738,13 @@ function addSLARow() { var slaMin = $("input[name=sla_min]").val(); var slaMax = $("input[name=sla_max]").val(); var slaLimit = $("input[name=sla_limit]").val(); - + var serviceId = $("select#id_service>option:selected").val(); var serviceName = $("select#id_service>option:selected").text(); if (((idAgent != '') && (slaMin != '') && (slaMax != '') && (slaLimit != '')) || serviceId != '') { - + if (nameAgent != '') { //Truncate nameAgent var params = []; @@ -1722,7 +1761,7 @@ function addSLARow() { nameAgent = data; } }); - + //Truncate nameModule var params = []; params.push("truncate_text=1"); @@ -1748,7 +1787,7 @@ function addSLARow() { params.push("sla_max=" + slaMax); params.push("sla_limit=" + slaLimit); params.push("server_id=" + serverId); - + if (serviceId != '') { params.push("id_service=" + serviceId); } @@ -1835,6 +1874,7 @@ function addGeneralRow() { nameModule = data; } }); + //Truncate nameOperation var params = []; params.push("truncate_text=1"); @@ -1850,6 +1890,7 @@ function addGeneralRow() { nameOperation = data; } }); + var params = []; params.push("add_general=1"); params.push("id=" + $("input[name=id_item]").val()); @@ -1935,7 +1976,10 @@ function chooseType() { $("#row_module_multi").hide(); $("#row_event_filter").hide(); $("#row_event_graphs").hide(); - $("#row_event_graph_by_agent").show(); + $("#row_event_graph_by_agent").hide(); + $("#row_event_graph_by_user").hide(); + $("#row_event_graph_by_criticity").hide(); + $("#row_event_graph_by_validated").hide(); $("#row_netflow_filter").hide(); $("#row_max_values").hide(); $("#row_resolution").hide(); @@ -1963,6 +2007,11 @@ function chooseType() { $("#row_show_in_two_columns").show(); $("#row_event_filter").show(); $("#row_event_graphs").show(); + + $("#row_event_graph_by_agent").show(); + $("#row_event_graph_by_user").show(); + $("#row_event_graph_by_criticity").show(); + $("#row_event_graph_by_validated").show(); break; case 'simple_graph': $("#row_only_avg").show(); @@ -2024,7 +2073,7 @@ function chooseType() { $("#row_only_display_wrong").show(); $("#row_working_time").show(); $("#row_sort").show(); - + $(".sla_list_agent_col").hide(); $(".sla_list_module_col").hide(); $(".sla_list_service_col").show(); @@ -2177,8 +2226,11 @@ function chooseType() { $("#row_show_in_two_columns").show(); $("#row_event_filter").show(); $("#row_event_graphs").show(); - $("#row_event_graph_by_agent").hide(); - + + $("#row_event_graph_by_user").show(); + $("#row_event_graph_by_criticity").show(); + $("#row_event_graph_by_validated").show(); + $('#agent_autocomplete').hide(); $('#agent_autocomplete_events').show(); break; @@ -2189,6 +2241,11 @@ function chooseType() { $("#row_period").show(); $("#row_show_in_two_columns").show(); + $("#row_event_graph_by_agent").show(); + $("#row_event_graph_by_user").show(); + $("#row_event_graph_by_criticity").show(); + $("#row_event_graph_by_validated").show(); + $('#agent_autocomplete').hide(); $('#agent_autocomplete_events').show(); break; From dc09a9a14e6005c875e51b9f344baafa688866c6 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 21 Apr 2015 17:26:20 +0200 Subject: [PATCH 133/191] Change visual and add new images --- .../extensions/net_tools/nettool.png | Bin 1502 -> 570 bytes pandora_console/extensions/ssh_gateway.php | 2 +- .../extensions/ssh_gateway/secure_console.png | Bin 1396 -> 486 bytes pandora_console/extensions/vnc_view.php | 2 +- .../godmode/agentes/agent_conf_gis.php | 6 +- .../godmode/agentes/agent_manager.php | 6 +- .../agentes/agent_wizard.wmi_explorer.php | 8 +- pandora_console/images/agent_critical.png | Bin 422 -> 435 bytes pandora_console/images/agent_mc.png | Bin 443 -> 445 bytes pandora_console/images/agent_notinit.png | Bin 430 -> 438 bytes pandora_console/images/agent_ok.png | Bin 431 -> 438 bytes pandora_console/images/agent_unknown.png | Bin 430 -> 430 bytes pandora_console/images/agent_warning.png | Bin 414 -> 433 bytes pandora_console/images/application_edit.png | Bin 1640 -> 446 bytes .../images/application_not_writable.png | Bin 1492 -> 504 bytes pandora_console/images/applications.png | Bin 1619 -> 396 bytes pandora_console/images/attachment.png | Bin 1429 -> 514 bytes pandora_console/images/html.png | Bin 547 -> 555 bytes pandora_console/images/lightning_go.png | Bin 1516 -> 397 bytes pandora_console/images/link2.png | Bin 1429 -> 514 bytes pandora_console/images/list.png | Bin 376 -> 402 bytes pandora_console/images/lock.png | Bin 1430 -> 454 bytes pandora_console/images/max.png | Bin 1589 -> 482 bytes pandora_console/images/min.png | Bin 1573 -> 484 bytes pandora_console/images/module.png | Bin 1571 -> 519 bytes pandora_console/images/module_critical.png | Bin 1550 -> 523 bytes pandora_console/images/module_notinit.png | Bin 1613 -> 562 bytes pandora_console/images/module_ok.png | Bin 1608 -> 558 bytes pandora_console/images/module_unknown.png | Bin 1601 -> 551 bytes pandora_console/images/module_warning.png | Bin 1574 -> 517 bytes pandora_console/images/mul.png | Bin 1575 -> 534 bytes pandora_console/images/nettool.png | Bin 0 -> 570 bytes pandora_console/images/normalscreen.png | Bin 1524 -> 564 bytes pandora_console/images/page_white_text.png | Bin 1605 -> 499 bytes pandora_console/images/pen.png | Bin 1361 -> 453 bytes pandora_console/images/pencil.png | Bin 1466 -> 453 bytes pandora_console/images/photo.disabled.png | Bin 1427 -> 415 bytes pandora_console/images/photo.png | Bin 1461 -> 419 bytes pandora_console/images/plugin.png | Bin 1348 -> 401 bytes pandora_console/images/plus.png | Bin 1542 -> 447 bytes pandora_console/images/recon.png | Bin 1698 -> 683 bytes pandora_console/images/secure_console.png | Bin 0 -> 486 bytes pandora_console/images/service.png | Bin 1600 -> 437 bytes pandora_console/images/sub.png | Bin 1455 -> 444 bytes pandora_console/images/tag_red.disabled.png | Bin 1621 -> 495 bytes pandora_console/images/tag_red.png | Bin 1653 -> 479 bytes pandora_console/images/tick.png | Bin 294 -> 341 bytes pandora_console/images/tick_dark.png | Bin 1262 -> 341 bytes pandora_console/images/tick_off.png | Bin 301 -> 340 bytes pandora_console/images/tick_white.png | Bin 1218 -> 341 bytes pandora_console/images/tree.png | Bin 1347 -> 421 bytes pandora_console/images/upload_file.png | Bin 1470 -> 445 bytes pandora_console/images/version.png | Bin 1495 -> 520 bytes pandora_console/images/vnc.png | Bin 1354 -> 468 bytes pandora_console/images/warn.png | Bin 1442 -> 473 bytes pandora_console/images/write_paper.png | Bin 1421 -> 444 bytes pandora_console/images/xml.disabled.png | Bin 0 -> 473 bytes pandora_console/images/xml.png | Bin 1628 -> 473 bytes pandora_console/images/xml_disabled.png | Bin 1536 -> 473 bytes pandora_console/include/ajax/events.php | 2 +- pandora_console/include/ajax/module.php | 2 +- pandora_console/include/functions_events.php | 8 +- pandora_console/include/functions_ui.php | 23 +++++- .../themes/advanced/skins/default/ui.css | 4 +- pandora_console/include/styles/menu.css | 1 + pandora_console/include/styles/pandora.css | 42 +++++++--- pandora_console/include/styles/tree.css | 2 +- .../operation/agentes/alerts_status.php | 3 + .../operation/agentes/estado_agente.php | 72 +++++++++++------- .../agentes/estado_generalagente.php | 24 +++--- .../operation/agentes/estado_monitores.php | 4 +- .../operation/agentes/gis_view.php | 12 ++- pandora_console/operation/agentes/graphs.php | 13 ++-- .../operation/agentes/group_view.php | 24 +++--- pandora_console/operation/menu.php | 4 +- pandora_console/operation/tree.php | 2 +- 76 files changed, 161 insertions(+), 105 deletions(-) mode change 100755 => 100644 pandora_console/images/agent_critical.png mode change 100755 => 100644 pandora_console/images/agent_mc.png mode change 100755 => 100644 pandora_console/images/agent_notinit.png mode change 100755 => 100644 pandora_console/images/agent_ok.png mode change 100755 => 100644 pandora_console/images/agent_unknown.png mode change 100755 => 100644 pandora_console/images/agent_warning.png mode change 100755 => 100644 pandora_console/images/list.png mode change 100755 => 100644 pandora_console/images/module.png mode change 100755 => 100644 pandora_console/images/module_critical.png mode change 100755 => 100644 pandora_console/images/module_notinit.png mode change 100755 => 100644 pandora_console/images/module_ok.png mode change 100755 => 100644 pandora_console/images/module_unknown.png mode change 100755 => 100644 pandora_console/images/module_warning.png create mode 100644 pandora_console/images/nettool.png mode change 100755 => 100644 pandora_console/images/recon.png create mode 100644 pandora_console/images/secure_console.png mode change 100755 => 100644 pandora_console/images/warn.png create mode 100644 pandora_console/images/xml.disabled.png mode change 100755 => 100644 pandora_console/images/xml.png diff --git a/pandora_console/extensions/net_tools/nettool.png b/pandora_console/extensions/net_tools/nettool.png index 9161739c27f3486244caba39164afe76401d99c4..9a78741f1d3ec43889d3f5fba1aca737d4f0f587 100644 GIT binary patch delta 543 zcmV+)0^t4L3%Ud$iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*xS{ zL_t(|+G1cp0*oNS-roK{kTPUKlE?=LAO;KoRmQ*sWH`VC0RjkSzb637Az5};rKkog`+3j%2Yf2hI)kV0%hrhvrW5A`y3HzQfsh$PPs#2`N`1e)Fe z5J02_Ig-gBcNRdo2Y@CWKo13wyUyb($&qDY?}m(J=!Mpq4VaK^TUCD4hV=xDkebPplkpWFajB&Y>*9L1tx$I z=%HuHM2XrTqV_Mg&-T0gU(N$KeOE(B54sr9COVzFbF@BDRgg4@R!-K`*qu+x3tF zdnvd%jM)T6rkgJTB}ScD2$^r2ap-1JGCq``F53s+g$#|PA!>YEy#hr)kePVN<^Ioe zzu)uz{GV=X-CvM*Zyo@kz|m}TN#FAHo1+8(dX6s$OTuoEY8TyHr`Ssi3^4mSF9SP5 zbQj}dXn)_qIi?W+d4Tn_i|x)9!pDWwbQ+_MhIok$K%*(j)4py-guP4`8#W@Vm#-i& z>o+0?>YbRAw=w~?xnE%1{jDBff49%zM@&s{W0a5#gcy;AqoH6pLPU+ox?Ms#r`0F| zuS3LcBeD@xyR!|pasmU_t1*=i)8VjAtH!mML2IamH5iVexCX@{`G^j?Sk`Ss$Us$B0s&J$_W5LEm zd;-ghEEk5;7HKcnBN`DY(v1{Cywka5I2_q5lvFY_O7keL#?VkGo!2@#BD$D=!q^ra z@$~Tw>S7{XkKmK~(OI1#OSQYZqcl*8hImL|rKZq98|Ui@F=5eRGa}L-wV(A9SiK&@ z@dho{puu!{9M_w5HapdzF;EuVR)=F58{2Vp1}#=+rtEsHwE@Q|jX{U&tY*8_ptsn~ z6lKY99pQ*bhkZ=OFDv=o|nsMNaT=Tre{MZ2?Z?A_0zvt?qg?4m)Wd8%}G| z4cf@p#t7^ajNdMBA$YyQ1iMWH|DE{;*Z+U2hDyPp>GAm2xMWn)45p7;!!HS2>%)Yl zoe`wv`1rBWmjRIFJ8Wi8^p^L}RLUgJpC;MioSA$Q;7FunrXap|T1$e#pF#2v{9)0x z!kUsc0-7otE*t6D0g`?27e$LuG5NgC0+o(cm&T$^^B-Y1jsovdSO>gT@%oon=d<0- zC56pL1~0EP%~NexFrX-Ik=0)29QVP`tjK3gLtt5 zBo7BZ7~)N1d*wn+E`0p3NjsL;v5@cVs+qi4aclwksnPSQZ2Z|#UH(XrjonhnR!6_R zr($uUJj*pm*5+LMovfYBIe4hb?w?4etS?0?I*CX2j09z8_kokOW@T{UB=w_d=5|~c zt1k4{XvfK9VtDFQ<-T{IrCmGkn|r3sF;Me3IG4Q(BrP+im1J!6twGQ1v7N6>i%YRH z%G|I2f>*s$?(Y)EzgY`>Psy5Ym=~jR*SR}Is@(F#qE2|NhJ4`CAE{F150gx(eBP{A zk-}MM?EKQz2gR03csUM&lS7}$v{qSS2<(3G#QPNorb{n^xst3}uTuZ%=}ySS&qC1K z@2O%>rTPPk`zKhDe1m!Tle`h+h3TTin|jN{;EqZKxi&i>p41P?Z&sDhjW1DI;QB8@ U_N8|R&Zlo&2i0o3VCfk88;qL!`v3p{ diff --git a/pandora_console/extensions/ssh_gateway.php b/pandora_console/extensions/ssh_gateway.php index 1d2ddcab75..6f69e39886 100644 --- a/pandora_console/extensions/ssh_gateway.php +++ b/pandora_console/extensions/ssh_gateway.php @@ -57,7 +57,7 @@ function ssh_gateway () { echo ""; echo ""; echo ""; echo ""; echo "
    ' . printSmallFont($nameAgent) . $server_name_element . '' . printSmallFont($nameModule) . '' . printSmallFont($nameService) . ''; } - + echo '' . $item['sla_min'] . '' . $item['sla_max'] . '' . $item['sla_limit'] . '
    ' . printSmallFont($nameAgent) . $server_name_element . '
    + + + +
    ".__("Host address").""; //echo "
    ".__("User")."" . ui_print_help_tip(__('For security reasons the following characters are not allowed: %s', '< > | ` $ ; &'), true); - echo "   "; + echo "   "; echo "
    ".__("Port (use 0 for default)").""; diff --git a/pandora_console/extensions/ssh_gateway/secure_console.png b/pandora_console/extensions/ssh_gateway/secure_console.png index b571eb7c86d9d4701643b8f5dde550fc96693a2a..f8d5f63e246452465816db0be7255aca70036cb0 100644 GIT binary patch delta 459 zcmV;+0W|*f3g!bLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uU| zL_t(|+G1cp2ln>%2^fL^0feE%0j7)zDkcCT00M{+Dq8@gF2GbDJb3T`Ow|Pt2T1Q{ zAOrvc2rFU)n%w}T4lD02&^MrKHSfaYZdqFjmtJb-3jkU{T}vhxFC z3^l+}K7l|W7BK~A9AGtcApueq%h4IP(cWF@zq`=2rPo5;%CI!EGh4#7J?Ke$ce^{* zLNuWU-KHNvV+3R33jUihA%0Mk=@J>4$?Aqd5)D)1hb7bKOeS;FB`o4wpy&rO6EC^k z`#ksjp6B=cdrx(Cv>7VvDggk7U^^2=-`e7<-voeWOfm>a*rEEPYM0ofW>}d6-h>$A zU@*=0a$$~53>+(PEdc0}d?czyLkH-%m^QOT8*?@-Av6Fj?ySVd`#2TGxL#gxVK+Yg z41;{ag*{;l5h2OPCHeM2nd=(th{Ol`;#2~2?}IH_8aYUFDhspel%UXA7q;S;M(3g$ z$KZ;I+ULSnNkv1Q&?m|qw3!K0oUoJ7ZZ(rug0fOg&_a*|PFirnVIm3I=Aa1@u00rv zCMSC6FcVmdg(Mf2R8@(_@k}OT&NQ1vxfdrXioyvCZn2ny8Cwtx%|Bc$SrL(oEp#bTO|LYefxn|IpabT8Ruu z93JKrv0sj(e)Ke!z^Hcj4pcNmZ0LhBkD9`!7%|?T<^(m!xG?m`oZu5QVRI5B>97(G z3t@MXq|<9>0)B^u^0$&qGf9+uY=jM1oD4}Zey7#fN|JsHWhd=EZ@@=6TLWIdzqN!7 z3W~}Kajq1XM{(D%%ssKRPv%%vlp~^;DosFVQdC7HDN4}SWiyj7#Kw7{s3|sRHD894 z`Quz7Ad6|ZQem3kfWd!fzKTu!pQ_=A3|<_Me~n8?g=VmLTpxZUtgjCzpq-J?a`ZRt z8bbRy8DzYX?6n#vosR3L*71_UW7+ zSPa{+CGW(|`gc#~Cx(B0B>!Utd|}jd;Epl({2$9Fv@oN)tiZENo^w?%zA*@omtDQ> z*{;X>U>zb*s2k6FAKM~;=l0YzJ-w(o<0it2ZtB6|y-^1+D8?ssor~qMmf6;J&D?9( zbFXNviw*Posav}F-|975=_#;FOi<&2sF0eTYP30E{;2|T$ zgRWlNpR&RXnPfw56$e>oO~$vb6#_{^X}ID#|itHEyl0a=;emC>W_y%1iw^j z@-tgKW2tHQ^=jQHyZS}&)g}|4W z{w#bnttnJhymjt}p-AmtCw_Y7QR&XX!&BesXZK&szm%(Po>(O6cYnX^yJArH?g8`e V_l|xM8Ja8JgF$}>Gu7Jt?B4~2%%A`O diff --git a/pandora_console/extensions/vnc_view.php b/pandora_console/extensions/vnc_view.php index 655fe5071c..f10000c981 100644 --- a/pandora_console/extensions/vnc_view.php +++ b/pandora_console/extensions/vnc_view.php @@ -25,7 +25,7 @@ function vnc_view() { echo __("VNC Display (:0 by default)") . " "; echo ""; echo ""; - echo ""; + echo ""; echo "
    "; $port = 5800 + $display; diff --git a/pandora_console/godmode/agentes/agent_conf_gis.php b/pandora_console/godmode/agentes/agent_conf_gis.php index 7ab1aa17a8..62f8703b91 100644 --- a/pandora_console/godmode/agentes/agent_conf_gis.php +++ b/pandora_console/godmode/agentes/agent_conf_gis.php @@ -46,10 +46,10 @@ if (!gis_get_agent_map($id_agente, "500px", "98%", false)) { } if ($agentData === false) { - echo "

    " . __("There is no GIS data for this agent, so it's positioned in default position of map.") . "

    "; + ui_print_info_message ( __("There is no GIS data for this agent, so it's positioned in default position of map.") ); } -echo "
    " . - __("Warning: When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") . "
    "; +ui_print_warning_message ( + __("When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") ); $table->width = '100%'; $table->class = 'databox filters'; diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php index 5aa6367e81..212563d1b1 100644 --- a/pandora_console/godmode/agentes/agent_manager.php +++ b/pandora_console/godmode/agentes/agent_manager.php @@ -141,7 +141,7 @@ if ($disk_conf_delete) { echo ''; $table->width = '100%'; -$table->class = "databox_color"; +$table->class = "databox filters"; $table->head = array (); $table->style = array (); @@ -277,7 +277,7 @@ html_print_table ($table); unset($table); $table->width = '100%'; -$table->class = "databox_color"; +$table->class = "databox filters"; $table->head = array (); $table->style = array (); @@ -391,7 +391,7 @@ ui_toggle(html_print_table ($table, true), __('Advanced options')); unset($table); $table->width = '100%'; -$table->class = "databox_color"; +$table->class = "databox filters"; $table->head = array (); $table->style = array (); diff --git a/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php b/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php index 3163a00d75..55ce924c89 100644 --- a/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php +++ b/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php @@ -247,10 +247,10 @@ if ($create_modules) { echo ''; echo ""; -$table->width = '98%'; - -$table->valign[0] = 'top'; -$table->valign[1] = 'top'; +$table->width = '100%'; +$table->cellpadding = 0; +$table->cellspacing = 0; +$table->class = 'databox filters'; $table->data[0][0] = '' . __('Target IP') . ''; $table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, true); diff --git a/pandora_console/images/agent_critical.png b/pandora_console/images/agent_critical.png old mode 100755 new mode 100644 index cf9d190feee3cd36ff31e5f8e55c9bcfa3be2245..2dc009ebe1f82f68cb53f8569fe2a3f25c793c98 GIT binary patch delta 347 zcmV-h0i^z>1G58=NdZ-nN*sRytc+#P9!8i1KmakK8v+6#1x#py2at7P1ponr6){4M zIS-@^;AR5_0+0nj_AtQ&uxSUmq7f=4kJTc803r_ojZT2N4qbdc%=0iefC8@`O&usy z9ARz*`Gf`Pr3RqD0W`%Iu=)Ir=Lq8Cy=K;}q7%hzYfs_I?@IMeL t0fE$fbk9IT zMi3TV_kolGn(tw94WM9yMYaMVH!>0H8Cbvz0w&2}+gofp{XCq6DCO1<`}Y z06loHMJZkY5MV)CnDao&0B$x=AOKkaWDgTe0GoD@D;l9<@>neb2q5wh(C7rH>(IsL!#odjLj#bi zM^gt16-SsGK|W!DdZ_^@Z~#s51+2b9vJ&L|05mlpfQC%~F#rOH`UrnH?iGO4eJpAc zfz~fzK@tEd5(El`{{D2WXB_XFMq+n!VBG!#WD}=ex5sw;vApVH#>-RwF0T6FQ zQ&a%Y0Z_*aqA3D_k0j>^fB>UyEMiH+0zfJOhy@6k0ZPUP@EQtDo%^ANfnt9m9s~7} zQZhIR;md&zB<9%l(BxFsfE@1_ITXmp=Uw!4auGT2G0`HTkPZDnq@D+4#XivM{h+D< y8u%Xwm4HBMK5}H?G88!l5Cawf4NIhH;s*ev3V_qLx^WNy0000#K=v@<(++Y)BUEeyR*L`vhpw7} zDGEgQ3^Zf}S)iQzP?Pop*)ZS33;{)>0W7i=2)U7oSkJ%$UJztF4mJGf(FsbG^MQCG znxX`tdj-*h#{fNeuth0e01#kIw1`HU7|MbpqZ9zCepuSaqhA0T3l~7y0F;EVCU>Zz z3edoOKxA$O6&nFigAY=$U@Hlc_}I*V=UOCi5o##?BI*MXdOna8QJ_?dl(O@IxDY6I wfk1dB0I7PYWe;#h6q4fkM7rFOkmVEu0LN*3b78wUKL7v#07*qoM6N<$g56YuzW@LL diff --git a/pandora_console/images/agent_notinit.png b/pandora_console/images/agent_notinit.png old mode 100755 new mode 100644 index 5f60679b31f08878d7d2f54b844a2ce7c030bb23..aa2b49b44f3ff1d82f1939dc045a1faf599ff8d2 GIT binary patch delta 350 zcmV-k0iph`1GWQ@NdZ`qN*sR!SlLo9X-1d?KmakK8v+6#1x#py2at7P1ponr6){4M zIS-@^;AR5_0+0nj_AtQ&uxSUmq7f=4kJTc803r_ojZT2N4qbdc%=0iefC8@`O&usy z9ARz*`Gf`Pr3RqD0W`%Iu=)LaCO za1z3o106`rvFnjbGZs=L36vZPOL{oGi=Iv{BIi9OT0|7Gp&y9U^MI__2YS69NGU)A w{{x{C5J=5Ojx1b;BBuaizyhFQi8M|80BwtrR^C{plK=n!07*qoM6N<$f@vv(kpKVy delta 342 zcmV-c0jd7B1Fi#*NdZuiN*sSbSlLo9X+|LZ5ySxqAVzdUfZzg9fgux`-~o^z13mx{ zKv)qY)R+JuwI0Lbk9IT zMvw){xeqmIKadUcJ4rC!#4z0J>KY zJ$MYzg9lrb;spQ!Hgpgpj*LA5pvus0I7fbSkxo}tzW=` zBmhz*2o(H)C3!tyK}$66foyn+f~8I%c3>jbjYKPixzQ1i8h#-Di0te4Ko<|@Bm1V0UrPe zAgqWHYD@r-S`T7_EQdK1E&#HJ37d9gL6El^fHZbj00a>E2x#nkEMoJ4_&ly4Vn7NN zN0=PQCoD*kj>sy3k_WH`4w|(NXhIKw8Xtfd00BgO#E2yn1klt70>$k zh#ou!=)r?6O7Q}K02?}p5l2QT08;(1w2w!>05ldZfU*H73E?wT0UDSOh|H~^Vj}=* z@BtQVB_R?Yn;Gz2iv&w9LJcJ?)sX_w4gElbo)5$(dsu=LL`vEDKwJnEyFeg36M$4b p)UpRSBMM3Jd?H=$NXT-E0RR9Ze&vw!OZNZ(002ovPDHLkV1h5ufOY@? diff --git a/pandora_console/images/agent_unknown.png b/pandora_console/images/agent_unknown.png old mode 100755 new mode 100644 index 74bfda385eb4ae0d4e4f88a7145e1428a958c1d7..b99497e8439a32ac5f2cddb3434a036b4196d3a4 GIT binary patch delta 337 zcmV-X0j~b81Fi#*W`72-GCw~*MwkRZ05PH)0s zW&;HRkOe^YFu??{X$QHY5h^B+)gpiZA`bzLPJp@&U3@;w^DsAn0BVQz#6 z8;}7~?1+W~vHA|lN|5&h(A0bY8a4sM00Et4E-eaOgL?Ijcfk-_M$clZS*ZYB#0yOYH5GnzI)O_T~!euCO j3Lpk702-D^)5H$|I=qjNh*aPU00000NkvXXu0mjfm3@8- delta 337 zcmV-X0j~b81Fi#*W`BOLGCw~*Mj-tW!~qB(Ms!1f-~v#AArqS50gxaAJ^&CvSP>)C zm;fNP9>fM&4s$460AvpnKJ6e^G(yETV6_M!fXGKcf5&kPY)a%n(pC8o(l3fsh-Si1iFC-~~a(<50to9-W|6IUk58qA5xMx>pcAcnr{k z2V0cl1pomybPywsj8Xuk`eA7wkA4AYEL;F(15gseXQ%=+Fdq<^TS3J}0My_EEZ9my zBtAAX;JFqFTuOu*N?NKT1)v-Hfe1Yxh)wpe1SyD=vh#ts5GZzmKzJqqsd}ho4{$~l jlH&P9y4;bFP~$7 diff --git a/pandora_console/images/agent_warning.png b/pandora_console/images/agent_warning.png old mode 100755 new mode 100644 index a63e0ac4fb68dd1cfa92f725fe00c2a365bff695..238f3067e088029ed3293d51df713dfca03a011b GIT binary patch delta 369 zcmV-%0gnEj1F-{;Nql)ASQ(qmSw@%y zKmakK8v+6#1x#py2at7P1ponr6){4MIS-@^;AR5_0+0nj_AtQ&uxSUmq7f=4kJTc8 z03r_ojZT2N4qbdc%=0iefC8@`O&usy9ARz*`Gf`Pr3RqD0e>{b7qI#c$x4v-1JKlb z02(#{!~h5&>LcX1R{&D?v8YJ|TEBn=NdTls5GeQoOY(Zah@O&=QxsA#!jmdNK(s=b z8y)ee;RoW6$i99Lq#gkAMl?kQ@Eibjydat)5co)PjsOTS+QuT5G%Nt55`b8MfEl1< zd;qVZ(A2pfYHAoL_9x;oP#-BJgOd=x9Oyt|j$Myjnz0~BpyW^>AD?&8)5%5TyvIa~ zh(b2>1Ce?jkQMttulEBf1!&-ZAXEYZsrkr}h09Rn6hI7E05mL-rimW_%axDa(zw&( P00000NkvXXu0mjf?J1D= delta 350 zcmV-k0iph}1D*qrNq;~|L_t(|+G1cp2fwZ`{|C`bP<|sw03d)cl>l)+SQ(qnUq&GP z5ySxqAVzdUfZzg9fgux`-~o^z13mx{K)4amm;k5?{-ZnTKa9A z5hIpR5I|ES2(~W8VeUd*#IR8 zVKGzzgh|M)>sO)4%>g;yvF1=9ADbEQT#E!Q0&xJzsg4wYZs-Rh^n4(z>%07*qoM6N<$f?lVJyZ`_I diff --git a/pandora_console/images/application_edit.png b/pandora_console/images/application_edit.png index bd34201d8216ba99590920383df4cf21507fe310..aa1053ba8f8e85608021b5506870119678f1ad00 100644 GIT binary patch delta 418 zcmV;T0bTy+488*)iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s`g zL_t(|+G1cJ3IGHUDzdk?cYv{(paKFQ8X$lep`7_Z>LE#E8wS*Z|O^11wO5AVcb-`~F*-3KTRhJize4jF#}=3Z4BhGgz>wc-aqBL>=!V z0Th>-o14$);NaK@6x%?AONomp1qFpYKq?-TJb-vTRbqeT%9Trjt_%b+L9P#g8s1Np zBn31Wl)43h7!(W+*fJZwFf||$Q4_JKGr(o&1Sk!1fdd(l-Uu@T03TCw6T{G0NdN!< M07*qoM6N<$f+Ccc8vp={BcEQ5R)#6P%j=ZG3b z;4uhWt3{p$Ww%&i1I>_djtpeEfC7URav3HEYPotIi~|gy7>)vE76vpqN)5o^@dx3( zG43i&DN!))ijU^WPxlM%~Ye9TCGL_j^cP0kI3?`qF84zi}I&USRhEh zi}Cna4^6=li_S`V1*=8)NS~(Q^;s;>3{(E`Lh&U-gH9ic$pGs0M)Dd%``J?R?=YT= z_Lr~nk!UIDr&lm8z8_U-6J)-2|LrIOKl+^9Ax z8v>!e)dgkKNuH%BekEA+s~bF=@It1&R7lckw*ny#Ce0Ba4+(*7FS2OG+A zWEgC5x;#`w6KT-Xd2co=*xqbDj#uN zo)C8kr1Y;n590bA(vDd82^Z*AhAJJz1%X62OE9nc?DhxUot@#4t9?RI21QY#UA5nd z;S^)C4r)>Fw|$YH6BFIv-=EZHt2nyy4#$mN;5hDag8NPrNUhRZtAz^+L#K8(!ZX7+ zzFH%No57$c@N!7^O`JQ?K6$X)3L{8=^yp}B*>R3ry6s77tRzY>CB7?t@cn|&jC%15 zak~sGuL4)u1RZp3b9l1dvHtbI@S{YDB>b5qUYL=Qv3{gxQp=Uzrq-U5ATYc{w5vEq zjLf6MjY*>8@og4ht*AIVau=UA(CeQm87+PYnsY-No6kjUqGk)hJIw|6@JCHQthsh& zeyYgUwk&$mIdJ@Ty~EyHXqzI@rLUbn?JfO#SszvkJI}umhh=7F_PjfK=a<5kO`V?j z1*w<5@947);le$hxcVJmUt4k}+_klTgtKevQ*_c%ZgJiKm%6Y|TDaukZ*LBKa%=0s z<&GO0T@LxSHj{K;F(_&m)ukk;r-P(FUKL>an_*$6f9g7Ou}C)+q3>_iu|oMwgwSV+v*@SDzWV+aLr#8PeW3Ea+-)Z_%F*HSTmk=2t`~ zcACZO2V=!t?|f+S&n>2{_9F7jvcx_4l7XfYX&bk}wkI@D^gDN<+L{^DdM|I&WyX{Y zeV$=DBu@KQx3O({{T8@G-*Hpe`WpA5$W~xldh8VKYtdh_=pN@E5oB&i?Dh!H9~A4olf2_8Inuz>~2UbvT)bwBg&-3*LC zfY%Oy0K$qGfo3p^T5xH(YUK`OCY1Q0-s*u07j z06lkr1*#C_2zg|mW4IJ(GYgWye?pLMpyS>H*#b~8MV38#9smui#|T^~c!0$IfGoj+ zB)A`F0)zAK-^lXsL1Hif5J1ESIkBOD9H5Oj)PX~XiPW@)5=F2`hB*rq?ks2u6oAxy zD4PKoo{U%%D-a}rk|H=c>gzLL3riT7@YmI~9$%nCID7VdKu$bZ72-^De-KbebjSb% z7)=mz!cPEF^C>hh5tuX%nCx%w|x8IFJ$PjW9C+BQSu< T7BRBg00000NkvXXu0mjf*?6?Z literal 1492 zcmbVMZA=?=7{BsTps+EA4vHaMjs*!q@BY{Kla96=FC~;g=`u1Q^x7WuDD9Q&K?^QQ zVc8g)#%)NZ!Kf@EESby35SNjuTlQgQCi{R}B#4XgixZK^h{%+B1&V$k``{&)`#;b9 ze$V^!KUq^z}&2Plq)3{KWg!zK^a zLR)Cc+0}lRE`p#~7h|pG>&;b!gZ0R$2u2q4_yjft6%_}4l*3K)u$^vUygKB!8($zW zyXW$>diH93Cq#2Qic^eFcpAR3K>vfT7|X%#xa1Q07o%(A;1Wwn!o_O^&o;b z&e=>@$g(Y8f}}%SJnth=G!O{L0&*G4wV*(&)uI@V;&`EeDD-!Ec`8`w_2)z_khI^y zF+QGQy>P@LWoJ8h9U?@!nS#e>Hg6mD`nL)tlnf10J`~6>)Z>ZdwSo5Y7W&^Xc0~KF zT|OGM(0;aqa|r!t&WVzR+CAG*1Smv99OM|GDO4NDIyyYGmp73*MEE0fGERb2k#bya z&;Sz0R2l#@1{GOWs>ZdYMnK8|7PYYxSFTiPaD_r?R0AadrMMBpv__y*0|jYNDio?H z*W~r{l-EH={W5~zEw193T%v@dDW2u5EZY{HfEpLevwj!rgG=g^G60(?2jh)sA`RNi zm!vtSlXjMItOwqxFv08)0R}V}0BQxM-pX84qS6>hpj2p$DuY^%Y;m3cr)sDW3>q1a z|BOpiCCp&txIO%Wu)RLCSJ)X&SdJebFXTZ`OpJ*%Sc9|nzrx|-Slkx#+{4RF;nZ8O zD!Ko@Q#_D-s^<_k;ua;s&x?lo5>nUG)6yKlmB%l{ruBdHUBfrfNbR5~ZqNCN)^GEz z=X&6Rg41V2`@4RfoeYQB`PFbSz7!6t+4a6Z_3hJyC?@f?$JY`{tf8_1zcv8UwV5meuJ{NW);bgV8W+ZFHJOFrs+H%`s&V`q0qVHf+uS$?wM;nF~pIcyLv&bhDNAmah2QfdT%+L0_7}) zM_0n(H=at;drR|*ET(u!L|)C!z1o}k>XF;xN8?Fx!^6W%`SVk3cB>OP@k;HL%j4rG z_k2H*Z0tk!N@PtpPhS-6w*4$!xc+fU%EUhVlqg=mxAY01-4tJy!b5piM3oDbm6a)Tb92rYS66;HeEhXP77YVj zL+x&hzV3rBzwQ`3YDAz1p{1k8iYG7hIm)FOqfbT#LY&c<`5>;kVaO<6ZjSZe>lBN1 zIaS)X@32iJmCSpiGS~ZtcMqPmNHY}IGBWnvv)fjGmnuKcoRwzG%$TO)2IGF1?&`}= m#K$hB-$-(`8rDv*ZzVvI4_9rW&t3{d?paf5HTkL0*830f2?6W? diff --git a/pandora_console/images/applications.png b/pandora_console/images/applications.png index 0859571a784038af226c5b46053fc8aa06c1c1b2..ca69adc9243b2e1cbd03e29d8f21699ab32227e1 100644 GIT binary patch delta 368 zcmV-$0gwLE42%OIiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rE@ zL_t(|+G1cp0*oNS-rn8;NGUKO%K!urDgr41;sg*IMHxTxWq#nWq4<0<&zyf72 zgwhHOgaAMQVMUBUvm4OF>ajYMctNZHAb=Q=y^2pE&~pcvpbB9w+YiJJP`VzCCczEl zD*gbo3TiC_)H%pB13&8F~S# z5!t1VNG@YQ;|maD=m>VH0h&u0&|C&9aU9X~U^R3ClolYXfP=UeYz6=rmSt*JYUxD) O00006|g!Oq8rdRLJT+oZHMc6?Ed}6eLbXbaYpsZhsj6*d>>HpXYsk z&+~h}uA!)K#q_CJQvm>&Zd{3(*>7h2FD5RcjE$MC}D~zC*#Ly0?;}r8vz>K zcqw5faL3lydWmcR;JQdl2~%P!P}?cD2#?!{0&Xvh27v6`fETxy5e#S}N=c6f8anx^n7n$zMXn6eL~*dtVh@(tRSqaO2h0wrSqE-{!NGugv&W|nXrOVwYW5sg z!w@)b!jx&C2~s7dB2Z7!1Sk_BLOUWyLAg|fN)eS*wHy>9C<3Em7*PmOL@iUO5fq$! zAT}E9aH`E%{$wmx(m*bT@v33i@Ar%R5)nn0!l+86f)Oz+77JMmp>L~)!2?2%Z(+g% zM)>SB>19aD1I9h#HmaP_KrGXV6x?2u>9J#vZ?aHq$>0F)g;5a#yWR1;#;tvfnfRB+ z6RmxgtzH5)6F#b(wzK_kE=+*g+C4o`+>m9XUPF^?Q}E3gWiNLV9>$1iAofP&ARTH< zj!DE4trEq=h+K)HO068rHz>p^gAT)XbVMcPE0_Ni()9Bi}Hf{Vwng9O}L%( z#5M5-P2`IaG`WRvQ!2UL8moH@_n4 zzPjUVPCXSGG|UjnX4m}QlWRE@85pU>=P!d#$_G4k^S{a2I0g@oF5oubt_n9sgM!hD zg6+p1)n(ccAU#jHuQBaY@JQ^;&A^W0{+VgUxgvH4ixFY8n77ED8U1mS zZNyKcahsp{cH5~u)2izk8Fg|A!XMGq{CRkpei%+c9%_zs8E(~=b}dGKqqBi`IKHY= S*|tFZH*Yi)VxQ=&HU9wN1Wh0S diff --git a/pandora_console/images/attachment.png b/pandora_console/images/attachment.png index a15132fea6945e461d29ec0c0f33745dd68851a6..f827bc818aeadce5ae75f492b8aea7d67f407500 100644 GIT binary patch delta 487 zcmVkKZ0q4vi~FVF#tdSk%2&F zBAE?ipJxKnA7F|O9z4hhWh#(v1wa6ij2Mv|_Z~yLK~E5kxHEZNF~iikRd=Z1uS(1%sd5L zK?KST2cR0~L*oPN1E|`5J*e0NSP=)Z6iq!iG;l?70#b>*0Tkv~)CEAp8zgrSR#HO~ d#)ILL4***Uxh-mknnC~o002ovPDHLkV1l4YsWJcn literal 1429 zcmbVMZA=?w9DiCmCxVYXAU6zIv)r{yvj_)wuvDrtV$(EiFi%W~qs9le%e<1x|(!vCtQ# z+u25zW_n(mWvc<>UUFS5|2$8=%Lj6<_gj~g+Y(N+Zs498HMKrxFB$4HZf#Bi8-5ZRl^ zw2_UJH{(l|>_|kC1QJENySw$>20bsfqqxmxLoos+2%U`3#d~5BozTVN+N=eNjfX`} zkT^aD(-!Fv-zC`*InvD(qJrPQWjGek6iO}`nxF*~*JEfjn$Bwj9hVx}f5X@o9S`;h zEZWG%`7SXm_oGdlCCjyYyrVQwj)puSa&lAXPKpnAMcJ6-qwI+MN6&B!Ntr1FVQ^Y; zioncP9Je~nl-FY+Y#tX*8E`CXV>_StxDhGq6$KyZa zl2yqwm_BX|zbtI64;zzrMwFLhde^b5@_t_PQO;oEPH1g?y*7tvRqj0Z;)e&p(j!4p z82~#+erW+pwWlvXb>FVlYQHaJK3l1rlU3JB3N4PC7+6||X7#T5{1S(?Vq7@*@)hwc zC|R#tT2JB&?qyKwW6B+?H6#8{egcYt@6d!h8Jtm`Tv%URTpS4`PbcSW%7?GRGS%Fh zVCYs}{#(b7SA?dPl_dpzrAp3|@~+MHw;fih;aD_u=E_w40vH}X3||1(i~F4CPMo^) zWM64zjUIeaHTd#dYo3UK-K U3Y!queoSAKK2HO6-qm{SAOFMRCIA2c diff --git a/pandora_console/images/html.png b/pandora_console/images/html.png index 89fe89e7016153a1b0a34ef63e03b689ee9338bb..908b2e55a920653f51ceb872b427ec5a19645182 100644 GIT binary patch delta 492 zcmVSsRGDhjG-7gR-oWLPz)R-AOawO$O>`?T#A5BYk*l_k0)S3 zo`Nf6fTaPT>GwhL2gHIvu@6vpVtR;&hlfEzLW1GNix=;aBZ&!FAuxq8sHmtg+_`gy zp`xM!#eNipJAZcU0GR}4*VNSDRtR(xBTymCQy*|Dgarji1J2mN5;F`iACm+C0@P9l zHvob#6phA3+zdx>5-;41BRBz$zy_}1fdT9zAt8u>2OCXM;HR{Y{_=E5Sf*6=iX9O9 zC}f<~FKTJthRWhqXip7sF(j3x*@i>${N?F0Zk zp`izo0LiHkOVVN?q!^f596%{1At8Zb&6+jfcm}4N571=x0GmE0JO<7OrYHwc>H-0v zL15azzyOrmU}>0vBtwDVA;=(L;sP7EV8H?gkc)vS6I~|%fMi3Vc`@+9g$v+950n>R z0AvvmC;)v^fK4ynFa;XC0aWBc+2A4%|3Nepl7Iq005RYPFg*YPgdzaM`(b=0G!2OigaAMQ;kC>G*+Q7v zAj=Nmbs7_1HzNap0Aj>q4BRsZ4<2+xmSaIvxE@G3Kow#bgdP$B_}s%tFrXP21cA1E zz!gyYad{9RfQUwnXeJf_DSt#je;jPU8VW$rk1M#CaM*MJr`6CDc%PUsO+ZV63iv$Z z08KU@fTju(<3<6fspknPB%Fki*aBo30uW#{L5w72bEFIn48aAs^s(SEumFdYBhbJD z_#A^T!0uGN$6@b`))Wi<}Z?tGRP_tuz P00000NkvXXu0mjfginZg literal 1516 zcmbVMZBP_-82|4rqR^qhB!i5~x==vD?e4wrcE{audnXu&%z=tT$==-}J8-+_-WmsE z%^j#oLk2bFTTD+eNS3kGiZFS+3oq9Yuk1G}L;Llbgac(t>xppXH?z+KkG7R6fo}(Rx~= z*4T^$t;Y36f-u_jw9{cwla3;S))08i#>2Qqr%`VwwX~5mI0?d`wmES-P1+J>yVQ|_VIt{Kz7r4IvQ#DKu z28)izf5s)Il4me_d@%g7@L+vdUfvl|UJlRkePaM9GD>J$W$2RU@3}b(tgcn09NGBE z^zhKoo@5Z2era#*2OZ2zvn$A5*}OGxdEX}rj?DE#qYF3 z%dA~-Hxz>nmX2k~)^xrNN;~{~qIIG$c|DlOr@y>e_{%_1|6lzzUmt@`E$zHj3n>&y zduP&D9NoM$)f*v3AS>vNPZ%lgF(VP!x+9r}S4rSvw$f$Arr?hi*MaS;)h7%?8R73z z>W{$R_r&MXo?DB_By#-D^o@h#%Eq*GMcW^W%iXv#>Gte^8X(HQ`0)Hs6et zF76w<0wyoO{kGR0Hz-G2GdAH_ZAG5e^ox@TqbIvGOLJ3adVg!TD#aOCvK&RY^J_iB zr{As_>5hB#jx+mZ^mAnV^h9=5S0w8P40wO-EYDp7Lmjzm&%A!OYlEU&o7wPlm`vDG zef+t=m;yk~WAP$*Y~!JnUS%S@$TYp2X@?H&OL)@Ovj__1-vcLGNArg&TRXcn%Co-< z18a6oT6SA9uLQae?CCSDK4{g46JK$DG@Chc&bLNivt?Vi_59tb(bm+RkwSRpjr?c# z&ux3*-cOUWa9SRG_*BmsB>DQAyXTA(t0o5%$$_5c_@}|(kKZ0q4vi~FVF#tdSk%2&F zBAE?ipJxKnA7F|O9z4hhWh#(v1wa6ij2Mv|_Z~yLK~E5kxHEZNF~iikRd=Z1uS(1%sd5L zK?KST2cR0~L*oPN1E|`5J*e0NSP=)Z6iq!iG;l?70#b>*0Tkv~)CEAp8zgrSR#HO~ d#)ILL4***Uxh-mknnC~o002ovPDHLkV1l4YsWJcn literal 1429 zcmbVMZA=?w9DiCmCxVYXAU6zIv)r{yvj_)wuvDrtV$(EiFi%W~qs9le%e<1x|(!vCtQ# z+u25zW_n(mWvc<>UUFS5|2$8=%Lj6<_gj~g+Y(N+Zs498HMKrxFB$4HZf#Bi8-5ZRl^ zw2_UJH{(l|>_|kC1QJENySw$>20bsfqqxmxLoos+2%U`3#d~5BozTVN+N=eNjfX`} zkT^aD(-!Fv-zC`*InvD(qJrPQWjGek6iO}`nxF*~*JEfjn$Bwj9hVx}f5X@o9S`;h zEZWG%`7SXm_oGdlCCjyYyrVQwj)puSa&lAXPKpnAMcJ6-qwI+MN6&B!Ntr1FVQ^Y; zioncP9Je~nl-FY+Y#tX*8E`CXV>_StxDhGq6$KyZa zl2yqwm_BX|zbtI64;zzrMwFLhde^b5@_t_PQO;oEPH1g?y*7tvRqj0Z;)e&p(j!4p z82~#+erW+pwWlvXb>FVlYQHaJK3l1rlU3JB3N4PC7+6||X7#T5{1S(?Vq7@*@)hwc zC|R#tT2JB&?qyKwW6B+?H6#8{egcYt@6d!h8Jtm`Tv%URTpS4`PbcSW%7?GRGS%Fh zVCYs}{#(b7SA?dPl_dpzrAp3|@~+MHw;fih;aD_u=E_w40vH}X3||1(i~F4CPMo^) zWM64zjUIeaHTd#dYo3UK-K U3Y!queoSAKK2HO6-qm{SAOFMRCIA2c diff --git a/pandora_console/images/list.png b/pandora_console/images/list.png old mode 100755 new mode 100644 index 1a7e1e5e2500f378b32d5d9fc55de20dcbdc70b2..5983ff7758ffec08a23231f2266a35b7f8df5fae GIT binary patch delta 338 zcmV-Y0j>V{0+IueNq;m+L_t(|+G1e93+(Of4L~$N0AYykhq0NU0uCS=Ab>DrQB;ux z00M|O1hnfvRw#1ND4Kwl1VW>&A59rpj!=d} z_DUcce*%!2KudC%qPZ00ssd`ev=FWEp^8gkfqwv+xf)<48glB#7O5-*OAQ1cWM~69 kE(Lk70AJ3=1K`;a0MSHyVhghM=>Px#07*qoM6N<$f>kGk=Kufz delta 312 zcmV-80muH51NZ`vNq-tiL_t(|+G1cJ3IGHUDzdk?cYv{(kR<>D2tyV_6-W|@{}Z$W zAb^N>2@^I67N{(;MUF%{6$}6Zh!IIe11`%C9z56pw+jjm0P%jPUHg#~GJ>oE(g#@3 z3;`*;fYotW0~ZfKHaQ-M9|Exh7TJh(tXh0R0A5{&qK4)Y}_ObwtK4`5Y@C8ij0Da08|=x#iKln$^f#FwH-0ssL< z6U2xmazGycK%zOIC~$;@2MZPjg&;|!{C5FL8(_(02e2hA7ChM!J@gNdlZUV-UZgaz zAB)9|BpHfi*f9m1WfZ9{9Xj5}qJfdzbh;i-@k9tD0v+-I!~g&+iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*tJo zL_t(|+G1cp2ln>%4Ir8k%J~nZ4gdrY15Ra3K!yX5t_N`d0ti|5JP@yk@tL54Ae9C{ z>;Po%XTS#l0thz(YE^*J1#q*0U_aDJ{m6m}2M-=>Kyd|BD}LJn0*Dcdr2;?-WZ?p! zkq_{>Za*6TKUR~Wp@GdE2Y@y>f1)@T82}|23A!0*`gpD1~?4FRj|a9;(cTQ z3RgvF&Obm%F|mf8N2&oF2q|VE)|+?=ii4yiDNvTmhq}xFN$LYM2qpr918YzK0CyK> V+sBCrEC2ui07*qoM6N<$0fIdnmvjIC literal 1430 zcmbVMZA=?=82{7qQdqIz7}*PfOJQ>e+*@C`YbdnqwNOKWKov0i(4#%*1=_3EV-ymX z1NTypCF~8i1r1SVTx2-sHeaI*G2z91Sh5J2Tbx7vAV#x|4O~X%6)5_F?1PtF?*BaZ z`#tZ^zq_iUG&yN|5&$6CUPe_*-))gs5f4DjCx2dk7!d?(olwIy3T-sc0JDc{U?97X zZepq#+SC5pBvS-{+{-%aggQsL!Oi(#I)Z^izJSCApr|Aipxw=k05vd8tly~q>&tJ{ z5bH6jYjqCP5wI{`wyc9^YC0;M?v7?R=~0&yLq#EjWWdJ=G!*i+_=AR!QN3c zL=CM#gl409HK;mA6=dOf2GYT3fg9ChkX{R8T9nk1`4Em`D1zY#T3CRg23?^6#h|rE zEqUWTjfQH32NAfXAx>KNV3YqUDAJ-c+w@wi zMrVt1?f#%Z``t{`FDv<7<7%GCHCT9t7C7F?aV^masPb|G7xZ!g$Wo(&F~~u?S${+m zY0zrE6vMOo7>|wTe9%gT4eSOH*oZUc$A88ps*+|fa$FyNNmySW#xLy*FD=Jg&TIFi{T#PbW@qST!;_~^OXRpqmipl< z=O3%aApNGWBDFsDq{{80W@IU*-7?p5Z*Q;SxgKSCt_fUy2+p(Oi=mYC^ee!6|EJ=t zl=o7@^QQ-{pkue?aR*JeRA;XONJMWP`Z<5_^~KI5Q6|$Ug9aYZFT}s?OJUg1;LN_&BPE6b@cKjhbfr$B& zUGFc&q~w8*V_vN*9wZpLpMjeGH>M7jvUxowjY8ODphG~Tv-0C>AOTod0c*R zhe&|>TA$nh?!w`B(vKc{Ii_#w@Nb&XuDFwLj@}Re$sYSHrphot%y8Z#rrRSdj diff --git a/pandora_console/images/max.png b/pandora_console/images/max.png index 87f2c12155c3311cec28e84ae3e534b37e205109..64fb5e04d5717d69a613a254423672a82966820c 100644 GIT binary patch delta 455 zcmV;&0XY7(4B`VJiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uI^ zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6;mEDlV)zfH9jiqE0ffuj4p3t; zU4`y4EWi0U+K0#1DXYKd$h^1|9%SR%AqXE6fyRMKBIP z0Ff5tSWE_i3qTV;U<-u+AhjM{BP_6Cu>kV@dtBBcN9=t9k)nW{0s^67$N-IaWI6#k zO@opkEQR<(1HB$9_W|a{`5;{c-3VkP;&I{vl=3&eLERt*6#5UP`~K#?vIbh_&Z8gvo0zJOMI{j)E{ zpwFWfKdZ9B)}WE_`bwKAVo`HNmAkplje5koVz4NJF%J9$?F1wK`alSaXvL#`G3K09 zLt=2$gs#(y$4J?&m7tNN2v8-1rEXY_fNG@-QNpMaode2Y1cnef1Z$)SjHxsjjDX{h zn2APtYA_pa9*@OHTCta=gBS#b!(mxiAtR|;2tiR4g5{80E@dpFp{4-sj7S3^Ny-CG zgxr)bNc+eDnDpp$k;`eVm|;4WfjcM2K8YxtV^{NK#;?c8?B}G-TLd3n(Ac6lXn7x|jQj0BymwV&;#`XIO$G#4AaKgZ!?38rs5Gk727?AMA&5zCfML{ts5FQY z*Q=CDbqZ?g)5(CT#i z0!dA>L1X#i1m$ZaJZ6gYgQFG3d=Ft@)@aNKqEW({@yv~g(unF!CWGFjR4W+vV_47s zsT#zPfs*6#pK(d4m>EnS9}GVuJXjwh!0ZggEXPeOe=7j6-4~*wVEH-mDE-V>tN%X!nGIb66 zzOK3DmhSvx^;oIlALi%q*(H}(%=ta7^-N22alAcO zb)~@zwBD|4s@fI><0hmnaqfyyAe!^Jpe)uQIFz$Npc`4qnO`w?M_x2B>)oM#PB+(H ze+Zy=POp}tELK*@j5?S2G6liMJ^SdJ>1FRbR`0%422b7dV_&@QaOY2_Vj`QMQ&-J-`io(gZX`?GS6H=^vVcqI7SZfotv9FhqeprMhcb?3 z@S|l*8wyO^6-T`X&khZID%_N|UZ}*S!sl1_4uE|hu=_jaO@nx~wBuyPK-Urb-o(|R zJ*?wRlYhN?y`{MAhxyRvua1@!-)H6Wx}J0Firu+gy#0L1!2`g$JNMGQhN>?B@Zi)8 rbJ6~pjqQ`g`D>LcIs4DiqMy+MU}wK5^IAUqYVsntm@4p(435}8Pn{!0 diff --git a/pandora_console/images/min.png b/pandora_console/images/min.png index c1dd8d377f444dca8fc1aa39adfbac7bed5db9dd..eda5715cd0de6bb16e370514ca686a61cc7e78b1 100644 GIT binary patch delta 457 zcmV;)0XF`n4CDhLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uO` zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6;mED07$Jz*9Z%2SS)~i{~njM$Ps&=K%^)jrvOmcT>u3(6e~i-Kp+7h0z5pM_#f(z&_RiwZ`P=daIGf6?i zWZ6Lj=!{ooJj-L==2JE`>O^=KDcSZS0cy7XudIibDodPrfL zBDgNNY!*x$(HN^vCdp#z2WFX@AF)QZ%&(X+H_c|Ni&>V4EMxO?>zGkWbAgzUUHVTclRk)k;s^}y}74-T=HULyr2mQ3Wl@Y)uWpje}|!8X5%X<;p0Jk!u+ce=Y;-IzyFy%MYn;$i?VBhX;b+vW@4L4#sC zE-tQtsXRSJOgS~aD^MzA)pRbAt;QY*m6(}BQS)hAy{95z_?bA z!w5M0D8y{Mrx|yU)NC%%GALRE!H+{wM@NUML!;vO^$>z#7zC>!wYow?R0KMG0v)XI z1(c}>BolD+tY2U`ADE0tH*xKPK_M!gDZ%Tv*`5XV1!fy1whRi=eh5*)kk^~6YZ@I8 z9L&Emo{J7RJN*pgU;y?b$@Bv4d?*YT{lDRdjjx!b*rPq2~(h4@G1 zVLdphBQuOENsWk?~MG=LM%bjI+;CKB zmKtvvoMp-@(t*5B;qF8ld9u72F3%q9U1EGETou|IxwN9dQ|dbMtMp1|$Ukx?J>3ZO zf7aLMTrgPv;qJ-NMQIrey2}b;_bXvyi{ofoes2L#G^qSy$HM!c$0X;hU_E>Cz4+Mf zhTOY*$368gp`PgLS?)&R)Ij{F_jg=3eDyo8Id|elQT)jT`C%k@sM+-wnssKC^y=tP zV$N!!YSY}n^+S48J5qWL)mYlWSJ0HlSW9wQ}b=}1qWs5`GB*)=Z;8MGh z?LS*PGI+L8I&cGf<3Y*(_7!I{mRfSR5^dr6mi(A(xOQy2-tGdNMLouSiPu7VH=mMB ztdZpxzbPZ^*_MY-Z)4%h7jGThRj@i|U>Tm+*IyES`X?G8>Pk-ByqA&FvoU?!s{koY<#5qC7tL2jeI41(ENDZr{H& Y0c?;L-`r!_u1H?oRNR_a8|6e(YX@0)PM_%~eoi zQCzlV%N7P7A0GysApr`3IdkSPe@vJ#0jw}2Bm}I9pvl+($Ye&eD0&a11ke@1*Z=`U zeS|gcv48_i=psBkJPbBAHW(^d&;>xj1p-Ho9AUsn0U%RA3P9nyW5*7LJ9q9dsHmu* zqzbHV1f`6GgamL(0cpN);lcr;J%cTmfU-gYvKTPn51_{my2%@WiULUre{g^Rqg^aQ zotOa2))at^KyOW8K?@w5Nf{J}U%q@H#^4D|#HjM{@BnA3oSYn@oXdpERUiz@wV=e} z;NSo@9F%xqi3k@!NyngU4od8xuwVh$5)c3d3rG)0 z9zCK677wtX0Obo@DH#}1LXODZe?Uxl;V}>dKA^Z19{~EI0Z7$Dxs5>AG!T_eu^424 iUhrXa8PI|Y=z;);Qi{j62w&X*00009W?wb2@R(fta003DPvkABOR!fgU4gj))*T1+U34+}#RI+}dp5$r3>SL>Dup&fO z({7sdHPn7hmjXa)O~B(7yv|om6dQs_2?Iq!oX7@%(y|CgQbAe(tLW+gW7ga_dRzkr zd}hr8y%TYAHo7J-yOF0W8|Qkc#vq0JG-b2E(uhek5TXSVjD(gkVN=Ac8L?{;?~)qU zfFlqgXx2Oq%IkE2HkPMBJ%kidhyeu+ItbMvxDMBX7=j`&iouAn2t`bKqX|L5(W4Q) z@jk!FO*lqw3r}K$nCOldwv1D+BeF2Z|bXh;cM?8>+M6R=ZtHKxZg6Xhyld|5G(s3}!ta_M8l%--zn$9J*s~}*k z*0pK;G+>;iwbvi@CF<+y&=rp!s&^dTw=c6&Z2{07m)^VFY-E3q{~79# ze?2-W@lNcsH;_3jzz}j?@~{K7Abb!`0>kbWc8yJatMOfXQ)2bEuP zR~9zB*lPd>bGDss^^Hxl03Ym&$31x)d*97-EgiG=xmiGKPRmv6s`ieK;dPnoC#W{5 zmQRnlQ;@$0?sad{2T$k_hos}VcFz4yXS57gA?aiI9b6NTR5k1vC{I_qZHTuv@40!-p=hS&jAYLfLnX| z{1hD6@=g5oA)+bc#O+YahYpLXO|JO#qrt(!M0MZhuDx=fTx;$^zUvw@=hnO}rDS_& zr+?_~wY)pOrnRZXE@VQWUa#+3J8fZYO3In7Wn**tk#V`X>9B3jo;@mpAWqDR$K&ML z{(jnfe3kjg-7zFZQSyR)*Q|k)4t8AaV1uZO1@b_w@Z$E#rXUTi%MK9}e$U()msJ8duv diff --git a/pandora_console/images/module_critical.png b/pandora_console/images/module_critical.png old mode 100755 new mode 100644 index 0eb9405e03bd3988dc596dc3704d1246beed33ba..4ec82bee30548bcf2e39e2ff9aaf85bca30daef7 GIT binary patch delta 496 zcmV3<1W>e@q63FJHh48H0itm||m5G+{Lv8vvQih!#cffs_Ec zA{ZMWfT)kK#yu8rfC)p0hlhdD$_mp{=mN|$W`OCx$Br>zrU0NROh5&oaQ(k)7sLO% zcNrL!l~Ga!b~gf322)%dIHiC!U%YsLXwP8FC7`U3fGh?K_yg#%gKqK$f1sj3k^&qc zz-SkXP$wq9vNZ)@BhXtDSkM9ocTxt%At*l(0VXgJ4`9Jd4(*zVr9->s|b$F*+L&ayROnhbmE-PXdcSFTsq z0l{v}ImYBmSa41eBa)zq5fp(Cil6}knyADHhL1!eQR1K#+_**FPOf34*I$sNeh)9JR!)*qB|5bWW)W z3>||Ai>=thpz1wd)XDJ-s>eZD02m-@(BV)A%sO)^ssRuXP(uJ?83Y!+(E=bk{$P?f zo^G<#lJ0R|l4Qk#f)KF~L~Cm+-m1kpzL|h#vzY)ILZc~@5M|M}ut3Gj!qMWi1(Jyd z_)tU$abYxNk!s{(f)$e@eV76p@pv8?4oAleC6$bbQxO8}@2 z)^38N1{h2bn(PMB?J{c2E(avF5TtE9jtexv4xB*iFhUK4E{y{KvjgglP)FMJI-McS ztqMm4DjZsRljF zmt^?RQigW(9E*-s*b;hN1keN^H0pqHJad!NV6u}?uQNLgcB2*>=hFYDYJ?OFks6PG zjZ0c3&0y;IX!s@J(fTl9X=iw8Ir8pkKR^&!c@=5*#m_d5ieiOaDwd{`rdgnd?n9EifJqE zDFfR|w&cgA%NH)lm{4%uo6JNngr}HM^$SfAMG8{zN-Y(#Ecv zt8z-(X7nGlU9Cp?ho3}lIs6YQ64$1los*Y9isyYfiGQ~H^xk9bImx?hcfZ@F+N8+Z zzWIx5qWI0$qq`NfLT5b!Zf(e_zD>LhfuPrd6{369CfUi}<)1l~m5koM^rdRIStj4T z(AKjkUO1z>#L4%lRh_S>Rm$r2$?RPDs;(*Wqko)Eo*mA4FZe^Idq)R$ELX7A4kVNB z4~gQAukMTDNa6e?9Rmj*Xe%pWL8&@B!@En-^HlIm`^HX+nSdiggM9tYSNWp$%WnC? wp~3#r!P1PWqcdJCxg?*Nn4)}w$u7%4E^BZ8HrxNk;nWRX<*Fe+a`-#`2Cg3<)c^nh diff --git a/pandora_console/images/module_notinit.png b/pandora_console/images/module_notinit.png old mode 100755 new mode 100644 index 37fb1e7dc85d19bd4983a2610c21745d5d2af41c..2b02f3319c1a5a44412718b2ceb6fec69f32a08e GIT binary patch delta 535 zcmV+y0_gqC46+0viBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*x4< zL_t(|+G1cp0*oLcdfU_gAesd#=m;VJ0tgj>lpreuDTxPh00Icb02o;6CC$i$EU?5= zia}F|odGWZ2q3J85oq>)AnkxG2sb-jPXJSJ=A{o{T9lI+?mv+B{n)(*1pom=nyaA3 zqPT39iv&a3o)--0Apr|ka0tX`fATSW`|}^H&_jWnAxMQ6MH5`{^>;rRs*k>gOYC^? z6^t>QffPmWfs_Ec^)NO-08t-dje9KM028_h7b_Eku{Z~YN)~j1HfvEZefH%K286MW_=KVA+}iuo3932`p%VM2spsX)bV1jM3yL%DGIqTm{0gTnkDpG25R34d(^O?aG=mT)71r`$^Jxi{C#55FJaexd! z`2hr4p)@YF$liZIOnAWz#sNNHluNh(Fu64Vsd^~45twWmh)Sne3^G73_^`PQXu$<^ ZK>&Klp*;d1ii7|F002ovPDHLkV1g_T%T)jX literal 1613 zcmbVMeM}Q)7=K&JL@1*sn^I)sR-I&q-dDe9M_1ZjD@+O%P*`S!<9fhN+NHP`;C_ zp^ItKQNQdUodZBzEmK;~mD>t*6zhb^7zXw`-MlpbIR?L*q?XbgR7KY?F1_r^zFrx` zIP|hIl?}DI&2%l3*WjT`8VXCPhNYC&Av3%L<@j~H11HUqkl$J7^6LD0*_dA)e~+mV z88imrmg;5Wq{?k}$jo|ZNCl&E3RPo}S_xxHRIAixK{$$`2!z8}@ICXM;pJw8wj$g|NEc^JMaWF5g$%bm1~%O~_Q{tN7296CZx zC~$=_8zXR3osD7HMm1rzXmG8?gb@l1o%Hc&TZ=}mLQ#_j$1%);n^071!c-beNf=d1 zrFzmf-{s{<7e!CTW%#%%+?uV(Rv8~_t229Ol4CukEL%4@0rpy!W4*Pk8#0%uU<|U6 z6yu6%VhtM4m!Lh&3ff`yuuf>K!aC*=46GWB6~i=2R5Ove8B?0IMvKK{v?$dIp8dG3 zv+6UI{i>8ktDs38uo z3?7e$QeiM9%l^T%IY5&8=3sTe5iQb3xBhZwTU2u3RCBQX5D>OZJG(?Y^IT)}UPa5s z&1AH{Tl{K96D66_GvD?`YM)NZpY3}LUeI|aCDJ@!-vI|A0%5|(pA~#HT($1hwe;bW z^Shhwe}8pk;}5;k6+-zuLGJo!e|XQ&tI2|=;%|hysPG?i1K``4iGK5xUoYn^T(UoL z#4vjF7?pXbC7ltUJCx&&m#(b9SKS?bhiqLtd-3q;eHE$Lk=>WSt3gL4sp+G)w~M!A z6+ko4f}R;v`^pQm`p*{iE*KTH<)k=fO0FjztG4#U386sVi3rh|T;Le69Sog}KGUJS zHg|E;Jw@aOWZ*t*xR)V?GEpTqTqx`iRsKD2W$mZF-T-62DC!6@?;C=+v|m^$s;UJ8 zJ2&RcFpvE1b5EUG`Q$F$?dHCCTlyy%y9MnT;ShK2&mwo448UP3t?g21Z&F*A=%f18 z0tq6z7>yh33N;=F320Ao){!4Gv|#Ju)+1jK!KCm_XA3!XP}oSWurGMKBomFpBFt6% zx7KAtrExC@!m}N@i`;8A++WYGPW}4mftouHE@j+0FKUyHdf;ZJ%E13k09;E~*@mJO{2{7$`IJrJfaU z**tBLbx0WQ*&)dL$-MWiuxE#0Tf;8f^tw$TxhX~7c6CikZc=<}&+D52cyP1%_E7uK Q!q^W!-%?0)nJR<-0K?Nrs{jB1 diff --git a/pandora_console/images/module_ok.png b/pandora_console/images/module_ok.png old mode 100755 new mode 100644 index da6f031a95533fbb7f990504fcda75b6809eb963..1b2259413196be461b3b9a3b08954128e1982a8f GIT binary patch delta 531 zcmV+u0_^?B46XzriBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*w@* zL_t(|+G1cp0*oM{d58Fa5X}M=bOaFq0fdS`N|2R-l*EHL00D$z01VW6ykulT7N~K5 z!5}YW#ef$81Q1rl2sC>?kaj>8gq!WBGZ9m8)0KQMEx;+uzyx%PBa)XKKYV}eh}9y1 z03yv*P+z0Cti<^iL(g6{2Am-Qe+q$AtGx`drt828&E(U-nh2VV4S-B$M2n*LAYY>^ zg0TSti24X?++zU;n9xNySoj&##XK=ovY-p3TI~VTH(zaMz(@fgQ$XPf3fGIzRx-T! ze3e0*R|h3kfKB}I=Oe@HW6ofKhwqMoQ-+;#2{@&IG=s#Lu(=$VTHwhEf20UkE&*kQ z1Y|K_z#l-59rR$@08|u6Qh);l80}&a>cj+Cwx$4V1bS-%3tHgdOv<1*1Vs-KU;+~{ zs`RD9ftl(igPTS(QO;$;9X-u->d^!w=?(~3t08X{PKZ5n_0?K0;dg|dUFvbNgK3xf+ zPY1!(6Y~B8V!{h%Fb?nmB}w4}z~t5dr0SvEMqsjOAS#_=F~|VD;KSxJpamDu1p!eF VnHag%Z94z}002ovPDHLkV1oS^+93b{ literal 1608 zcmbVMdrT8|9KX`iDUXPcZNNazDxeGW9(~cKl|HUWH;WyDvdt_#+AD3KclGXot3yCk ztQ(7Nvc$1XVP?}AgUrdIVQL-Xs={=#sc|Z}?9C#&_?S`Xu0Y-XF#fSiF8BL>@B8_F zKi}7Hv#n@JVq9t*004=WLadnorbOOpVgL|)exv(NL}1Nj>~hM**5Wh)7@Sl&0b0Cx z1yM}kPXFptgcbmVZcj-WTV`FVaZp|<9E=@63FcpiJbP_kq`ZN$!TU#rwl}RbO0z%YkH3Xv&istebxs0D=aW0o+=0`nX z1mmDRKGs8#V8kO{PF1ry3D0yg1+UL)edL&ArV7QE4B~Jfgh*k?>y6|!Va>3`#J@Bi zYt5ASeFRiYFjO_|;QQg49|iNZdvc(NA?g6#|5G)H zCj&*s<3HmPRq-8mdNb}$@Mm}(z@vcFCqQ;%iz4(&gx zb>@w8>3g4P?+fF@UytsGv)*XBZ@Y*LS3j)>t|!K>0@B98l|2hx!=>Ea`zxC3&TMQ6 zy?xTYD@nZaoIfuq*_x4(ns)Da-;E>rTV@U>^o;fk2hZjYxfXViGGE z=C>|BNZ!$Kc-9cqLxPW2I4sncardt56x`B= zX2hQ@eYiv%nx0@y=-H-UB-mbm>%sNV`civptJ?6X{pua1Ez5DKZtbj3#I}~U(|^MN zlfKHh)zpTc{9P_)UT&DPdS87|Y_A74oj)=o`?x0n9BO>$*N(&St(~HFe}fxPBrjE0YLIx+!Zx_dn~V%_su?kaj>8gqv+(V1Oxj;lc$l&Bet9_a8|6e(YX@0)PM_%~eoi zQC#NX;lZ$D#|{Sckbng%I0STbe{>jr|NaeDsHCLCpr)pVq6x0}?c28u2M->EOWeD6 z4~#LKffPmWfs_Ec^)NO-08t-dje9KM028_hD=RC5goFf!N)~hhJ3Bit{o=(728P~w3VFSr0oItFEPP-6f1 z@gtbe&(9C04;?xLrmtSTVhT>Oprm{2)-A9luv81u1Cqxu6kBnC3?4szj6&m5i|qXe z#Do{jKpfx$M!AFw0Fzq-kgA7r8-dBDfv9wf#UKOpf)AU^fEHXp7X$zd9HK+zDc6wz O0000h_26k6m)P_kHg9 z{hr_R@xJwT+lmEAFDC&2u%KWi=HR~>v3K5F07y9b;Pj)|hO?A&#Y`m^#90C`dKec0 z7ErjCa1gj>{X3V5TmTSOktO9^x%G9Oo1tWQ%tscY{5%=}at$Fr?)DKJ=pwu%trw4d z-7N-5k6v7+w8B=unW!RH*04lzjjhC8<8y00V#8}-Zb-)yPy~mAA*z}V=t6q&G_Q_d z$IOrzoOa=Sdhv{?a;qIQGb{lrWw6u@s}NA7kRb|KtI%eHD2%`mf?7u*v7Snu1IwR{#qaduDvtB(ASf6N%7Stk!+Ie^tJOj<3ZbZ!_mBqG(;Oa>(g8`F z0V4u#mh^KZLxV9!+{LWr^kQD=ObV3WYJEyf2WAV!mkbKweh87l5JkoEn)VKG4&q-K z&-4zItoIX;g9tEdSvTL0N=Y2d*Y5d&Vvf8TT@g$2O~I=%#=VvzXs!U$i}^n?59!fi zDol>bjT!_)VU-3!G)5JcZ&9OKiwVKx2ps2lHrAq6DPfICjiLx*K}|5MH6cnhqQHzw zg+dj_7SI6>r`<$6E;$`{8moRTR%d1joMYG$hN+HEfW3<0m_QZd2hGJw83I~yH%Z4V zu?EfLixDijj_~BO3j3~@nqs3w}S`;cduYLyW`9D>I zcrj3HJpMB-aT7m-vE|d@=QmG}4?**1hUE{3F6US?00@`@%vcio$@OGv${<9Y8waKi zE|vj_+4kKFGlA5+#=gq1XKG2#y2eO!>{e=5X=&+aR{+7*g*VGh4|a4!=QPy=2_FoWXRcm{e6i|u()}Ut z)qQ{Ujz@d9EyHDFxvoo~lX7`5u z7yA1f7HS6;E0oGelB)XJ`SH;qsII*o{_5JXvNqVYJ94|H!8vhh%Zth94^%n{V$Rv{ zh2GvRkw5MYCXe0fUhyc+{xG+R%Ikyj_GDa6nHL7c6=`XotKjX6)IXo0CfizDx0Xfj z^zU4{FY(XF`C8%B_5}F%Co2-|$bFljMdY058QU^C)V7JVkBC|}79X+Iq8XQV$-S^L z>?*NXHb;gpZ1T^yr(8enduh|rqpyCbDK$8Supw-|$FmMAFkp4KS0Rx|vV*k)I{?KP z1l-;ni9`~c)|e*`C!`+u5&afVtvlG-*0j`kTX6hdb8Y=6J8srXJVixKS*L{eA8i9o zsRPX)c7w~ZmgGE^AJIL2_;=1B&7BtWo2|>EQOYae;|g-OeIvwH`HqfGz;hS$Ne>t8 zctL9TSW@8|6ir2KaO2HMVC7Ow^y}52z&e<2?`kD?_ocd%@xn7y;U&1K8Lck#%sG|S zaxrnZ@%a3@Jv)13Rb7x%^u6Y8>u6`YXz1dDyo!^%vKLQedg@X7?59_jrTlVns|3lZ zdH?#|p~S$Ut3As%R5&u<9rx8aY>X=1l3Dhf(9^{(+M6b)W0!h?#fF_QIXC_T6-QHG diff --git a/pandora_console/images/module_warning.png b/pandora_console/images/module_warning.png old mode 100755 new mode 100644 index 1f8f3df1cce065f2bd6470eca96051952e6d3808..bab28019b9b6dd12dae4f8f4ec70c082fbaa8b2a GIT binary patch delta 490 zcmVlpreuDTxPh00Icb02pAiIm^g|EWm1g zhJlgam;o;U2q3J85oq>)AnkxG2sfKqwE&k33D!i=WNZLrG9y|Py$4bP=!#%$fB>RC z!W#EjzyT%otOa2 z))at^KyOW8K?@w*Nf{W241YcoWAFqfVpK7S`GPYQvtlt(&Sk>sDiDU|T2Ny7ebfYK zxDPn-z!DKoPodZV%;uoP{{QPOh(=%%1%W>oq9Enf{XSrltp|($eLRbS8R!Fug3n+* zfA9BV8v5_qaxlgP{sHp?KnjgREwc9?5EEW7195;4M5hyAa%+H9D0L}`NKRXoM)&Kwi07*qoM6N<$f<9usYXATM literal 1574 zcmbVMZEO>D82^uMWpCXOhU~@Y*&(9YdM|x1tKGHNvXXU-tw4h^du^|@j^5Sl;ktoa zTNV*8z68X9L;@cGH4cUn(FHcPfnYGaObnuNcJ2c)BEtqZGRAq`R`dhmgO^1lrTJXHaJ$mh2^IESrT=Vk&jGHD|V2Z90`fC@u6NV*#-4sucJ{Ip(rtGh=E z`8|5+YNZXa1x=LCU)91=^({4acT1yN>ya8>fGWZ|!9jrHNGKdwPlt42y>!a2PB7_o73+iCFsi{fUB$qMlIvCYzwJ?Ig7*;M=l!uyWjtrO6q0*EG zf(p4=e~|MtG?es6x|j`|UMeu1P9YGq*&aBiLoZpHd zJk&a5Zw^v$9Tj3Wux_Cr-qI9UsNJIjB@G2Oy5+22XbQQWVB8x56wO%)y;S%k^Y}eF zLPf|iIj%to3{h!NRD-Jsi&>3n%|?`vqe#lf!>|~p(GV83(Wu7cC~C%x2%Z;?7|4M`Cp*mLfTZwKL56)CAP}7>)_~m>^`TSISVxM!NlU zQj=`ZbiM?|`d_0w7M2M>Qx(?vAHu+*R$EY1tw7W>nVV3BNsF7!M%=7W$p!Y)SkM2d z8Z3~3ljHH9aY?C!8B87@48I^eSRaZOc7_#}LlayvAAnhQD}md?*IoB`-XOx9u`B%k zLK&D{R=el1MPN?lTj#tH56^Gfb77R{mq0n$rwn=H?;Oa5B88W4o(cB%3|;J{$0u9k z{8M8}o)6E>yqq?8_s*itqB;C*m#9Ni3F3-fS%=mR(P-@E-3e-_Ew_!IXx!8=k{{#H=*_%a zZ5&!#9sNFrlpQQ;?V+O`D zu@|d!Vyb3U{3Yi=Mg%MBKeFJNj#hAH@%9m^*xBiJdJ1Cg>g{R$7nc_2{(&7jJsgaD zmwydh$aj|9fBh#=V@mJM2v^H7tdCu=cx@KA-3m2;ft;_d7UeM%a4Mpt;Qq~B>=Rq8R0AfT|0c9p0 zJa}*c6Oy1IPynQGJ_9}g5I|TF%z+>`fgH&IGKvxAVj%ti#1DYj0A!&7RF@+VDBl+AA>T^LP+Z344 zG#fxo5Ja;f0bL;|;4eT^vLkX(!Q2Q6KbTKp0e%6=28bI$p^v0n0NEKpe=q@-PmqJ* z0Gd-Af#QWEMFc>A(F8H#iFQzg)q{c&hmr-Lq5$ZP2Luhpl|%>ta8Ux|FrgVZAB%w( zpwY&F6onVi)XWF!U5{ZXG=-yk^#jxug3zRB2xTXtSp)(BKr;eB3>G9o2Q1zKrI-Cc z#h@f`0cyDcH1lFBOF(iPQINeq0gED#L5i?K30g2QK*cWLh&%>DMF=SXCgZG002ovPDHLkV1m8-wod>6 literal 1575 zcmbVMeM}Q)7=NKq5CH+56D96;xXB3gK3ZCOQs}i;XrpBnFrvn-NAI*ZXs@=%IGCFa z3@m1w6wP#g%(^k1(-`ANbZQ)%;51GXr*6jV!@0$26i_}g89H_a>h_1(AG_po@B7^I z`#rzs<9%Cgr6oxTGZO#+Nft9zCVkVxZ@e6Us6)L+hQb@cR4J76D}*}Q%L0<&t60e5 zqF1tIEX~xfI>#0OAaimRl|rR;0pZ|X3Oekg5M3S#4M0JW=%F3etN>N9D>=6g?mO`X z3~`JOUYut|tsW!m#KJQw3zGmWkwh% z*5~kY9)aWCP?(Xf;%fyREGZpN!R4`9pAfr!6NQpWhKRHW!4xRsa)t96^Y#g4>_0M| z>g}tj_pnGA>*H&^4yhk2G9zHAcK;nH>?o-rUiNZQQ|KCschtIAw_u@ku=Gd4a124I zDJ8BX^DzoX)%h5fPpYY6lLptC3>c-v&n zCETF#d@0t;z0NYlUfu*F`> z&*}z;GHxII14^8F`cAgQI4eP1p7>qTq?jmZKsUX%u~R<`j)E>ghgyb0w}&5$++CA$ zY;bkaX88m1CRD$9DYHZF50pH&zfpTUE!qC()lG3({aJ4{5`6`2oWHyNS^q`l+k0P_ z3xVhWV_nd3y_4d8*jJLAo^=fjiqJQA7MPdFH@3_2mpuF>d*?myX~t(s`Ww*M=g+tC zpQm&`Z2kJz^q)q>d;Y6a^pjf7Bgvh^klLKMdpB9??^fsB3T_Yd&S~jeQ;0u$H1IC{ zeUH|DYU^tWm5H0=WZT~BQ${*tFP^&Q&sqDyuF%fd?DDiw|71V8C9qA#?NEW}clJ%2 zKQLI5Z2$89OjTR3{l%=PF5~5cp#4gmtwDaXITSr(*}}kyZ}rn&8CkV4?li|F^O=}SP@y?v&lcI9HB+vx|9S3#bqVh;|43Mt&cq(} z5Tg&)RwtfUEdKbn1Y5IF=xS13)a__$4+f*m8FSWu*b}fU51fq4S*j-+w+)ku5=Fee zAF91JICY(9>zD_{ZEg3zbgZ{I%J$~!zSErWY6d7inYnP!%A_P){y&g1WI~e2 z2M8br3;3AO#mZc<>-2R;_peKmcJyj99b_f?Qw#WPCspbiisE zHtmL3EdmH2Ml9Y908$1}?gXHxKHxG|5F`oYD*)*SXdx2F0t*tLU;&W%9!LuUX#uFh z1du{(L8gGj-VgOMb~htg*N7y~55yopECia~01!Z=1v!$*Aa@o(xd(tI9Y7BSkh{*~ zFl+%(Ln0G2EYCv)7@@vZgwa5p018fI6G6UTk7n8fpaw;#lMs;�^LqK{P0g`>{F* zssST8G9f82KuReGaHU8CXf8>>Vu>Rtm{^cfCJ0Xe;*Us*>Y?}m(J=!Mpq4VaK^TUC zD4hV=xDkebPplkpWFajB&Y>*9L1tx$I=%HuHM2XrTqV_Mg&-T0gSgQh5MTJG~Y7fyupy5d>NcuqCl(Ec33#Hil?1N}OF(LH*0mnnH`s?psd` z{#_}w!J&apj;6SV)QNVNoOAwWl@>M7YRdU5+}%;!lzzMV0ODD~#_jevzyJUM07*qo IM6N<$f(*>uGynhq literal 0 HcmV?d00001 diff --git a/pandora_console/images/normalscreen.png b/pandora_console/images/normalscreen.png index 964e5802743a33e451f91b9e9a4237d379fd9ac4..da19183df1a409170c363f193483b1ad5b562cf0 100644 GIT binary patch delta 537 zcmV+!0_Oen3$z3wiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*xA> zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1XOY!i1)*k836G?5Cdzb={uYqC>KxREuf9L|5LkR;$B;gyl>YG)V)ff)7Z10i^Vb43MM# z0aV=w3`2o79RPak0a~ILZ$Q!v0vn+T4#iNQUbq?-EG_^Az5|-r1|VL5l$z1y8-ch1 z#$iH=eOSaeV6o^To@@aE^&q{l0)q*U;tSA-ON6=rM$t?`iHbmoktN&Igop}pk_|NyMT`UqL82i>Ffs@-Bi@Y_{e$p_mt5|B zo_l`J^LxJDZGrYDj73#N005(}g$XL(HR@~71E86?^1*dgkUb%Jz1S`Hvl0*Js2JfP zpTPF;L7t6ndVZd70zemwcZB4Szm4KV!OW^Q=CqJh&;T?wr;{w#%ga!N?};ZI@YRn# zg`s%V0YBa7NBv1RAB(pPNc{SN_6}~Kmm{Na^E#+0O(_lpUS^@RurZOM(hhjZFQuGS zH3CCRCUUO>zC$YH4?u2F;-N+}YT{5E2HC7;%!-m$@^J`9F%-dY1htzmlxnn7CbK`@de5fn#o+@x5TQkxPon>Hmu=QjUuWNcG4@#6H;pD@^aCASC_%yN(m7_$f9`UE~9`xpnT{4q!4QHrrK z7TiJ;7=xoW0>cQ}#&|t;obu%viImJHI6faYuEbr&qW8s8Zi#1QQR)!Ijrj=(#6($4#l$4!Uf*cOAV15+6RJjS z(4Bl4UW&iKN4=6LKuZ;-;`d;HVk&F96}2yCPPlC(Y4^I^9-EhB7}yq72)ps@CjvSBxN~D&bE#LpoM)5-H|>U`Rn%WW*r{ZmKhiK{ymIt z0Bg{Fy&415F?j36F>T;h)AaemhLb=$qM6k^dbu#7t2=!A`1VtR^UUmur^uSFM@IAp z$h(1hCVXBS912V=?r2{u$nCxP@JMkc1QKi7-w9W0>DrNE>-JoMF9(;t1TJnlI;k~4 zZ7O)T z$)!Zb^V{ZyKqPZQSKDv^CUy1p!F4_zbZoA5D%#T*qO$txhRX}Osamw!T*{Tc|K7Qh z9VeJe^5Dga@NT?j!j=Pv8j7=>od)X#a5@mcyGqK3Prm)C;X>P>X-jb~QgVd&p~PSQ zKy1Fc&R#QGu==fTR=>JobZA$>>0f`D$`&<`9nG$+Wbj(=WW_l48UX7!`mU4z=# zWMB5XtxiYDp^56X?OiQv3qID;<|B4!mA#;4Al&9&cyNBGn~>@_-5mW#+15SRoT)JV zr{>w@b#4mmN6T89osY?ZmF~$mm6$(Q?ElixI-!YndjrpPW-OL(lv}+jb8X9t$o3ia N9`&4D$maiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*u+A zL_t(|+G1cp0*oNS-roK_kP2i1aSk3lCbq$UXpME5PKKuviIlZ~;)E0LW@& z2^RDyLgKy$@?q=^AOawONDgw4n-Xv-0y?Du=GFw1I6(#V$nI-E4_lar2sL>>PK7`a0CN+1hG0RndI2CExcHa}Zf0(x6Ng5Onz_yRn%Ue0XU#P8$*w@%{xB}tC71hszxVlk z-{0S>l@-q>DAE-GfP^v|=@7qZkvA>|0BFzky|*HQV673V*?OUc;u&Cav2_ew=A{}K z2Sd4*E;-5+10Z#KoHas?y_}#~uZD_XGyyLsvH>VA32+qM$Ov#9)8O$L)PH<=Kn;6b z2KD?xJ8I`FjN4;d#xvE+DxCDPMq2Mum&}HX1B7V6%Lo)4@HYAUM8KdPu}g^Oh#FDD zBM_m{pdJmX#$E|qSe}6kHE14wFK4$uGVJq@6-q1_5}-H))1Zjg8_8<~?H3%(KVdu; z?RPHa7{tN&*=C*=`%#}AC5yFtvZDx4jE0!Yd&H(tO(aVT1=9fs*lTC&tygzK$ljLgT-sEx;Q3v~Hf3rXsA1!N(HS#iA<(^^cW7QN0~ zYO-3*QEr*fFHk<3iTd@3e#f}FCvpi3&rkx(J6X0VIsuh#R$%>ZmV+(Tg&GXDQ?$ny z(L@?FnlH)lo|hR{DbIT0kqQ%@$3*bonU8W^|EFq*7z`2_kAICzR3*+}RK&RN`lW3WH@7%<0( zv}#GFaYI&j>Qg8B`r;h(!TQO%wtXk(Wlg<4Zf3^wq3=&f4fNT+GVMv_Sp3%aE1**i zi@Ia06a%2%m38Ie8@ zYa5EKgH+QE54i+aQYsC_81H9n+YU1Jw@%#>uUYpVms~R3O1ozb%3rfhQ>M7SfCm-xB6_ikbbG~VHSkaD?`M&JDN>3-NP zgK?><&8*0IJ&w1vS7*&Q`qkZ=;IMK5lvkGvbvfa}%#F$^!5*m5d_Vl_GrjGJ?}lHH z@O?Xqx>ALlN<6c}pV49R3{1TGsWf%9I==O8I6ddVhbbX={JcfJ`ks52biEs|&G=5! z_T0ivOIBWAoSQspY8x(WqGpAb-#HA$EXk0s+1{08JeN3dQIdQ{0nZ7Z?HoKUzj^$Z zYe{KWWS^%U3aAF!=YaGV*XWj;!9wIjdz?9o+!5?q5iZgN8ndTtW)Rd8 zP?SADjwMnILk1vu1N1b)NTy*}6C8SaLN<^GYS=~`hT=2~2AI(d1O@skP#6I zfDC>K#12ry0v|qnc!B671uZi{g?2nF;Gwy}7iicQQc?-B_d$jp02eY#@5D|vZ6*MHBEi6P1}GzNMaLvQCs4Rl*Ux!gEU?qt8K9+iuDYz=mY74lT7CP z|NP(g-_NVD&OO%h+HwGZHPX(<@wdi&%Sr&Syq&SCSa`$`5=OVyXN-tC0s%=&Au^(f z{V0w^Y4rJd)CvGGAonDUM6`oTYl>YoZR|NEgV6xAw&gNndJq|83iZpXkGlEkXA~(* zKI$n~6h<>4G$6N+>8N|GvnM?^m}Vua?Fq6q$6*2m86ufehSV&V^HHn396pgshWoA{~%{G~=M5rF&Wrbk9b>?199P4A}}mSt(^pdF58Y|)$@RShxMtY&u>8F-XU>vG1B zHI+0O#gsN|_$VCdS_(=g8r>jPv+ISzC8Kjtw0cXC3mHtoFXdDb}j>mt-rKrL)XdX9)9}64ngH*gT zI$n;(#N#%+pZg+wpeOfT>aTnE+K5WHzbqUMS1rG9sV6?Sl68K-P>mB;LVRuDwcGw_ zu=Rm5vP43$zh9c0hf3^B#S)j#wGp+Tj0_tmlKCz3la=jwB7+~-)YlxovAh1O3#pFS zmoI-fY3n;ML%cg#2`mQ}d*{ISd&$KGrs`a2imG6fogAEH4h08Ba?IvIKA=4`?^CRNPr8f`kC|B<{HKf7|d z*H+k8di~a8)kpod-;xP%%9o!5Cl8bJ$#d0U78G{;a{R3eO=DdhD*p-aoj6l^;~{_L sZaKO9gN6KkOSSXaD-EaQV{gc+1+X71J^a(`%6apWiwK?k*tW)Rd8 zP?SADjwMnILk1vu1N1b)NTy*}6C8SaLN<^GYS=~`hT=2~2AI(d1O@skP#6I zfDC>K#12ry0v|qnc!B671uZi{g?2nF;Gwy}7iicQQc?-B_d$jp02D7{6ZkS{>QgOV~2uc5G0By}SRdua}j!>$R+N#Zo%0UvSsnZN04RmFtal zGc(-?L)Zw;5x%I|&;*Dg5ygb5i7YSzn9ZRfpivn(ltdXJ_<}N=*KM7CSoq*2m-|1@ z{eI8;^WW>)vN=yxrh*_S&s9fzM-A_J4 z5uP=p&+FWTJ7(uXd|ju=ZR_0P3wE{!O)P5Jgw!M`*+7Jo7$gx1N8?n&jLzGo3tFlkLsBP0O`9FRC+&;Wwc87KlEiw`P$ z6WM0UOFI{R$&wijNm7i$@%Hw1ti2iRFMOo5F-?A=nn-qLPa?qw*h&)750P z%?N0c&>I0T+Vr&3VIWP8T0mC=B5h+iE@`xDYjs9oG|5EZAZ<>-fnOJgVXNNRTFx2k<0#{s^M}lcxpWU zGcIYBJcFs@((uc|()w^wd1pjjYffB%znzyJAZ zc3;vr``yov)|_vqufq9OHQbND$7&RHJ`=%8(8qh2{;G& zc4AC9g=LMcq>>{~{QN^C1QO!Mb&?y@#;M$pd!>u8;+uaI%Pa@McD1#y)y8@;5X+wCANV^N*JcpHg4w z9_>=RJNUkOJLK&z=r$Iuhl}wuWyh^!nIRW!2coke*{sPvb+GSnNqASwPl5-of$E>J z+E%lMuPi*2vFe2lhkR$wS+kQXuV1@VR12+&|6$t=yn%Z9i<)C?83Tu`gXdmWUoEKL z^#CS5Z^|scc&KUP?C_LQeFMIyL{>n59qDF=ra-y*dR1U!t3T&-`P-G};W8Vxp1OG$ zn^HXY5cQm0bMtba`NhIu?qttdtE%W^cCyz9cPR(o+0)xqak4kKfAC6VyK1zg;nDB~ zyZ1g6I)+Y?p4V?EOt&ois%Bw1@hgk@BE3yDi01!Yhk0=1C1bhmC_BO!6!~t7q zLEQikA|^D+ejr|tWSS$gJPVp(e;Z*oA&Cj#QoJ9Zy8!}-_#lT`*+4+u0+{unxVZqt zAFwC_x%&VMl5Y*sLZbnia2zm#3Ju5uu>#ga2?}r^PC%Cf1se+%_kdz;K9t{xE%689 z@C+z?9g$63k1u?f7^n>Z0*oez5h=(VsE~*pfsuTG1xL;ysRTgJTrA``SqI6G1L&EJ zY(ok8gawal_M;U?50KI|DA8>I;zFPWA4qZO1uS9@kk}v#0zi3|C_}N=0ayWYUZQQv hM>g~W70d&h0RY_0fqpBlt?>W=002ovPDHLkV1nUNjE4XK literal 1427 zcmbVMeM}o=7{5|JI>N%LhQWmFxW+kT^zOZW(MstG*FqyjC{@T7C&%@m7ih1$9%~_) z(uFBFX7&}M3ucpGLL`1|A>x=DsM!aRn3+wZvJpWcn?hLz@-Y$bfTDkp{oy5-d!Ofi zzvugTTT6-yHpg#^hahOPt&ngC-xTqc#X^we{8Z1ZDDajFzKpHr10+X7W*1vU!!{3D zLpx~F)v*6ModZEqH{-0}E9^xEiuEW-5u*%xd;%MSa!f%VN!8LkTt(L~ULz9jyNtk$ z%ZQX~?3mq`PrI4IMvg9PEOt_jwUpk4m~!Eqpg}O;p?MMxdg{D>L(qt<*fj`eQH>(- z3WTpUBCA1F*h}DimZM>f63e16Er7LZB~W8}wSE_jV*o<|j$*njfEhG80|wx=2NAq+ zu4;pWu&((MBqQSHd7lAA1A%}tpi;724GQ#nJ&NHdj%NvoEPsQSCxcmDzanCRp#2ob z_;`l(!lFg8imm63h!E*&3Lc-`zHZp-Un`VQGBil~P@u$6k4MaF1?}e@^uJ+ji1s@h zd^GBy{cJr)3H_*6M94zz9_>g33egyz=NO?WWF5g$^&Z;G+Xy2f{873Xmx0g{DqLmG z1_X|2vjNC9YYD4GhwCkQfKUM}Vq+sNZq@4YEjXrEnF#;F^@6@o#< z@%YcUL{!2IipTZg7lifop}oS+aKdtYUGa8|u%81q!t4zGRQ1>LvPp_pM#;ZDV_JT7 zX>oSh7fRfo+y4UAQ7e(bPe_uE?dv7sgYd45jMfhl;impn*ZUacye=ziP2cq0wJ0R? z=2ypV+`Q?6WN^Y~1MkK>NV@P+(X}XS0(p4PWRAlC0A1bPD(trKP2@a=CnT z?3dZ!fB3Z^b@F8F?xv|hIHqdLYaMrY$~s=3{(Fx5ZBIEqxivadJCwjDJs7a>ri$*& zb+;}#(Zx{lh-BZ1F?r!b#h2nWX|og)ALUgZ`Uk^X0B-;Q diff --git a/pandora_console/images/photo.png b/pandora_console/images/photo.png index 76a074d9cc3cddc93ad8ef588965488b0d83fb7c..a52b3b4537a0b5083e5437902cc9b92767e34e14 100644 GIT binary patch delta 391 zcmV;20eJqk3!?)eiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*r~F zL_t(|+G1e91sFkuy}kW^5DgGOs0dk<30VLjfRObZfGQ9;c<`Vh3zBXJ5CIfqWWWai z0tmaCfM$cV*CQLp0yWPOYWaH*%>w1@hgk@BE3yDi01!Yhk0=1C1bhmC_BO!6!~t7q zLEQikA|^D+ejr|tWSS$gJPVp(e;Z*oA&Cj#QoJ9Zy8!}-_#lT`*+4+u0+{unxVZqt zAFwC_x%&VMl5Y*sLZbnia2zm#3Ju5uu>yL$!UG(L6QDLE0`US|K?Je}6l?RL{6-9g zK*<0g<%q=z_2?$9#}__K4Acey0Y($Vh~#kxDkLIDVDKMc!I5)FDgn?lT^9>E&OtKd z0D5L4+fYJ2VZq~?{bRV}SJv6#YQ% ze*c%}|9{SvmJ}u>q$L0VkW^emn#Hd){Kmxqz>d$BzIYTi1Ve>T##ISkil+gsgR{|4 zF+)|;W}0#|)!(G^03fQyX{it@Oh*Vi$H=HKM&@JOA{zkm@_lZ~?xF?AMprvo4gBER zC=59r8n|3;LQQTxUE?fj=IOHL5{tdrWmh}k{6kQlj}QeITA&~wQ^$G;p9WsnCB$`j z8-by9h~Uz|8$nf=N+CVR(~w+-X4_E(1}So7ST3s0RcApsilGRGBd9VPLkYQ(Krv|Z zfkkh;qlz$-#!X+MrGaY%!A&5D*Xxyeb7UM}jbLiE8bNUc$FoI5wx@{|C|@?~$%rVB zw8zdn-GY;2p|B!l;~E4FEJnJK0^>HBwuD*FW}(EAAwJ5DU@{b8m~dX}Xpdl~{|#eX zw8zrqrV%sk;Tm|mcpg<55wcjjXFCc5#b}7vd8c?NR2|9L8yK1uib)MD{*gJH4uVvW zIe3m%g^@U_P+^!#t00XAC9XE;Ffs>2BO2Rrb*NFUREuPT0>dx^uG1=wT7?2NU~;+2 zfEyy*V%8&2teuYdb&7sBx$0+f2|Z6!0>@i8t}fC6r8S(ud1^Q}q%V`pFvvvNoosj~ zd_Wudk~HsZq#Z_{W1#g46V7cSKyej{Vai-oxtTdm%5_>DsZt|7n-Vme_;gW@(s?qw`;Ky*coT=?;1#D!J_oIGewu~Ma4mA?D1D6z)^hMVk>IP z9r90gu9bjz(%UPbh@N2F)q(3BY--|A!MF1CIK3?~N>*qk{1-aV@ZL`qus=|qv%4iP z`8<;vl*H`oK#l$L)byJ4x5EARFT@o1d)~Ljjvn|jv(W}*>8&qR4ggDcIO!}mX+N9Z z^MLXNKWV+@h~81J_%*9%MMxVQS)F!Cy4upB=i3+Oo`&wGOoUcmlY*gB^polFZ^k|X zZ;ef5oO$>0l}dg&*cwW2x!(5Vd|^*(pI%ZPf5Z|qSsQ(YVRi9i3IJlwg^ z$DIylHXW5_`rZS-BfkcJJU;Tua61SEKMZzP5gk4KvxnpIR(J+n@Bz|2x4kpHbAN>| N(qcmi`Kiv@_76YH1aJTV diff --git a/pandora_console/images/plugin.png b/pandora_console/images/plugin.png index 2647a5345799be82383ab3f8b6941060cd440e8b..41f63ef952a407e07845b167b57651642fc03ee5 100644 GIT binary patch delta 373 zcmV-*0gC>_3XuaLiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*rT| zL_t(|+G1cp2ln>%|3NeplrIP(00Ib83A!>c00izIYwN*#^zBbB5Vo(Vg(SJg^*&P z$s6#Q?1)PvKmd`CKp}xmoC!^le*=)}#~EBe1?z!S05&%RJ#_%tL;*rhA{3?yK-(Hn zVv0~~!Q2Q+DGtQAk%3U6W}%8Hvm%Sq1**Pza|o6C=-Dsd;ytDmP_$O z6)pgeLYl`Cx=TS>TL9#3P*w-B*OOq@16YxTUNnHRngh_l4LEWYI%otLO9sjtKnyQJ z&HAd-Mtv z7Uu!W*oK)2&LtX6HltrOk{~WIQ6p?%X4DTO%n$qI7NZ81O{XqdHiK{B4*fv(!6r@L z=jreF{D0nKk+!F*DtA-@0IEW*VibRC?YCkJ07Wy`&;Df#rqp4!>pkY6Y#iiY+$$s?g@frAVWizX1q?w@NO^9KqCK;*qf2) z;iFahdfsAW+Z$~x|N5da56xqac;M^`L$cU1Qm3#$mNXweC7DolY z3ig}la`)u&K?BLAZp3swU6_DKQaAN%QqK^$ck0gRuGurUgEM#JK&NMG@$ZKS&upru9uT?KALhlrNJ&Xo({N?; zGZWt*IVRpNdg+VV#Tu&ax8m(TB`O#0`}KJ4(90ltOSpFQ!4+X^q~+l2-hZA&ftwfh z*Gf|d_7t1br86g_2`dsf>~z$W2t(Ub%cG~#yK+|11LZ%~FJGK1i(J}v$pJokv;4*R rv71{QpYGoG{?qfnIHp(1(R4BR6J8a*yztJW_PrL8+Qg~muF-!0F8so= diff --git a/pandora_console/images/plus.png b/pandora_console/images/plus.png index 19c0cf3a5a6b214b1cd256875b93f17425f13c93..02864d72da00ce5d95981e121b173d282564e916 100644 GIT binary patch delta 419 zcmV;U0bKru48H>*iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s}h zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6;mYywOIAb=Q=RX~}E2M-=xz=S3U0`nR0 z0e}F)ieL_W52OS@Y@peUOh5q;M*zfu*#olB0he~TD_}Y>06+lY^0osAV>K3w2ho8d z(7FdKP=yV++yFJ?KFDCKCWADff7x^ZDCUT63do)N(G|fs00BfkA|@0Pute_%p!I^t zv7i9;B{l$73`>D1iqL{f02KL5=n7zp&=eOi;Y!8m;R#cC0AEM|O@}B%4_GwQ8c~7= zs^C13GC&e?1er!sL;wUBO%NlVXa_}DJrF10P_h8zS5O)!Xef>(LI{A1c@nIK0u5Xb zqylh66C;7#xd5mp5v9GmtXikh2sDK N002ovPDHLkV1gonkdgoZ literal 1542 zcmbVMe{2(V6#uqkTiFi^IACnRjL2p+axXrXxqm;-Db zgE+!;1LJ1sKTRkn)&O3J_)l8i|FQB2i<^q?(Lt zl;ortRUwluLZeAFMXJW>LaZ#$AUX|H`=K5~^n?Z@AW4ub5gcL=#c&iF)EG4C3`U3{ z(~nBZ#s}(+ZpuELOVUiLpdfHY6m4l~(X?naEZ=})BuSzWM{!&&d8nhU5rK}WBhh84 z2ow|b^C3zeeA3U20K z8jtjjdRsXLbu&@6nfFWQQNJt&mU{R2L`g@9jd3j>k`9G#qF8@(n287u%A}J1Xab>t zk-j`Fs#h1r|dQZPTDLOrNv+>#-p$X%m(cwiCZKA!)&+(Lehfi3>ZO~ zbp)YLVI7gEKu7#cDsM>2JB`I2i#1w#h89@f%d$dIl1Gz zA9TW6un>OOC{rLgvhLM4Ketf7-65X@%tU7}j{&l-1DXAWV&0;m^JzbxNF)^a&$7g* za(LU;>T#twER!qt4^$nwQ5Qc~a{Qz8`LWx-6j(d2tg_GVdy6>pbdJlWSd1LH)?V`I zi|}Mzvr+jS#C9E&E0C}EiX+E;7v8R%4e(L_b5AL9dX+Hy;)BdrYLsX86#HiVxxBBt z6 z=F{i0owKw~vuCUw*#UN}2RT1bR~M}r|5!HL7uZ+x-u?<6WOtA3iEr@+M7O7$P-i2K zO<-RG^0H#NI56*xBP(*LOM^wLXU4N@#hrf@Db~rWJbQ}qq6;%z@dXWMPl>hfjE-}2 z`?d^LNcX%a`YG9!m_J zQ&!Y2RbSq_eWvEn?eibVzAw%g$>?z8d+)}x2w|+~^;MnEF38Uq8xYf6_q#j`i0fIE pLk4kkZ#ut8Rm#lS(e-B2woFj)t_j~LXm4`KiS diff --git a/pandora_console/images/recon.png b/pandora_console/images/recon.png old mode 100755 new mode 100644 index 9c11c5bf15850ab122bd5009e958bb79ffafec6c..631665baf6c9dbe8e0cc81112001bdc658480eac GIT binary patch delta 657 zcmV;C0&e}H4XXtqiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*#TO zL_t(|+G1cp0*oNS-roK^kov#`75o6ifdB!7tcrmdsARu_f&$~ihYv4+lsN$Le2@%4 z0Kp6}08;%xybwemJa|wLW|#sHPXuCpAQoW22LJ*HD}tH-A4nMj@p+)xj7&g*`A~-% zz!We+IUq~op^^+tK;qH()Mbu9ydQ`U zK!XNk_XChT$a)qeg@Hg^4{`@IL>Qo^8^8>N1sh1=dZ=msK>QJ^Xd%!93=nXHxf>vWNDFc#Q(;jHGI0UWv_y2bf)u?6#SJw66+y88@-S30e?%cD2|b3;kPQkOq$6|!R$zm&0bv6+XxM-eJOYXIELo<&7gF+( z$hn;DJO5>E+M(t#K-to~Q@NA7n@KagNkhSqh$?iVk>dWnQ2l1&wY^aZdA&uzdcXwN zC+>23bN)0-lW~BM!NZg$!de@6 ru3+;|ow^T3N)a6EmPxLFUT)z92yDQ7J3HBp00000NkvXXu0mjfV2lsw literal 1698 zcmbVNdrT8|9RKwpAOa#j5XE>N%3~|NyFP$+l(zI*sS1NqW3xcg*FhU-uUro)4|$6C zS}gctMpG3v%QTKLw`|c35S%(6VS<~lL^LEm;?yitU?}X$!|e~VKX%FGe&6qXKi}`? z`^s-ycGl|9;3dHTfKY7)u4BGY{x>K90M^&fzj@^sXtjaPB@5^>6GZ@}l{6EO)?q3n zbcD%TUUHd81%P9->kYIabDh*eI`}5P4d3H%F=zl%@nJBb7W$=r$oiJp# z%HR#+Of=J_B5d}I3W~_B$kJOXiYyW``_%{x zO`6a}GI)xVAu}6NkrV-m`DmgAO~Rlg5g!ww5|M-l2~Z40Fad%lCt|2noGe8#X!?Pf zXq2@;s>3zYu^34P+i2P)MUb+xGJctmPf~>lCXq-GRDcKsiHt>}yWB~eJc&+s%!~(| za9b$5i?)+a$nVi)CQE4<%rKow!QslxeCOEdo-PzqGQ?wYAs8P;91ee8lh$rpNBl$M zz1D7hxr;z_gqtj-EKENNVrIZh?fyHE-;iM={g|>dO)(YYq@~nBIB6{|gPA{ktKBNa zlW?Ixs7%3d0h*M8VJXTaT%%4FNYv>VF2v9oAMe8oHL4V)Sfi5Qs$>jP3sSIjA+FYF za8w{j65^s6tk&tKO->6j6W7kfoyMmBCswMW2op_GdXg-jnSg8?Nt13H>4H?bVm=0C znk;swU*m7kRK7St**6ka4MjSj$qGyD?_r>3*orimk|92oxe61hC2EO4EE1$^G%4^j z*7|>{hA?Ch|9JdsTxL|v4Em4nhMy7MtqWB7O9ZUESQT3o63+%dnIn2>V> zM)thWu|wkxsDXRzVbAb}iJCX#e=YAVz<*5{R2)Agf=xdHy^3?#pIp& z#V$7-oYi}~w32UlIQrR0725H3FbLt5|4XII4EMLxh-H-Mf8!hS`P z2V-G7s2eu4&0S{rd5dvjVf{}{P@mR#a#gu#u%+nBWGslfB+%b+vOd~%v=#(GEn+Mu zVu0Q5Rfahs1NgHD=J~qnqfRYuZOLBOzo>+jGrP~DDv2z?ORTguThY@Vrv3e zb0WSPsBhhlT)NonU?l_`Ut?>@pF7N{Sh83_U z7iQ}ZToBiNu>RSuBJ#Bm%wMr{>DE)q@S#9&tXDpm#fjaoe)M5f_1m|vS$mFn`v(GB zW37M+3r8}Z*J>yRo0%4 zY>U@?%eA$$M6cqz7Ia61^SWzm+swS4@v$Av{lS-xDh@YBzWjuJ#whnb0c(XXYEso3 zB^6-}aSmmeeTaGr`ry^pwXNRzg0!n_uj&3oRY6}w$>ycp2+k-MZ$L%6>z1)PK*HG+ z#kKPXbP?YCvGI!*SNayi$UI)al_Y5A9_+!BMcaIe9BT7u2)7z+TC01?-fM;;yYjem zDh&yB*8^@YV;wji@{E@k()1h&{6fA%2b-_O4QWy{^3RzfZ*}-;e#F+L&8s;)u<_HF s^(|;c&czGx$lzVy@aEmHW8cR-J{PPB+&74JUb6VgLXD diff --git a/pandora_console/images/secure_console.png b/pandora_console/images/secure_console.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d5f63e246452465816db0be7255aca70036cb0 GIT binary patch literal 486 zcmV@P)B7ar~a0YrR|BSonI9(4;~*7pOkBOZkb z$nN|A^@t(R*B{V5$%H5UHDD9`k4+Jf-VfvBGO->gc^^nSzyz4^cmO%^;Zz8U)`vi> zh#rpr350he(J=!MU^GFDXu(%cp?QtS83Y-ClE?#4kOLJgAl5YG@MFS}9YKa}04iJ$ zQj9gF-~qTY9H>lD02&^MrKHSfaYZdqFjmtJb-3jkU{T}vhxFC3^l+}K7l|W7BK~A9AGtc0a6v@Ku#J3 cr5F$c0KJ8KT7jJ_>i_@%07*qoM6N<$f;3XFmjD0& literal 0 HcmV?d00001 diff --git a/pandora_console/images/service.png b/pandora_console/images/service.png index 6bae941ecd7fcc329e0eefd3347ad481dd53a552..c158264a1fa10337765cffd517cb7d386b545850 100644 GIT binary patch delta 409 zcmV;K0cQTd47CFxiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*srX zL_t(|+G1e92JG$a8(@t0AQ~Wma7ZHw{0Gqh0fa12fXrvart;vygNzKg06+lYMnEG1 zpmYMVU;>7PNS1v7S|-SZX6pi+b^rtrNeE`wd?1DFh(wSulGp>F)rv4TfFv&Q)0=iQGe-s)Z8cECnJ-9##O909Dg+P2C$(%qID8mql=L3D| zh#clX0~Da~`hgM2iv3Up2cY4LoD3b2li_}}07nT+CSpCygrw6E>Ivj1RHR)v0|eO6 zLCC>w0Hgw-83R4|9{_P9H16`D8AkvqJ{y67d;r5xSek=Ic0N?`Mo_W>Z>0`2bqZJv z2PMCSK(!lK&8?a5zHt~^3dw2A84TWoatyF2PfDva%INF0=puKuMq+pN& zPHN_)zBabVg4=wM5yMzy%sC$F>LUT&=GY^m;BdOlDTc6Y4#%!Y-TpBCu}d!Z`+o29 z`M$ruT~^ELxY)E<0081lxp+SJO%1)#3jl!k@x7DNA%Qg%u?2J)TTL(|ptaMbBxrIH zGG((8qu6xHFplF zr6O<+!d7TRkAo^QTR}a|kf2-wW!NAE3@T(2SO%dobQOp|FeHT$DWuGRA+=nohG201 z5pmuadzm^PH_rRwB#p?yvTn6hT3uZ&sm_$pOt}cQUuB15E-5t7fX0ETpn@Q z0#15t4CQ7i+69Iz5~Xw%s}XULK2E{uHk+Rqc6sIt#g$CzCEQY20!f|DP+oIr51UW^ z8^%-7p28Y8Da|K6bQNRc`cWnhleyYG+ffL}MWbHFP+U`pN}RS;IY}35!Zjl9kHk*d z)wlxBL^8E17)Kz53Wil$1#UDb5!9fA@k|&B+jtsRp*8A^nH&;T=waA^s1PM;ROqw@ zRBP1gO@P3C>kmO+6(7BdRpQuu=vo=QG#CGCis_7`OyvicE!Qo@@U< zRg-eTNJHcCpK%GRxETx`pA0`IJXs&o#qA8kEk}Q}V-WyExJ+K{SOilu+OS^36x{_2)9vb+-f z_r-#{*FN1Z{C-0m)`?x&0Pt|t;x0u0Y67ajrU_F&b; z*w(jri8pe*lVkOjW8-I=+e@yu5J`nob;mmvSPw6>_5oL(*L!{Mq2CJq_r(v0cam1d zNBaQLrlh0}1++I=IS_~i^4ohGmN#^FcSjZ%7spudMU?m(_&y=JNG_MBzPfpHYHx4v z*s_t45#&&IU0SdXX!&zuVq&&;;K0fPOt{i__k#uCh6M96!PM=`bOaA_ZzA?~IHTBcbcL$pG4eQ#EEWEPT7>MLWL_|#Y^z_8`_4NrDhQXs^ zR#fD*sSl3-c)kT%8fZyqT(#rYu?WX@-Gg1bcMJ5nxzSB+Z7;8p>}*id*P+VMQwPT< z$IlAZy_==IyzPyYZ0*$g99d^_d)g9g>ZSqgX;vF~L+jH6jTC>--&|H3^%C)$Z~4`D zuzZs)wL<)M$28w$O1Zf4f&n?T4jV*-cOLS^;`4mK6OU|DiELe=JKbck;3sq?jsF0Y CI6nyh diff --git a/pandora_console/images/sub.png b/pandora_console/images/sub.png index 8875b77c47a10586ad30381f7e15647ae771e8f3..75edccc9288223a2d00a77d0223b3c727faa2c8d 100644 GIT binary patch delta 416 zcmV;R0bl;F3%mm%iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*s=e zL_t(|+G1cp0*oNS-roK{h-N~T0SF*e1X6;mEDDLp>`wy@dco+16UO! zy9^6(1ZiY}DojB30(#&Asr?{>f3bxpHgEuFh$FfwAn%_?R|Mk#1Q2OKj%Kn0G;kLH zP5gi@6hNMvkFF8sQCKV}0IB=9tOY5CrNI06+y^p<1)DWkf-ZpthXgu!0JC}nKC6K? zEntE&0`aJufRde{?mK`baTJmiGXMcb6U2xwoPkt5G!tM0pulPbdgB5yc4-J}5+MM< zMG00zfdHqp9si`0_DTy-}g~L}jKi;KT%05>x)s(yeWTLv0E{(&yPDWIykA5_ON&OwM|2@nr;hoe~BtXlVrac5o) ztH8Pm+hta5kZN@`0~^hdK(9tB{fGet2Avw!Ats$^AJ8Bu0;3ujF;=1orZ-{;3N{}V z7mW#YU~b&88H0ZXq^`oOK1?FmZ_dvWM#|CR+D6T0)H%|L|Lu8nB;${{1M;)L77;eC| z8m*-Y#Wjeb3Pr0d2HascYD{)3ifd6M+e0vF+@!n}rW z&_=#E$xwY{z`@WVuwG$|+J=F{Xmp^cQHK~eGq<5So5^CgTP=1jEsp&LHt>I{26JR! zemwp&E-4i^gZy!8_&H%~eaJAkGYq#JGpCQQa{Kv>6SsKcmwjt@?$n4hUSW=G^|il; zkv6ChIo>6Z0I6W)_T!`890w>9)SpZL4wsXV;Hi`8uM{WbC7)aoU0hsPkW9}D7QW4z zAAO;5H7hYM5K7*DzhUOO&oZ64v#8`xRI|HhPGL{?6r8xXb`lYu%mPwUdzHiI(PZ69?uGtq zgAJm6hIR-$mpwJ{Y66mgaXotEQBm$&J*SkWK+-E(`hHNMOs}YDexPrT_+8-5VDZ?v zNI6;MJ&cPBK9!1#pGM?I>y+>ME=8Xdiw?+c%+7k_Ys*EV4;2TRhUdO6D4u)ik~eSu z&BpAmV?!r=%`cBbM<0Qt=ke^}>wn-(gD6e$(B6rketEHEZfIE_1Z8=J$qVu<*Jr|d zcha|0{#B-B2QsZ3>P>SmpDC@oXE3uZG4WUFdl%b->ZU|~pSXPFIl*b90Vvv*Zp)<4 z?-44bC{;M%F;qwL2GiC-~$iX)eWv3 zOyFxz2!AY4M%){C5(28qu$guzN#4-8Luk%-^)82?rS-nI5 E01dC;U;qFB diff --git a/pandora_console/images/tag_red.disabled.png b/pandora_console/images/tag_red.disabled.png index 38cc646a3175c70369fc2dbf1f52006fa8e12412..bab054cbb2e58eb20cd65414042df11049dcdb21 100644 GIT binary patch delta 468 zcmV;_0W1F14DSOWiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*uw6 zL_t(|+G1cp0*oNy=B?ZRfs`Nv5{CgGfUqN=tN~aF5C?z+00M{+O%|rtkO^G?h!fS- zR4<^Kg#-Ws2rFVlQ(X_l0Zd2&4}fL{!c-&x@p}wk06FXNdkY8v0*Dcp1k|4MFn@sj zz=TZ^)C!P;K!$AqX#$G%Gh#7Ge-NnX15``^NWF)K&H_d(aR5^22-OHygw@T+VT}^b zPyi4>L?e75aUV!2fSd%hL68xLB9Lbu05L3fKQQ4^1T@7E8eAYCz=TT?lJEr#lYsa< zn%H?*Xs{re1PbUxG}8rO)-ys=^m-(NK-TU@R)m~o=0kl5_a!Jukevbce+*DC5y{aQ zim-)W0WLX!0AnO4I-w~H=2Q@S19JLcB+)PfSfF5$2B%c483dPM&}cXhO)`SekY0eK zOaPjZ)-#gevI|g`e83VE`;lU;k&#@(a2N>Ape%R{19?*shhgYpi<#T8q*9E)C&n;r z7V0000< KMNUMnLSTXg-moSB literal 1621 zcmbVMTTl~c6yAWwgqlKzDvBwrOR*>>d&!Ng#N0NKI1R)YmA^0PyzR*?&JNu;xm3F}<8^a4{rc@X*yHX!W~l zNC)ZiGzL$Rr2vrb^*JlqO51C=oA%3GNsKJ)4{&S%DAk1nE_WTtg4JY=kJ3T|hrWeC zpGONVQ`!()z(jg|WlapZxT)OfZmM%@JdkcaSQ^GT1AdZqfnk3=6~e<>Xw)vwos()9 z0!JZiofaAks?uf$O*BJ-N*N+`BPtYBDP*Vu(I_-?K@33=7{y>jEkzMrsm2i$9Dg9r z8{=7yI|$3TFHX`zUX~5uFx=44AZw7zXr=~6H5v_!U@(SBIfOLSNU^T4lnNE3ED&VK z&G-VWkEXz+MOQVwg4IG?q+==g12)@J!&GRzP+ZC2uqyzgG6eSflX;DzL#%`RH;iYZ zL(awk2|LITy@GLb{a9X*B6GESzM~|Niw3V?d|Xpp^#tu+;U_89N@yYOM&|K(a6(1M zF}a}xB``!)f}$k`6=5-}F^$=X5^@wt*?1OLS)x)I4JJe*H!4unj2X-Z#9&Yu)u_g7 zP%6+A*Gh$07v&~Xetn$ZF|N__TrO^6NEb^pPMWSyO@Q4?vvkNy2SC$er3?jaF1L?L zYLX2a%aBSaR5kr+e#Rm;r{B!iG(g4t4b69 z^yQm5fFp4|O+WatSfHP5VWj}C4eCvE+P*`UR7way!%uX?t{q;Lxc*@kZou1Z!20wFS!=JxDB{2iL|tty)+uQ1eJ3;j$uV1t zuoY+@$(ze#re_T#o{Y>Z3+Og9Y~Lax4rYMSz`|I1Ou$=%;rtW*i3oQedGKdnBx^?7 z_4BR2MeO&!nKYa)n^jnNd~hgUu{K|~`YrwW33s#F@yzPtIdhIGqc?KAS0_rPQq!$0 z;F0i_#PgoL8`xPQ)}B52q96)DuV-g>sk(bxb6*BVRQY9v`hzh&aFGAG2s|#4NQ7la zL<^yZdvRe=FmK1Ssh3U$+oaIBp`oD}Q7Dri4W_yIoo#5*$o%HvdpZmto!+zZXxEzK z!>ho;!M}%UdQSE3I1)(AztY#L&y4iu?%w_iZ((lFOP{<_wwb?Uu7q_1NYDaqkBv82jC|}f{ z2i*L$f~P)VU-WpXd{cqwSob@q)P6B#@bZNv86mrVXM9^xxb#Yk zBE5*ZBehIi*0;Y=*cm$-pLr%N(Qh_0+5Y+knynW+PkwX`xDz+mJX|KEJ_!DLDQ9!( V zL_t(|+G1cp2ln>%^FcHdl%D`100Ia*0xJCvBHn`;KmZUxjA*hTy&%IDpqLETil+KK zG9Ms-h(jP_uo?9q-9BW&1Rxdwv00#U6QGiU2M-?nfNqokG9Ms-7zsEg07%sX@dcns zi8wVt9hLx8#0X>?0NLk3;vhZ?e=dbUIuR;t0Hqb-o&YLz08;yLgg?k*3$XeD8tgDn zVuk=Y03d*JJof(|*wVN-}Lf5;3lJVP!3 z2r!x=Ml#bFET5o*1+Z*Pvf*fkf->JkXa*HPQ#t`?Ng)f7hR#PSkrR<~H7N7q@(BwC zhT;OCjMGT4gd=1qnu{+0u_JO3#Dd3AxG=neA<|H6IYI!MBNULl_W_9yvfv^R_Y*P{ uXKI0FJ8UU{fmlO{DF)Fk8X?+Hx&QztTDf?R7*uco0000#Dy-5SVr2RS*lI$X9pS+d=+U1N~O z029peGnKw{iJ!^wP@PU-rjU?u$W%P0A|1grtz$t4JDM7F2h94z`lEZ!J@5NG_xU}~ z@A*1+opr%;2~(e(3IIsRHRA=$nHGLyxB##|{q?io!vbxz(TgZ2T~7E&pmR{gB+PXa z%gF+ga8#6alWG8>N?e6D+GfdD*(tY(2-}DPZZCrdK%Eot6804&4U5U;E{}#k^u=*L zbU8Hq#WD+O@fyeym$}kME~;EmXs=vhS33AP*-#x&F%H}$O~8P=)ZZzG1eFUhR3($EPz+8! zd?uRD;ZzmirpZ{0q~Vv)v{!{7<>lp~a*2rYEk`h=Qi-5qL@X9E7D9i8hb96-k6#e+ zfRlc^&*i0Elm~`A62;U?TEl0UPNd-WS}YG8d;F7yVoHVt2rq((P{i#H=QVEarwhox zX*|-}Us&NKkpj|Bt@PQMemDgYFjKq#4iq+I*r*ozTuf7lQk=4{bdw%B7uWEaFCvG_ zp~ACpiCCgjV7M5~Qec=umxY^*aouSlN%VU^k1q;#({%lUKR|Tj^RMA;7Do^=#z@r2k(vExKb5L8%x{$dCvV^$8L01 z#gl;55%k2EGp5A_J9V5*_F>-CpEn*GO}xN47u#E1$~LFNAllC@7aVyJR<5giM(_rV zNw2#1OHO}E1B?NehT4xnJh3$w?Z=I=+6J5o56ciG<+P05J0 z_JY}m75BLN?naq9bX#LCrZ#Y_GflR}YZVRW&WvQAy$;TA;cA1Mw-tBiRkifOY!J`0 z_PrUMAu9p3yL*ySAM4sscYlp-e$hH!Lw*{rd?#&#U~iIbEm*?MKf-ICwM@;eeW5Q= za#2ZAHm(-)_g-f3TBk_h7F4FIH3}l`@RW$Qd zxAoOq!V~MMDy=@c*`)S)bt9)&H4Jv8B|jY$m)tm59@>)H@h5m|M_gA~&CZ^Lkmw05 z^7>g;=H*kZ50adUygfhUf7QmHQ8;~eXzl<(79U`J&H6^XX;7%$5jCQC=|tH+k#tw^ zBlc=23NGOawaw2zjxVd3dvW-@!Lh8S^Amk&FwWfFWD|av0YL3fZPD9TZ*K|z2y%@J K@Wc9|n!f-_Hcx{9 diff --git a/pandora_console/images/tick.png b/pandora_console/images/tick.png index 1bb8eb32e3dd8d3a3049845576ac97ecca748877..9fce7dbfc1e1e8534ae00131c7a094cbda5cdbfb 100644 GIT binary patch delta 312 zcmV-80muHP0@VT`iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0FfamfA>j5 zK~#9!Vqm}q?CtIU!x#o28X$m(L;wMV6EQ*!>jzQ^KrC?Z;6X;bIsgKQc*Kn6^7{%3 z3XF^>-e6!51X}okcryV4h`I>qjsh5)1ucv(03BwC=Ga7(U_;UX3cC3qHpRgQ5I}<& z!Gengj{;DtJP+kgU_=WZaAZSMe_H`^a4}*ea9{)gu>o>KfB+MW0oC~ds;CfI5k9xk z0RRNp2uF+*BrgFVwI3R#4A5wufYnf>th)eP5duwhpp+(nBn(nZI2R+OK#<}GK)fD^ z9gyTe7CHhAyFirpu^5gF7C^oFfvhlvrtJMtZXnR01H&sx0RVuTR<}r}4kB{^0000< KMNUMnLSTYqjBM8c delta 264 zcmV+j0r&pZ0;U2XiBL{Q4GJ0x0000DNk~Le0000I0000D2nGNE0HjVn8Id6z1f z4^_MYWD8U=$N&c{jw}QkFacSBUJ)9AAio=+IT<9bfF(TOu0RGXID*9hi`WIIAs?`5 zU_^>mP*^13Fn9vcfI@r`!bl*YeSn6?0zxs%h$HE*houi};eibR1Q-ChZ9-Bc*FT&9 O0000B01CSKAU4Ip2M|Dm z8Nq^!1&;zysyq+nPGCd}9<se^Xlla&R$XByeB^0I>mbM1TMji~-g80jj7FSrI;_pum`3>HAW`hl!4g{JKNP;Ma5paa7zNdW+Wn^w0-52qq?00000 LNkvXXu0mjf%Ry}> literal 1262 zcmbVMO>Em_7N#w3I9j&=b_LzcyBDJJ{}$ z1~et1V~kZu6_ds`hISZYngl{UO+upO=fK8+9wtpi<41@SLX>ep0x`c-`L$!*mOhE^f;G||Gh_#QG z2%xD6;`wNf%2m>^tYzvJ9IcNOmHL#zsl?EeV6es`13GkMP}8Rko3AB^4ZA!#yK0gE z8xUtIL2L#!mdk^*X+aPTQ9*@@(ICczXolh#?hpu5G)2;3l4652#Yb75qCxv1kT*-6 z;0uD(_JyPbQFfdPPm6Dd?44Zp*M?w+n?zM%LsCNrxy>*WJ7}(6&>6|AnzF+AhvkAX$L6 zIb$iP9}|HN8P)FIj$9y$hJVJ=P*db-!Bl2+XgFCRL7+b&Ra1G1V4u{ce0 z;S?38qv;qUGK?ssJ2tlCvJo*7Pl_={iU~9=Mv_!qw` z4f$H()*7`sL z?Tm$%BXx7vKWIPqWrbw1_D$*U_4Ofq-*UX!Y~GpwGK_iVKJ#SPPn^QK{8#$+zV*W* z(mZ=$559NVOSD=oZ{vms99uHJ<)ycuei?kXbnH%DdS}Ah`|t~&47~0e z{{2v6vMK6P)PtT-Zkm>O^W E3v`s1#{d8T diff --git a/pandora_console/images/tick_off.png b/pandora_console/images/tick_off.png index 56e0a8bb8bb804ff15e8a6dd41248426b2c59424..c6c24d6f29175c345873d8947700e5a8c5fe1da9 100644 GIT binary patch delta 311 zcmV-70m%NX0@MN_iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0FfamfA&d4 zK~#9!Vqm}qZr-~6AI2~M(EtHNBmxK^oQM%>SU-?T0Ac}kHC0BuIsgKQM6;1xeji9p zWJK`>1A`#Y!Vkoo2@pWkML>5Hz}QU4VGP9Q(fA+-f57E6P|(c>u_+EdfB+iI2o_u{ zcocwAB`oMBFu{Tc8ioQ$sqH*+e{eBkBya|X3qTAq?E+AdAx11gb$);Oj0;pF%kQJuTl)WFy4Fno=V0a}d0QZ$_NJW2M4ZQ#W002ov JPDHLkV1oQ!Yo`DJ delta 271 zcmcb@w3bP+Gr-TCmrII^fq{Y7)59eQNDG139Be>xiJzV1L`9AI^PVn_Ar-fh5*9GT z>@M?V>|k}sQRCv_WC(iRxI_L(y2|AVYzm?MDpO8)EMip1U&EfnUSg>x#ADb{#d>!F zzr&joE=v?S9kT2Nv=?~BG9aJz($>@@7XyU%WGn0Rb(1scN8CIAH9!qp7GCSeM zID;wRiqql44Bg>e7j;uoTi6~{nxw}!d}6)8Q^|0o(ZN}7fptG?cM_YCgWLe7gS-Rpw`L2BEhh8j#qWZ Td!G!T9~nGd{an^LB{Ts5`j=NK diff --git a/pandora_console/images/tick_white.png b/pandora_console/images/tick_white.png index cd836bd779a12d4799180c6b1cd202bc9114373e..9fce7dbfc1e1e8534ae00131c7a094cbda5cdbfb 100644 GIT binary patch delta 313 zcmV-90mlBq3Dp82iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*pJM zL_t(|+G1e92JG$a|HBvtAQ~Wmh(rJZgcC7B4eJL|2|z4x@Zdp4ygC2^hB01CSKAU4Ip2M|Dm z8Nq^!1&;zysyq+nPGCd}9<se^Xlla&R$XByeB^0I>mbM1TMji~-g80jj7FSrI;_pum`3>HAW`hl!4g{JKNP;Ma5paa7zNdW+Wn^w0-52qq?00000 LNkvXXu0mjfm33_T literal 1218 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 r7>8vg{R>0QE#2~f6_eP#j4F z1PY;sVUq(FC0Gpw8n_-v1z>YIQnBzJEtA2(0-%~i^h69YY(1W!0%vCe8PgG-MsTDw zbfADOYoP%LbeAf?$_pIe11z)PQ6mU+=?6kZ2r@7vkUQZCnh{5G>IYHHq)$07*qoM6N<$g0GpI5C8xG literal 1442 zcmbVMZ%i9y7{9ipz_1(W$S6#5yE0b|^xnIcUVGBf(rcwkffN$@VLFcXN>6C-ydG;o zhaDu0Iif(e#)gEj=m*`5AuJ?jYJ>z0BPQbJ*fcH?hr_>f$+m2=30{GsAC`UalFPl% zbHCs7|9Owq*FLA(R=5pdjI@knHS@$vY`Qba=%EE+9r}fq`s(u7!bJ zA-a|EFtoq(mGevm1Sx`SqgV90Ye*j#($Oi5E*9b?HUw2v#(3J-#)xnW)5?Y|$e$m7 zhQO@ff;5%8ft$B8LAJU}U>dq=8+~1EKC>UG+z(g8NXbBm5otIUY7a-qm<3t4OG@XI z8b#oBh}dR9HiGiH>tQ=5FmSmJl=*-WgN+6qW&mb`xfI3$22cz~0a1nlvYa3R25&xy zlv zpTP1W%Z1^TMY@IS5G{xl=|&16-tFEp9FA-jN-7x|qj?n50W=g!<+YBEh#uzOFdmAI zGR}>Whv1X?5zwT`Qtck?CalVca6Bb>R1(E*f{H&j(jFcYN z+e{dR1EUGUOg1CsbP%}NQH4=@45V#5jBB7MKu`q0^#qP#4t zt}7f7>9CJU`(-7+8(gFFkzCR)Fto@CjU3mWo`CuwCvuS>$HVr9avcV{X&)O-X;KZ^ z$d_US_7LND3S0d%x_y4#0?PE-*7* ztcEgjYhB}Lfm&^Iews<=7G-$H-i){PPN#E9h820ZF608QF}5-#W}fMVyN z^nMV{f<=J=$dOR4AhH|_n!*4ef3+T$Hal3*UhjMM-4c9J_G&7j2F z4~lCbF2EM&L>meOM55PXyw4 zAWkHv#Kq@QkfDY^LoPu18^}shXerSC3mt8_c2p^=&}@(_hHLMjH|X8%dPu>q zvMGbb4~8(E1_!g#KT_yyUw0t{K7NdcI2(Pk8EYc!I>6jf|vP*+=N{yk& z5=3pbqsu|n`TR(Qr0|H@h#NwcvgG?$&Q9qRi-hlt*y=2w#_IhO&CE@6o!)+Ng4pc5N#J#Hf9i`ThbO7J{nR4 zSrsG^Nm*orQmbl5L8QwmL}Z_D)vy>{DHJFf7Gq_MFydGwlFDld9aU@if5TW49SyY0 zJXXU;rB)>b`q8*0O$N2Qv!fIcL__aX1ke<=g^@z75nfcij2#7kjGVyHxY>pigw=#w zN!(&12%FQwc-&T!a=Qp-8-b^7ti`3=9veehtTwlqAP6_#zRczRPt`CG43-*?|BOpo1!gdHTpfNO ztga6)f}K&oa$L=u>;wCG+RHctv5Uc5i;LyjY`jzF@p$s*hvE86BwqOSz~4J|We#d| z$Pk%-`SUpR>txqtK=aUg=}Q4Qa4|)NAvbG+b7OL8r|`CWSD!{LFdF{<+=kc2QG%8f!Fe;=GgmQC_wNM z=j2mdR(6h~5e_6Y{oluTYiY-~j)~*2rhC+n>c^3j8{&UyHkua_S9%(XrZ0?4y)Q~UZGU0n-s%ukX}BscEM4PU+e zO5YEOz4hZmxk?xMMb!=eSHu2)05H_w<^TWy diff --git a/pandora_console/images/xml.disabled.png b/pandora_console/images/xml.disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..187241132a1c23ae0795101e5408d85a1976f34a GIT binary patch literal 473 zcmV;~0Ve*5P)bv4xkEKqg=5IX>|01#gQ;sZGC00{Q!!I&Iyjlo?*n{nFf+P zLv+jl1Q_k28|q90Aa$NX^Bj?LKLa%9gFquF&5&XeG$8A7!DYV&4I4Iz_5+6v#}Ypr9%QI_LoaSm}YV-C#ZI P00000NkvXXu0mjfy`QhS literal 0 HcmV?d00001 diff --git a/pandora_console/images/xml.png b/pandora_console/images/xml.png old mode 100755 new mode 100644 index 7f1237324e346b4b4db1f686b84ef8d0e874665a..683b6331d98daabd114cda23e4df6eed753a9d2b GIT binary patch delta 446 zcmV;v0YU!U4A}!AiBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0p1Xm0Ffale*t?* zL_t(|+G1cp0*oNS-roK{13CZ*AXEfW0#^oPG{7VP0tjZnd?2+DCV24R!2>K%b^;JP z0I>iNUjX6*IPCxkAgqWHXto2I*nXJV`;kSNp!5YO4Yr5{>KsF4k6^V3Ab=Q=R5ajm z&O0X7?$NC`=R03trf zp^gW|oB}RIz))yFPCSk{)Ww6+1q*V*z!6jqD846bLj?>Tu$YnW^ARb!O<23XkuDp*Y_8qXM oQ=}S4fy^`t3aUb&gB}0?6gS0c6Jtf>tN;K207*qoM6N<$g8$x}rvLx| literal 1628 zcmbVMeM}Q)7{9hqYOP8areRUMl_f)k-d#)EyOUZC8p7CclSC6maA;(XMHf+-NbqCs!?~$ZCc>^r-TrX$Y6)6A!v#b`v&VOS=uS5(0g3h~NJ`8PGa{-$}7qgWlLjgt??Vv!b zhb*D&6zQs3dzMN808yzsw}36Mt;C(QM@fc!l$^)MqX8hr!1+jL8O4GQs>JQpD}Fn6 zLIJv6dPTm*2HSils?==>FjP(;GuIg?b7C%qVHudh;XHwdVo8wmlzaU+r&mnz;`};f zh7{nG3tOgFJQG!5%LYv}LxCD4oaBVH2&hd~BFQk8j3t697=a-~1;M%`1jaQw97e$D zN5My9T*bJZNS}_y@AQgNmi6HfR9RW6tW+y$rUXJT41-`5q*5jE9!dTxFH3SsUVnU; zfuQ_O#_eO>v=yQOqc}bc=42!NTmQaJ9LakgWy6S_42d!irNC5VV_ z79Ba&ZAP4imG`baxi4E=|LgmS+0_OMAa077C7&Hpm$nU%^~4AxqU*0-KQEMTJ)b|( z5G#84a=ggWci>U}B$Sf>`-$rPqcsV&gPnH+ulF(n|HWw4hYyOm$_8CxVr%jx}|5T zK$&b_L(il9i3~AhFw}OoGO~NV9&yF+M-3OUT#*r}!1lIau&t%o<%)05_W(-hA#=jGH zqY?PVE=J<2hOBX`&{oT}fS&<&h*N8~?{b_y|C8m;fZ)tf)}ii}BU{wkfeVWd0WroO z-3w2@lzmF@DUmsMb^U?H-96{3t*i6Eni+$Rg5U>*N;wmq{#spf+2&P9)7AD8^vU`q zU59;nR!72-!WmjgZ`2#;jlLO@(yd)^3Re>(ho6pJe|u!?_EOo$pJh3sZ!{I9wx2Az z8TFMzP;z!_)4T<#-SzvTf|1~cj&W&EVlOu@xBrvsFCyo!H}1J9JEzQ7OBjpj^O$!x z9$d1#%3Sev;K9gZbnx0F*Y6t{ixZb!wur59nxgT&#oXAiNUjX6*IPCxkAgqWHXto2I*nXJV`;kSNp!5YO4Yr5{>KsF4k6^V3Ab=Q=R5ajm z&-n_fZ}@sN%8=4Fns{x1<P!P5b)G`=9FcQBe*-k!DYV&4I4 oIz_5+6v#}Ypr9%QI_Loa6ji_@%07*qoM6N<$f=|t-6#xJL literal 1536 zcmbVMZA=q)7{9)NNI;pHh!VnizRWt>yZ@EG+>MH~*J3w{Scr5RVI0@Pp3vTTJ)ppJ z4l&MY;DaL>TLfY@gEMZsH0vyFmT7Z!T6Nv$M_CaKC zqPL86Q;u0*vSdMgk|dBQT3ubOtJdpyaSI9vf#aDDd4wt5NSLhzW{Ys0 zfuKYO7&hXUll{(evFCD0o5<1ovhYAREOmndK8Z?!ymXZT9X zl%UXPG+nU{Ned|&kkjJbYn@X{r81$nXZw@knA`1ZR536%&$nAOaAy)b)8CeKr? ze`5WkNm!9|b7*L{2O3(UjLMVhq4f~m6+fDmuz_U*ya1z?7SCO?ys|YqZT^$f7x<%@_=e8d8sOO z^^Qx656oLQ@~i)F^fAM(w;rL(_Cen@g9W{Coc&10pdJ80u`+t%diN5#guS_7X!)u` z+_Ftbvxb`g&7&Lr`Hcqy_rKrM^!QnpTc4M>5gNNcV%j3AN!u%t+BI?`=;p-}~tJ?;hn(6Fx?P9sZ!fz4dZWYFf6( z9KXogb?j`@R{XEN?Vl7S>{?ya*17pyQZndh+*()cG9_L;*Lh~A`~878O#1OLw9tAu m`xoUw&8_~Y>rVb%-@K$aw0`u>7pu(SJK1T^r9QWo)c*sOKO(gN diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index c05db832d7..bf3457ad2b 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -509,6 +509,6 @@ if ($table_events) { array_keys($groups), 'ER', 'event_condition', 'AND'); events_print_event_table ("estado <> 1 $tags_condition", 10, '100%', - false, $id_agente); + false, $id_agente,true); } ?> diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 95c7e6a401..c6379a45fe 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -128,7 +128,7 @@ if ($get_module_detail) { $formtable->data[0][1] = html_print_select ($periods, 'period', $period, '', '', 0, true, false, false); $formtable->data[0][2] = ''; $formtable->data[0][3] = "" . + "\", 0, -1,\"" . modules_get_agentmodule_name( $module_id ) . "\")'>" . html_print_image ("images/refresh.png", true, array ("style" => 'vertical-align: middle;', "border" => "0" )) . ""; $formtable->rowspan[0][3] = 2; diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index bba8d14fb0..1b7df5b6bd 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -849,11 +849,11 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret if ($result === false) { if ($return){ - $returned = '
    ' . __('No events') . '
    '; + $returned = ui_print_info_message ( __('No events'),'',true ); return $returned; } else - echo '
    ' . __('No events') . '
    '; + echo ui_print_info_message ( __('No events') ); } else { $table->id = 'latest_events_table'; @@ -871,7 +871,7 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret $table->cellclass = array (); $table->data = array (); $table->align = array (); - $table->style[0] = $table->style[1] = $table->style[2] = 'width:25px; background: #E8E8E8;'; + $table->style[0] = $table->style[1] = $table->style[2] = 'width:25px;'; if ($agent_id == 0) { $table->style[3] = 'word-break: break-all;'; } @@ -891,11 +891,13 @@ function events_print_event_table ($filter = "", $limit = 10, $width = 440, $ret if ($agent_id == 0) { $table->head[4] = __('Agent name'); + $table->size[4] = "15%"; } $table->head[5] = __('Timestamp'); $table->headclass[5] = "datos3 f9"; $table->align[5] = "left"; + $table->size[5] = "15%"; foreach ($result as $event) { if (! check_acl ($config["id_user"], $event["id_grupo"], "ER")) { diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 1becc0127b..8bcc173e51 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -231,6 +231,9 @@ function ui_print_message ($message, $class = '', $attributes = '', $return = fa case 'suc': $text_title = __('Success'); break; + case 'warning': + $text_title = __('Warning'); + break; } } @@ -246,6 +249,9 @@ function ui_print_message ($message, $class = '', $attributes = '', $return = fa case 'suc': $icon_image = 'images/suc.png'; break; + case 'warning': + $icon_image = 'images/warn.png'; + break; } $icon_image = $icon_image; @@ -370,6 +376,21 @@ function ui_print_result_message ($result, $good = '', $bad = '', $attributes = } } +/** + * Prints an warning message. + * + * @param mixed The string warning message or array ('title', 'message', 'icon', 'no_close') to be displayed + * @param string Any other attributes to be set for the tag. + * @param bool Whether to output the string or return it + * @param string What tag to use (you could specify something else than + * h3 like div or h2) + * + * @return string HTML code if return parameter is true. + */ +function ui_print_warning_message ($message, $attributes = '', $return = false, $tag = 'h3') { + return ui_print_message ($message, 'warning', $attributes, $return, $tag); +} + /** * Evaluates a unix timestamp and returns a span (or whatever tag specified) * with as title the correctly formatted full timestamp and a time comparation @@ -2400,7 +2421,7 @@ function ui_print_page_header ($title, $icon = "", $return = false, $help = "", $buffer .= '' . ui_print_truncate_text($title, 38); if ($help != "") - $buffer .= "
    " . + $buffer .= "
    " . ui_print_help_icon ($help, true, '', 'images/help_w.png') . "
    "; $buffer .= '
    '; diff --git a/pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default/ui.css b/pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default/ui.css index 77083f311d..023cd176b3 100644 --- a/pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default/ui.css +++ b/pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default/ui.css @@ -16,13 +16,13 @@ .defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} /* Layout */ -.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC} +.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC; margin-bottom:10px;} .defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC} .defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC} .defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;} .defaultSkin td.mceToolbar {background:#F0F0EE; padding-top:1px; vertical-align:top} .defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC} -.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px} +.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:10px;} .defaultSkin .mceStatusbar div {float:left; margin:2px} .defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} .defaultSkin .mceStatusbar a:hover {text-decoration:underline} diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 542fd824fd..7a4963d6b4 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -195,6 +195,7 @@ li:hover ul { display: block; } } #icon_god-extensions { background: url(../../images/builder.menu.png) no-repeat 50% 50%; + } #menu_container { diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 9c8568b32a..76642c8c5b 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -102,7 +102,7 @@ h1, h2, h3, h4 { font-size: 1em; font-family: Arial, Sans-serif; text-transform: uppercase; - color: #3f4e2f; + color: #3F3F3F; padding-bottom: 4px; padding-top: 7px; } @@ -116,9 +116,7 @@ h3 { font-size: 14px; } h4 { - margin-bottom: 2px; - padding-bottom: 0px; - padding-top: 5px; + margin-bottom: 10px; font-size: 13px; color: #3F3F3F; text-transform: none; @@ -969,6 +967,10 @@ tr.disabled_row_user * { color: #f85858; } +.warning *{ + color: #FAD403; +} + .help { background: url(../../images/help.png) no-repeat; } @@ -1176,7 +1178,7 @@ div.title_line { /* text-transform: uppercase; */ padding: 0px 0px 0px 0px; color: #fff; - font-size: 9pt; + font-size: 8.5pt; font-weight: bold; line-height: 18px; } @@ -1301,13 +1303,12 @@ span.rmess, span.nrmess { /* New styles for data box */ .databox, .databox_color, .databox_frame { margin-bottom: 5px; - margin-top: 5px; + margin-top: 0px; margin-left: 0px; border: 1px solid #e2e2e2; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; - padding-bottom: 5px; } .databox_color{ @@ -1336,6 +1337,9 @@ table.databox { color: #fff; padding-left: 10px; } +.databox td { + #border-bottom: 1px solid #E2E2E2; +} .databox th * { color: #fff; @@ -1488,7 +1492,6 @@ div#main_pure { } .img_help { cursor: help; - margin-top: -5px; } #loading { position:fixed; @@ -1881,7 +1884,7 @@ div#steps_clean { width: 100%; padding-right: 0px; margin-left: 0px !important; - margin-bottom: 15px; + margin-bottom: 20px; height: 31px; } div#events_list { @@ -1910,6 +1913,7 @@ div#logo_text3 { } .pagination { margin-top: 15px; + margin-bottom: 5px; } .pagination * { margin-left: 0px !important; @@ -2071,6 +2075,7 @@ div.cellBig { .info_box { background: #F9FAF9; margin-top: 10px !important; + margin-bottom: 10px !important; padding: 0px 5px 5px 10px; border-color: #E2E2E2; border-style: solid; @@ -2455,8 +2460,8 @@ input.search_input { margin-top: 8px !important; } -a>img, td>input, td>span { - vertical-align: middle; +a[id^='tgl_ctrl_']>img{ + vertical-align:middle; } .noshadow { @@ -2854,7 +2859,7 @@ table#policy_modules td * { .databox.data td{ padding-left: 10px; - border: 1px solid #EFEFEF; + border-bottom: 1px solid #E2E2E2; } .databox .search{ @@ -2937,9 +2942,22 @@ table#policy_modules td * { margin-top: 0px !important ; } +.databox.filters{ + margin-bottom: 17px; +} + .databox.filters td{ padding: 10px; + padding-left:20px; } + +.databox.filters td>img, .databox.filters td>div>a>img, +.databox.filters td>span>img, .databox.filters td>span>a>img, +.databox.filters td>a>img{ + vertical-align: middle; + margin-left: 5px; +} + .databox_color td{ padding-left: 10px; } diff --git a/pandora_console/include/styles/tree.css b/pandora_console/include/styles/tree.css index 0e28a26f97..d97ad31d48 100644 --- a/pandora_console/include/styles/tree.css +++ b/pandora_console/include/styles/tree.css @@ -155,7 +155,7 @@ div.tree-table-cell.tree-table-cell-tree { div.tree-table-cell.tree-table-cell-detail { padding-left: 10px; - width: 550px; + width: 60%; } div.tree-element-detail-closed { diff --git a/pandora_console/operation/agentes/alerts_status.php b/pandora_console/operation/agentes/alerts_status.php index aa917a4dec..ab275c19a5 100755 --- a/pandora_console/operation/agentes/alerts_status.php +++ b/pandora_console/operation/agentes/alerts_status.php @@ -384,7 +384,10 @@ if ($print_agent) { $table->width = '100%'; $table->class = "databox data"; +$table->cellpadding = '0'; +$table->cellspacing = '0'; if(defined('METACONSOLE')){ + $table->class = "databox"; $table->cellpadding = '0'; $table->cellspacing = '0'; } diff --git a/pandora_console/operation/agentes/estado_agente.php b/pandora_console/operation/agentes/estado_agente.php index 4c98e215b0..e920626f86 100644 --- a/pandora_console/operation/agentes/estado_agente.php +++ b/pandora_console/operation/agentes/estado_agente.php @@ -197,15 +197,6 @@ echo '
     
    '; -if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AM")) { - echo '
    '; - echo '
    '; - html_print_input_hidden ('new_agent', 1); - html_print_submit_button (__('Create agent'), 'crt', false, 'class="sub next"'); - echo "
    "; - echo '
    '; -} - if ($search != "") { $filter = array ("string" => '%' . $search . '%'); } @@ -427,11 +418,11 @@ if (empty ($agents)) { // Prepare pagination ui_pagination ($total_agents, - ui_get_url_refresh (array ('group_id' => $group_id, 'recursion' => $recursion, 'search' => $search, 'sort_field' => $sortField, 'sort' => $sort, 'status' => $status))); +ui_get_url_refresh (array ('group_id' => $group_id, 'recursion' => $recursion, 'search' => $search, 'sort_field' => $sortField, 'sort' => $sort, 'status' => $status))); // Show data. -$table->cellpadding = 4; -$table->cellspacing = 4; +$table->cellpadding = 0; +$table->cellspacing = 0; $table->width = "100%"; $table->class = "databox data"; @@ -439,35 +430,52 @@ $table->head = array (); $table->head[0] = __('Agent'). ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectNameUp, "alt" => "up")) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectNameDown, "alt" => "down")) . ''; +$table->size[0] = "10%"; + $table->head[1] = __('Description'); +$table->size[1] = "30%"; + $table->head[2] = __('OS'). ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectOsUp, "alt" => "up")) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectOsDown, "alt" => "down")) . ''; +$table->size[2] = "4%"; + $table->head[3] = __('Interval'). ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectIntervalUp, "alt" => "up")) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectIntervalDown, "alt" => "down")) . ''; +$table->size[3] = "10%"; + $table->head[4] = __('Group'). ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectGroupUp, "alt" => "up")) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectGroupDown, "alt" => "down")) . ''; +$table->size[4] = "15%"; + $table->head[5] = __('Modules'); +$table->size[5] = "10%"; + $table->head[6] = __('Status'); +$table->size[6] = "4%"; + $table->head[7] = __('Alerts'); +$table->size[7] = "4%"; + $table->head[8] = __('Last contact'). ' ' . '' . html_print_image("images/sort_up.png", true, array("style" => $selectLastContactUp, "alt" => "up")) . '' . '' . html_print_image("images/sort_down.png", true, array("style" => $selectLastContactDown, "alt" => "down")) . ''; +$table->size[8] = "15%"; $table->align = array (); $table->align[2] = "center"; -$table->align[3] = "center"; -$table->align[4] = "center"; -$table->align[5] = "center"; +$table->align[3] = "left"; +$table->align[4] = "left"; +$table->align[5] = "left"; $table->align[6] = "center"; $table->align[7] = "center"; -$table->align[8] = "right"; +$table->align[8] = "left"; $table->style = array(); -$table->style[0] = 'width: 15%'; +//$table->style[0] = 'width: 15%'; $table->data = array (); @@ -489,14 +497,14 @@ foreach ($agents as $agent) { $data = array (); - $data[0] = ''; - $data[0] .= ''; + $data[0] = '
    '; + $data[0] .= ''; if ($agent['quiet']) { $data[0] .= html_print_image("images/dot_green.disabled.png", true, array("border" => '0', "title" => __('Quiet'), "alt" => "")) . " "; } $data[0] .= ui_print_agent_name($agent["id_agente"], true, 60, 'font-size:6.5pt !important;', true); $data[0] .= ''; - $data[0] .= '
    '; $data[1] = ui_print_truncate_text(strip_tags(ui_bbcode_to_html($agent["description"])), 'description', false, true, true, '[…]', 'font-size: 6.5pt'); @@ -541,6 +549,14 @@ foreach ($agents as $agent) { if (!empty ($table->data)) { html_print_table ($table); + if (check_acl ($config['id_user'], 0, "AW") || check_acl ($config['id_user'], 0, "AM")) { + echo '
    '; + echo '
    '; + html_print_input_hidden ('new_agent', 1); + html_print_submit_button (__('Create agent'), 'crt', false, 'class="sub next"'); + echo "
    "; + echo '
    '; + } ui_pagination ($total_agents, ui_get_url_refresh(array( 'group_id' => $group_id, @@ -550,20 +566,20 @@ if (!empty ($table->data)) { 'status' => $status)), 0, 0, false, 'offset', false); unset ($table); + } else { - echo '
    '.__('There are no defined agents').'
    '; + ui_print_info_message (__('There are no defined agents') ); } ?> diff --git a/pandora_console/operation/agentes/estado_generalagente.php b/pandora_console/operation/agentes/estado_generalagente.php index 1fe7cf476f..b3480df599 100755 --- a/pandora_console/operation/agentes/estado_generalagente.php +++ b/pandora_console/operation/agentes/estado_generalagente.php @@ -60,9 +60,9 @@ if (! check_acl ($config["id_user"], $agent["id_grupo"], "AR") && !$is_extra) { // START: TABLE AGENT BUILD $table_agent->id = 'agent_details_main'; -$table_agent->width = '450px'; -$table_agent->cellspacing = 4; -$table_agent->cellpadding = 4; +$table_agent->width = '82%'; +$table_agent->cellspacing = 0; +$table_agent->cellpadding = 0; $table_agent->class = 'databox'; $table_agent->style[0] = 'width: 16px; text-align:center; padding: 0px;'; $table_agent->style[5] = 'width: 16px; text-align:center; padding: 0px;'; @@ -184,8 +184,8 @@ $table_agent->rowclass[] = ''; // START: TABLE CONTACT BUILD $table_contact->id = 'agent_contact_main'; $table_contact->width = '100%'; -$table_contact->cellspacing = 4; -$table_contact->cellpadding = 4; +$table_contact->cellspacing = 0; +$table_contact->cellpadding = 0; $table_contact->class = 'databox data'; $table_contact->style[0] = 'width: 30%;'; $table_contact->style[1] = 'width: 70%;'; @@ -227,8 +227,8 @@ $table_contact->data[] = $data; // START: TABLE DATA BUILD $table_data->id = 'agent_data_main'; $table_data->width = '100%'; -$table_data->cellspacing = 4; -$table_data->cellpadding = 4; +$table_data->cellspacing = 0; +$table_data->cellpadding = 0; $table_data->class = 'databox data'; $table_data->style[0] = 'width: 30%;'; $table_data->style[1] = 'width: 70%;'; @@ -355,8 +355,8 @@ if ($last_incident != false) { $table_incident->id = 'agent_incident_main'; $table_incident->width = '100%'; - $table_incident->cellspacing = 4; - $table_incident->cellpadding = 4; + $table_incident->cellspacing = 0; + $table_incident->cellpadding = 0; $table_incident->class = 'databox'; $table_incident->style[0] = 'width: 30%;'; $table_incident->style[1] = 'width: 70%;'; @@ -484,8 +484,8 @@ if (!empty($network_interfaces)) { $table = null; $table->id = 'agent_details'; $table->width = '100%'; -$table->cellspacing = 4; -$table->cellpadding = 4; +$table->cellspacing = 0; +$table->cellpadding = 0; $table->class = 'agents'; $table->style = array_fill(0, 3, 'vertical-align: top;'); @@ -508,7 +508,7 @@ $access_agent = db_get_value_sql("SELECT COUNT(id_agent) if ($config["agentaccess"] && $access_agent > 0) { $data[0] .= - ' + '
    ' . diff --git a/pandora_console/operation/agentes/estado_monitores.php b/pandora_console/operation/agentes/estado_monitores.php index 7ed66d8a0e..8034960405 100755 --- a/pandora_console/operation/agentes/estado_monitores.php +++ b/pandora_console/operation/agentes/estado_monitores.php @@ -450,7 +450,7 @@ function print_form_filter_monitors($id_agent, $status_filter_monitor = -1, } $table->data[0][5] = html_print_select ($rows_select,'status_module_group', $status_module_group, '', '',0, true); $table->data[0][6] = html_print_button(__('Filter'), 'filter', false, 'filter_modules();', 'class="sub search"', true); - $table->data[0][7] = ' ' . html_print_button(__('Reset'), 'filter', false, 'reset_filter_modules();', 'class="sub upd"', true); + $table->data[0][7] = ' ' . html_print_button(__('Reset'), 'filter', false, 'reset_filter_modules();', 'class="sub upd" style="margin-top:0px;"', true); $form_text .= html_print_table($table, true); $filter_hidden = false; @@ -459,6 +459,6 @@ function print_form_filter_monitors($id_agent, $status_filter_monitor = -1, $filter_hidden = true; } - ui_toggle($form_text, __('Form filter'), __('Form filter'), $filter_hidden); + echo $form_text; } ?> diff --git a/pandora_console/operation/agentes/gis_view.php b/pandora_console/operation/agentes/gis_view.php index e96cc42f96..a0d3a2a043 100644 --- a/pandora_console/operation/agentes/gis_view.php +++ b/pandora_console/operation/agentes/gis_view.php @@ -52,7 +52,7 @@ echo "
    "; echo "
    "; if (!gis_get_agent_map($id_agente, "500px", "100%", true, true, $period)) { - ui_print_error_message(__("There is no default map. Please go to the setup for to set a default map.")); + ui_print_error_message( __("There is no default map. Please go to the setup for to set a default map.") ); echo "
    ' . __('Agent access rate (24h)') . '