Wizard
view release on metacpan or search on metacpan
lib/Wizard/Examples/Apache.pm view on Meta::CPAN
# -*- perl -*-
use strict;
use Wizard::State ();
use Wizard::SaveAble ();
use Wizard::Examples::Apache::Config ();
package Wizard::Examples::Apache;
@Wizard::Examples::Apache::ISA = qw(Wizard::Examples);
$Wizard::Examples::Apache::VERSION = '0.01';
sub GetKey { 'prefs'; };
sub init {
my $self = shift;
my $prefs = $self->{'prefs'} || die "Missing preferences";
return ($prefs) unless shift;
my $basedir = $prefs->{'apache-prefs-basedir'} || die "Missing basedir";
wantarray ? ($prefs, $basedir) : $prefs;
}
sub getFileDir {
my($self, $wiz) = @_;
my $basedir = $self->{'prefs'}->{'apache-prefs-basedir'};
wantarray ? ($basedir, $basedir) : $basedir;
}
sub Action_Reset {
my($self, $wiz) = @_;
# Load prefs, if required.
unless ($self->{'prefs'}) {
my $cfg = $Wizard::Examples::Apache::Config::config;
my $file = $cfg->{'apache-prefs-file'};
$self->{'prefs'} = Wizard::SaveAble->new('file' => $file, 'load' => 1);
$self->Store($wiz);
}
# Return the initial menu.
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Menu'],
['Wizard::Elem::Submit', 'value' => 'Host Menu',
'name' => 'Wizard::Examples::Apache::Host::Action_Reset',
'id' => 1],
['Wizard::Elem::BR'],
['Wizard::Elem::Submit', 'value' => 'Apache Wizard preferences',
'name' => 'Action_Preferences',
'id' => 2],
['Wizard::Elem::BR'],
['Wizard::Elem::Submit', 'value' => 'Return to Wizard Examples',
'name' => 'Wizard::Examples::Action_Reset',
'id' => 98],
['Wizard::Elem::BR'],
['Wizard::Elem::Submit', 'value' => 'Exit Apache Wizard',
'id' => 99]);
}
sub Action_Preferences {
my($self, $wiz) = @_;
my $prefs = $self->init();
# Return a list of input elements.
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Preferences'],
['Wizard::Elem::Text', 'name' => 'apache-prefs-basedir',
'value' => $prefs->{'apache-prefs-basedir'},
'descr' => 'Base Directory of the Apache Wizard'],
['Wizard::Elem::Submit', 'name' => 'Action_PreferencesSave',
'value' => 'Save these settings', 'id' => 1],
['Wizard::Elem::Submit', 'name' => 'Action_PreferencesReset',
'value' => 'Reset this form', 'id' => 98],
['Wizard::Elem::Submit', 'name' => 'Action_Reset',
'value' => 'Return to top menu', 'id' => 99]);
}
sub Action_PreferencesSave {
my($self, $wiz) = @_;
my $prefs = $self->init();
foreach my $opt (qw(apache-prefs-basedir)) {
$prefs->{$opt} = $wiz->param($opt) if defined($wiz->param($opt));
}
$prefs->Modified(1);
$self->Store($wiz, 1);
$self->Action_Reset($wiz);
}
sub Action_PreferencesReset {
my($self, $wiz) = @_;
$self->Action_Reset($wiz);
$self->Action_Preferences($wiz);
}
1;
( run in 0.835 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )