package SrvMngr::Controller::${PackageName}; #---------------------------------------------------------------------- # heading : ${MenuHeading} # description : ${MenuDescription} # navigation : ${MenuNavigation} # # name : ${lcPackageName}, method : get, url : /${lcPackageName}, ctlact : ${lcPackageName}#main # name : ${lcPackageName}d, method : post, url : /${lcPackageName}d, ctlact : ${lcPackageName}#do_update # # routes : end # # Documentation: https://wiki.contribs.org/{PackageName} #---------------------------------------------------------------------- use strict; use warnings; use Mojo::Base 'Mojolicious::Controller'; use constant FALSE => 0; use constant TRUE => 1; use Locale::gettext; use SrvMngr::I18N; use SrvMngr qw(theme_list init_session); use Data::Dumper; use esmith::util; use esmith::HostsDB; use esmith::AccountsDB; use esmith::NetworksDB; use esmith::HostsDB; use esmith::DomainsDB; #The most common ones our $db = esmith::ConfigDB->open() || die("Couldn't open config db"); our $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); our $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); our $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); sub main { my $c = shift; $c->app->log->info( $c->log_req ); my %${prefix}_data = (); my $title = $c->l("${prefix}_${MenuDescription}"); my $modul = ''; $$${prefix}_data{trt} = '${firstPanel}'; $c->stash( title => $title, modul => $modul, ${prefix}_data => \%${prefix}_data ); $c->render( template => "${PackageName}" ); } sub do_update { my $c = shift; $c->app->log->info($c->log_req); my %${prefix}_data = (); my $title = $c->l("${prefix}_${MenuDescription}"); # Accessing all POST parameters my %params = $c->req->params->to_hash; # Get number of POST parameters my $num_params = keys %params; #Params are available in the hash "params" # you may use: foreach my $key (keys %params) { my $value = $params{$key}; $c->app->log->debug("$key: $value"); } # the value of trt will tell you which panel has returned my $trt = $c->param('trt') || '${firstPanel}' ; #hidden control on every form. my $ret = 'ok'; #Validate the parameters accordingly if ($trt eq '${condition}'){ #Validate for panel ${condition} # set $ret = $c->l('Error message') if invalid' } if ($ret ne "ok"){ $c->stash(error => $c->l($ret)) } else { $c->stash( success => $c->l('ok message')) } if ($ret eq 'ok'){ #Do whatever } # set ${prefix}_data{trt} = ; $c->stash( title => $title, ${prefix}_data => \%${prefix}_data # Extra data in here - repeat for each stash data entry needed for panels ); $c->render("${PackageName}") } # get routines for the stash contents here. 1;