Refactor controller so that it only uses do_display to display panels

This commit is contained in:
2024-11-29 13:02:13 +00:00
parent 9567e6e327
commit 47514f6f28
8 changed files with 50 additions and 93 deletions

View File

@@ -62,11 +62,11 @@ sub main {
$c->app->log->info( $c->log_req );
#The most common ones
$cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
$adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
$ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
$hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
$ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my %${prefix}_data = ();
my $title = $c->l('${prefix}_${MenuDescription}');
@@ -81,25 +81,8 @@ sub main {
$$${prefix}_data{'${dbfield}'} = $db->prop('${dbfield}') || ${dbdefault | ""} || "";
</tal:block>
#pickup any other contents needed and load them into hash shared with panel
my %returned_hash;
# subroutine returns a hash directly
%returned_hash = $c->get_data_for_panel_${firstPanel}();
# Copy each key-value pair from the returned hash to the prefix data hash
while (my ($key, $value) = each %returned_hash) {
$$${prefix}_data{$key} = $value;
}
# and table control fields
<tal:block tal:repeat="tablecontrol tablecontrols">$c->stash(${tablecontrol[0]}=>$c->get_${tablecontrol[0]}());
</tal:block>
$c->do_display($$${prefix}_data{'trt'});
$c->stash(
title => $title,
modul => $modul,
${prefix}_data => \%${prefix}_data
);
$c->render( template => "${lcPackageName}" );
}
# Post request with params - submit from the form
@@ -133,11 +116,11 @@ sub do_update {
my $modul = '';
#The most common ones - you might want to comment out any not used.
$cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
$adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
$ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
$hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
$ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my %${prefix}_data = ();
my $title = $c->l('${prefix}_${MenuDescription}');
@@ -168,14 +151,6 @@ sub do_update {
</tal:block>
if ($ret ne "ok"){
# ${prefix}_data{'trt'} = $thispanel;
# $c->stash(error => $c->l($ret));
# $c->stash(
# title => $title,
# modul => $modul,
# ${prefix}_data => \%${prefix}_data
# );
# $c->render( template => "${lcPackageName}" );
$c->do_display($thispanel);
} else {
#Do whatever is needed, including writing values to the DB
@@ -205,12 +180,8 @@ sub do_update {
} else {
$$${prefix}_data{'trt'} = '${NextPanel | "none"}';
}
$c->stash(
title => $title,
modul => $modul,
${prefix}_data => \%${prefix}_data
);
$c->render( template => "${lcPackageName}" );
$c->do_display($$${prefix}_data{'trt'});
}
}
@@ -230,11 +201,11 @@ sub do_display {
$c->app->log->info($c->log_req);
#The most common ones - you might want to comment out any not used.
$cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
$adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
$ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
$hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
$ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my %${prefix}_data = ();
my $title = $c->l('${prefix}_${MenuDescription}');
@@ -256,7 +227,7 @@ sub do_display {
# the value of trt will tell you which panel has returned
if (! $trt){
my $trt = $c->param('trt') || '${firstPanel}'; #Indicates where to go now
$trt = $c->param('trt') || '${firstPanel}'; #Indicates where to go now
}
# Now add in the params from the selected row from the table