diff --git a/Targets/Letsencrypt/Letsencrypt.pm b/Targets/Letsencrypt/Letsencrypt.pm index c6b03e5..7453a24 100644 --- a/Targets/Letsencrypt/Letsencrypt.pm +++ b/Targets/Letsencrypt/Letsencrypt.pm @@ -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 diff --git a/Targets/Letsencrypt/_lets_CHECKALLDOMAINS.html.ep b/Targets/Letsencrypt/_lets_CHECKALLDOMAINS.html.ep index b320300..81e8f48 100644 --- a/Targets/Letsencrypt/_lets_CHECKALLDOMAINS.html.ep +++ b/Targets/Letsencrypt/_lets_CHECKALLDOMAINS.html.ep @@ -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 %#
+
+	%= dumper $lets_data
+	%= dumper $c->stash('DomainList')
+  
% my $btn = l('lets_APPLY'); %= form_for "Letsencryptd" => (method => 'POST') => begin @@ -85,17 +89,17 @@ - % my $control_data = $self->stash('DomainList'); + % my $control_data = $c->stash('DomainList'); % foreach my $row (@$control_data) { - <%=$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'})%> + <%=$c->render_to_string(inline=>$row->{'Domain'})%> + <%=$c->render_to_string(inline=>$row->{'Description'})%> + <%=$c->render_to_string(inline=>$row->{'Content'})%> + <%=$c->render_to_string(inline=>$row->{'Nameservers'})%> + <%=$c->render_to_string(inline=>$row->{'letsencryptMYIP'})%> + <%=$c->render_to_string(inline=>$row->{'letsencryptSSLcert'})%> + <%=$c->render_to_string(inline=>$row->{'isincert'})%> + <%=$c->render_to_string(inline=>$row->{'Check'})%> %} diff --git a/Targets/Letsencrypt/_lets_PARAMS.html.ep b/Targets/Letsencrypt/_lets_PARAMS.html.ep index 9867755..d77493d 100644 --- a/Targets/Letsencrypt/_lets_PARAMS.html.ep +++ b/Targets/Letsencrypt/_lets_PARAMS.html.ep @@ -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 %#
-

- %= l('_Hello_PARAMS'); -

- % 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. - -

<%=l('FORM_TITLE')%>

- -

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

- -

- %=l('CONFIG_LE') -

- -

- %=l('SERVICE_STATUS') -

- -

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

- -

- %=l('HOOKSCRIPT_STATUS') -

- -

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

- -

- %=l('HOSTOVERRIDE_STATUS') -

- -

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

- -

- %=l('ACCEPT_TERMS_STATUS') -

- -

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

- -

- %=l('API_STATUS') -

- -

- %=l('_') - - % my @API_options = [{'Value' => '2', 'Text' => '2'}]; - % param 'API' => $_data->{API} unless param 'API'; - %= select_field 'API' => @API_options, class => 'input' -

- -

- %=l('KEYSIZE_STATUS') -

- -

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

- -

- %=l('CONFIGUREMODE_STATUS') -

- -

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

- -

- %=l('EMAIL') -

- -

- %=l('_') - - % param 'email' => $_data->{email} unless param 'email'; - %= text_field 'email', size => '50', class => 'textinput email' , pattern=>'.*' , placeholder=>'email' -

- - - %= submit_button l('Save'), class => 'action subm9' - - - %# Probably finally by a submit. - %end -
diff --git a/Targets/letsencrypt-config/_lets_PARAMS.html.ep b/Targets/letsencrypt-config/_lets_PARAMS.html.ep deleted file mode 100644 index bb7c1cc..0000000 --- a/Targets/letsencrypt-config/_lets_PARAMS.html.ep +++ /dev/null @@ -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 -%# -
- -

- %= l('lets_Hello_PARAMS'); -

- % 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. - -

<%=l('lets_FORM_TITLE')%>

- -

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

- -

- %=l('lets_CONFIG_LE') -

- -

- %=l('lets_SERVICE_STATUS') -

- -

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

- -

- %=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 => 'input' -

- -

- %=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 => 'input' -

- -

- %=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 => 'input' -

- -

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

- -

- %=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 => 'input' -

- -

- %=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 => 'input' -

- -

- %=l('lets_EMAIL') - - % param 'email' => $lets_data->{email} unless param 'email'; - %= text_field 'email', size => '50', class => 'textinput email' , pattern=>'.*' , placeholder=>'email' -

- - - %= submit_button l('lets_Save'), class => 'action subm9' - - - %# Probably finally by a submit. - %end -
diff --git a/Targets/letsencrypt-config/letsencrypt-config-Custom.pm b/Targets/letsencrypt-config/letsencrypt-config-Custom.pm deleted file mode 100644 index 0af99bb..0000000 --- a/Targets/letsencrypt-config/letsencrypt-config-Custom.pm +++ /dev/null @@ -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; \ No newline at end of file diff --git a/Targets/letsencrypt-config/letsencrypt-config.css b/Targets/letsencrypt-config/letsencrypt-config.css deleted file mode 100644 index abde3cd..0000000 --- a/Targets/letsencrypt-config/letsencrypt-config.css +++ /dev/null @@ -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 {} diff --git a/Targets/letsencrypt-config/letsencrypt-config.html.ep b/Targets/letsencrypt-config/letsencrypt-config.html.ep deleted file mode 100644 index e95b1db..0000000 --- a/Targets/letsencrypt-config/letsencrypt-config.html.ep +++ /dev/null @@ -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' -
- - % if ($config->{debug} == 1) { -

- %= dumper $c->current_route -

- % } - -

<%=$title%>

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

- %=$c->render_to_string(inline =>$c->l($lets_data->{first})) -

- - %} elsif ($lets_data->{success}) { -
-

Operation Status Report

- %= $c->l($lets_data->{success}); -

-
- - %} elsif ($lets_data->{error}) { -
-

Operation Status Report - error

- %= $c->l($lets_data->{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 "PARAMS") { - %= include 'partials/_lets_PARAMS' - %} - - - -
-%end diff --git a/Targets/letsencrypt-config/letsencrypt-config.pm b/Targets/letsencrypt-config/letsencrypt-config.pm deleted file mode 100644 index 3da3fec..0000000 --- a/Targets/letsencrypt-config/letsencrypt-config.pm +++ /dev/null @@ -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 "/" -# -#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 _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 "/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--update exists - #signal_event smeserver--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 "/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; diff --git a/Targets/letsencrypt-config/letsencrypt-config_en.lex b/Targets/letsencrypt-config/letsencrypt-config_en.lex deleted file mode 100644 index 931e66b..0000000 --- a/Targets/letsencrypt-config/letsencrypt-config_en.lex +++ /dev/null @@ -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', diff --git a/sm2gen.py b/sm2gen.py index ee2bf48..1eef316 100644 --- a/sm2gen.py +++ b/sm2gen.py @@ -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):