<?php
/*
Lilac - A Nagios Configuration Tool
Copyright (C) 2007 Taylor Dondich

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

/*
Lilac Index Page, Displays Menu, and Statistics
*/
include_once('includes/config.inc');

$cgiConfig = NagiosCgiConfigurationPeer::doSelectOne(new Criteria());
if(!$cgiConfig) {
	$cgiConfig = new NagiosCgiConfiguration();
	$cgiConfig->save();
}

if(isset($_POST['request'])) {
	if($_POST['request'] == 'update') {
		if(isset($_POST['cgi_config']['physical_html_path']))
         $cgiConfig->setPhysicalHtmlPath($_POST['cgi_config']['physical_html_path']);
        if(isset($_POST['cgi_config']['url_html_path']))
         $cgiConfig->setUrlHtmlPath($_POST['cgi_config']['url_html_path']);
        if(isset($_POST['cgi_config']['use_authentication']))
         $cgiConfig->setUseAuthentication($_POST['cgi_config']['use_authentication']);
        if(isset($_POST['cgi_config']['default_user_name']))
         $cgiConfig->setDefaultUserName($_POST['cgi_config']['default_user_name']);
        if(isset($_POST['cgi_config']['authorized_for_system_information']))
         $cgiConfig->setAuthorizedForSystemInformation($_POST['cgi_config']['authorized_for_system_information']);
        if(isset($_POST['cgi_config']['authorized_for_system_commands']))
         $cgiConfig->setAuthorizedForSystemCommands($_POST['cgi_config']['authorized_for_system_commands']);
        if(isset($_POST['cgi_config']['authorized_for_configuration_information']))
         $cgiConfig->setAuthorizedForConfigurationInformation($_POST['cgi_config']['authorized_for_configuration_information']);
        if(isset($_POST['cgi_config']['authorized_for_all_hosts']))
         $cgiConfig->setAuthorizedForAllHosts($_POST['cgi_config']['authorized_for_all_hosts']);
        if(isset($_POST['cgi_config']['authorized_for_all_host_commands']))
         $cgiConfig->setAuthorizedForAllHostCommands($_POST['cgi_config']['authorized_for_all_host_commands']);
        if(isset($_POST['cgi_config']['authorized_for_all_services']))
         $cgiConfig->setAuthorizedForAllServices($_POST['cgi_config']['authorized_for_all_services']);
        if(isset($_POST['cgi_config']['authorized_for_all_service_commands']))
         $cgiConfig->setAuthorizedForAllServiceCommands($_POST['cgi_config']['authorized_for_all_service_commands']);
        if(isset($_POST['cgi_config']['statusmap_background_image']))
         $cgiConfig->setStatusmapBackgroundImage($_POST['cgi_config']['statusmap_background_image']);
        if(isset($_POST['cgi_config']['default_statusmap_layout']))
         $cgiConfig->setDefaultStatusmapLayout($_POST['cgi_config']['default_statusmap_layout']);
        if(isset($_POST['cgi_config']['statuswrl_include']))
         $cgiConfig->setStatuswrlInclude($_POST['cgi_config']['statuswrl_include']);
        if(isset($_POST['cgi_config']['default_statuswrl_layout']))
         $cgiConfig->setDefaultStatuswrlLayout($_POST['cgi_config']['default_statuswrl_layout']);
        if(isset($_POST['cgi_config']['refresh_rate']))
         $cgiConfig->setRefreshRate($_POST['cgi_config']['refresh_rate']);
        if(isset($_POST['cgi_config']['host_unreachable_sound']))
         $cgiConfig->setHostUnreachableSound($_POST['cgi_config']['host_unreachable_sound']);
        if(isset($_POST['cgi_config']['host_down_sound'])) 
         $cgiConfig->setHostDownSound($_POST['cgi_config']['host_down_sound']);
        if(isset($_POST['cgi_config']['service_critical_sound']))
         $cgiConfig->setServiceCriticalSound($_POST['cgi_config']['service_critical_sound']);
        if(isset($_POST['cgi_config']['service_warning_sound']))
         $cgiConfig->setServiceWarningSound($_POST['cgi_config']['service_warning_sound']);
        if(isset($_POST['cgi_config']['service_unknown_sound']))
         $cgiConfig->setServiceUnknownSound($_POST['cgi_config']['service_unknown_sound']);
        if(isset($_POST['cgi_config']['ping_syntax']))
         $cgiConfig->setPingSyntax($_POST['cgi_config']['ping_syntax']);

        if(isset($_POST['cgi_config']['lock_author_names']))
         $cgiConfig->setLockAuthorNames($_POST['cgi_config']['lock_author_names']);
        if(isset($_POST['cgi_config']['escape_html_tags']))
         $cgiConfig->setEscapeHtmlTags($_POST['cgi_config']['escape_html_tags']);
        if(isset($_POST['cgi_config']['notes_url_target']))
         $cgiConfig->setNotesUrlTarget($_POST['cgi_config']['notes_url_target']);
        if(isset($_POST['cgi_config']['action_url_target']))
         $cgiConfig->setActionUrlTarget($_POST['cgi_config']['action_url_target']);
        if(isset($_POST['cgi_config']['enable_splunk_integration']))
         $cgiConfig->setEnableSplunkIntegration($_POST['cgi_config']['enable_splunk_integration']);
        if(isset($_POST['cgi_config']['splunk_url']))
         $cgiConfig->setSplunkUrl($_POST['cgi_config']['splunk_url']);
        $cgiConfig->save();		
        $success = "Updated CGI Configuration.";
    }
}



	
// Let's make the status map layout select list
$statusmap_layout_list[] = array("values" => "0", "text" => "User-Defined Coordinates");
$statusmap_layout_list[] = array("values" => "1", "text" => "Depth Layers");
$statusmap_layout_list[] = array("values" => "2", "text" => "Collapsed Tree");
$statusmap_layout_list[] = array("values" => "3", "text" => "Balanced Tree");
$statusmap_layout_list[] = array("values" => "4", "text" => "Circular");
$statusmap_layout_list[] = array("values" => "5", "text" => "Circular (Marked Up)");
$statusmap_layout_list[] = array("values" => "6", "text" => "Circular (Marked Down)");

// Let's make the status wrl layout select list
$statuswrl_layout_list[] = array("values" => "0", "text" => "User-Defined Coordinates");
$statuswrl_layout_list[] = array("values" => "1", "text" => "Depth Layers");
$statuswrl_layout_list[] = array("values" => "2", "text" => "Collapsed Tree");
$statuswrl_layout_list[] = array("values" => "3", "text" => "Balanced Tree");
$statuswrl_layout_list[] = array("values" => "4", "text" => "Circular");


if(!isset($_GET['section']))
	$_GET['section'] = 'paths';

	
// Build subnavigation
$subnav = array(
	'paths' => 'Paths',
	'authentication' => 'Authentication',
	'status' => 'Status',
	'sounds' => 'Sounds',
	'other' => 'Other'
	);


print_header("CGI Configuration File Editor");

	print_window_header("Web Interface Configuration", "100%", "center");
	print_subnav($subnav, $_GET['section'], "section");
	if($_GET['section'] == 'paths') {

		?>
		<form name="cgi_path_config" method="post" action="cgi.php?section=paths">
		<input type="hidden" name="request" value="update" />
		<div class="formbox">
		<b>Physical HTML Path:</b><br />
		<input type="text" size="80" name="cgi_config[physical_html_path]" VALUE="<?php echo $cgiConfig->getPhysicalHtmlPath();?>"><br />
		<?php echo $lilac->element_desc("physical_html_path", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>URL HTML Path:</b><br />
		<input type="text" size="80" name="cgi_config[url_html_path]" VALUE="<?php echo $cgiConfig->getUrlHtmlPath();?>"><br />
		<?php echo $lilac->element_desc("url_html_path", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<input type="submit" value="Update Path Configuration" />
		</div>
		<?php
	}
	else if($_GET['section'] == 'authentication') {
		?>
		<form name="cgi_authentication_config" method="post" action="cgi.php?section=authentication">
		<input type="hidden" name="request" value="update" />
		<div class="formbox">
		<b>Use Authentication:</b> <?php print_select("cgi_config[use_authentication]", $enable_list, "values", "text", $cgiConfig->getUseAuthentication());?><br />
		<?php echo $lilac->element_desc("use_authentication", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Default Username:</b> <input type="text" name="cgi_config[default_user_name]" VALUE="<?php echo $cgiConfig->getDefaultUserName();?>"><br />
		<?php echo $lilac->element_desc("default_user_name", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for System Information:</b> <input type="text" name="cgi_config[authorized_for_system_information]" VALUE="<?php echo $cgiConfig->getAuthorizedForSystemInformation();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_system_information", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for System Commands:</b> <input type="text" name="cgi_config[authorized_for_system_commands]" VALUE="<?php echo $cgiConfig->getAuthorizedForSystemCommands();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_system_commands", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for Configuration Information:</b> <input type="text" name="cgi_config[authorized_for_configuration_information]" VALUE="<?php echo $cgiConfig->getAuthorizedForConfigurationInformation();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_configuration_information", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for All Hosts:</b> <input type="text" name="cgi_config[authorized_for_all_hosts]" VALUE="<?php echo $cgiConfig->getAuthorizedForAllHosts();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_all_hosts", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for All Host Commands:</b> <input type="text" name="cgi_config[authorized_for_all_host_commands]" VALUE="<?php echo $cgiConfig->getAuthorizedForAllHostCommands();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_all_host_commands", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for All Services:</b> <input type="text" name="cgi_config[authorized_for_all_services]" VALUE="<?php echo $cgiConfig->getAuthorizedForAllServices();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_all_services", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Authorized for All Service Commands:</b> <input type="text" name="cgi_config[authorized_for_all_service_commands]" VALUE="<?php echo $cgiConfig->getAuthorizedForAllServiceCommands();?>"><br />
		<?php echo $lilac->element_desc("authorized_for_all_service_commands", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<input type="submit" value="Update Authentication Configuration" />
		</div>
		<?php
	}
	else if($_GET['section'] == 'status') {
		?>
		<form name="cgi_authentication_config" method="post" action="cgi.php?section=status">
		<input type="hidden" name="request" value="update" />
		<div class="formbox">
		<b>Statusmap Background Image:</b> <input type="text" name="cgi_config[statusmap_background_image]" VALUE="<?php echo $cgiConfig->getStatusmapBackgroundImage();?>"><br />
		<?php echo $lilac->element_desc("statusmap_background_image", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Default Statusmap Layout</b> <?php print_select("cgi_config[default_statusmap_layout]", $statusmap_layout_list, "values", "text", $cgiConfig->getDefaultStatusmapLayout());?><br />
		<?php echo $lilac->element_desc("default_statusmap_layout", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Statuswrl Include:</b> <input type="text" name="cgi_config[statuswrl_include]" VALUE="<?php echo $cgiConfig->getStatuswrlInclude();?>"><br />
		<?php echo $lilac->element_desc("statuswrl_include", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Default Statuswrl Layout</b> <?php print_select("cgi_config[default_statuswrl_layout]", $statuswrl_layout_list, "values", "text", $cgiConfig->getDefaultStatuswrlLayout());?><br />
		<?php echo $lilac->element_desc("default_statuswrl_layout", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Refresh Rate:</b> <input type="text" name="cgi_config[refresh_rate]" VALUE="<?php echo $cgiConfig->getRefreshRate();?>"><br />
		<?php echo $lilac->element_desc("refresh_rate", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<input type="submit" value="Update Status Configuration" />
		</div>
		<?php
	}
	else if($_GET['section'] == 'sounds') {
		?>
		<form name="cgi_authentication_config" method="post" action="cgi.php?section=sounds">
		<input type="hidden" name="request" value="update" />
		<div class="formbox">
		<b>Host Unreachable Sound:</b> <input type="text" name="cgi_config[host_unreachable_sound]" VALUE="<?php echo $cgiConfig->getHostUnreachableSound();?>"><br />
		<?php echo $lilac->element_desc("host_unreachable_sound", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Host Down Sound:</b> <input type="text" name="cgi_config[host_down_sound]" VALUE="<?php echo $cgiConfig->getHostDownSound();?>"><br />
		<?php echo $lilac->element_desc("host_down_sound", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Service Critical Sound:</b> <input type="text" name="cgi_config[service_critical_sound]" VALUE="<?php echo $cgiConfig->getServiceCriticalSound();?>"><br />
		<?php echo $lilac->element_desc("service_critical_sound", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Service Warning Sound:</b> <input type="text" name="cgi_config[service_warning_sound]" VALUE="<?php echo $cgiConfig->getServiceWarningSound();?>"><br />
		<?php echo $lilac->element_desc("service_warning_sound", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Service Unknown Sound:</b> <input type="text" name="cgi_config[service_unknown_sound]" VALUE="<?php echo $cgiConfig->getServiceUnknownSound();?>"><br />
		<?php echo $lilac->element_desc("service_unknown_sound", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<input type="submit" value="Update Sound Configuration" />
		</div>
		<?php
	}
	else if($_GET['section'] == 'other') {
		?>
		<form name="cgi_authentication_config" method="post" action="cgi.php?section=other">
		<input type="hidden" name="request" value="update" />
		<div class="formbox">
		<b>Lock Author Names:</b> <?php print_select("cgi_config[lock_author_names]", $enable_list, "values", "text", $cgiConfig->getLockAuthorNames());?><br />
		<?php echo $lilac->element_desc("lock_author_names", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Escape HTML Tags:</b> <?php print_select("cgi_config[escape_html_tags]", $enable_list, "values", "text", $cgiConfig->getEscapeHtmlTags());?><br />
		<?php echo $lilac->element_desc("escape_html_tags", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Notes URL Target:</b><br />
		<input type="text" size="40" name="cgi_config[notes_url_target]" VALUE="<?php echo $cgiConfig->getNotesUrlTarget();?>"><br />
		<?php echo $lilac->element_desc("notes_url_target", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Action URL Target:</b><br />
		<input type="text" size="40" name="cgi_config[action_url_target]" VALUE="<?php echo $cgiConfig->getActionUrlTarget();?>"><br />
		<?php echo $lilac->element_desc("action_url_target", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Ping Syntax:</b><br />
		<input type="text" size="80" name="cgi_config[ping_syntax]" VALUE="<?php echo $cgiConfig->getPingSyntax();?>"><br />
		<?php echo $lilac->element_desc("ping_syntax", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Enable Splunk Integration:</b> <?php print_select("cgi_config[enable_splunk_integration]", $enable_list, "values", "text", $cgiConfig->getEnableSplunkIntegration());?><br />
		<?php echo $lilac->element_desc("enable_splunk_integration", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<b>Splunk URL:</b><br />
		<input type="text" size="80" name="cgi_config[splunk_url]" VALUE="<?php echo $cgiConfig->getSplunkUrl();?>"><br />
		<?php echo $lilac->element_desc("splunk_url", "nagios_cgi_desc"); ?><br />
		</div>
		<div class="formbox">
		<input type="submit" value="Update Other Configuration" />
		</div>
		<?php
	}		
	print_window_footer();

print_footer();
?>
