Update generated files plus LIST partial with table column contents

This commit is contained in:
Brian Read 2024-11-05 11:54:07 +00:00
parent 4fdc86ecec
commit 26b98192e0
16 changed files with 95 additions and 681 deletions

View File

@ -1,6 +1,6 @@
package SrvMngr::Controller::Letsencrypt; package SrvMngr::Controller::Letsencrypt;
# #
# 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-05 05:44:57
# #
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# heading : Network # heading : Network

View File

@ -1,5 +1,5 @@
%# %#
%# 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-05 05:44:57
%# %#
<div id="Letsencrypt-CHECKALLDOMAINS" class="partial Letsencrypt-CHECKALLDOMAINS"> <div id="Letsencrypt-CHECKALLDOMAINS" class="partial Letsencrypt-CHECKALLDOMAINS">
<script> <script>

View File

@ -1,5 +1,5 @@
%# %#
%# 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-05 05:44:57
%# %#
<div id="Letsencrypt-CHECKALLENABLEDDOMAINS" class="partial Letsencrypt-CHECKALLENABLEDDOMAINS"> <div id="Letsencrypt-CHECKALLENABLEDDOMAINS" class="partial Letsencrypt-CHECKALLENABLEDDOMAINS">
<script> <script>

View File

@ -7,6 +7,10 @@
SelectInput(); SelectInput();
}; };
</script> </script>
<pre>
%= dumper $lets_data
%= dumper $c->stash('DomainList')
</pre>
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "Letsencryptd" => (method => 'POST') => begin %= form_for "Letsencryptd" => (method => 'POST') => begin
@ -85,17 +89,17 @@
</tr> </tr>
</thead> </thead>
<tbody class='tabl1'> <tbody class='tabl1'>
% my $control_data = $self->stash('DomainList'); % my $control_data = $c->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->{'Table1-Domain name / HOSTNAME'})%></td> <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-Brief description'><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%></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-Content'><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%></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-LABEL_NAMESERVERS'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%></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_POINT'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%></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_LECERT'><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%></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-IS_IN_CERT'><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%></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-CHECK'><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%></td> <td class='sme-border table-col table-col-Table1-CHECK'><%=$c->render_to_string(inline=>$row->{'Check'})%></td>
</tr> </tr>
%} %}
</tbody> </tbody>

View File

@ -1,5 +1,5 @@
%# %#
%# 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-05 05:44:57
%# %#
<div id="Letsencrypt-PARAMS" class="partial Letsencrypt-PARAMS"> <div id="Letsencrypt-PARAMS" class="partial Letsencrypt-PARAMS">
<script> <script>

View File

@ -1,9 +1,46 @@
/* /*
Generated by SM2Gen version: 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: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-05 05:44:57
*/ */
.Letsencrypt-panel {} .Letsencrypt-panel {}
.name {} .name {}
.rout {} .rout {}
.link2 {}
.link3 {}
.link4 {}
.subh2 {}
.read4 {}
.read5 {}
.read6 {}
.subh3 {}
.read1 {}
.read2 {}
.read3 {}
.subh4 {}
.tabl1 {}
thead .tabl1 {}
tbody .tabl1 {}
.name {}
.rout {}
.head {}
.subh {}
.para1 {}
.sele1 {}
.sele2 {}
.sele3 {}
.sele4 {}
.sele5 {}
.sele6 {}
.sele7 {}
.emai8 {}
.subm9 {}
.name {}
.rout {}
.head {}
.subh {}
.text1 {}
.subm2 {}
.name {}
.rout {}
.head {} .head {}
.subh {} .subh {}
.text1 {} .text1 {}

View File

@ -1,5 +1,5 @@
%# %#
%# 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-05 05:44:57
%# %#
% layout 'default', title => "Sme server 2 - Letsencrypt certificate", share_dir => './'; % layout 'default', title => "Sme server 2 - Letsencrypt certificate", share_dir => './';
%# css specific to this panel: %# css specific to this panel:

View File

