Finally got Table column names in comment for table control custom procedure
This commit is contained in:
parent
a52983cc13
commit
c00230a998
@ -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)
|
# and provison of the control data for table(s)
|
||||||
#
|
#
|
||||||
use esmith::util;
|
use esmith::util;
|
||||||
@ -12,7 +12,9 @@ use esmith::AccountsDB;
|
|||||||
use esmith::NetworksDB;
|
use esmith::NetworksDB;
|
||||||
use esmith::DomainsDB;
|
use esmith::DomainsDB;
|
||||||
|
|
||||||
#use Net::SSLeay;
|
use constant FALSE => 0;
|
||||||
|
use constant TRUE => 1;
|
||||||
|
|
||||||
|
|
||||||
#The most common ones
|
#The most common ones
|
||||||
our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
|
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 {
|
sub validate_LIST {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub validate_PARAMS {
|
sub validate_PARAMS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub validate_CHECKALLDOMAINS {
|
sub validate_CHECKALLDOMAINS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub validate_CHECKALLENABLEDDOMAINS {
|
sub validate_CHECKALLENABLEDDOMAINS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
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
|
# Return a hash with the fields required which will be loaded into the shared data
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my %ret = (
|
my %ret = (
|
||||||
@ -140,7 +218,6 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Get control data for table(s)
|
# Get control data for table(s)
|
||||||
|
|
||||||
sub get_DomainList {
|
sub get_DomainList {
|
||||||
@ -237,7 +314,7 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub get_selected_CHECKONEDDOMAINS {
|
sub get_selected_CHECKONEDOMAIN {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $selected = shift; #Parameter is name of selected row.
|
my $selected = shift; #Parameter is name of selected row.
|
||||||
my $is_new_record = shift; #Indicates new record required (defaults)
|
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 {
|
sub perform_LIST {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_PARAMS {
|
sub perform_PARAMS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_CHECKALLDOMAINS {
|
sub perform_CHECKALLDOMAINS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_CHECKALLENABLEDDOMAINS {
|
sub perform_CHECKALLENABLEDDOMAINS {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_CHECKONEDDOMAINS {
|
sub perform_CHECKONEDOMAIN {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
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;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub create_link{
|
sub create_link{
|
||||||
# WIP
|
# WIP
|
||||||
my ($c,$route, $panel, $index) = @_;
|
my ($c,$route, $panel, $index) = shift;
|
||||||
my $link = "$route?trt=$panel&Selected=$index";
|
my $link = "$route?trt=$panel&Selected=$index";
|
||||||
return $link;
|
return $link;
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
%#
|
%#
|
||||||
<div id="Letsencrypt-LIST" class="partial Letsencrypt-LIST">
|
<div id="Letsencrypt-LIST" class="partial Letsencrypt-LIST">
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
SelectInput();
|
SelectInput();
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
% if ($config->{debug} == 1) {
|
% if ($config->{debug} == 1) {
|
||||||
<pre>
|
<pre>
|
||||||
%= dumper $lets_data
|
%= dumper $lets_data
|
||||||
</pre>
|
</pre>
|
||||||
% }
|
% }
|
||||||
% my $btn = l('lets_APPLY');
|
% my $btn = l('lets_APPLY');
|
||||||
%= form_for "letsencryptd" => (method => 'GET') => begin
|
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||||
|
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
|
||||||
%= hidden_field 'trt' => $lets_data->{trt}
|
%= hidden_field 'trt' => $lets_data->{trt}
|
||||||
%# Inputs etc in here.
|
%# Inputs etc in here.
|
||||||
|
|
||||||
<div class="inline-buttons">
|
%= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=>'link link2'
|
||||||
%= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=>'link link2'
|
|
||||||
<a href="letsencryptd?trt=PARAMS" class=link link2><%= l('lets_CONFIG') %></a>
|
|
||||||
%= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=>'link link3'
|
|
||||||
%= link_to l('lets_CHECK_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=>'link link4'
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 class='subh2'><%=l('lets_IPs_for_this_Server')%></h2>
|
%= 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'
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class='subh2'><%=l('lets_For_this_Server:')%></h2>
|
||||||
|
|
||||||
<p><span class=label>
|
<p><span class=label>
|
||||||
%=l('lets_Internal_IP')
|
%=l('lets_Internal_IP')
|
||||||
@ -50,7 +50,7 @@
|
|||||||
%= text_field 'InternetIP', size => '50', class => 'textinput InternetIP' , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
%= text_field 'InternetIP', size => '50', class => 'textinput InternetIP' , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
||||||
<br></span></p>
|
<br></span></p>
|
||||||
|
|
||||||
<h2 class='subh3'><%=l('lets_Current_certificate_details')%></h2>
|
<h2 class='subh3'><%=l('lets_Current_certificate_details:')%></h2>
|
||||||
|
|
||||||
<p><span class=label>
|
<p><span class=label>
|
||||||
%=l('lets_Issuer')
|
%=l('lets_Issuer')
|
||||||
@ -73,7 +73,7 @@
|
|||||||
%= text_field 'NotBefore', size => '50', class => 'textinput NotBefore' , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
|
%= text_field 'NotBefore', size => '50', class => 'textinput NotBefore' , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
|
||||||
<br></span></p>
|
<br></span></p>
|
||||||
|
|
||||||
<h2 class='subh4'><%=l('lets_List_of_Domains_and_Hosts')%></h2>
|
<h2 class='subh4'><%=l('lets_List_of_Domains_and_Hosts:')%></h2>
|
||||||
|
|
||||||
<br /><table class="sme-border TableSort sme-table tabl1 ">
|
<br /><table class="sme-border TableSort sme-table tabl1 ">
|
||||||
<thead class='tabl1'>
|
<thead class='tabl1'>
|
||||||
@ -89,17 +89,17 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class='tabl1'>
|
<tbody class='tabl1'>
|
||||||
% my $control_data = $c->stash('DomainList');
|
% my $control_data = $self->stash('DomainList');
|
||||||
% foreach my $row (@$control_data) {
|
% foreach my $row (@$control_data) {
|
||||||
<tr class='table-row'>
|
<tr class='table-row'>
|
||||||
<td class='sme-border table-col table-col-Table1-Domain name / HOSTNAME'><%=$c->render_to_string(inline=>$row->{'Domain'})%></td>
|
<td class='sme-border table-col table-col-Table1-Domain name / HOSTNAME'><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-Brief description'><%=$c->render_to_string(inline=>$row->{'Description'})%></td>
|
<td class='sme-border table-col table-col-Table1-Brief description'><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-Content'><%=$c->render_to_string(inline=>$row->{'Content'})%></td>
|
<td class='sme-border table-col table-col-Table1-Content'><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-LABEL_NAMESERVERS'><%=$c->render_to_string(inline=>$row->{'Nameservers'})%></td>
|
<td class='sme-border table-col table-col-Table1-LABEL_NAMESERVERS'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-LABEL_POINT'><%=$c->render_to_string(inline=>$row->{'letsencryptMYIP'})%></td>
|
<td class='sme-border table-col table-col-Table1-LABEL_POINT'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-LABEL_LECERT'><%=$c->render_to_string(inline=>$row->{'letsencryptSSLcert'})%></td>
|
<td class='sme-border table-col table-col-Table1-LABEL_LECERT'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-IS_IN_CERT'><%=$c->render_to_string(inline=>$row->{'isincert'})%></td>
|
<td class='sme-border table-col table-col-Table1-IS_IN_CERT'><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%></td>
|
||||||
<td class='sme-border table-col table-col-Table1-CHECK'><%=$c->render_to_string(inline=>$row->{'Check'})%></td>
|
<td class='sme-border table-col table-col-Table1-CHECK'><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%></td>
|
||||||
</tr>
|
</tr>
|
||||||
%}
|
%}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -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_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_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_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain',
|
||||||
'lets_APPLY' => 'Apply',
|
'lets_Save' => 'Save',
|
||||||
'lets_LABEL_NAMESERVERS' => 'Label timeservers',
|
'lets_Back' => 'Back',
|
||||||
'lets_Configuration_for_Letsencrypt' => 'Configuration for Letsencrypt',
|
'lets_LABEL_LECERT' => 'Label secret',
|
||||||
'lets_CHECK_ALL_DOMAINS' => 'Check All Domains',
|
'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_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',
|
@ -12,6 +12,9 @@ use esmith::AccountsDB;
|
|||||||
use esmith::NetworksDB;
|
use esmith::NetworksDB;
|
||||||
use esmith::DomainsDB;
|
use esmith::DomainsDB;
|
||||||
|
|
||||||
|
use constant FALSE => 0;
|
||||||
|
use constant TRUE => 1;
|
||||||
|
|
||||||
|
|
||||||
#The most common ones
|
#The most common ones
|
||||||
our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
|
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} {
|
sub validate_${panel} {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
my $prefix_data = shift; #Data hash as parameter
|
||||||
my $ret = 'ok';
|
# Validation for each field
|
||||||
|
my $ret = "";
|
||||||
|
<tal:block tal:repeat="field fields[panel]">
|
||||||
|
if (! TRUE) #validate $c->param('${field}')
|
||||||
|
{$ret .= 'Validation for ${field} failed';}
|
||||||
|
</tal:block>
|
||||||
|
if ($ret eq "") {$ret = 'ok';}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
</tal:block>
|
</tal:block>
|
||||||
@ -48,21 +57,24 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
|
|||||||
</tal:block>
|
</tal:block>
|
||||||
|
|
||||||
|
|
||||||
# Get control data for table(s)
|
Get control data for table(s)
|
||||||
<tal:block tal:repeat="tablecontrol tablecontrols">
|
<tal:block repeat="tablecontrol tablecontrols">
|
||||||
sub get_${tablecontrol} {
|
sub get_${tablecontrol[0]} {
|
||||||
# Return an array of hashes of the contents for each row and column for ${tablecontrol}
|
# 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"
|
# default is a single row of strings "col1header-1, col2header-1, col3Header-1 etc"
|
||||||
my $c = shift;
|
# Cols needed are:
|
||||||
my $control_data = $c->stash('${tablecontrol}');
|
# <tal:block repeat="col tablecontrol[1]['columns']">${col}<tal:condition condition="not: repeat['col'].end">,
|
||||||
my @ret = {};
|
# </tal:condition></tal:block>
|
||||||
# foreach my $colHead (@$control_data) {
|
my $c = shift;
|
||||||
# my ret{$colHead} = "$colhead-1";
|
my $control_data = $c->stash('${tablecontrol[0]}');
|
||||||
# };
|
my @ret = {};
|
||||||
return \@ret;
|
|
||||||
}
|
|
||||||
|
return \@ret;
|
||||||
|
}
|
||||||
</tal:block>
|
</tal:block>
|
||||||
|
|
||||||
|
|
||||||
# Return hash with values from row in which link clicked on table
|
# Return hash with values from row in which link clicked on table
|
||||||
<tal:block tal:repeat="panel panels">
|
<tal:block tal:repeat="panel panels">
|
||||||
sub get_selected_${panel} {
|
sub get_selected_${panel} {
|
||||||
@ -79,7 +91,12 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
|
|||||||
sub perform_${panel} {
|
sub perform_${panel} {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $prefix_data = shift; #Data hash as parameter
|
my $prefix_data = shift; #Data hash as parameter
|
||||||
my $ret = 'ok';
|
my $ret = "";
|
||||||
|
<tal:block tal:repeat="field fields[panel]">
|
||||||
|
if (! TRUE) #copy or perform with value: ${field} e.g. $c->setprop(dbentry,dbkey,$c->param('${field}')
|
||||||
|
{$ret .= 'Perform failed for ${field} failed';}
|
||||||
|
</tal:block>
|
||||||
|
if ($ret eq "") {$ret = 'ok';}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
</tal:block>
|
</tal:block>
|
||||||
|
@ -259,6 +259,16 @@
|
|||||||
]]>
|
]]>
|
||||||
</Back>
|
</Back>
|
||||||
|
|
||||||
|
<Group><![CDATA[
|
||||||
|
<div ${Value}>
|
||||||
|
]]>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Endgroup><![CDATA[
|
||||||
|
<div></div>
|
||||||
|
]]>
|
||||||
|
</Endgroup>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
{
|
{
|
||||||
'Name': 'List',
|
'Name': 'List',
|
||||||
'route': 'LIST',
|
'route': 'LIST',
|
||||||
|
'Group': 'class=inline-buttons',
|
||||||
'Link2': {
|
'Link2': {
|
||||||
'Type': 'Link',
|
'Type': 'Link',
|
||||||
'href': 'letsencryptd?trt=PARAMS',
|
'href': 'letsencryptd?trt=PARAMS',
|
||||||
@ -28,7 +29,8 @@
|
|||||||
'href': 'letsencryptd?trt=CHECKENABLEDDOMAINS',
|
'href': 'letsencryptd?trt=CHECKENABLEDDOMAINS',
|
||||||
'title': 'CHECK_ENABLED_DOMAINS'
|
'title': 'CHECK_ENABLED_DOMAINS'
|
||||||
},
|
},
|
||||||
SubHeader2: 'IPs for this Server',
|
'Endgroup': '',
|
||||||
|
SubHeader2: 'For this Server',
|
||||||
Input4: {
|
Input4: {
|
||||||
Name: 'InternalIP',
|
Name: 'InternalIP',
|
||||||
Type: 'ReadonlyText',
|
Type: 'ReadonlyText',
|
||||||
|
41
sm2gen.py
41
sm2gen.py
@ -29,7 +29,7 @@ ini_file_path = os.path.expanduser("~/.smegit/conf")
|
|||||||
OPENAI_API_KEY = ""
|
OPENAI_API_KEY = ""
|
||||||
|
|
||||||
# Configure the basic logging system
|
# 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
|
# Create a logger
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -295,6 +295,19 @@ def get_db_fields():
|
|||||||
def get_table_control_data():
|
def get_table_control_data():
|
||||||
return find_values_with_key(json5_html_list, "TableControl")
|
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):
|
def format_text(text):
|
||||||
#
|
#
|
||||||
@ -558,7 +571,7 @@ if __name__ == "__main__":
|
|||||||
json5_html_list = json5_dict["html"]
|
json5_html_list = json5_dict["html"]
|
||||||
|
|
||||||
# Identify message
|
# Identify message
|
||||||
logger.info(f"\nGenerating mojo panels for {hl('PackageName')}")
|
logger.info(f"Generating mojo panels for {hl('PackageName')}")
|
||||||
logger.info("-----------------------------------")
|
logger.info("-----------------------------------")
|
||||||
|
|
||||||
# Routes for each panel
|
# Routes for each panel
|
||||||
@ -586,17 +599,17 @@ if __name__ == "__main__":
|
|||||||
partial_files.append(check_file_version(
|
partial_files.append(check_file_version(
|
||||||
target_directory_path + '_' + hl("prefix") + "_" + panel + ".html.ep",force_Files)
|
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)
|
lex_file = check_file_version(target_directory_path + hl("PackageName").lower() + "_en.lex",force_Files)
|
||||||
logger.info(lex_file)
|
logger.info(lex_file)
|
||||||
tablecontrols = (
|
tablecontrols = extract_tables(json5_dict)
|
||||||
get_table_control_data()
|
# arrays of hashes used to drive rows in tables
|
||||||
) # arrays of hashes used to drive rows in tables
|
|
||||||
|
|
||||||
# logger.info(strVersion,tablecontrols,routes)
|
|
||||||
|
|
||||||
# Generate controller file
|
# Generate controller file
|
||||||
dbfields = [] #extract_input_fields(json5_dict, 'db') # Params which correspond to Db fields - TBD
|
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:
|
try:
|
||||||
controller_template = PageTemplateFile(
|
controller_template = PageTemplateFile(
|
||||||
"Templates/controller.pm.tem", CHAMELEON_DEBUG="true"
|
"Templates/controller.pm.tem", CHAMELEON_DEBUG="true"
|
||||||
@ -604,7 +617,7 @@ if __name__ == "__main__":
|
|||||||
try:
|
try:
|
||||||
controller_perl = controller_template.render(
|
controller_perl = controller_template.render(
|
||||||
version=strVersion,
|
version=strVersion,
|
||||||
tablecontrols=tablecontrols,
|
tablecontrols=tablecontrols.items(),
|
||||||
dbfields=dbfields,
|
dbfields=dbfields,
|
||||||
**json5_dict,
|
**json5_dict,
|
||||||
panels=routes,
|
panels=routes,
|
||||||
@ -627,7 +640,11 @@ if __name__ == "__main__":
|
|||||||
#quit(0)
|
#quit(0)
|
||||||
try:
|
try:
|
||||||
custom_controller_perl = custom_controller_template.render(
|
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
|
# 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:
|
with open(custom_controller_file, "w") as file:
|
||||||
@ -726,7 +743,7 @@ if __name__ == "__main__":
|
|||||||
class_name = html_Type.lower()[:4]+type_serial
|
class_name = html_Type.lower()[:4]+type_serial
|
||||||
acc_css_entries += f".{class_name} {{}}\n"
|
acc_css_entries += f".{class_name} {{}}\n"
|
||||||
if not type_serial == "":
|
if not type_serial == "":
|
||||||
print(html_control,html_Type,type_serial)
|
logger.debug(f"{html_control},{html_Type},{type_serial}")
|
||||||
try:
|
try:
|
||||||
simple_control_template = PageTemplate(html_controls[html_Type])
|
simple_control_template = PageTemplate(html_controls[html_Type])
|
||||||
try:
|
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)
|
# Create the css file (the header, followed by a dumy entry for each class created/used above)
|
||||||
with open(css_file, "w") as file:
|
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(f".{hl('PackageName')}-panel {{}}\n")
|
||||||
file.write(acc_css_entries);
|
file.write(acc_css_entries);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user