package SrvMngr::Controller::Nfsshare; #---------------------------------------------------------------------- # heading : Network # description : NFS data share # navigation : 2000 400 # # name : nfsshare, method : get, url : /nfsshare, ctlact : nfsshare#main # name : nfsshared, method : post, url : /nfsshared, ctlact : nfsshare#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 $cdb = 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 %nfs_data = (); my $title = $c->l("nfs_NFS data share"); my $modul = ''; $nfs_data{trt} = 'TABLE'; #Load any DB entries into the _data area so as they are preset in the form # which DB my $db = $cdb; #Default to config $c->stash( title => $title, modul => $modul, nfs_data => \%nfs_data ); $c->render( template => "Nfsshare" ); } sub do_update { my $c = shift; $c->app->log->info($c->log_req); my %nfs_data = (); my $title = $c->l("nfs_NFS data share"); # 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') || 'TABLE' ; #hidden control on every form. my $ret = 'ok'; #Validate the parameters accordingly if ($trt eq 'PARAMS'){ #Validate form parameters for panel PARAMS # and set $ret = $c->l('Error message') if invalid' # otherwise set $ret to "ok" if ($ret ne "ok"){ $c->stash(error => $c->l($ret)) } else { #Do whatever is needed, including writing values to the DB my $db = $cdb; #Default to config } $c->stash( success => $c->l('ok message')) } if ($trt eq 'TABLE'){ #Validate form parameters for panel TABLE # and set $ret = $c->l('Error message') if invalid' # otherwise set $ret to "ok" if ($ret ne "ok"){ $c->stash(error => $c->l($ret)) } else { #Do whatever is needed, including writing values to the DB my $db = $cdb; #Default to config } $c->stash( success => $c->l('ok message')) } # set nfs_data{trt} = ; $c->stash( title => $title, nfs_data => \%nfs_data # Extra data in here - repeat for each stash data entry needed for panels ); $c->render("Nfsshare") } # get routines for the stash contents here. 1;