@ -1,47 +1,47 @@
# #
# Generated by SM2Gen version: 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: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-11-05 05:44:57
# #
'lets_CONFIGUREMODE_STATUS' => 'CONFIGUREMODE STATUS', 'lets_Enabled_domains_check_result' => 'Enabled domains check result',
'lets_LIST_panel_action_was_successful' => 'LIST panel action was successful',
'lets_IS_IN_CERT' => 'IS IN CERT',
'lets_IPs_for_this_Server' => 'Ips for this Server',
'lets_LABEL_LECERT' => 'LABEL LECERT',
'lets_LABEL_NAMESERVERS' => 'LABEL NAMESERVERS',
'lets_ACCEPT_TERMS_STATUS' => 'ACCEPT TERMS STATUS',
'lets_HOOKSCRIPT_STATUS' => 'HOOKSCRIPT STATUS',
'lets_Check_all_enabled_domains' => 'Check all enabled domains',
'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain wihch is enabled',
'lets_LABEL_POINT' => 'LABEL POINT',
'lets_Issuer' => 'Issuer',
'lets_CHECK_ALL_DOMAINS' => 'CHECK ALL DOMAINS',
'lets_Internet_IP' => 'Internet IP',
'lets_CHECK_ENABLED_DOMAINS' => 'CHECK ENABLED DOMAINS', 'lets_CHECK_ENABLED_DOMAINS' => 'CHECK ENABLED DOMAINS',
'lets_API_STATUS' => 'API STATUS', 'lets_CHECK' => 'Check',
'lets_Not_Before' => 'Not Before',
'lets_CONFIG_LETSENCRYPT' => 'CONFIG LETSENCRYPT',
'lets_Configuration_for_Letsencrypt' => 'Configuration for Letsencrypt',
'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'CHECKALLDOMAINS panel action was successful',
'lets_Content' => 'Content',
'lets_KEYSIZE_STATUS' => 'KEYSIZE STATUS',
'lets_Back' => 'Back', 'lets_Back' => 'Back',
'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME', 'lets_Current_certificate_details' => 'Current certificate details',
'lets_Check_all_domains' => 'Check all domains', 'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
'lets_Internal_IP' => 'Internal IP', 'lets_CONFIG_LETSENCRYPT' => 'CONFIG LETSENCRYPT',
'lets_IS_IN_CERT' => 'IS IN CERT',
'lets_Internet_IP' => 'Internet IP',
'lets_Save' => 'Save', 'lets_Save' => 'Save',
'lets_External_Interface_IP' => 'External Interface IP', 'lets_CONFIG' => 'Config',
'lets_Expiry' => 'Expiry', 'lets_Expiry' => 'Expiry',
'lets_Brief_description' => 'Brief description',
'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_HOSTOVERRIDE_STATUS' => 'HOSTOVERRIDE STATUS', 'lets_HOSTOVERRIDE_STATUS' => 'HOSTOVERRIDE STATUS',
'lets_Enabled_domains_check_result' => 'Enabled domains check result', 'lets_Not_Before' => 'Not Before',
'lets_Letsencrypt_certificate' => 'Letsencrypt certificate', 'lets_External_Interface_IP' => 'External Interface IP',
'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful', 'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
'lets_List_of_Domains_and_Hosts' => 'List of Domains and Hosts', 'lets_Check_all_enabled_domains' => 'Check all enabled domains',
'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings:', 'lets_Loop_through_checking_the_letsencrypt' => 'Loop through checking the letsencrypt status for each configured domain wihch is enabled',
'lets_Current_certificate_details' => 'Current certificate details', 'lets_Check_all_domains' => 'Check all domains',
'lets_CONFIG' => 'Config', 'lets_LABEL_LECERT' => 'LABEL LECERT',
'lets_SERVICE_STATUS' => 'SERVICE STATUS', 'lets_Configuration_for_Letsencrypt' => 'Configuration for Letsencrypt',
'lets_APPLY' => 'Apply',
'lets_CHECK' => 'Check',
'lets_All_domains_check_result' => 'All domains check result', 'lets_All_domains_check_result' => 'All domains check result',
'lets_APPLY' => 'Apply',
'lets_SERVICE_STATUS' => 'SERVICE STATUS',
'lets_Content' => 'Content',
'lets_LABEL_NAMESERVERS' => 'LABEL NAMESERVERS',
'lets_ACCEPT_TERMS_STATUS' => 'ACCEPT TERMS STATUS',
'lets_Brief_description' => 'Brief description',
'lets_Internal_IP' => 'Internal IP',
'lets_HOOKSCRIPT_STATUS' => 'HOOKSCRIPT STATUS',
'lets_List_of_Domains_and_Hosts' => 'List of Domains and Hosts',
'lets_CONFIGUREMODE_STATUS' => 'CONFIGUREMODE STATUS',
'lets_CHECKALLDOMAINS_panel_action_was_successful' => 'CHECKALLDOMAINS panel action was successful',
'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful',
'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings:',
'lets_LIST_panel_action_was_successful' => 'LIST panel action was successful',
'lets_Issuer' => 'Issuer',
'lets_LABEL_POINT' => 'LABEL POINT',
'lets_KEYSIZE_STATUS' => 'KEYSIZE STATUS',
'lets_API_STATUS' => 'API STATUS',
'lets_IPs_for_this_Server' => 'Ips for this Server',
'lets_Letsencrypt_certificate' => 'Letsencrypt certificate',
'lets_CHECK_ALL_DOMAINS' => 'CHECK ALL DOMAINS',

