#
# Routines to be edited by the developer to provide validation for parameters
# and provison of the control data for table(s)
#
# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12  at 2024-05-06 08:40 
#

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");

# Validation routines - parameters for each panel

	sub validate_PARAMS {
		my $c = shift;
		my $prefix_data = shift; #Data hash as parameter
		my $ret = 'ok';
		return $ret;
	}

	sub validate_TABLE {
		my $c = shift;
		my $prefix_data = shift; #Data hash as parameter
		my $ret = 'ok';
		return $ret;
	}

	
# Get control data for tables(s)

	sub get_ibays {
		my $c = shift;
		my @ret = {};
		my @ibays = $adb->ibays();
		foreach my $i (@ibays){
			# Taken pretty well verbatim from /usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/nfsshare.pm
			# although the href is more specific to the SM2 structure.
			my $ibayname = $i->key();
			my $ibaydesc = $i->prop('Name');
			my $ibaynfs  = $i->prop('NfsStatus')||'disabled';
			my $modifiable = $i->prop('Modifiable') || 'yes';

			$ibaynfs = $c->l('ENABLED') if ($ibaynfs eq 'enabled');
			$ibaynfs = $c->l('DISABLED') if ($ibaynfs eq 'disabled');


			#my $params = $self->build_ibay_cgi_params($ibayname, $i->props());
			#my $scriptname = "nfsshareu";
			#my $href = "$scriptname?$params&action=modify&wherenext=";

			my $actionModify = ' ';
			if ($modifiable eq 'yes'){
				$actionModify .= "<a href='nfsshared?trt=PARAMS&Selected=$ibayname'><button class='sme-modify-button' title=".$c->l("MODIFY").">".$c->l("MODIFY")."</button></a>"."&nbsp"
			}

			my %hash = ('Name'=> $ibayname,
						'Description' => $ibaydesc,
						'Flag' => $ibaynfs,
						'Modify' => $actionModify
						);
			push(@ret,\%hash);
		}
		return \@ret
	}


# Return hash with values from row in which link clicked on table

	sub get_selected_PARAMS {
		my $c = shift;
		my $selected = shift; #Parameter is name of selected row.
		my $is_new_record = shift; #Indicates new record required (defaults)
		my %ret = {};
		return $ret;
	}

	sub get_selected_TABLE {
		my $c = shift;
		my $selected = shift; #Parameter is name of selected row.
		my $is_new_record = shift; #Indicates new record required (defaults)
		my %ret = {};
		return $ret;
	}


#after sucessful modify or create or whatever and submit then perfom (if the params validate)

	sub perform_PARAMS {
		my $c = shift;
		my $prefix_data = shift; #Data hash as parameter
		my $ret = 'ok';
		return $ret;
	}

	sub perform_TABLE {
		my $c = shift;
		my $prefix_data = shift; #Data hash as parameter
		my $ret = 'ok';
		return $ret;
	}


sub create_link{
	# WIP
	my ($c,$route, $panel, $index) = shift;
	my $link = "$route?trt=$panel&Selected=$index";
	return $link;
}

1;