view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
( 'Data::Dumper' => 0,
'HTML::EP' => 0,
'File::Spec' => 0,
);
my $cfg;
if (-f "lib/Wizard/Examples/Apache/Config.pm") {
$cfg = eval { require "lib/Wizard/Examples/Apache/Config.pm" };
}
if (!$cfg || $opt_config) {
my $prefsfile = $cfg->{'apache-prefs-file'} || '/etc/httpd/wwwAdmin/prefs';
$cfg->{'apache-prefs-file'} =
prompt("Enter path of the Apache Wizard prefs file:", $prefsfile);
}
die "Failed to create directory lib/Wizard/Examples/Apache: $!"
unless ((-d "lib/Wizard/Examples/Apache") or
mkdir("lib/Wizard/Examples/Apache", 0755));
eval {
require Data::Dumper;
my $dump = Data::Dumper->new([$cfg],
["Wizard::Examples::Apache::Config::config"]);
$dump->Indent(1);
if (!open(FILE, ">lib/Wizard/Examples/Apache/Config.pm") or
Makefile.PL view on Meta::CPAN
!close(FILE)) {
die "Failed to create file lib/Wizard/Examples/Apache/Config.pm: $!";
}
};
my $icfg;
if (-f "lib/Wizard/Examples/ISDN/Config.pm") {
$icfg = eval { require "lib/Wizard/Examples/ISDN/Config.pm" };
}
if (!$icfg || $opt_config) {
my $prefsfile = $icfg->{'isdn-prefs-file'} || '/etc/sysconfig/isdn/prefs';
$icfg->{'isdn-prefs-file'} =
prompt("Enter path of the ISDN Wizard prefs file:", $prefsfile);
}
die "Failed to create directory lib/Wizard/Examples/ISDN: $!"
unless ((-d "lib/Wizard/Examples/ISDN") or
mkdir("lib/Wizard/Examples/ISDN", 0755));
eval {
my $dump = Data::Dumper->new([$icfg],
["Wizard::Examples::Apache::ISDN::config"]);
$dump->Indent(1);
if (!open(FILE, ">lib/Wizard/Examples/ISDN/Config.pm") or
!(print FILE ("package Wizard::Examples::ISDN::Config;\n",
lib/Wizard/Examples/Apache.pm view on Meta::CPAN
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',
lib/Wizard/Examples/Apache.pm view on Meta::CPAN
'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);
}
lib/Wizard/Examples/Apache.pod view on Meta::CPAN
Hier werden Hosts konfiguriert (siehe Host Administration)
=head2 Apache Wizard Preferences
Hier wird die globale Konfiguration mittels folgender Optionen
festgelegt:
=over 4
=item I<apache_prefs_basedir> Base Directory of Apache Wizard
Verzeichnis in dem die Daten ueber Hosts, Server, etc...
abgelegt werden.
=back
=head1 AUTHORS AND COPYRIGHT
This module is
lib/Wizard/Examples/Apache/Admin.pm view on Meta::CPAN
use Wizard::SaveAble ();
use Wizard::Examples::Apache::Config ();
use Symbol ();
use Socket ();
package Wizard::Examples::Apache::Admin;
sub Parse {
my($self, $template, $server, $host, $prefs) = @_;
$template =~ s/\~\~([\w\-]+)\~\~/
my $sf;
foreach my $s (@_) {
if (exists($s->{$1})) {
$sf = $s;
last;
}
}
die "Unknown pattern: $1" unless $sf;
$sf->{$1}/eg;
$template
}
sub new {
my($proto, $host, $server) = @_;
my $cfg = $Wizard::Examples::Apache::Config::config;
my $file = $cfg->{'apache-prefs-file'};
my $prefs = Wizard::SaveAble->new($file);
my $basedir = $prefs->{'apache-prefs-basedir'} or die "Missing basedir";
my $h = Wizard::SaveAble->new(File::Spec->catfile($basedir, "$host.cfg"));
my $hostdir = File::Spec->catdir($basedir, $host);
my $s = Wizard::SaveAble->new(File::Spec->catfile($hostdir,
"$server.cfg"));
my $serverdir = File::Spec->catdir($basedir, $server);
bless({'prefs' => $prefs,
'basedir' => $basedir,
'host' => $h,
'hostdir' => $hostdir,
'server' => $s,
'serverdir' => $serverdir}, (ref($proto) || $proto));
}
sub MakeHttpdConf {
my $self = shift;
lib/Wizard/Examples/Apache/Admin.pm view on Meta::CPAN
$interfaces{$i} = $ip;
}
}
if ($vserver->{'configuration'}) {
$conf .= $vserver->{'configuration'};
} else {
my $mode = $vserver{'apache-virtualserver-http-mode'};
if ($mode eq 'http' || $mode eq 'both') {
$conf .= Wizard::Examples::Apache::Admin::Config::HTTP->Cnf
($prefs, $host, $server, $vserver);
}
if ($mode eq 'https' || $mode eq 'both') {
$conf .= Wizard::Examples::Apache::Admin::Config::HTTPS->Cnf
($prefs, $host, $server, $vserver);
}
if ($mode eq 'redirect') {
$conf .= Wizard::Examples::Apache::Admin::Config::Redirect->Cnf
($prefs, $host, $server, $vserver);
}
}
}
# Make sure, the defaults are valid
$conf .= <<"EOF";
<VirtualHost _default_:*>
</VirtualHost>
EOF
# Finally parse the config file.
(Parse($conf, $server, $host, $prefs), \%interfaces);
}
sub IfUp {
my($self, $i, $ip) = @_;
my $arch = $self->{'apache-host-arch'};
my $interface = $self->{'apache-host-interface'};
if ($arch =~ /linux/) {
my $ifconfig = "$self->{'apache-host-ifconfig'} $interface";
return $self->Warn("Failed to parse netmask of interface $interface:\n"
lib/Wizard/Examples/Apache/Admin.pm view on Meta::CPAN
. " $ip up\n";
print "Switching interface $i up: $command\n" if $::verbose;
system $command unless $::debug;
}
}
package Wizard::Examples::Apache::Admin::Config::HTTP;
sub new {
my($prefs, $host, $server, $vserver) = @_;
my $self = { %$vserver };
$self->{'apache-virtualserver-pagedir'} =
File::Spec->catdir($server->{'apache-server-root'},
$vserver->{'apache-virtualserver-name'},
'pages');
$self->{'apache-virtualserver-cgidir'} =
File::Spec->catdir($server->{'apache-server-root'},
$vserver->{'apache-virtualserver-name'},
'cgi-bin');
$self->{'apache-virtualserver-logdir'} =
lib/Wizard/Examples/Apache/Admin.pm view on Meta::CPAN
~~apache-virtualserver-index~~
~~apache-virtualserver-aliases~~
<Directory ~~apache-virtualserver-pagedir~~>
~~apache-virtualserver-options~~
</Directory>
</VirtualHost>
EOF
}
sub Cnf {
my($proto, $prefs, $host, $server, $vserver) = @_;
my $conf = $proto->new($prefs, $host, $server, $vserver);
my $template = $conf->Template();
Wizard::Examples::Apache::Admin::Parse($template, $conf, $template,
$server, $host, $prefs);
}
package Wizard::Examples::Apache::Admin::Config::HTTPS;
@Wizard::Examples::Apache::Admin::Config::HTTPS::ISA =
qw(Wizard::Examples::Apache::Admin::Config::HTTP);
sub Template {
my $self = shift;
lib/Wizard/Examples/Apache/Directory.pm view on Meta::CPAN
}
sub Action_Enter {
my($self, $wiz) = @_;
$self->SUPER::Load($wiz, 'Wizard::Examples::Apache::VirtualServer');
$self->Action_Reset($wiz);
}
sub Action_Reset {
my($self, $wiz) = @_;
my($prefs, $basedir, $host, $server, $vserver) = $self->init();
delete $self->{'directory'};
$self->Store($wiz);
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Directory Configuration Menu'],
['Wizard::Elem::Submit', 'value' => 'Create a new Directory Config.',
'name' => 'Action_CreateDirectory',
'id' => 1],
['Wizard::Elem::Submit', 'value' => 'Modify an existing Directory Config.',
'name' => 'Action_ModifyDirectory',
'id' => 2],
lib/Wizard/Examples/Apache/Directory.pm view on Meta::CPAN
'name' => 'Wizard::Examples::Apache::Action_Reset',
'id' => 98],
['Wizard::Elem::Submit', 'value' => 'Exit Apache Wizard',
'id' => 99]);
}
*Action_CreateDirectory = \&Wizard::Examples::Apache::Host::Action_CreateItem;
sub Action_DirectorySave {
my($self, $wiz) = @_;
my ($prefs, $basedir, $host, $server, $vserver, $dirc) = $self->init(1);
my $old_name = $dirc->{'apache-directory-name'};
foreach my $opt ($wiz->param()) {
$dirc->{$opt} = $wiz->param($opt)
if (($opt =~ /^apache\-directory/) && (defined($wiz->param($opt))));
}
# Verify the settings
my $errors = '';
my $pname = $dirc->{'apache-directory-pathname'} || die "Missing directory pathname";
lib/Wizard/Examples/Apache/Directory.pm view on Meta::CPAN
'Directory configuration');
}
sub Action_DeleteDirectory {
shift->Action_ModifyServer(shift, 'Delete this directory',
'Action_DeleteDirectory2');
}
sub Action_DeleteDirectory2 {
my($self, $wiz) = @_;
my ($prefs, $basedir, $host, $server, $vserver) = $self->init();
my $name = $wiz->param('apache-directory') || die "Missing directory name";
$name =~ s/\//\_/g;
$wiz->param('apache-directory', $name);
$self->Load($wiz);
my $dirc = $self->{'dir'};
my ($file, $dir) = $self->getFileDir();
if ($dirc->{'apache-directory-isdefault'}) {
return (['Wizard::Elem::Data', 'descr' => 'ERROR: ',
'value' => 'Root directory can not be deleted'],
lib/Wizard/Examples/Apache/Host.pm view on Meta::CPAN
$self->init(); my $key = $self->GetKey();
$self->{$key} = Wizard::SaveAble->new();
$self->{$key}->CreateMe(1);
$self->Store($wiz);
$self->ShowMe($wiz, $self->{$key}) unless $notshow;
}
sub Action_HostSave {
my($self, $wiz) = @_;
my ($prefs, $basedir, $host) = $self->init(1);
my $old_name = $host->{'apache-host-name'};
foreach my $opt (qw(apache-host-name apache-host-descr apache-host-arch
apache-host-ip)) {
$host->{$opt} = $wiz->param($opt) if defined($wiz->param($opt));
}
# Verify the new settings
my $errors = '';
my $name = $host->{'apache-host-name'} || '';
lib/Wizard/Examples/Apache/Host.pm view on Meta::CPAN
File::Path::mkpath([$dir],0, 0777);
die "Couldn't create directory $dir: $!" unless -d $dir;
}
$host->Modified(1);
$self->Store($wiz, 1);
$self->Action_Reset($wiz);
}
sub Action_Reset {
my($self, $wiz) = @_;
my ($prefs, $basedir) = $self->init();
delete $self->{'host'};
$self->Store($wiz);
# Return the initial menu.
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Host Menu'],
['Wizard::Elem::Submit', 'value' => 'Create a new host',
'name' => 'Action_CreateHost',
'id' => 1],
['Wizard::Elem::Submit', 'value' => 'Modify an existing host',
lib/Wizard/Examples/Apache/Host.pm view on Meta::CPAN
}
sub Action_ServerMenu {
my($self, $wiz) = @_;
$self->Action_ModifyHost($wiz, 'Manage servers on this host',
'Wizard::Examples::Apache::Server::Action_Enter');
}
sub Action_DeleteHost2 {
my $self = shift; my $wiz = shift;
my ($prefs, $basedir) = $self->init();
$self->Load($wiz);
my $host = $self->{'host'};
my ($file, $dir, $odir) = $self->getFileDir();
(['Wizard::Elem::Title', 'value' => 'Deleting an Apache host'],
['Wizard::Elem::Link', 'action'=> 'DeleteHost'],
['Wizard::Elem::Data', 'descr' => 'Host name',
'value' => $host->{'apache-host-name'}],
['Wizard::Elem::Data', 'descr' => 'Host description',
'value' => $host->{'apache-host-descr'}],
lib/Wizard/Examples/Apache/Server.pm view on Meta::CPAN
}
sub Action_Enter {
my($self, $wiz) = @_;
$self->Load($wiz, 'Wizard::Examples::Apache::Host');
$self->Action_Reset($wiz);
}
sub Action_Reset {
my $self = shift; my $wiz=shift;
my($prefs, $basedir, $host) = $self->init();
delete $self->{'server'};
$self->Store($wiz);
# Return the initial menu.
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Server Menu'],
['Wizard::Elem::Submit', 'value' => 'Create a new server',
'name' => 'Action_CreateServer', 'id' => 1],
['Wizard::Elem::Submit', 'value' => 'Modify an existing server',
'name' => 'Action_ModifyServer', 'id' => 2],
['Wizard::Elem::Submit', 'value' => 'Virtual Server Menu',
lib/Wizard/Examples/Apache/Server.pm view on Meta::CPAN
'name' => 'Wizard::Examples::Apache::Host::Action_Reset',
'id' => 98],
['Wizard::Elem::Submit', 'value' => 'Exit Apache Wizard',
'id' => 99]);
}
*Action_CreateServer = \&Wizard::Examples::Apache::Host::Action_CreateItem;
sub Action_ServerSave {
my($self, $wiz) = @_;
my($prefs, $basedir, $host, $server) = $self->init(1);
$self->init(1);
my $hname = $host->{'apache-host-name'};
my $old_name = $server->{'apache-server-name'};
foreach my $opt ($wiz->param()) {
$server->{$opt} = $wiz->param($opt)
if (($opt =~ /^apache\-server/) && (defined($wiz->param($opt))));
}
# Verify the new settings
lib/Wizard/Examples/Apache/Server.pm view on Meta::CPAN
'Action_DeleteServer2');
}
sub Action_VServerMenu {
shift->Action_ModifyServer(shift, 'Manage virtual servers on this server',
'Wizard::Examples::Apache::VirtualServer::Action_Enter');
}
sub Action_DeleteServer2 {
my $self = shift; my $wiz = shift;
my ($prefs, $basedir, $host) = $self->init();
$self->Load($wiz);
my $server = $self->{'server'};
my ($file, $dir) = $self->getFileDir();
(['Wizard::Elem::Title', 'value' => 'Deleting an Apache server'],
['Wizard::Elem::Data', 'descr' => 'Server name',
'value' => $server->{'apache-server-name'}],
['Wizard::Elem::Data', 'descr' => 'Server DNS name',
'value' => $server->{'apache-server-ip'}],
['Wizard::Elem::Data', 'descr' => 'Server root',
lib/Wizard/Examples/Apache/VirtualServer.pm view on Meta::CPAN
}
sub Action_Enter {
my($self, $wiz) = @_;
$self->SUPER::Load($wiz, 'Wizard::Examples::Apache::Server');
$self->Action_Reset($wiz);
}
sub Action_Reset {
my($self, $wiz) = @_;
my($prefs, $basedir, $host, $server) = $self->init();
delete $self->{'virtualserver'};
$self->Store($wiz);
# Return the initial menu.
(['Wizard::Elem::Title', 'value' => 'Apache Wizard Virtual WWWserver Menu'],
['Wizard::Elem::Submit', 'value' => 'Create a new virtual WWWserver',
'name' => 'Action_CreateVServer',
'id' => 1],
['Wizard::Elem::Submit', 'value' => 'Modify an existing virtual WWWserver',
lib/Wizard/Examples/Apache/VirtualServer.pm view on Meta::CPAN
'id' => 97],
['Wizard::Elem::Submit', 'value' => 'Return to Top Menu',
'name' => 'Wizard::Examples::Apache::Action_Reset',
'id' => 98],
['Wizard::Elem::Submit', 'value' => 'Exit Apache Wizard',
'id' => 99]);
}
sub GetIfaces {
my $self = shift;
my ($prefs, $basedir, $host, $server) = $self->init();
my $hname = $host->{'apache-host-name'};
my ($fileo, $diro) = $self->getFileDir('', 'Wizard::Examples::Apache::Host');
my $tdir;
my $fho = Symbol::gensym();
my $fh = Symbol::gensym();
my $maxkey=0;
my $ifaces = {};
opendir($fho, $diro) || die "Failed to open directory $diro: $!";
while($tdir=readdir($fho)) {
lib/Wizard/Examples/Apache/VirtualServer.pm view on Meta::CPAN
}
sub Action_CreateVServer {
my $self = shift;
$self->Action_CreateItem(@_, 1);
return $self->FirstParams(shift, $self->{'virtualserver'});
}
sub AssignFirstParams {
my($self, $wiz, $vs) = @_;
my($prefs, $basedir, $host, $server) = $self->init();
my $errors = '';
my $old_name = $vs->{'apache-virtualserver-name'} || '';
my $name = $wiz->param('apache-virtualserver-name')
or ($errors .= "Missing virtual WWW server name.\n");
my $http_mode = $wiz->param('apache-virtualserver-http-mode')
or ($errors .= "Missing virtual WWW server http mode.\n");
$errors .= "Invalid http mode.\n" unless defined($allModes->{$http_mode});
my $ifaces = $self->GetIfaces();
my $iface = $vs->{'apache-virtualserver-interface'};
lib/Wizard/Examples/Apache/VirtualServer.pm view on Meta::CPAN
my($self, $wiz) = @_;
my $vs = $self->{'virtualserver'};
$self->AssignFirstParams($wiz, $vs);
$self->Store($wiz);
$self->ShowMe($wiz, $vs);
}
sub Action_VServerSave {
my $self=shift; my $wiz = shift;
my($prefs, $basedir, $host, $server, $vs) = $self->init(1);
my $name = $vs->{'apache-virtualserver-name'};
my $old_name = delete $vs->{'_virtualserver_old_name'} || '';
foreach my $opt ($wiz->param()) {
$vs->{$opt} = $wiz->param($opt)
if (($opt =~ /^apache\-virtualserver/)
&& (defined($wiz->param($opt))));
}
lib/Wizard/Examples/Apache/VirtualServer.pm view on Meta::CPAN
}
sub Action_DirectoryMenu {
shift->Action_ModifyVServer(shift, 'Manage directory configurations on this virtual server',
'Wizard::Examples::Apache::Directory::Action_Enter');
}
sub Action_DeleteVServer2 {
my $self = shift; my $wiz = shift;
my($prefs, $basedir, $host, $server) = $self->init();
my $hname = $host->{'apache-host-name'};
my $sname = $server->{'apache-server-name'};
my $name = $wiz->param('apache-virtualserver') || die "Missing virtual WWW server name";
my $file = File::Spec->catfile($basedir, $hname, $sname, "$name.cfg");
my $dir = File::Spec->catdir($basedir, $hname, $sname, $name);
my $vserver = Wizard::SaveAble->new($file);
if ($vserver->{'apache-virtualserver-isdefault'}) {
return (['Wizard::Elem::Data', 'descr' => 'ERROR: ',
'value' => 'Default virtual server can not be deleted'],
lib/Wizard/Examples/ISDN.pm view on Meta::CPAN
use Wizard::SaveAble ();
use Wizard::Examples::ISDN::Config ();
package Wizard::Examples::ISDN;
@Wizard::Examples::ISDN::ISA = qw(Wizard::Examples);
$Wizard::Examples::ISDN::VERSION = '0.01';
sub GetKey { 'prefs'; };
sub init {
my $self = shift;
my $prefs = $self->{'prefs'} || die "Missing preferences";
return ($prefs) unless shift;
my $cfile = $prefs->{'isdn-prefs-cfile'} || die "Missing config file";
wantarray ? ($prefs, $cfile) : $prefs;
}
sub Action_Reset {
my($self, $wiz) = @_;
# Load prefs, if required.
unless ($self->{'prefs'}) {
my $cfg = $Wizard::Examples::ISDN::Config::config;
my $file = $cfg->{'isdn-prefs-file'};
$self->{'prefs'} = Wizard::SaveAble->new('file' => $file, 'load' => 1);
$self->Store($wiz);
}
# Return the initial menu.
(['Wizard::Elem::Title', 'value' => 'ISDN Wizard Menu'],
['Wizard::Elem::Submit', 'value' => 'ISDN Wizard preferences',
'name' => 'Wizard::Examples::ISDN::Action_Preferences',
'id' => 1],
['Wizard::Elem::Submit', 'value' => 'ISDN Settings Wizard',
'name' => 'Wizard::Examples::ISDN::Settings::Action_Reset',
lib/Wizard/Examples/ISDN.pm view on Meta::CPAN
['Wizard::Elem::Submit', 'value' => 'Return to Wizard Examples',
'name' => 'Wizard::Examples::Action_Reset',
'id' => 98],
['Wizard::Elem::Submit', 'value' => 'Exit ISDN Wizard',
'id' => 99]);
}
sub Action_Preferences {
my($self, $wiz) = @_;
my $prefs = $self->init();
# Return a list of input elements.
(['Wizard::Elem::Title', 'value' => 'ISDN Wizard Preferences'],
['Wizard::Elem::Text', 'name' => 'isdn-prefs-cfile',
'value' => $prefs->{'isdn-prefs-cfile'},
'descr' => 'ISDN Configfile'],
['Wizard::Elem::Text', 'name' => 'isdn-prefs-updatecmd',
'value' => $prefs->{'isdn-prefs-updatecmd'},
'descr' => 'Command that will be executed on update'],
['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(isdn-prefs-cfile isdn-prefs-updatecmd)) {
$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);
}
lib/Wizard/Examples/ISDN/Settings.pm view on Meta::CPAN
'value' => 'Save these settings', 'id' => 1],
['Wizard::Elem::Submit', 'name' => 'Action_Reset',
'value' => 'Return to ISDN menu', 'id' => 98],
['Wizard::Elem::Submit', 'name' => 'Wizard::Examples::ISDN::Action_Reset',
'value' => 'Return to top menu', 'id' => 99]);
}
sub Action_SettingsSave {
my($self, $wiz) = @_;
my ($prefs, $basedir, $sets) = $self->init(1);
foreach my $opt ($wiz->param()) {
$sets->{$opt} = $wiz->param($opt) if (($opt =~ /^isdn-settings/) && defined($wiz->param($opt)));
}
$sets->{'isdn-settings-I4L_HARDWARE_PROTO'} = '1' if $sets->{'isdn-settings-I4L_HARDWARE_PROTO'} =~ /^1TR6/i;
$sets->{'isdn-settings-I4L_HARDWARE_PROTO'} = '2' if $sets->{'isdn-settings-I4L_HARDWARE_PROTO'} =~ /^Euro/i;
# Verify the new settings
my $errors = '';
lib/Wizard/Examples/ISDN/Settings.pm view on Meta::CPAN
unless Socket::inet_aton($ip_local);
}
if ($ip_remote) {
$errors .= "Cannot resolve Service Remote IP address $ip_remote.\n"
unless Socket::inet_aton($ip_remote);
}
die $errors if $errors;
$sets->Modified(1);
$self->Store($wiz, 1);
my $cmd = $prefs->{'isdn-prefs-upadatecmd'};
my $cmdp = $cmd; $cmdp =~ s/\ .*$//g;
system($cmd) if(-x $cmdp);
$self->Wizard::Examples::ISDN::Action_Reset($wiz);
}
sub Action_Reset {
my($self, $wiz) = @_;
my ($prefs) = $self->init();
my $cfile = $prefs->{'isdn-prefs-cfile'};
$self->{'settings'} = Wizard::SaveAble::ShellVars->new('file' => $cfile, 'load' => 1, 'prefix' => 'isdn-settings-');
$self->Store($wiz);
return $self->ShowMe($wiz, $self->{'settings'});
}
lib/Wizard/State.pm view on Meta::CPAN
my $state = Wizard::State->new();
=head1 DESCRIPTION
A Wizard can be interpreted as a very simple finite state machine. The
state is stored in ab object of class Wizard::State.
A wizard state is typically a collection of Wizard::SaveAble objects.
For example, while configuring an Apache webserver, the state might
have attributes I<prefs> (global preferences), I<host> (the machine
where the webserver is running on) and I<server> (the web server), each
of them being a SaveAble object. If the state's I<Store> method is
called, then the I<Store> method is called for any of these objects,
as if they were a single object.
=head1 CLASS INTERFACE
=head2 Constructor
my $state = Wizard::State->new(\%attr)