## OpenCA - CA Command
## (c) 2001 by Michael Bell and OpenCA Group
##
##   File Name: show_modules
##       Brief: show the available modules
## Description: show the available modules
##  Parameters: RBAC_DIR, MODULES_DIR

sub cmdShow_modules {

## load the needed config-parameters
my $rbac_dir = getRequired ('RBAC_DIR');
my $modules  = getRequired ('MODULES_DIR');
my $doc      = getRequired ('ShowModulesSheet');

## load the prepared sheet
my $page = $tools->getFile ( $doc );
if (not $page) {
  configError ( i18nGettext ("The prepared sheet __SHEET__ cannot be loaded!", "__SHEET__", $doc) );
}

## load all scripts
opendir( DIR, $rbac_dir."/".$modules ) or
  configError ( i18nGettext ("Cannot open __DIR__!", "__DIR__", "$rbac_dir/$modules") );
my @values = grep( /.*/, readdir DIR );
closedir( DIR );

## sort them
my @hvalues;
foreach my $item (@values) {
	if ( $item !~ /^(\.\.|\.)$/ ) {
		push @hvalues, decodeName ($item);
	}
}
@values = sort @hvalues;

## create table
my $table .= $query->startTable(COLS=>[ gettext("Modules"), gettext("Delete") ],
				WIDTH=>"100%",
				TITLE_BGCOLOR=>"#DDCCFF" );
for my $dir (@values) {
  $table .= $query->addTableLine( DATA => [
    $dir,
    "<a href=\"$self?cmd=show_prepared_module&module=".
      $dir."&next_cmd=delete\">".gettext("DELETE")."</a>"     ] );
}
$table .= $query->endTable();

## build page
## Substitute the Variables in the $page
$page = $query->subVar( $page, '$uptime', $tools->getDate () );
$page = $query->subVar( $page, '$table', $table );

print "$page";

}

1;
