From: <mgu...@us...> - 2010-12-08 20:57:46
|
Revision: 37 http://nagios.svn.sourceforge.net/nagios/?rev=37&view=rev Author: mguthrie88 Date: 2010-12-08 20:57:39 +0000 (Wed, 08 Dec 2010) Log Message: ----------- fixed linking to service details pages. Trimmed configuration views to be a tighter list. Modified Paths: -------------- nagiosvshell/trunk/vshell/controllers/controller.php nagiosvshell/trunk/vshell/data/read_details.php nagiosvshell/trunk/vshell/data/read_status.php nagiosvshell/trunk/vshell/views/display_functions.php nagiosvshell/trunk/vshell/views/style.css Added Paths: ----------- nagiosvshell/trunk/vshell/views/config_viewer.php Modified: nagiosvshell/trunk/vshell/controllers/controller.php =================================================================== --- nagiosvshell/trunk/vshell/controllers/controller.php 2010-12-02 19:27:11 UTC (rev 36) +++ nagiosvshell/trunk/vshell/controllers/controller.php 2010-12-08 20:57:39 UTC (rev 37) @@ -243,6 +243,8 @@ $authorizations['service_commands']==1 || $authorizations['system_commands']==1) { + //moved build_object_list to config_viewer.php page for easier editing + include(DIRBASE.'/views/config_viewer.php'); build_object_list($array, $arg); } break; Modified: nagiosvshell/trunk/vshell/data/read_details.php =================================================================== --- nagiosvshell/trunk/vshell/data/read_details.php 2010-12-02 19:27:11 UTC (rev 36) +++ nagiosvshell/trunk/vshell/data/read_details.php 2010-12-08 20:57:39 UTC (rev 37) @@ -81,7 +81,11 @@ if($type=='service') { $details = grab_details($type); - $retval = $details[$arg]; + //serviceID index no longer exists, had to call array by index number instead + $id = str_replace('service', '', trim($arg)); + //print "<p>$id</p>"; + $retval = $details[$id]; //call service details by array index + } if($type=='host') { Modified: nagiosvshell/trunk/vshell/data/read_status.php =================================================================== --- nagiosvshell/trunk/vshell/data/read_status.php 2010-12-02 19:27:11 UTC (rev 36) +++ nagiosvshell/trunk/vshell/data/read_status.php 2010-12-08 20:57:39 UTC (rev 37) @@ -70,6 +70,7 @@ $details = array(); $comments = array(); $info = array(); + $service_counter = 0; list($matches, $curtype, $cursubtype) = array(NULL, NULL, NULL); $kvp = array(); @@ -88,14 +89,18 @@ } elseif (preg_match('/^\s*}\s*$/', $line)) { - if ($curtype == 'status') { + if ($curtype == 'status') { $details[$cursubtype][] = $kvp; - + if ($cursubtype == 'host') { $kvp = process_host_status_keys($kvp); } elseif ($cursubtype == 'service') { + $kvp['serviceID']=$service_counter++; //added serviceID to details array $kvp = process_service_status_keys($kvp); + //print "<br /><br />"; + //print_r($kvp); + //die(); } $status_collector[$cursubtype][] = $kvp; @@ -163,14 +168,15 @@ */ function process_service_status_keys($rawdata) { - static $serviceindex = 1; + static $serviceindex = 0; $processed_data = get_standard_values($rawdata, array('host_name', 'plugin_output', 'scheduled_downtime_depth', 'service_description')); $processed_data['serviceID'] = 'service'.$serviceindex++; - + //print "$serviceindex<br />"; $service_states = array( 0 => 'OK', 1 => 'WARNING', 2 => 'CRITICAL', 3 => 'UNKNOWN' ); $processed_data['current_state'] = state_map($rawdata['current_state'], $service_states); - + //print_r($processed_data); + //print "<br /><br />"; return $processed_data; } Added: nagiosvshell/trunk/vshell/views/config_viewer.php =================================================================== --- nagiosvshell/trunk/vshell/views/config_viewer.php (rev 0) +++ nagiosvshell/trunk/vshell/views/config_viewer.php 2010-12-08 20:57:39 UTC (rev 37) @@ -0,0 +1,145 @@ +<?php //config_viewer.php + +//expecting + +///////////////////////////////////////////////////////////// +//used to view object configurations +//expects $array from objects file such as $hosts_objs +// $arg is the argument taken from the browser. example object=services_objs +function build_object_list($array, $arg) //expecting arrays from read_objects.php file +{ + global $authorizations; + $count = 0; + + print "<ul class='configlist'>"; + foreach($array as $a) + { + //default for no permissions + $title = ''; + $linkkey = ''; + //change variables based on type of object being viewed + switch($arg) + { + case 'hosts_objs': + if($authorizations['configuration_information']==1) + { + $name=$a['host_name']; + $linkkey = 'host'.$a['host_name']; + $link = htmlentities(BASEURL.'index.php?cmd=gethostdetail&arg='.$name); + $title = "Host: <a href='$link' title='Host Details'>$name</a>"; + } + //else{ continue; } + break; + + case 'services_objs': + if($authorizations['configuration_information']==1) + { + $count++; + $name=$a['service_description']; + $linkkey = 'service'.$count; + $host = $a['host_name']; + $hlink = htmlentities(BASEURL.'index.php?cmd=gethostdetail&arg='.$host); + $link = htmlentities(BASEURL.'index.php?cmd=getservicedetail&arg='.$linkkey); + $title = "Host: <a href='$hlink' title='Host Details'>$host</a> + Service:<a href='$link' title='Service Details'>$name</a>"; + } + break; + + case 'commands': + if(($authorizations['host_commands']==1 && $authorizations['service_commands']) + ||$authorizations['system_commands']==1 ) + { + $name=$a['command_name']; + $title = "Command: $name"; + $linkkey = $name; + } + break; + + case 'hostgroups_objs': + if($authorizations['configuration_information']==1) + { + $name=$a['hostgroup_name']; + $title = "Group Name: $name"; + $linkkey = 'hg'.$name; + } + break; + + case 'servicegroups_objs': + if($authorizations['configuration_information']==1) + { + $name=$a['servicegroup_name']; + $title = "Group Name: $name"; + $linkkey = 'sg'.$name; + } + break; + + case 'timeperiods': + if($authorizations['configuration_information']==1) + { + $name=$a['timeperiod_name']; + $title = "Timeperiod: $name"; + $linkkey = 'tp'.$name; + } + break; + + case 'contacts': + if($authorizations['configuration_information']==1) + { + $name=$a['contact_name']; + $title = "Contact: $name"; + $linkkey = $name; + } + break; + + case 'contactgroups': + if($authorizations['configuration_information']==1) + { + $name=$a['contactgroup_name']; + $title = "Contact Group: $name"; + $linkkey = $name; + } + break; + + default: + $title = 'Access Denied<br />'; + $linkkey = 'You do not have permissions to view this information'; + break; + + } + + $id = preg_replace('/\./', '_', $linkkey); //replacing dots with underscores + $id = preg_replace('/\ /', '_', $id); //replacing spaces with underscores + //using HEREDOC string syntax + $confighead=<<<CONFIG + + <li class="configlist">{$title} <a class='label' onclick='showHide("{$id}")' href='javascript:void(0)'> + <img class='label' src="views/images/expand.gif" title="Show Config" alt="Image" height="12" width="12" /> + </a></li> + + <div class='hidden' id='{$id}'> + + <table class="objectList"> + <tr><th>Config</th><th>Value</th></tr> + +CONFIG; +//end HEREDOC + if($title!='') //only display if authorized + { + print $confighead; + //print raw config data into a table + foreach($a as $key => $value) + { + + print "<tr class='objectList'> + <td>$key</td><td>$value</td> + </tr>\n"; + } + print "</table></div>"; + }//end IF + }//end FOREACH loop + print "<ul>"; +}//end function + + + +?> \ No newline at end of file Modified: nagiosvshell/trunk/vshell/views/display_functions.php =================================================================== --- nagiosvshell/trunk/vshell/views/display_functions.php 2010-12-02 19:27:11 UTC (rev 36) +++ nagiosvshell/trunk/vshell/views/display_functions.php 2010-12-08 20:57:39 UTC (rev 37) @@ -71,141 +71,7 @@ print "</table>\n"; } -///////////////////////////////////////////////////////////// -//used to view object configurations -//expects $array from objects file such as $hosts_objs -// $arg is the argument taken from the browser. example object=services_objs -function build_object_list($array, $arg) //expecting arrays from read_objects.php file -{ - global $authorizations; - $count = 0; - foreach($array as $a) - { - //default for no permissions - $title = ''; - $linkkey = ''; - //change variables based on type of object being viewed - switch($arg) - { - case 'hosts_objs': - if($authorizations['configuration_information']==1) - { - $name=$a['host_name']; - $linkkey = 'host'.$a['host_name']; - $link = htmlentities(BASEURL.'index.php?cmd=gethostdetail&arg='.$name); - $title = "Host: <a href='$link' title='Host Details'>$name</a>"; - } - //else{ continue; } - break; - - case 'services_objs': - if($authorizations['configuration_information']==1) - { - $count++; - $name=$a['service_description']; - $linkkey = 'service'.$count; - $host = $a['host_name']; - $hlink = htmlentities(BASEURL.'index.php?cmd=gethostdetail&arg='.$host); - $link = htmlentities(BASEURL.'index.php?cmd=getservicedetail&arg='.$linkkey); - $title = "Service:<a href='$link' title='Service Details'>$name</a><br /> - Host: <a href='$hlink' title='Host Details'>$host</a>"; - } - break; - - case 'commands': - if(($authorizations['host_commands']==1 && $authorizations['service_commands']) - ||$authorizations['system_commands']==1 ) - { - $name=$a['command_name']; - $title = "Command: $name"; - $linkkey = $name; - } - break; - - case 'hostgroups_objs': - if($authorizations['configuration_information']==1) - { - $name=$a['hostgroup_name']; - $title = "Group Name: $name"; - $linkkey = 'hg'.$name; - } - break; - - case 'servicegroups_objs': - if($authorizations['configuration_information']==1) - { - $name=$a['servicegroup_name']; - $title = "Group Name: $name"; - $linkkey = 'sg'.$name; - } - break; - - case 'timeperiods': - if($authorizations['configuration_information']==1) - { - $name=$a['timeperiod_name']; - $title = "Timeperiod: $name"; - $linkkey = 'tp'.$name; - } - break; - - case 'contacts': - if($authorizations['configuration_information']==1) - { - $name=$a['contact_name']; - $title = "Contact: $name"; - $linkkey = $name; - } - break; - - case 'contactgroups': - if($authorizations['configuration_information']==1) - { - $name=$a['contactgroup_name']; - $title = "Contact Group: $name"; - $linkkey = $name; - } - break; - - default: - $title = 'Access Denied<br />'; - $linkkey = 'You do not have permissions to view this information'; - break; - - } - - $id = preg_replace('/\./', '_', $linkkey); //replacing dots with underscores - $id = preg_replace('/\ /', '_', $id); //replacing spaces with underscores - //using HEREDOC string syntax - $confighead=<<<CONFIG - - <h6>{$title} <a class='label' onclick='showHide("{$id}")' href='javascript:void(0)'> - <img class='label' src="views/images/expand.gif" title="Show Config" alt="Image" height="12" width="12" /> - </a></h6> - - <div class='hidden' id='{$id}'> - <table class="objectList"> - <tr><th>Config</th><th>Value</th></tr> - -CONFIG; -//end HEREDOC - if($title!='') //only display if authorized - { - print $confighead; - //print raw config data into a table - foreach($a as $key => $value) - { - - print "<tr class='objectList'> - <td>$key</td> - <td>$value</td> - </tr>\n"; - } - print "</table></div><br />"; - } - } -} ////////////////////////////////// //used on the header.php file to create the main nav links Modified: nagiosvshell/trunk/vshell/views/style.css =================================================================== --- nagiosvshell/trunk/vshell/views/style.css 2010-12-02 19:27:11 UTC (rev 36) +++ nagiosvshell/trunk/vshell/views/style.css 2010-12-08 20:57:39 UTC (rev 37) @@ -204,9 +204,11 @@ tr.statustablerow { width: 1400px; height: 1em; } -tr.objectList +table.objectList, tr.objectList { background-color: #EDEDED; + margin: 0px; + } table.tac { @@ -309,4 +311,13 @@ width: 20%; } -.deselect { color: #999; } \ No newline at end of file +.deselect { color: #999; } + +/* expandable configuration list */ +ul.configlist, li.configlist { + font-size: 8pt; + margin: 1px; + padding: 0px; + list-style:none; + } + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |