diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index af47eb431d..29d51303cf 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,10 @@ +2009-08-28 Miguel de Dios + + * extensions/module_groups, extensions/module_groups/icon_menu.png, + extensions/module_groups.php: add extension to show table of modules where + the columns is the modules group and the rows is the agents group. And + this extension use as example in wiki openideas. + 2009-08-28 Miguel de Dios * include/functions_db.php: add function get_all_model_groups for to diff --git a/pandora_console/extensions/module_groups.php b/pandora_console/extensions/module_groups.php new file mode 100644 index 0000000000..c9f10f6e4c --- /dev/null +++ b/pandora_console/extensions/module_groups.php @@ -0,0 +1,135 @@ +" . __("Combine table of agent group and module group") . ""; + + echo "

" . __("This table show in columns the modules group and for rows agents group. The cell show all modules") . "

"; + + + $agentGroups = get_user_groups ($config['id_user']); + $modelGroups = get_all_model_groups(); + array_walk($modelGroups, 'translate'); //Translate all head titles to language is set + + $head = $modelGroups; + array_unshift($head, ' '); + + //Metaobject use in print_table + $table = null; + $table->align[0] = 'right'; //Align to right the first column. + $table->style[0] = 'color: #ffffff; background-color: #778866; font-weight: bolder;'; + $table->head = $head; + + //The content of table + $tableData = array(); + //Create rows and celds + foreach ($agentGroups as $idAgentGroup => $name) { + + $row = array(); + + array_push($row, $name); + + foreach ($modelGroups as $idModelGroup => $modelGroup) { + $query = sprintf($sql,$idAgentGroup, $idModelGroup); + $rowsDB = get_db_all_rows_sql ($query); + + $states = array(); + if ($rowsDB !== false) { + foreach ($rowsDB as $rowDB) { + $states[$rowDB['estado']] = $rowDB['count']; + } + } + + $count = 0; + foreach ($states as $idState => $state) { + $count = $state; + } + + $color = 'transparent'; //Defaut color for cell + if ($count == 0) { + $color = '#babdb6'; //Grey when the cell for this model group and agent group hasn't modules. + } + else { + if (array_key_exists(0,$states) && (count($states) == 1)) + $color = '#8ae234'; //Green when the cell for this model group and agent has OK state all modules. + 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. + else + $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. + } + } + + array_push($row, + '
+ ' . $count . ' modules
'); + } + array_push($tableData,$row); + } + $table->data = $tableData; + + print_table($table); + + echo "

" . __("The colours meaning:") . + "

" . + "

"; +} + +add_operation_menu_option("Modules groups", 'estado', 'module_groups/icon_menu.png'); +add_extension_main_function('mainModuleGroups'); +?> diff --git a/pandora_console/extensions/module_groups/icon_menu.png b/pandora_console/extensions/module_groups/icon_menu.png new file mode 100755 index 0000000000..a706306eae Binary files /dev/null and b/pandora_console/extensions/module_groups/icon_menu.png differ