Update generated files plus LIST partial with table column contents
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
  <script>
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
  <script>
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,10 @@
 | 
			
		||||
      SelectInput();
 | 
			
		||||
    };
 | 
			
		||||
  </script>
 | 
			
		||||
  <pre>
 | 
			
		||||
	%= dumper $lets_data
 | 
			
		||||
	%= dumper $c->stash('DomainList')
 | 
			
		||||
  </pre>
 | 
			
		||||
    % my $btn = l('lets_APPLY');
 | 
			
		||||
    %= form_for "Letsencryptd" => (method => 'POST') => begin
 | 
			
		||||
 | 
			
		||||
@@ -85,17 +89,17 @@
 | 
			
		||||
				</tr>
 | 
			
		||||
			</thead>
 | 
			
		||||
			<tbody class='tabl1'>
 | 
			
		||||
				% my $control_data = $self->stash('DomainList');
 | 
			
		||||
				% my $control_data = $c->stash('DomainList');
 | 
			
		||||
				% foreach my $row (@$control_data) {
 | 
			
		||||
				<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-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->{'Table1-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_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->{'Table1-LABEL_LECERT'})%></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->{'Table1-CHECK'})%></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->{'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-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->{'letsencryptMYIP'})%></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->{'isincert'})%></td>
 | 
			
		||||
					<td class='sme-border table-col table-col-Table1-CHECK'><%=$c->render_to_string(inline=>$row->{'Check'})%></td>		
 | 
			
		||||
				</tr>
 | 
			
		||||
				%}
 | 
			
		||||
			</tbody>
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
  <script>
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {}
 | 
			
		||||
.name {}
 | 
			
		||||
.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 {}
 | 
			
		||||
.subh {}
 | 
			
		||||
.text1 {}
 | 
			
		||||
 
 | 
			
		||||
@@ -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 => './';
 | 
			
		||||
%# css specific to this panel:
 | 
			
		||||
 
 | 
			
		||||
@@ -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_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_Enabled_domains_check_result' => 'Enabled domains check result',
 | 
			
		||||
'lets_CHECK_ENABLED_DOMAINS' => 'CHECK ENABLED DOMAINS',
 | 
			
		||||
'lets_API_STATUS' => 'API STATUS',
 | 
			
		||||
'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_CHECK' => 'Check',
 | 
			
		||||
'lets_Back' => 'Back',
 | 
			
		||||
'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
 | 
			
		||||
'lets_Check_all_domains' => 'Check all domains',
 | 
			
		||||
'lets_Internal_IP' => 'Internal IP',
 | 
			
		||||
'lets_Current_certificate_details' => 'Current certificate details',
 | 
			
		||||
'lets_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
 | 
			
		||||
'lets_CONFIG_LETSENCRYPT' => 'CONFIG LETSENCRYPT',
 | 
			
		||||
'lets_IS_IN_CERT' => 'IS IN CERT',
 | 
			
		||||
'lets_Internet_IP' => 'Internet IP',
 | 
			
		||||
'lets_Save' => 'Save',
 | 
			
		||||
'lets_External_Interface_IP' => 'External Interface IP',
 | 
			
		||||
'lets_CONFIG' => 'Config',
 | 
			
		||||
'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_HOSTOVERRIDE_STATUS' => 'HOSTOVERRIDE STATUS',
 | 
			
		||||
'lets_Enabled_domains_check_result' => 'Enabled domains check result',
 | 
			
		||||
'lets_Letsencrypt_certificate' => 'Letsencrypt certificate',
 | 
			
		||||
'lets_CHECKALLENABLEDDOMAINS_panel_action_was_successful' => 'CHECKALLENABLEDDOMAINS panel action was successful',
 | 
			
		||||
'lets_List_of_Domains_and_Hosts' => 'List of Domains and Hosts',
 | 
			
		||||
'lets_Manage_letsencrypt-config_settings:' => 'Manage letsencrypt-config settings:',
 | 
			
		||||
'lets_Current_certificate_details' => 'Current certificate details',
 | 
			
		||||
'lets_CONFIG' => 'Config',
 | 
			
		||||
'lets_SERVICE_STATUS' => 'SERVICE STATUS',
 | 
			
		||||
'lets_APPLY' => 'Apply',
 | 
			
		||||
'lets_CHECK' => 'Check',
 | 
			
		||||
'lets_Not_Before' => 'Not Before',
 | 
			
		||||
'lets_External_Interface_IP' => 'External Interface IP',
 | 
			
		||||
'lets_Domain_name_/_HOSTNAME' => 'Domain name / HOSTNAME',
 | 
			
		||||
'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_Check_all_domains' => 'Check all domains',
 | 
			
		||||
'lets_LABEL_LECERT' => 'LABEL LECERT',
 | 
			
		||||
'lets_Configuration_for_Letsencrypt' => 'Configuration for Letsencrypt',
 | 
			
		||||
'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',
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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;
 | 
			
		||||
@@ -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 {}
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -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;
 | 
			
		||||
@@ -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',
 | 
			
		||||
@@ -619,6 +619,7 @@ if __name__ == "__main__":
 | 
			
		||||
	# html_controls = json5_to_dict('Templates/html_controls.html.ep.tem')
 | 
			
		||||
	html_controls = parse_xml_to_dict("Templates/html_controls.html.ep.xml")
 | 
			
		||||
	i = 0
 | 
			
		||||
	acc_css_entries = "";  #One entry for each class created for html entries
 | 
			
		||||
	for html in json5_html_list:
 | 
			
		||||
		# Generate a mojo template file, and then add in the controls
 | 
			
		||||
		# main file first
 | 
			
		||||
@@ -642,7 +643,6 @@ if __name__ == "__main__":
 | 
			
		||||
		# Now generate the controls from the rest of the entries in the dict.
 | 
			
		||||
		all_controls_html = ""
 | 
			
		||||
		prefix_is = hl("prefix")
 | 
			
		||||
		acc_css_entries = "";  #One entry for each class created for html entries
 | 
			
		||||
		for html_control in html:
 | 
			
		||||
			inner_html = html[html_control]
 | 
			
		||||
			if isinstance(inner_html, dict):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user