From 322d3b70384e0eaf696e4f92e1028a48d95d0c67 Mon Sep 17 00:00:00 2001 From: John Crisp Date: Tue, 17 Jun 2025 15:33:22 +0200 Subject: [PATCH] Start Letsencrypt panels --- .../AdminLTE/templates/letsencrypt.html.ep | 74 ++-- .../_lets_CHECKALLENABLEDDOMAINS.html.ep | 81 +++-- .../partials/_lets_CHECKONEDOMAIN.html.ep | 90 +++-- .../templates/partials/_lets_LIST.html.ep | 324 ++++++++++-------- .../templates/partials/_lets_PARAMS.html.ep | 231 +++++++------ smeserver-manager-AdminLTE.spec | 5 +- 6 files changed, 464 insertions(+), 341 deletions(-) diff --git a/root/usr/share/smanager/themes/AdminLTE/templates/letsencrypt.html.ep b/root/usr/share/smanager/themes/AdminLTE/templates/letsencrypt.html.ep index 03d0aef..a6ca86c 100644 --- a/root/usr/share/smanager/themes/AdminLTE/templates/letsencrypt.html.ep +++ b/root/usr/share/smanager/themes/AdminLTE/templates/letsencrypt.html.ep @@ -1,74 +1,78 @@ %# -%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 +%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 %# % layout 'AdminLTE', title => "Sme server 2 - Letsencrypt certificate", share_dir => './'; %# css specific to this panel: % content_for 'module' => begin - + -%= stylesheet '/css/letsencrypt.css' +
% if (config->{debug} == 1) {
-        %= dumper $c->current_route
-        %= dumper $lets_data->{trt}
+        <%= dumper $c->current_route %>
+        <%= dumper $lets_data->{trt}  %>
     
% } - +

<%=$title%>

% if ( stash('modul')) { - %= $c->render_to_string(inline => stash('modul') ); +
+
+ <%= $c->render_to_string(inline => stash('modul') ); %> +
% } - %if ($c->stash('first')) { -

- %=$c->render_to_string(inline =>$c->l($c->stash('first'))) -

- - %} elsif ($c->stash('success')) { -
-

<%=$c->l('lets_Status_Report') %>

- %= $c->l($c->stash('success')); -

+ % if ($c->stash('first')) { +
+
+ <%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
- %} elsif ($c->stash('error')) { -
-

<%=$c->l('lets_Error_Status_Report') %>

- %= $c->l($c->stash('error')); -

+ % } elsif ($c->stash('success')) { +
+

<%=$c->l('lets_Status_Report') %>

+
+ <%= $c->l($c->stash('success')); %> +
- %} + + % } elsif ($c->stash('error')) { +
+

<%=$c->l('lets_Error_Status_Report') %>

+
+ <%= $c->l($c->stash('error')); %> +
+
+ % } %#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 "LIST") { - %= include 'partials/_lets_LIST' - %} + <%= include 'partials/_lets_LIST' %> + % } % if ($lets_data->{trt} eq "PARAMS") { - %= include 'partials/_lets_PARAMS' - %} + <%= include 'partials/_lets_PARAMS' %> + % } % if ($lets_data->{trt} eq "CHECKALLDOMAINS") { - %= include 'partials/_lets_CHECKALLDOMAINS' - %} + <%= include 'partials/_lets_CHECKALLDOMAINS' %> + % } % if ($lets_data->{trt} eq "CHECKALLENABLEDDOMAINS") { - %= include 'partials/_lets_CHECKALLENABLEDDOMAINS' - %} + <%= include 'partials/_lets_CHECKALLENABLEDDOMAINS' %> + % } % if ($lets_data->{trt} eq "CHECKONEDOMAIN") { - %= include 'partials/_lets_CHECKONEDOMAIN' - %} - - + <%= include 'partials/_lets_CHECKONEDOMAIN' %> + % }
%end \ No newline at end of file diff --git a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKALLENABLEDDOMAINS.html.ep b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKALLENABLEDDOMAINS.html.ep index 477f864..a6b928c 100644 --- a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKALLENABLEDDOMAINS.html.ep +++ b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKALLENABLEDDOMAINS.html.ep @@ -1,49 +1,68 @@ %# -%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 +%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 %#
+ + + + % if (config->{debug} == 1) {
-            %= dumper $lets_data
+            <%= dumper $lets_data %>
         
% } - + % my $btn = l('lets_APPLY'); - %= form_for "letsencryptu" => (method => 'POST') => begin - % param 'trt' => $lets_data->{trt} unless param 'trt'; - %= hidden_field 'trt' => $lets_data->{trt} + + + + + %# Inputs etc in here. -

<%=l('lets_Check_all_enabled_domains')%>

- -

<%=l('lets_Loop_through_checking_the_letsencrypt')%>

- - - %=l('lets_Enabled_domains_check_result') - - - % param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck'; - %= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true' - +

<%= l ('lets_Check_all_enabled_domains')%>

+
- - %my $back_text = l('lets_Back'); # Localized text - %my $actionBack = qq{ - % - % - % - %}; - <%= $c->render_to_string(inline => $actionBack) %> - - - - %# Probably finally by a submit. - %end +

<%= l ('lets_Loop_through_checking_the_letsencrypt')%>

+ +
+ + + +
+
+ <%= l ('lets_Enabled_domains_check_result') %> +
+
+ % param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck'; + %= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true' +
+
+ +
+ + + + % my $back_text = l('lets_Back'); # Localized text + %# param 'trt' => $lets_data->{trt} unless param 'trt'; + %#= hidden_field 'trt' => $lets_data->{trt} + +
+ +
+ + +
diff --git a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKONEDOMAIN.html.ep b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKONEDOMAIN.html.ep index 2137f33..5866d44 100644 --- a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKONEDOMAIN.html.ep +++ b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_CHECKONEDOMAIN.html.ep @@ -1,59 +1,77 @@ %# -%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 +%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 %#
+ + + % if (config->{debug} == 1) {
             %= dumper $lets_data
         
% } - + % my $btn = l('lets_APPLY'); - %= form_for "letsencryptu" => (method => 'POST') => begin - % param 'trt' => $lets_data->{trt} unless param 'trt'; - %= hidden_field 'trt' => $lets_data->{trt} + + + %# Inputs etc in here. -

<%=l('lets_Check_just_one_domain')%>

- -

<%=l('lets_Loop_through_and_check_the')%>

- -

- %=l('lets_Domains_name') - - +

<%=l('lets_Check_just_one_domain')%>

+ +
+ +

<%=l('lets_Loop_through_and_check_the')%>

+ +
+ + + + +
+
+ <%= l ('lets_Domains_name') %> +
+
% param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck'; %= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true' +
+
+
- -

- - - %=l('lets_One_domain_check_result') - - + + + +
+
+ <%= l ('lets_One_domain_check_result') %> +
+
% param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck'; %= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true' - +
+
+
- - - %my $back_text = l('lets_Back'); # Localized text - %my $actionBack = qq{ - % - % - % - %}; - <%= $c->render_to_string(inline => $actionBack) %> - - - - %# Probably finally by a submit. - %end + + + % my $back_text = l('lets_Back'); # Localized text + %# param 'trt' => $lets_data->{trt} unless param 'trt'; + %#= hidden_field 'trt' => $lets_data->{trt} + +
+ +
+ + +
diff --git a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_LIST.html.ep b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_LIST.html.ep index b329370..dfd925f 100644 --- a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_LIST.html.ep +++ b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_LIST.html.ep @@ -1,152 +1,208 @@ %# -%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 +%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 %#
+ + + + % if (config->{debug} == 1) {
-            %= dumper $lets_data
+            <%= dumper $lets_data %>
         
% } - - % my $btn = l('lets_APPLY'); - %= form_for "letsencryptu" => (method => 'POST') => begin - % param 'trt' => $lets_data->{trt} unless param 'trt'; - %= hidden_field 'trt' => $lets_data->{trt} + + +
+ + + + + + %# my $btn = l('lets_APPLY'); + %# param 'trt' => $lets_data->{trt} unless param 'trt'; + %#= hidden_field 'trt' => $lets_data->{trt} + + % my $linkbtn = l ('MODIFY'); + %# Inputs etc in here. - -
- - - %= l('lets_CONFIG') - - %#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2' - - - - %= l('lets_CHECK_ALL_DOMAINS') - - %#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3' - - - - %= l('lets_CHECK_ALL_ENABLED_DOMAINS') - - %#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4' - - + %# reetp Needs some language translations? +
+
+ <%= l('lets_CONFIG') %> +
+
- - -

<%=l('lets_For_this_Server')%>

- -

- - %=l('lets_Internal_IP') - - - % param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP'; - %= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true' +
-
-

- -

- - %=l('lets_External_Interface_IP') - - - % param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP'; - %= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true' + + %#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2' + +

+
+ <%= l ('lets_CHECK_ALL_DOMAINS') %> +
+ +
+ + %#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3' +
- -

- -

- - %=l('lets_Internet_IP') - - - % param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP'; - %= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true' + +

+
+ <%= l ('lets_CHECK_ALL_ENABLED_DOMAINS') %> +
+ +
+ + %#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4' + + + + + +

+ +

<%=l('lets_For_this_Server') %>

+
- -

- -

<%=l('lets_Current_certificate_details')%>

- -

- - %=l('lets_Issuer') - - - % param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer'; - %= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true' -
-
-

- -

- - %=l('lets_Expiry') - - - % param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry'; - %= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true' -
-
-

- -

- - %=l('lets_Not_Before') - - - % param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore'; - %= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true' -
-
-

- -

<%=l('lets_List_of_Domains_and_Hosts')%>

- -
- - - - - - - - - - - - - - - % my $control_data = $c->stash('DomainList'); - % foreach my $row (@$control_data) { - - - - - - - - - - - %} - -
<%=l('lets_Domain_name_/_HOSTNAME')%><%=l('lets_Brief_description')%><%=l('lets_Content')%><%=l('lets_LABEL_NAMESERVERS')%><%=l('lets_LABEL_POINT')%><%=l('lets_LABEL_LECERT')%><%=l('lets_IS_IN_CERT')%><%=l('lets_CHECK')%>
<%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%>
- - - %# Probably finally by a submit. - %end + +
+
+ <%= l ('lets_Internal_IP') %> +
+
+ % param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP'; + %= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true' +
+
+ +
+ +
+
+ <%= l ('lets_External_Interface_IP') %> +
+
+ % param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP'; + %= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true' +
+
+ +
+ +
+
+ <%= l ('lets_Internet_IP') %> +
+
+ % param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP'; + %= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true' +
+
+ +

+ +

<%=l('lets_Current_certificate_details') %>

+ +
+ +
+
+ <%= l ('lets_Issuer') %> +
+
+ % param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer'; + %= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true' +
+
+ +
+ +
+
+ <%= l ('lets_Expiry') %> +
+
+ % param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry'; + %= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true' +
+
+ +
+ +
+
+ <%= l ('lets_Not_Before') %> +
+
+ % param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore'; + %= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true' +
+
+ +

+ +

<%=l('lets_List_of_Domains_and_Hosts') %>

+ +
+ + % $linkbtn = l 'lets_CHECK'; + + + + + + + + + + + + + + + + % my $control_data = $c->stash('DomainList'); + % foreach my $row (@$control_data) { + % my $link = $c->render_to_string(inline=>$row->{'Table1-CHECK'}); + % my $type = $c->render_to_string(inline=>$row->{'Table1-TYPE'}); + + % if ($type eq "Domain\n"){ + + % } + % if ($type eq "Host\n") { + + % } + + + + + + + + + % if ($link ne "") { + + % } else { + + % } + + % } + +
<%= l ('lets_Domain_name_/_HOSTNAME') %><%= l ('lets_Brief_description') %><%= l ('lets_Content') %><%= l ('lets_LABEL_NAMESERVERS') %><%= l ('lets_LABEL_POINT') %><%= l ('lets_LABEL_LECERT') %><%= l ('lets_IS_IN_CERT') %><%= l ('lets_CHECK') %>
<%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'}) %> <%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'}) %><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'}) %><%=$c->render_to_string(inline=>$row->{'Table1-Content'}) %><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'}) %><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'}) %><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'}) %><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'}) %> <%= $linkbtn %> 
+
diff --git a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_PARAMS.html.ep b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_PARAMS.html.ep index 2f24ea1..860bf2e 100644 --- a/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_PARAMS.html.ep +++ b/root/usr/share/smanager/themes/AdminLTE/templates/partials/_lets_PARAMS.html.ep @@ -1,130 +1,153 @@ %# -%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 +%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43 %#
+ + + % if (config->{debug} == 1) {
-            %= dumper $lets_data
+            <%= dumper $lets_data %>
         
% } - - % my $btn = l('lets_APPLY'); - %= form_for "letsencryptu" => (method => 'POST') => begin + +
+ % param 'trt' => $lets_data->{trt} unless param 'trt'; %= hidden_field 'trt' => $lets_data->{trt} %# Inputs etc in here. -

<%=l('lets_Manage_letsencrypt-config_settings:')%>

- -

- %=l('lets_CONFIG_LETSENCRYPT') -

- -

- - %=l('lets_SERVICE_STATUS') - - - %# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']]; - % my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status}); - %# param 'status' => $lets_data->{status} unless param 'status'; - %= select_field 'status' => @status_options, class => "" -
-
-

- -

- - %=l('lets_HOOKSCRIPT_STATUS') - - - % my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']]; - % param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript'; - %= select_field 'hookScript' => @hookScript_options, class => "" -
-
-

- -

- - %=l('lets_HOSTOVERRIDE_STATUS') - - - % my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']]; - % param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride'; - %= select_field 'hostOverride' => @hostOverride_options, class => "" -
-
-

- -

- - %=l('lets_ACCEPT_TERMS_STATUS') - - - % 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 => "" -
-
-

+

<%=l('lets_Manage_letsencrypt-config_settings:') %>

-

- - %=l('lets_API_STATUS') - - - % my @API_options = [['2' => '2']]; - % param 'API' => $lets_data->{API} unless param 'API'; - %= select_field 'API' => @API_options, class => ""
-
-

-

- - %=l('lets_KEYSIZE_STATUS') - - - % my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']]; - % param 'keysize' => $lets_data->{keysize} unless param 'keysize'; - %= select_field 'keysize' => @keysize_options, class => "" +

+ <%= l ('lets_CONFIG_LETSENCRYPT') %> +
+ +
+
+ <%= l ('lets_SERVICE_STATUS') %> +
+
+ % my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status}); + %= select_field 'status' => @status_options, class => "form-select" +
+
+
- -

-

- - %=l('lets_CONFIGUREMODE_STATUS') - - - % 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 => "" + +

+
+ <%= l ('lets_HOOKSCRIPT_STATUS') %> +
+
+ % my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']]; + % param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript'; + %= select_field 'hookScript' => @hookScript_options, class => "form-select" +
+
+
- -

-

- - %=l('lets_EMAIL') - - - % param 'email' => $lets_data->{email} unless param 'email'; - %=email_field 'email', class => "" - -

- - %= submit_button l('lets_Save'), class => "" - +
+
+ <%= l ('lets_HOSTOVERRIDE_STATUS') %> +
+
+ % my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']]; + % param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride'; + %= select_field 'hostOverride' => @hostOverride_options, class => "form-select" +
+
- %# Probably finally by a submit. - %end +
+ + +
+
+ <%= l ('lets_ACCEPT_TERMS_STATUS') %> +
+
+ % 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 => "form-select" +
+
+ +
+ + +
+
+ <%= l ('lets_API_STATUS') %> +
+
+ % my @API_options = [['2' => '2']]; + % param 'API' => $lets_data->{API} unless param 'API'; + %= select_field 'API' => @API_options, class => "form-select" +
+
+ +
+ + +
+
+ <%= l ('lets_KEYSIZE_STATUS') %> +
+
+ % my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']]; + % param 'keysize' => $lets_data->{keysize} unless param 'keysize'; + %= select_field 'keysize' => @keysize_options, class => "form-select" +
+
+ +
+ + +
+
+ <%= l ('lets_CONFIGUREMODE_STATUS') %> +
+
+ % 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 => "form-select" +
+
+ +
+ + +
+
+ + +
+
+ % param 'email' => $lets_data->{email} unless param 'email'; + +
+
+ +
+ + % my $btn = l('lets_APPLY'); + +
+
+ +
+
+ +
diff --git a/smeserver-manager-AdminLTE.spec b/smeserver-manager-AdminLTE.spec index 6810fe4..165ecab 100644 --- a/smeserver-manager-AdminLTE.spec +++ b/smeserver-manager-AdminLTE.spec @@ -1,6 +1,6 @@ %define name smeserver-manager-AdminLTE %define version 11.0.0 -%define release 38 +%define release 39 Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2 Name: %{name} Version: %{version} @@ -28,6 +28,9 @@ AdminLTE is an html framework for admin consoles wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip %changelog +* Tue Jun 17 2025 John Crisp 11.0.0-39.sme +- Start Letsencrypt panels + * Fri Jun 13 2025 John Crisp 11.0.0-38.sme - More formatting for LocalNetworks - More formatting for PortForwards