View File

@ -1,129 +0,0 @@
%#
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-19 16:14:17
%#
<div id="letsencrypt-config-PARAMS" class="partial letsencrypt-config-PARAMS">
<script>
window.onload = function() {
SelectInput();
};
</script>
<h2>
%= l('_Hello_PARAMS');
</h2>
% my $btn = l('APPLY');
%= form_for "letsencrypt-configd" => (method => 'POST') => begin
% param 'trt' => $_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $_data->{trt}
%# Inputs etc in here.
<h1 class='head'><%=l('FORM_TITLE')%></h1>
<h2 class='subh'><%=l('Manage_letsencrypt-config_settings:')%></h2>
<p class='paragraph para1'>
%=l('CONFIG_LE')
</p>
<p class='paragraph para2'>
%=l('SERVICE_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @status_options = [{'Value' => 'disabled', 'Text' => 'Disabled'}, {'Value' => 'enabled', 'Text' => 'Enabled'}, {'Value' => 'test', 'Text' => 'TEST'}];
% param 'status' => $_data->{status} unless param 'status';
%= select_field 'status' => @status_options, class => 'input'
<br></span> </p>
<p class='paragraph para3'>
%=l('HOOKSCRIPT_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @hookScript_options = [{'Value' => 'disabled', 'Text' => 'Disabled'}, {'Value' => 'enabled', 'Text' => 'Enabled'}];
% param 'hookScript' => $_data->{hookScript} unless param 'hookScript';
%= select_field 'hookScript' => @hookScript_options, class => 'input'
<br></span> </p>
<p class='paragraph para4'>
%=l('HOSTOVERRIDE_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @hostOverride_options = [{'Value' => 'disabled', 'Text' => 'Disabled'}, {'Value' => 'yes', 'Text' => 'Yes'}];
% param 'hostOverride' => $_data->{hostOverride} unless param 'hostOverride';
%= select_field 'hostOverride' => @hostOverride_options, class => 'input'
<br></span> </p>
<p class='paragraph para5'>
%=l('ACCEPT_TERMS_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @ACCEPT_TERMS_options = [{'Value' => 'disabled', 'Text' => 'Disabled'}, {'Value' => 'yes', 'Text' => 'Yes'}];
% param 'ACCEPT_TERMS' => $_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS';
%= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => 'input'
<br></span> </p>
<p class='paragraph para6'>
%=l('API_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @API_options = [{'Value' => '2', 'Text' => '2'}];
% param 'API' => $_data->{API} unless param 'API';
%= select_field 'API' => @API_options, class => 'input'
<br></span> </p>
<p class='paragraph para7'>
%=l('KEYSIZE_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @keysize_options = [{'Value' => '2048', 'Text' => '2048'}, {'Value' => '3072', 'Text' => '3072'}, {'Value' => '4096', 'Text' => '4096'}];
% param 'keysize' => $_data->{keysize} unless param 'keysize';
%= select_field 'keysize' => @keysize_options, class => 'input'
<br></span> </p>
<p class='paragraph para8'>
%=l('CONFIGUREMODE_STATUS')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% my @configure_options = [{'Value' => 'all', 'Text' => 'ALL'}, {'Value' => 'domains', 'Text' => 'Domains'}, {'Value' => 'hosts', 'Text' => 'HOSTS'}, {'Value' => 'none', 'Text' => 'NONE'}];
% param 'configure' => $_data->{configure} unless param 'configure';
%= select_field 'configure' => @configure_options, class => 'input'
<br></span> </p>
<p class='paragraph para9'>
%=l('EMAIL')
</p>
<p><span class=label>
%=l('_')
</span><span class=data>
% param 'email' => $_data->{email} unless param 'email';
%= text_field 'email', size => '50', class => 'textinput email' , pattern=>'.*' , placeholder=>'email'
<br></span></p>
<span class='data'>
%= submit_button l('Save'), class => 'action subm9'
</span>
%# Probably finally by a submit.
%end
</div>

View File

@ -1,101 +0,0 @@
%#
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
%#
<div id="letsencrypt-config-PARAMS" class="partial letsencrypt-config-PARAMS">
<script>
window.onload = function() {
SelectInput();
};
</script>
<h2>
%= l('lets_Hello_PARAMS');
</h2>
% my $btn = l('lets_APPLY');
%= form_for "letsencrypt-configd" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<h1 class='head'><%=l('lets_FORM_TITLE')%></h1>
<h2 class='subh'><%=l('lets_Manage_letsencrypt-config_settings:')%></h2>
<p class='paragraph para1'>
%=l('lets_CONFIG_LE')
</p>
<p class='paragraph para2'>
%=l('lets_SERVICE_STATUS')
</p>
<p><span class=label>
%=l('lets_SERVICE_STATUS')
</span><span class=data>
% my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']];
% param 'status' => $lets_data->{status} unless param 'status';
%= select_field 'status' => @status_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_HOOKSCRIPT_STATUS')
</span><span class=data>
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
%= select_field 'hookScript' => @hookScript_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_HOSTOVERRIDE_STATUS')
</span><span class=data>
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
%= select_field 'hostOverride' => @hostOverride_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_ACCEPT_TERMS_STATUS')
</span><span class=data>
% my @ACCEPT_TERMS_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'ACCEPT_TERMS' => $lets_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS';
%= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_API_STATUS')
</span><span class=data>
% my @API_options = [['2' => '2']];
% param 'API' => $lets_data->{API} unless param 'API';
%= select_field 'API' => @API_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_KEYSIZE_STATUS')
</span><span class=data>
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
%= select_field 'keysize' => @keysize_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_CONFIGUREMODE_STATUS')
</span><span class=data>
% my @configure_options = [['ALL' => 'all'], ['Domains' => 'domains'], ['HOSTS' => 'hosts'], ['NONE' => 'none']];
% param 'configure' => $lets_data->{configure} unless param 'configure';
%= select_field 'configure' => @configure_options, class => 'input'
<br></span> </p>
<p><span class=label>
%=l('lets_EMAIL')
</span><span class=data>
% param 'email' => $lets_data->{email} unless param 'email';
%= text_field 'email', size => '50', class => 'textinput email' , pattern=>'.*' , placeholder=>'email'
<br></span></p>
<span class='data'>
%= submit_button l('lets_Save'), class => 'action subm9'
</span>
%# Probably finally by a submit.
%end
</div>

View File

@ -1,63 +0,0 @@
#
# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
#
#
# Routines to be edited by the developer to provide validation for parameters
# and provison of the control data for table(s)
#
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;
}
# Get control data for tables(s)
# 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;
}
#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 create_link{
# WIP
my ($c,$route, $panel, $index) = shift;
my $link = "$route?trt=$panel&Selected=$index";
return $link;
}
1;

View File

@ -1,19 +0,0 @@
/*
Generated by SM2Gen version: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
*/
.letsencrypt-config-panel {}
.name {}
.rout {}
.head {}
.subh {}
.para1 {}
.para2 {}
.sele1 {}
.sele2 {}
.sele3 {}
.sele4 {}
.sele5 {}
.sele6 {}
.sele7 {}
.text8 {}
.subm9 {}

View File

@ -1,52 +0,0 @@
%#
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
%#
% layout 'default', title => "Sme server 2 - letsencrypt-config", share_dir => './';
%# css specific to this panel:
% content_for 'module' => begin
%= stylesheet '/css/letsencrypt-config.css'
<div id="module" class="module letsencrypt-config-panel">
% if ($config->{debug} == 1) {
<p>
%= dumper $c->current_route
</p>
% }
<h1><%=$title%></h1>
% if ( stash('modul') ) {
%= $c->render_to_string(inline => stash('modul') );
% }
%if ($lets_data->{first}) {
<br><p>
%=$c->render_to_string(inline =>$c->l($lets_data->{first}))
</p>
%} elsif ($lets_data->{success}) {
<div class='sme-border'>
<h2> Operation Status Report</h2><p>
%= $c->l($lets_data->{success});
</p>
</div>
%} elsif ($lets_data->{error}) {
<div class='sme-error'>
<h2> Operation Status Report - error</h2><p>
%= $c->l($lets_data->{error});
</p>
</div>
%}
%#Routing to partials according to trt parameter.
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
% if ($lets_data->{trt} eq "PARAMS") {
%= include 'partials/_lets_PARAMS'
%}
</div>
%end

View File

@ -1,243 +0,0 @@
package SrvMngr::Controller::letsencrypt-config;
#
# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
#
#----------------------------------------------------------------------
# heading : Miscellaneous
# description : letsencrypt-config
# navigation : 2000 400
#
# name : letsencrypt-config, method : get, url : /letsencrypt-config, ctlact : letsencrypt-config#main
# name : letsencrypt-configu, method : post, url : /letsencrypt-configu, ctlact : letsencrypt-config#do_update
# name : letsencrypt-configd, method : get, url : /letsencrypt-configd, ctlact : letsencrypt-config#do_display
#
# routes : end
#
# Documentation: https://wiki.contribs.org/letsencrypt-config
#----------------------------------------------------------------------
#
# Scheme of things:
#
# TBA!!
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");
require '/usr/share/smanager/lib/SrvMngr/Controller/letsencrypt-config-Custom.pm'; #The code that is to be added by the developer
sub main {
#
# Initial entry - route is "/<whatever>"
#
#set initial panel
#for initial panel:
#Specifiy panel to enter
#load up _data hash with DB fields
#load up stash with pointer(s) to control fields hash(= get-))
#and a pointer to the prefix_data hash
#render initial panel
my $c = shift;
$c->app->log->info( $c->log_req );
my %lets_data = ();
my $title = $c->l('lets_letsencrypt-config');
my $modul = '';
$lets_data{'trt'} = 'PARAMS';
#Load any DB entries into the <prefix>_data area so as they are preset in the form
# which DB - this only really works if the initial panel is a PARAMS type panel and not a TABLE
my $db = $cdb; #pickup local or global db or Default to config
# and table control fields
$c->stash(
title => $title,
modul => $modul,
lets_data => \%lets_data
);
$c->render( template => "letsencrypt-config" );
}
# Post request with params - submit from the form
sub do_update {
#
# Return after submit pushed on panel (this is a post) - route is "/<whatever>u"
# parameters in the params hash.
#
#load up all params into prefix_data hash:
#By panel (series of if statements - only one executed):
#call validate-PANEL() - return ret = ok or error message
#if validation not ok:
#render back to current panel with error message in stash
#otherwise:
#By panel (series of if statements - only one executed):
#do whatever is required: call perform-PANEL() - return "ok" or Error Message
#call signal-event for any global actions specified (check it exists - error and continue?)
#if action smeserver-<whatever>-update exists
#signal_event smeserver-<whatever>-update
#call signal-event for any specific actions for thids panel (check it exists first - error and continue)
#set success in stash
#if no "nextpanel" entry:
#set firstpanel
#else
#set nextpanel
#call render
my $c = shift;
$c->app->log->info($c->log_req);
my %lets_data = ();
my $title = $c->l('lets_letsencrypt-config');
# 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" - copy to the prefix_data hash
while (my ($key, $value) = each %{$c->req->params->to_hash}) {
$lets_data{$key} = $value;
}
# the value of trt will tell you which panel has returned
my $trt = $c->param('trt') || 'PARAMS'; #hidden control on every form.
my $ret = 'ok';
#Validate the parameters in a custom sub one for each panel (although only one of these will be executed)
my $thispanel;
if ($trt eq 'PARAMS'){
#Validate form parameters for panel PARAMS
$ret = $c->validate_PARAMS(\%lets_data);
$thispanel = 'PARAMS';
}
if ($ret ne "ok") {
# return to the panel with error message
$c->stash(error => $c->l($ret));
$c->render("letsencrypt-config");
} else {
#Do whatever is needed, including writing values to the DB
if ($trt eq 'PARAMS'){
#do whatever is required ...
$ret = $c->perform_PARAMS(\%lets_data);
if ($ret ne "ok") {
# return to the panel with error message
$c->stash(error => $c->l($ret));
$c->render("letsencrypt-config");
} else {
$c->stash( success => $c->l('lets_PARAMS_panel_action_was_successful')); #A bit bland - edit it in the lex file
}
}
# and call any signal-events needed
# Setup shared data and call panel
$c->stash(
title => $title,
lets_data => \%lets_data
);
if ('none' eq 'none') {
$lets_data{'trt'} = 'PARAMS';
} else {
$lets_data{'trt'} = 'none';
}
$c->render("letsencrypt-config");
}
}
sub do_display {
#
# Return after link clicked in table (this is a get) - route is "/<whatever>d"
# Expects ?trt=PANEL&selected="TableRowName" plus any other required
#
# OR it maybe a post from the main panel to add a new record
#
#load up all supplied params into prefix_data hash
#call get-selected-PANEL() - returns hash of all relevent parameters
#load up returned hash into prefix_data
#render - to called panel
my $c = shift;
$c->app->log->info($c->log_req);
my %lets_data = ();
my $title = $c->l('lets_letsencrypt-config');
# Accessing all parameters
my %params = $c->req->params->to_hash;
# Get number of parameters
my $num_params = keys %params;
#Tag as Post or Get (ie. create new entry or edit existing one
my $is_new_record = ($c->req->method() eq 'POST');
#Params are available in the hash "params" - copy to the prefix_data hash
while (my ($key, $value) = each %{$c->req->params->to_hash}) {
$lets_data{$key} = $value;
}
# the value of trt will tell you which panel has returned
my $trt = $c->param('trt') || 'PARAMS'; #Indicates where to go now
# Now add in the params from the selected row from the table
my %selectedrow;
if ($trt eq 'PARAMS'){
#Validate form parameters for panel PARAMS
%selectedrow = $c->get_selected_PARAMS($lets_data{'Selected'},$is_new_record);
}
#Copy in the selected row params to the prefix_data hash to pass to the panel
while (my ($key, $value) = each %selectedrow){
$lets_data{$key} = $value;
}
# Where to go now
$lets_data{'trt'} = $trt;
# Data for panel
$c->stash(
title => $title,
lets_data => \%lets_data
);
$c->render("letsencrypt-config");
}
1;

View File

@ -1,20 +0,0 @@
#
# Generated by SM2Gen version: SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-10-20 16:12:38
#
'lets_SERVICE_STATUS' => 'SERVICE STATUS',
'lets_ACCEPT_TERMS_STATUS' => 'ACCEPT TERMS STATUS',
'lets_FORM_TITLE' => 'FORM TITLE',
'lets_APPLY' => 'Apply',
'lets_API_STATUS' => 'API STATUS',
'lets_EMAIL' => 'Email',
'lets_Hello_PARAMS' => 'Hello PARAMS',
'lets_HOOKSCRIPT_STATUS' => 'HOOKSCRIPT STATUS',
'lets_CONFIGUREMODE_STATUS' => 'CONFIGUREMODE STATUS',
'lets_Save' => 'Save',
'lets_letsencrypt-config' => 'Letsencrypt-config',
'lets_HOSTOVERRIDE_STATUS' => 'HOSTOVERRIDE STATUS',
'lets_KEYSIZE_STATUS' => 'KEYSIZE STATUS',
'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings:',
'lets_SERVICE_STATUS' => 'SERVICE STATUS',
'lets_CONFIG_LE' => 'CONFIG LE',
'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',

View File

@ -619,6 +619,7 @@ if __name__ == "__main__":
# html_controls = json5_to_dict('Templates/html_controls.html.ep.tem') # html_controls = json5_to_dict('Templates/html_controls.html.ep.tem')
html_controls = parse_xml_to_dict("Templates/html_controls.html.ep.xml") html_controls = parse_xml_to_dict("Templates/html_controls.html.ep.xml")
i = 0 i = 0
acc_css_entries = ""; #One entry for each class created for html entries
for html in json5_html_list: for html in json5_html_list:
# Generate a mojo template file, and then add in the controls # Generate a mojo template file, and then add in the controls
# main file first # main file first
@ -642,7 +643,6 @@ if __name__ == "__main__":
# Now generate the controls from the rest of the entries in the dict. # Now generate the controls from the rest of the entries in the dict.
all_controls_html = "" all_controls_html = ""
prefix_is = hl("prefix") prefix_is = hl("prefix")
acc_css_entries = ""; #One entry for each class created for html entries
for html_control in html: for html_control in html:
inner_html = html[html_control] inner_html = html[html_control]
if isinstance(inner_html, dict): if isinstance(inner_html, dict):