diff --git a/Targets/Letsencrypt/Letsencrypt-Custom.pm b/Targets/Letsencrypt/Letsencrypt-Custom.pm
index fd25a08..c72e0c4 100644
--- a/Targets/Letsencrypt/Letsencrypt-Custom.pm
+++ b/Targets/Letsencrypt/Letsencrypt-Custom.pm
@@ -1,8 +1,8 @@
#
-# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-04 16:03:10
+# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-14 11:31:47
#
#
-# Routines to be edited by the developer to provide validation for parameters
+# Routines to be edited by the developer to provide content and validation for parameters
# and provison of the control data for table(s)
#
use esmith::util;
@@ -12,7 +12,9 @@ use esmith::AccountsDB;
use esmith::NetworksDB;
use esmith::DomainsDB;
-#use Net::SSLeay;
+use constant FALSE => 0;
+use constant TRUE => 1;
+
#The most common ones
our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
@@ -26,28 +28,104 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
sub validate_LIST {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('InternalIP')
+ {$ret .= 'Validation for InternalIP failed';}
+
+ if (! TRUE) #validate $c->param('ExternalIP')
+ {$ret .= 'Validation for ExternalIP failed';}
+
+ if (! TRUE) #validate $c->param('InternetIP')
+ {$ret .= 'Validation for InternetIP failed';}
+
+ if (! TRUE) #validate $c->param('Issuer')
+ {$ret .= 'Validation for Issuer failed';}
+
+ if (! TRUE) #validate $c->param('Expiry')
+ {$ret .= 'Validation for Expiry failed';}
+
+ if (! TRUE) #validate $c->param('NotBefore')
+ {$ret .= 'Validation for NotBefore failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub validate_PARAMS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('status')
+ {$ret .= 'Validation for status failed';}
+
+ if (! TRUE) #validate $c->param('hookScript')
+ {$ret .= 'Validation for hookScript failed';}
+
+ if (! TRUE) #validate $c->param('hostOverride')
+ {$ret .= 'Validation for hostOverride failed';}
+
+ if (! TRUE) #validate $c->param('ACCEPT_TERMS')
+ {$ret .= 'Validation for ACCEPT_TERMS failed';}
+
+ if (! TRUE) #validate $c->param('API')
+ {$ret .= 'Validation for API failed';}
+
+ if (! TRUE) #validate $c->param('keysize')
+ {$ret .= 'Validation for keysize failed';}
+
+ if (! TRUE) #validate $c->param('configure')
+ {$ret .= 'Validation for configure failed';}
+
+ if (! TRUE) #validate $c->param('Email')
+ {$ret .= 'Validation for Email failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub validate_CHECKALLDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('AllDomainsCheck')
+ {$ret .= 'Validation for AllDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub validate_CHECKALLENABLEDDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('EnabledDomainsCheck')
+ {$ret .= 'Validation for EnabledDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
+ return $ret;
+ }
+
+ sub validate_CHECKONEDOMAIN {
+ my $c = shift;
+ my $prefix_data = shift; #Data hash as parameter
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('OneDomainToCheck')
+ {$ret .= 'Validation for OneDomainToCheck failed';}
+
+ if (! TRUE) #validate $c->param('OneDomainsCheck')
+ {$ret .= 'Validation for OneDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
@@ -122,7 +200,7 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
}
- sub get_data_for_panel_CHECKONEDDOMAINS {
+ sub get_data_for_panel_CHECKONEDOMAIN {
# Return a hash with the fields required which will be loaded into the shared data
my $c = shift;
my %ret = (
@@ -139,7 +217,6 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
}
-
# Get control data for table(s)
@@ -237,7 +314,7 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
return $ret;
}
- sub get_selected_CHECKONEDDOMAINS {
+ sub get_selected_CHECKONEDOMAIN {
my $c = shift;
my $selected = shift; #Parameter is name of selected row.
my $is_new_record = shift; #Indicates new record required (defaults)
@@ -251,42 +328,106 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
sub perform_LIST {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: InternalIP e.g. $c->setprop(dbentry,dbkey,$c->param('InternalIP')
+ {$ret .= 'Perform failed for InternalIP failed';}
+
+ if (! TRUE) #copy or perform with value: ExternalIP e.g. $c->setprop(dbentry,dbkey,$c->param('ExternalIP')
+ {$ret .= 'Perform failed for ExternalIP failed';}
+
+ if (! TRUE) #copy or perform with value: InternetIP e.g. $c->setprop(dbentry,dbkey,$c->param('InternetIP')
+ {$ret .= 'Perform failed for InternetIP failed';}
+
+ if (! TRUE) #copy or perform with value: Issuer e.g. $c->setprop(dbentry,dbkey,$c->param('Issuer')
+ {$ret .= 'Perform failed for Issuer failed';}
+
+ if (! TRUE) #copy or perform with value: Expiry e.g. $c->setprop(dbentry,dbkey,$c->param('Expiry')
+ {$ret .= 'Perform failed for Expiry failed';}
+
+ if (! TRUE) #copy or perform with value: NotBefore e.g. $c->setprop(dbentry,dbkey,$c->param('NotBefore')
+ {$ret .= 'Perform failed for NotBefore failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub perform_PARAMS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: status e.g. $c->setprop(dbentry,dbkey,$c->param('status')
+ {$ret .= 'Perform failed for status failed';}
+
+ if (! TRUE) #copy or perform with value: hookScript e.g. $c->setprop(dbentry,dbkey,$c->param('hookScript')
+ {$ret .= 'Perform failed for hookScript failed';}
+
+ if (! TRUE) #copy or perform with value: hostOverride e.g. $c->setprop(dbentry,dbkey,$c->param('hostOverride')
+ {$ret .= 'Perform failed for hostOverride failed';}
+
+ if (! TRUE) #copy or perform with value: ACCEPT_TERMS e.g. $c->setprop(dbentry,dbkey,$c->param('ACCEPT_TERMS')
+ {$ret .= 'Perform failed for ACCEPT_TERMS failed';}
+
+ if (! TRUE) #copy or perform with value: API e.g. $c->setprop(dbentry,dbkey,$c->param('API')
+ {$ret .= 'Perform failed for API failed';}
+
+ if (! TRUE) #copy or perform with value: keysize e.g. $c->setprop(dbentry,dbkey,$c->param('keysize')
+ {$ret .= 'Perform failed for keysize failed';}
+
+ if (! TRUE) #copy or perform with value: configure e.g. $c->setprop(dbentry,dbkey,$c->param('configure')
+ {$ret .= 'Perform failed for configure failed';}
+
+ if (! TRUE) #copy or perform with value: Email e.g. $c->setprop(dbentry,dbkey,$c->param('Email')
+ {$ret .= 'Perform failed for Email failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub perform_CHECKALLDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: AllDomainsCheck e.g. $c->setprop(dbentry,dbkey,$c->param('AllDomainsCheck')
+ {$ret .= 'Perform failed for AllDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub perform_CHECKALLENABLEDDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: EnabledDomainsCheck e.g. $c->setprop(dbentry,dbkey,$c->param('EnabledDomainsCheck')
+ {$ret .= 'Perform failed for EnabledDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
- sub perform_CHECKONEDDOMAINS {
+ sub perform_CHECKONEDOMAIN {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: OneDomainToCheck e.g. $c->setprop(dbentry,dbkey,$c->param('OneDomainToCheck')
+ {$ret .= 'Perform failed for OneDomainToCheck failed';}
+
+ if (! TRUE) #copy or perform with value: OneDomainsCheck e.g. $c->setprop(dbentry,dbkey,$c->param('OneDomainsCheck')
+ {$ret .= 'Perform failed for OneDomainsCheck failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
sub create_link{
# WIP
- my ($c,$route, $panel, $index) = @_;
+ my ($c,$route, $panel, $index) = shift;
my $link = "$route?trt=$panel&Selected=$index";
return $link;
}
diff --git a/Targets/Letsencrypt/_lets_LIST.html.ep b/Targets/Letsencrypt/_lets_LIST.html.ep
index b5a7205..5f3853d 100644
--- a/Targets/Letsencrypt/_lets_LIST.html.ep
+++ b/Targets/Letsencrypt/_lets_LIST.html.ep
@@ -1,33 +1,33 @@
%#
-%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-04 16:03:10
+%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-14 12:01:28
%#
-
+
% if ($config->{debug} == 1) {
%= dumper $lets_data
% }
- % my $btn = l('lets_APPLY');
- %= form_for "letsencryptd" => (method => 'GET') => begin
-
- % param 'trt' => $lets_data->{trt} unless param 'trt';
+ % my $btn = l('lets_APPLY');
+ %= form_for "letsencryptu" => (method => 'POST') => begin
+ % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
-
+ %= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=>'link link2'
-
<%=l('lets_IPs_for_this_Server')%>
+ %= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=>'link link3'
+
+
+ %= link_to l('lets_CHECK_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKENABLEDDOMAINS' , class=>'link link4'
+
+
+
<%=l('lets_For_this_Server:')%>
%=l('lets_Internal_IP')
@@ -50,7 +50,7 @@
%= text_field 'InternetIP', size => '50', class => 'textinput InternetIP' , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
-
<%=l('lets_Current_certificate_details')%>
+
<%=l('lets_Current_certificate_details:')%>
%=l('lets_Issuer')
@@ -73,7 +73,7 @@
%= text_field 'NotBefore', size => '50', class => 'textinput NotBefore' , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
-
<%=l('lets_List_of_Domains_and_Hosts')%>
+
<%=l('lets_List_of_Domains_and_Hosts:')%>
@@ -89,17 +89,17 @@
- % my $control_data = $c->stash('DomainList');
+ % my $control_data = $self->stash('DomainList');
% foreach my $row (@$control_data) {
- <%=$c->render_to_string(inline=>$row->{'Domain'})%> |
- <%=$c->render_to_string(inline=>$row->{'Description'})%> |
- <%=$c->render_to_string(inline=>$row->{'Content'})%> |
- <%=$c->render_to_string(inline=>$row->{'Nameservers'})%> |
- <%=$c->render_to_string(inline=>$row->{'letsencryptMYIP'})%> |
- <%=$c->render_to_string(inline=>$row->{'letsencryptSSLcert'})%> |
- <%=$c->render_to_string(inline=>$row->{'isincert'})%> |
- <%=$c->render_to_string(inline=>$row->{'Check'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-Content'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%> |
+ <%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%> |
%}
diff --git a/Targets/Letsencrypt/letsencrypt_en.lex b/Targets/Letsencrypt/letsencrypt_en.lex
index b671055..6ea432f 100644
--- a/Targets/Letsencrypt/letsencrypt_en.lex
+++ b/Targets/Letsencrypt/letsencrypt_en.lex
@@ -1,47 +1,52 @@
#
-# Generated by SM2Gen version: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-05 13:20:33
+# Generated by SM2Gen version: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-14 12:01:28
#
-'lets_Issuer' => 'Issuer',
-'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful',
-'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
-'lets_Letsencrypt_certificate' => 'Letsencrypt certificate',
-'lets_Brief_description' => 'Brief description',
-'lets_Content' => 'Content',
-'lets_Check_all_enabled_domains' => 'Check all enabled domains',
-'lets_Back' => 'Back',
-'lets_IPs_for_this_Server' => 'is for this Server',
-'lets_Save' => 'Save',
-'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings',
-'lets_External_Interface_IP' => 'External Interface IP',
-'lets_All_domains_check_result' => 'All domains check result',
-'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain which is enabled',
-'lets_Not_Before' => 'Not Before',
-'lets_CONFIG' => 'Config',
-'lets_IS_IN_CERT' => 'Is In cart',
'lets_Check_all_domains' => 'Check all domains',
-'lets_ACCEPT_TERMS_STATUS' => 'Accept Terms Status',
-'lets_HOSTOVERRIDE_STATUS' => 'Hostoverride Status',
-'lets_CONFIG_LETSENCRYPT' => 'confirm Letsencrypt',
-'lets_Internet_IP' => 'Internet IP',
-'lets_LABEL_POINT' => 'Label Point',
-'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'CHECKALLDOMAINS panel action was successful',
-'lets_List_of_Domains_and_Hosts' => 'List of Domains and Hosts',
-'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
-'lets_Expiry' => 'Expiry',
'lets_API_STATUS' => 'ape Status',
-'lets_Internal_IP' => 'Internal IP',
-'lets_SERVICE_STATUS' => 'Service Status',
-'lets_LABEL_LECERT' => 'Label secret',
-'lets_LIST_panel_action_was_successful' => 'LIST panel action was successful',
-'lets_HOOKSCRIPT_STATUS' => 'Hookscript Status',
-'lets_CONFIGUREMODE_STATUS' => 'Configuremode Status',
-'lets_CHECK' => 'Check',
-'lets_KEYSIZE_STATUS' => 'Keysize Status',
-'lets_Current_certificate_details' => 'Current certificate details',
-'lets_CHECK_ENABLED_DOMAINS' => 'Check Enabled Domains',
'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain',
-'lets_APPLY' => 'Apply',
-'lets_LABEL_NAMESERVERS' => 'Label timeservers',
-'lets_Configuration_for_Letsencrypt' => 'Configuration for Letsencrypt',
-'lets_CHECK_ALL_DOMAINS' => 'Check All Domains',
+'lets_Save' => 'Save',
+'lets_Back' => 'Back',
+'lets_LABEL_LECERT' => 'Label secret',
+'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for a specific domain',
+'lets_Content' => 'Content',
'lets_Enabled_domains_check_result' => 'Enabled domains check result',
+'lets_For_this_Server:' => 'For this server',
+'lets_CHECK_ENABLED_DOMAINS' => 'Check Enabled Domains',
+'lets_EMAIL' => 'Email',
+'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'CHECKALLDOMAINS panel action was successful',
+'lets_CONFIG' => 'Config',
+'lets_CHECKONEDOMAIN_panel_action_was_successful' => 'CHECKONEDOMAIN panel action was successful',
+'lets_Domains_name' => 'Domains name',
+'lets_Expiry' => 'Expiry',
+'lets_Internet_IP' => 'Internet IP',
+'lets_List_of_Domains_and_Hosts:' => 'List of Domains and hosts',
+'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful',
+'lets_One_domain_check_result' => 'One domain check result',
+'lets_Check_all_enabled_domains' => 'Check all enabled domains',
+'lets_APPLY' => 'Apply',
+'lets_All_domains_check_result' => 'All domains check result',
+'lets_KEYSIZE_STATUS' => 'Keysize Status',
+'lets_SERVICE_STATUS' => 'Service Status',
+'lets_CHECK_ALL_DOMAINS' => 'Check All Domains',
+'lets_Internal_IP' => 'Internal IP',
+'lets_LABEL_NAMESERVERS' => 'Label timeservers',
+'lets_CHECK' => 'Check',
+'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain which is enabled',
+'lets_CONFIGUREMODE_STATUS' => 'Configuremode Status',
+'lets_External_Interface_IP' => 'External Interface IP',
+'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings',
+'lets_Not_Before' => 'Not Before',
+'lets_Current_certificate_details:' => 'Current certificate details',
+'lets_Letsencrypt_certificate' => 'Letsencrypt certificate',
+'lets_HOOKSCRIPT_STATUS' => 'Hookscript Status',
+'lets_CONFIG_LETSENCRYPT' => 'confirm Letsencrypt',
+'lets_HOSTOVERRIDE_STATUS' => 'Hostoverride Status',
+'lets_Brief_description' => 'Brief description',
+'lets_IS_IN_CERT' => 'Is In cart',
+'lets_LIST_panel_action_was_successful' => 'LIST panel action was successful',
+'lets_LABEL_POINT' => 'Label Point',
+'lets_ACCEPT_TERMS_STATUS' => 'Accept Terms Status',
+'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
+'lets_Check_just_one_domain' => 'Check just one domain',
+'lets_Issuer' => 'Issuer',
+'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
\ No newline at end of file
diff --git a/Templates/custom.pm.tem b/Templates/custom.pm.tem
index 895275a..e34ccdd 100644
--- a/Templates/custom.pm.tem
+++ b/Templates/custom.pm.tem
@@ -12,6 +12,9 @@ use esmith::AccountsDB;
use esmith::NetworksDB;
use esmith::DomainsDB;
+use constant FALSE => 0;
+use constant TRUE => 1;
+
#The most common ones
our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
@@ -25,7 +28,13 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
sub validate_${panel} {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ # Validation for each field
+ my $ret = "";
+
+ if (! TRUE) #validate $c->param('${field}')
+ {$ret .= 'Validation for ${field} failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
@@ -48,21 +57,24 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
-# Get control data for table(s)
-
- sub get_${tablecontrol} {
- # Return an array of hashes of the contents for each row and column for ${tablecontrol}
- # default is a single row of strings "col1header-1, col2header-1, col3Header-1 etc"
- my $c = shift;
- my $control_data = $c->stash('${tablecontrol}');
- my @ret = {};
-# foreach my $colHead (@$control_data) {
-# my ret{$colHead} = "$colhead-1";
-# };
- return \@ret;
- }
+ Get control data for table(s)
+
+sub get_${tablecontrol[0]} {
+ # Return an array of hashes of the contents for each row and column for ${tablecontrol[0]}
+ # default is a single row of strings "col1header-1, col2header-1, col3Header-1 etc"
+ # Cols needed are:
+ # ${col},
+ #
+ my $c = shift;
+ my $control_data = $c->stash('${tablecontrol[0]}');
+ my @ret = {};
+
+
+ return \@ret;
+}
+
# Return hash with values from row in which link clicked on table
sub get_selected_${panel} {
@@ -79,7 +91,12 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
sub perform_${panel} {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
- my $ret = 'ok';
+ my $ret = "";
+
+ if (! TRUE) #copy or perform with value: ${field} e.g. $c->setprop(dbentry,dbkey,$c->param('${field}')
+ {$ret .= 'Perform failed for ${field} failed';}
+
+ if ($ret eq "") {$ret = 'ok';}
return $ret;
}
diff --git a/Templates/html_controls.html.ep.xml b/Templates/html_controls.html.ep.xml
index 0810039..ed1d388 100644
--- a/Templates/html_controls.html.ep.xml
+++ b/Templates/html_controls.html.ep.xml
@@ -258,6 +258,16 @@
]]>
+
+
+ ]]>
+
+
+
+ ]]>
+
diff --git a/json5/Letsencrypt.json5 b/json5/Letsencrypt.json5
index 23b7f5c..0b28277 100644
--- a/json5/Letsencrypt.json5
+++ b/json5/Letsencrypt.json5
@@ -13,6 +13,7 @@
{
'Name': 'List',
'route': 'LIST',
+ 'Group': 'class=inline-buttons',
'Link2': {
'Type': 'Link',
'href': 'letsencryptd?trt=PARAMS',
@@ -28,7 +29,8 @@
'href': 'letsencryptd?trt=CHECKENABLEDDOMAINS',
'title': 'CHECK_ENABLED_DOMAINS'
},
- SubHeader2: 'IPs for this Server',
+ 'Endgroup': '',
+ SubHeader2: 'For this Server',
Input4: {
Name: 'InternalIP',
Type: 'ReadonlyText',
diff --git a/sm2gen.py b/sm2gen.py
index 8b47b7c..3a9751a 100644
--- a/sm2gen.py
+++ b/sm2gen.py
@@ -29,7 +29,7 @@ ini_file_path = os.path.expanduser("~/.smegit/conf")
OPENAI_API_KEY = ""
# Configure the basic logging system
-logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
# Create a logger
logger = logging.getLogger(__name__)
@@ -294,7 +294,20 @@ def get_db_fields():
def get_table_control_data():
return find_values_with_key(json5_html_list, "TableControl")
-
+
+def extract_tables(json_data):
+ result = {}
+ # Iterate over the 'html' list in the JSON data
+ for item in json_data.get('html', []):
+ if isinstance(item, dict):
+ for key, value in item.items():
+ if isinstance(value, dict):
+ if value.get('Type') == 'Table' and 'TableControl' in value:
+ table_control = value['TableControl']
+ columns = value.get('Columns', [])
+ result[table_control] = {'columns': columns}
+
+ return result
def format_text(text):
#
@@ -558,7 +571,7 @@ if __name__ == "__main__":
json5_html_list = json5_dict["html"]
# Identify message
- logger.info(f"\nGenerating mojo panels for {hl('PackageName')}")
+ logger.info(f"Generating mojo panels for {hl('PackageName')}")
logger.info("-----------------------------------")
# Routes for each panel
@@ -586,17 +599,17 @@ if __name__ == "__main__":
partial_files.append(check_file_version(
target_directory_path + '_' + hl("prefix") + "_" + panel + ".html.ep",force_Files)
)
- logger.info(f"Partial files to be created:{partial_files}")
+ logger.debug(f"Partial files to be created:{partial_files}")
lex_file = check_file_version(target_directory_path + hl("PackageName").lower() + "_en.lex",force_Files)
logger.info(lex_file)
- tablecontrols = (
- get_table_control_data()
- ) # arrays of hashes used to drive rows in tables
-
- # logger.info(strVersion,tablecontrols,routes)
-
+ tablecontrols = extract_tables(json5_dict)
+ # arrays of hashes used to drive rows in tables
+
# Generate controller file
dbfields = [] #extract_input_fields(json5_dict, 'db') # Params which correspond to Db fields - TBD
+ logger.debug(f"{tablecontrols}")
+ logger.debug(f"{tablecontrols.items()}")
+ #quit(1)
try:
controller_template = PageTemplateFile(
"Templates/controller.pm.tem", CHAMELEON_DEBUG="true"
@@ -604,7 +617,7 @@ if __name__ == "__main__":
try:
controller_perl = controller_template.render(
version=strVersion,
- tablecontrols=tablecontrols,
+ tablecontrols=tablecontrols.items(),
dbfields=dbfields,
**json5_dict,
panels=routes,
@@ -627,7 +640,11 @@ if __name__ == "__main__":
#quit(0)
try:
custom_controller_perl = custom_controller_template.render(
- version=strVersion, panels=routes, tablecontrols=tablecontrols, fields=fields, dbfields=dbfields
+ version=strVersion,
+ panels=routes,
+ tablecontrols=tablecontrols.items(),
+ fields=fields,
+ dbfields=dbfields
)
# We must be careful to not overwrite the custom file if the developer has already written to it - TBD
with open(custom_controller_file, "w") as file:
@@ -726,7 +743,7 @@ if __name__ == "__main__":
class_name = html_Type.lower()[:4]+type_serial
acc_css_entries += f".{class_name} {{}}\n"
if not type_serial == "":
- print(html_control,html_Type,type_serial)
+ logger.debug(f"{html_control},{html_Type},{type_serial}")
try:
simple_control_template = PageTemplate(html_controls[html_Type])
try:
@@ -764,7 +781,7 @@ if __name__ == "__main__":
# Create the css file (the header, followed by a dumy entry for each class created/used above)
with open(css_file, "w") as file:
- file.write(f"/*\n Generated by SM2Gen version: {strVersion}\n*/\n")
+ file.write(f"/*\nGenerated by SM2Gen version: {strVersion}\n*/\n")
file.write(f".{hl('PackageName')}-panel {{}}\n")
file.write(acc_css_entries);