convert tabs to space and format group add

This commit is contained in:
John Crisp 2025-05-01 13:00:17 +02:00
parent e0dd4db0d9
commit ab587d4944
25 changed files with 1376 additions and 1372 deletions

View File

@ -2,9 +2,9 @@
<br> <br>
<!-- <h2><%#= l 'grp_FORM_TITLE' %></h2> --> <!-- <h2><%#= l 'grp_FORM_TITLE' %></h2> -->
<h2><%= l 'CREATE_GROUP' %></h2> <h2><%= l 'CREATE_GROUP' %></h2>
<br> <br>
<%= l 'grp_GROUP_NAMING' %> <%= l 'grp_GROUP_NAMING' %>
<br><br> <br><br>
% my $btn = l('ADD'); % my $btn = l('ADD');
@ -29,7 +29,7 @@
<%= l 'grp_GROUP_DESC_EXPL' %> <%= l 'grp_GROUP_DESC_EXPL' %>
<br><br> <br><br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@ -47,33 +47,33 @@
<br> <br>
<div> <div>
<%= l 'GROUP_MEMBERS' %> <%= l 'GROUP_MEMBERS' %>
</div> </div>
<br> <br>
<div> <div>
%= check_box 'groupMembers' => 'admin' %= check_box 'groupMembers' => 'admin'
&nbspAdministrator (admin) &nbspAdministrator (admin)
<br> <br>
% my $users = $c->gen_users_list(); % my $users = $c->gen_users_list();
% foreach my $key ( sort keys %$users ) { % foreach my $key ( sort keys %$users ) {
%= check_box 'groupMembers' => $key %= check_box 'groupMembers' => $key
&nbsp &nbsp
%= $users->{$key} %= $users->{$key}
%= " (" . $key . ")" %= " (" . $key . ")"
<br> <br>
% } % }
</div> </div>
<br><br> <br><br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary"><%= $btn %></button>
</div> </div>
</div> </div>
%= hidden_field 'trt' => $grp_datas->{trt} %= hidden_field 'trt' => $grp_datas->{trt}
</div> </div>

View File

@ -5,59 +5,59 @@
<form action="/smanager/groups2" method="POST"> <form action="/smanager/groups2" method="POST">
<br><br> <br><br>
<h2><%=l 'REMOVE_USER_GROUP' %></h2> <h2><%=l 'REMOVE_USER_GROUP' %></h2>
<br> <br>
<%=l('grp_DELETE_DESCRIPTION', $grp_datas->{group}) %> <%=l('grp_DELETE_DESCRIPTION', $grp_datas->{group}) %>
<br><br> <br><br>
<div> <div>
% my $size = keys %$members; % my $size = keys %$members;
% if ( ! $size ){ % if ( ! $size ){
%= l 'ACCOUNT_GROUP_NONE' %= l 'ACCOUNT_GROUP_NONE'
% } else { % } else {
%= l 'grp_GROUP_HAS_MEMBERS' %= l 'grp_GROUP_HAS_MEMBERS'
<br><br> <br><br>
<ul> <ul>
% foreach my $key ( keys %$members) { % foreach my $key ( keys %$members) {
<li> <li>
%=$key %=$key
( <%=$members->{$key} %> ) ( <%=$members->{$key} %> )
</li> </li>
% } % }
</ul> </ul>
% } % }
</div> </div>
<br><br> <br><br>
<div> <div>
% $size = keys %$ibays; % $size = keys %$ibays;
% if ( $size ) { % if ( $size ) {
%=l 'grp_IBAYS_WILL_BE_CHANGED' %=l 'grp_IBAYS_WILL_BE_CHANGED'
<br> <br>
<ul> <ul>
% foreach my $key (sort ( keys %$ibays )) { % foreach my $key (sort ( keys %$ibays )) {
<li> <li>
%=$key %=$key
( (
%=$ibays->{$key} %=$ibays->{$key}
) )
</li> </li>
% } % }
</ul> </ul>
% } % }
</div> </div>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary"><%= $btn %></button>
</div> </div>

View File

@ -15,27 +15,27 @@
% end % end
<br> <br>
<h2><%=l 'grp_CURRENT_LIST' %></h2> <h2><%=l 'grp_CURRENT_LIST' %></h2>
<br><br> <br><br>
% my $numGroups = @$groups; % my $numGroups = @$groups;
% if ($numGroups == 0){ % if ($numGroups == 0){
%=l 'ACCOUNT_GROUP_NONE' %=l 'ACCOUNT_GROUP_NONE'
% } else { % } else {
<table class="table table-bordered user-table-max-wdith"> <table class="table table-bordered user-table-max-wdith">
<thead> <thead>
<tr> <tr>
<th class="col-sm"> <th class="col-sm">
%=l 'GROUP' %=l 'GROUP'
</th> </th>
<th class="col-sm"> <th class="col-sm">
%=l 'DESCRIPTION' %=l 'DESCRIPTION'
</th> </th>
<th class="user-valign-center col-sm" colspan="2"> <th class="user-valign-center col-sm" colspan="2">
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
% foreach my $group ( @$groups ) % foreach my $group ( @$groups )
% { % {
@ -43,34 +43,34 @@
<td><%= $group->key %></td> <td><%= $group->key %></td>
<td><%= $group->prop('Description') %></td> <td><%= $group->prop('Description') %></td>
%my $modify_text = l('MODIFY'); # Localized text %my $modify_text = l('MODIFY'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $group_name = $group->key; # group name extracted from the data structure %my $group_name = $group->key; # group name extracted from the data structure
%my $actionModify = qq{ %my $actionModify = qq{
%<a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name"> %<a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name">
% <button type='button' class="btn btn-primary" title='$modify_text' > % <button type='button' class="btn btn-primary" title='$modify_text' >
% $modify_text % $modify_text
% </button> % </button>
%</a> %</a>
%}; %};
%my $remove_text = l('REMOVE'); # Localized text %my $remove_text = l('REMOVE'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $group_name = $group->key; # group name extracted from the data structure %my $group_name = $group->key; # group name extracted from the data structure
%my $actionRemove = qq{ %my $actionRemove = qq{
%<a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name"> %<a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
% <button type='button' class="btn btn-primary" title='$remove_text' > % <button type='button' class="btn btn-primary" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
%</a> %</a>
%}; %};
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td> <td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td> <td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr> </tr>
% } % }
</tbody> </tbody>
</table> </table>
<%} %> <%} %>

View File

@ -1,16 +1,16 @@
<div> <div class="container-sm">
% my $btn = l('SAVE'); % my $btn = l('SAVE');
<form action="/smanager/groups2" method="POST"> <form action="/smanager/groups2" method="POST">
<br><br> <br><br>
<h2><%= l 'MODIFY_USER_GROUP' %></h2> <h2><%= l 'MODIFY_USER_GROUP' %></h2>
<br><br> <br><br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputLastNAme" class="col-form-label"><%= l 'GROUP_NAME' %></label> <label for="inputLastNAme" class="col-form-label"><%= l 'GROUP_NAME' %></label>
</div> </div>
@ -19,13 +19,13 @@
</div> </div>
</div> </div>
<br><br> <br><br>
<%=l 'grp_GROUP_DESC_EXPL'%> <%=l 'grp_GROUP_DESC_EXPL'%>
<br><br> <br><br>
% param 'groupDesc' => $grp_datas->{description} unless param 'groupDesc'; % param 'groupDesc' => $grp_datas->{description} unless param 'groupDesc';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@ -41,48 +41,48 @@
</div> </div>
</div> </div>
<br><br> <br><br>
<div> <div>
<%=l 'GROUP_MEMBERS' %> <%=l 'GROUP_MEMBERS' %>
</div>
<br>
<div>
% if ( $members->{'admin'} ) {
%= check_box 'groupMembers', value => 'admin', checked => undef
% } else {
%= check_box 'groupMembers' => 'admin'
% }
&nbspAdministrator (admin)
</div> </div>
<br> <br>
<div>
% if ( $members->{'admin'} ) {
%= check_box 'groupMembers', value => 'admin', checked => undef
% } else {
%= check_box 'groupMembers' => 'admin'
% }
&nbspAdministrator (admin)
</div>
<br>
% my $users = $c->gen_users_list(); % my $users = $c->gen_users_list();
% foreach my $key ( sort keys %$users ) { % foreach my $key ( sort keys %$users ) {
% if ( $members->{ $key } ) { % if ( $members->{ $key } ) {
<input type='checkbox' name='groupMembers' checked value='<%= $key %>'> <input type='checkbox' name='groupMembers' checked value='<%= $key %>'>
% } else { % } else {
%= check_box 'groupMembers' => $key %= check_box 'groupMembers' => $key
&nbsp &nbsp
% } % }
%= $users->{$key} %= $users->{$key}
%= " (" . $key . ")" %= " (" . $key . ")"
<br> <br>
% } % }
<br><br> <br><br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary"><%= $btn %></button>
</div> </div>
</div> </div>
%= hidden_field 'trt' => $grp_datas->{trt} %= hidden_field 'trt' => $grp_datas->{trt}
%= hidden_field 'groupName' => $grp_datas->{group} %= hidden_field 'groupName' => $grp_datas->{group}

View File

@ -15,13 +15,13 @@
const password = document.querySelector('#id_password'); const password = document.querySelector('#id_password');
if (( togglePassword ) && ( password )) { if (( togglePassword ) && ( password )) {
togglePassword.addEventListener('click', function (e) { togglePassword.addEventListener('click', function (e) {
// toggle the type attribute // toggle the type attribute
const type = password.getAttribute('type') === 'password' ? 'text' : 'password'; const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
password.setAttribute('type', type); password.setAttribute('type', type);
// toggle the eye slash icon // toggle the eye slash icon
// this.classList.toggle('eye-slash'); // this.classList.toggle('eye-slash');
}) })
} }
}); });
@ -36,34 +36,34 @@
%= javascript begin %= javascript begin
$(document).ready(function() { $(document).ready(function() {
$('#tognav').click(function() { $('#tognav').click(function() {
//alert('click1:'+window.localStorage.getItem('menunav')); //alert('click1:'+window.localStorage.getItem('menunav'));
window.localStorage.setItem('menunav',!$('#menunav').is(':visible')); window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
//alert('click2:'+window.localStorage.getItem('menunav')); //alert('click2:'+window.localStorage.getItem('menunav'));
$('#menunav').toggle({ duration: 300 }); $('#menunav').toggle({ duration: 300 });
}); });
$('#toguser').click(function() { $('#toguser').click(function() {
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible')); window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
$('#menuuser').toggle({ duration: 300 }); $('#menuuser').toggle({ duration: 300 });
}); });
$('#togadm').click(function() { $('#togadm').click(function() {
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible')); window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
$('#menuadm').toggle({ duration: 300 }); $('#menuadm').toggle({ duration: 300 });
}); });
$('.section-title').click(function() { $('.section-title').click(function() {
var $section = $(this).parent().next('div'); var $section = $(this).parent().next('div');
if(!$section.length){ if(!$section.length){
return false; return false;
} }
let localStorageTag = "admSection-"+this.innerHTML; let localStorageTag = "admSection-"+this.innerHTML;
var jqObj = $($section); var jqObj = $($section);
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible')); window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
$section.toggle({ duration: 600 }); $section.toggle({ duration: 600 });
}) })
}); });
% end % end
@ -73,36 +73,36 @@
% content_for 'js_swapClass' => begin % content_for 'js_swapClass' => begin
%= javascript begin %= javascript begin
(function($) { (function($) {
$.fn.swapClass = function(class1, class2) { $.fn.swapClass = function(class1, class2) {
this.each(function() { this.each(function() {
var $elem = $(this); var $elem = $(this);
if ($elem.hasClass(class1)) { if ($elem.hasClass(class1)) {
$elem.removeClass(class1).addClass(class2); $elem.removeClass(class1).addClass(class2);
} }
else if ($elem.hasClass(class2)) { else if ($elem.hasClass(class2)) {
$elem.removeClass(class2).addClass(class1); $elem.removeClass(class2).addClass(class1);
} }
}); });
}; };
})(jQuery); })(jQuery);
$(document).ready(function() { $(document).ready(function() {
$('a.item-current').swapClass('item-current','item'); $('a.item-current').swapClass('item-current','item');
var pathname = $(location).attr('pathname'); var pathname = $(location).attr('pathname');
//alert('jQuery loaded. Path searched: ' + pathname); //alert('jQuery loaded. Path searched: ' + pathname);
var menus = $('a.item'); var menus = $('a.item');
$.each(menus, function() { $.each(menus, function() {
if ( $(this).attr('href') == pathname ) { if ( $(this).attr('href') == pathname ) {
$(this).swapClass('item', 'item-current'); $(this).swapClass('item', 'item-current');
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class')); // alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
} }
}) })
}); });
% end % end
% end % end

View File

@ -2,37 +2,37 @@
%# 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
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $lets_data %= dumper $lets_data
</pre> </pre>
% } % }
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin %= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt'; % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt} %= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<h1 class=""><%=l('lets_Check_all_domains')%></h1> <h1 class=""><%=l('lets_Check_all_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2> <h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class=""> <span class="">
%=l('lets_All_domains_check_result') %=l('lets_All_domains_check_result')
</span> </span>
<span class=""> <span class="">
% param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck'; % param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck';
%= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true' %= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span><br> </span><br>
<span class=""> <span class="">
%my $back_text = l('lets_Back'); # Localized text %my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{ %my $actionBack = qq{
% <a href="letsencryptd"> % <a href="letsencryptd">
@ -40,8 +40,8 @@
% </a> % </a>
%}; %};
<%= $c->render_to_string(inline => $actionBack) %> <%= $c->render_to_string(inline => $actionBack) %>
</span> </span>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -2,38 +2,38 @@
%# 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
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $lets_data %= dumper $lets_data
</pre> </pre>
% } % }
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin %= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt'; % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt} %= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1> <h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2> <h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class=""> <span class="">
%=l('lets_Enabled_domains_check_result') %=l('lets_Enabled_domains_check_result')
</span> </span>
<span class=""> <span class="">
% param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck'; % param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck';
%= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true' %= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span> </span>
<br> <br>
<span class=""> <span class="">
%my $back_text = l('lets_Back'); # Localized text %my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{ %my $actionBack = qq{
% <a href="letsencryptd"> % <a href="letsencryptd">
@ -41,9 +41,9 @@
% </a> % </a>
%}; %};
<%= $c->render_to_string(inline => $actionBack) %> <%= $c->render_to_string(inline => $actionBack) %>
</span> </span>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -2,48 +2,48 @@
%# 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
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $lets_data %= dumper $lets_data
</pre> </pre>
% } % }
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin %= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt'; % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt} %= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<h1 class=""><%=l('lets_Check_just_one_domain')%></h1> <h1 class=""><%=l('lets_Check_just_one_domain')%></h1>
<h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2> <h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2>
<p><span class=""> <p><span class="">
%=l('lets_Domains_name') %=l('lets_Domains_name')
</span> </span>
<span class=""> <span class="">
% param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck'; % param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck';
%= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true' %= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<span class=""> <span class="">
%=l('lets_One_domain_check_result') %=l('lets_One_domain_check_result')
</span> </span>
<span class=""> <span class="">
% param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck'; % param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck';
%= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true' %= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span> </span>
<br> <br>
<span class=""> <span class="">
%my $back_text = l('lets_Back'); # Localized text %my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{ %my $actionBack = qq{
% <a href="letsencryptd"> % <a href="letsencryptd">
@ -51,9 +51,9 @@
% </a> % </a>
%}; %};
<%= $c->render_to_string(inline => $actionBack) %> <%= $c->render_to_string(inline => $actionBack) %>
</span> </span>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -2,151 +2,151 @@
%# 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
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $lets_data %= dumper $lets_data
</pre> </pre>
% } % }
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin %= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt'; % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt} %= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<div> <div>
<a href='letsencryptd?trt=PARAMS' class=""> <a href='letsencryptd?trt=PARAMS' class="">
%= l('lets_CONFIG') %= l('lets_CONFIG')
</a> </a>
%#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2' %#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2'
<a href='letsencryptd?trt=CHECKALLDOMAINS' class=""> <a href='letsencryptd?trt=CHECKALLDOMAINS' class="">
%= l('lets_CHECK_ALL_DOMAINS') %= l('lets_CHECK_ALL_DOMAINS')
</a> </a>
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3' %#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class=""> <a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="">
%= l('lets_CHECK_ALL_ENABLED_DOMAINS') %= l('lets_CHECK_ALL_ENABLED_DOMAINS')
</a> </a>
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4' %#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
</div> </div>
<h2 class=""><%=l('lets_For_this_Server')%></h2> <h2 class=""><%=l('lets_For_this_Server')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('lets_Internal_IP') %=l('lets_Internal_IP')
</span> </span>
<span class=""> <span class="">
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP'; % param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true' %= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_External_Interface_IP') %=l('lets_External_Interface_IP')
</span> </span>
<span class=""> <span class="">
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP'; % param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true' %= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_Internet_IP') %=l('lets_Internet_IP')
</span> </span>
<span class=""> <span class="">
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP'; % param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true' %= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<h2 class=""><%=l('lets_Current_certificate_details')%></h2> <h2 class=""><%=l('lets_Current_certificate_details')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('lets_Issuer') %=l('lets_Issuer')
</span> </span>
<span class=""> <span class="">
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer'; % param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true' %= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_Expiry') %=l('lets_Expiry')
</span> </span>
<span class=""> <span class="">
% param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry'; % param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry';
%= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true' %= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_Not_Before') %=l('lets_Not_Before')
</span> </span>
<span class=""> <span class="">
% param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore'; % param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore';
%= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true' %= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
<br> <br>
</span> </span>
</p> </p>
<h2 class=""><%=l('lets_List_of_Domains_and_Hosts')%></h2> <h2 class=""><%=l('lets_List_of_Domains_and_Hosts')%></h2>
<br /> <br />
<table class="table table-bordered"> <table class="table table-bordered">
<thead class=""> <thead class="">
<tr table-head-row> <tr table-head-row>
<th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th> <th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th>
<th class=""><%=l('lets_Brief_description')%></th> <th class=""><%=l('lets_Brief_description')%></th>
<th class=""><%=l('lets_Content')%></th> <th class=""><%=l('lets_Content')%></th>
<th class=""><%=l('lets_LABEL_NAMESERVERS')%></th> <th class=""><%=l('lets_LABEL_NAMESERVERS')%></th>
<th class=""><%=l('lets_LABEL_POINT')%></th> <th class=""><%=l('lets_LABEL_POINT')%></th>
<th class=""><%=l('lets_LABEL_LECERT')%></th> <th class=""><%=l('lets_LABEL_LECERT')%></th>
<th class=""><%=l('lets_IS_IN_CERT')%></th> <th class=""><%=l('lets_IS_IN_CERT')%></th>
<th class=""><%=l('lets_CHECK')%></th> <th class=""><%=l('lets_CHECK')%></th>
</tr> </tr>
</thead> </thead>
<tbody class=""> <tbody class="">
% my $control_data = $c->stash('DomainList'); % my $control_data = $c->stash('DomainList');
% foreach my $row (@$control_data) { % foreach my $row (@$control_data) {
<tr class=""> <tr class="">
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%></td>
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%></td> <td class=""><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%></td>
</tr> </tr>
%} %}
</tbody> </tbody>
</table> </table>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -2,129 +2,129 @@
%# 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
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $lets_data %= dumper $lets_data
</pre> </pre>
% } % }
% my $btn = l('lets_APPLY'); % my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin %= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt'; % param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt} %= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:')%></h2> <h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:')%></h2>
<p class=""> <p class="">
%=l('lets_CONFIG_LETSENCRYPT') %=l('lets_CONFIG_LETSENCRYPT')
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_SERVICE_STATUS') %=l('lets_SERVICE_STATUS')
</span> </span>
<span class=""> <span class="">
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']]; %# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']];
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status}); % my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
%# param 'status' => $lets_data->{status} unless param 'status'; %# param 'status' => $lets_data->{status} unless param 'status';
%= select_field 'status' => @status_options, class => "" %= select_field 'status' => @status_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_HOOKSCRIPT_STATUS') %=l('lets_HOOKSCRIPT_STATUS')
</span> </span>
<span class=""> <span class="">
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']]; % my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript'; % param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
%= select_field 'hookScript' => @hookScript_options, class => "" %= select_field 'hookScript' => @hookScript_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_HOSTOVERRIDE_STATUS') %=l('lets_HOSTOVERRIDE_STATUS')
</span> </span>
<span class=""> <span class="">
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']]; % my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride'; % param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
%= select_field 'hostOverride' => @hostOverride_options, class => "" %= select_field 'hostOverride' => @hostOverride_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_ACCEPT_TERMS_STATUS') %=l('lets_ACCEPT_TERMS_STATUS')
</span> </span>
<span class=""> <span class="">
% my @ACCEPT_TERMS_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']]; % my @ACCEPT_TERMS_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'ACCEPT_TERMS' => $lets_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS'; % param 'ACCEPT_TERMS' => $lets_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS';
%= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => "" %= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_API_STATUS') %=l('lets_API_STATUS')
</span> </span>
<span class=""> <span class="">
% my @API_options = [['2' => '2']]; % my @API_options = [['2' => '2']];
% param 'API' => $lets_data->{API} unless param 'API'; % param 'API' => $lets_data->{API} unless param 'API';
%= select_field 'API' => @API_options, class => "" %= select_field 'API' => @API_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_KEYSIZE_STATUS') %=l('lets_KEYSIZE_STATUS')
</span> </span>
<span class=""> <span class="">
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']]; % my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
% param 'keysize' => $lets_data->{keysize} unless param 'keysize'; % param 'keysize' => $lets_data->{keysize} unless param 'keysize';
%= select_field 'keysize' => @keysize_options, class => "" %= select_field 'keysize' => @keysize_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_CONFIGUREMODE_STATUS') %=l('lets_CONFIGUREMODE_STATUS')
</span> </span>
<span class=""> <span class="">
% my @configure_options = [['ALL' => 'all'], ['Domains' => 'domains'], ['HOSTS' => 'hosts'], ['NONE' => 'none']]; % my @configure_options = [['ALL' => 'all'], ['Domains' => 'domains'], ['HOSTS' => 'hosts'], ['NONE' => 'none']];
% param 'configure' => $lets_data->{configure} unless param 'configure'; % param 'configure' => $lets_data->{configure} unless param 'configure';
%= select_field 'configure' => @configure_options, class => "" %= select_field 'configure' => @configure_options, class => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('lets_EMAIL') %=l('lets_EMAIL')
</span> </span>
<span class=""> <span class="">
% param 'email' => $lets_data->{email} unless param 'email'; % param 'email' => $lets_data->{email} unless param 'email';
%=email_field 'email', class => "" %=email_field 'email', class => ""
</span> </span>
</p> </p>
<span class=""> <span class="">
%= submit_button l('lets_Save'), class => "" %= submit_button l('lets_Save'), class => ""
</span> </span>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -1,76 +1,76 @@
<div> <div>
% my $retref= $c->stash("ret"); % my $retref= $c->stash("ret");
% my %ret; % my %ret;
% unless (length($retref)) {%ret = (ret=>"");} % unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;} % else {%ret = %$retref;}
% my @vars = split(",",$ret{vars}); % my @vars = split(",",$ret{vars});
% my $var1 = @vars[0]; % my $var1 = @vars[0];
% my $var2 = @vars[1]; % my $var2 = @vars[1];
% my $var3 = @vars[2]; % my $var3 = @vars[2];
% my $var4 = @vars[3]; % my $var4 = @vars[3];
% my $var5 = @vars[4]; % my $var5 = @vars[4];
% my $var6 = @vars[5]; % my $var6 = @vars[5];
%if ($ret{'ret'} eq "") { %if ($ret{'ret'} eq "") {
%} elsif (index($ret{ret},"SUCCESS") != -1) { %} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class=""> <div class="">
<h2> Operation Status Report</h2> <h2> Operation Status Report</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} else { %} else {
<div class=""> <div class="">
<h2> Operation Status Report - Error</h2> <h2> Operation Status Report - Error</h2>
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} %}
<br /> <br />
% my $btn = l('ADD'); % my $btn = l('ADD');
% my $network_db = esmith::NetworksDB->open(); % my $network_db = esmith::NetworksDB->open();
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper $c->current_route %= dumper $c->current_route
%= dumper $c->stash("ret") %= dumper $c->stash("ret")
</p> </p>
% } % }
%= form_for '/localnetworksb' => (method => 'POST') => begin %= form_for '/localnetworksb' => (method => 'POST') => begin
<h2> <h2>
%=l "ln_ADD_TITLE" %=l "ln_ADD_TITLE"
</h2> </h2>
<p> <p>
%= $c->render_to_string(inline => l('ln_ADD_DESC')); %= $c->render_to_string(inline => l('ln_ADD_DESC'));
</p> </p>
<br> <br>
<span class=""> <span class="">
%=l "NETWORK" %=l "NETWORK"
</span> </span>
<span class=""> <span class="">
%=text_field 'networkAddress' %=text_field 'networkAddress'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "ln_SUBNET_MASK" %=l "ln_SUBNET_MASK"
</span> </span>
<span class=""> <span class="">
%=text_field 'networkMask' %=text_field 'networkMask'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "ROUTER" %=l "ROUTER"
</span> </span>
<span class=""> <span class="">
%=text_field 'networkRouter' %=text_field 'networkRouter'
</span> </span>
<br><br> <br><br>
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%end %end
</div> </div>

View File

@ -6,60 +6,60 @@
% my $router = $ln_datas->{router}; % my $router = $ln_datas->{router};
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper $c->current_route %= dumper $c->current_route
%= dumper $c->stash("ret") %= dumper $c->stash("ret")
%= dumper %$ln_datas %= dumper %$ln_datas
%= dumper $deletehosts %= dumper $deletehosts
</p> </p>
% } % }
%= form_for '/localnetworkse' => (method => 'POST') => begin %= form_for '/localnetworkse' => (method => 'POST') => begin
<h2> <h2>
%=l "ln_REMOVE_TITLE" %=l "ln_REMOVE_TITLE"
</h2> </h2>
<p> <p>
%=l "ln_REMOVE_DESC" %=l "ln_REMOVE_DESC"
</p> </p>
<br> <br>
<span class=""> <span class="">
%=l "NETWORK" %=l "NETWORK"
</span> </span>
<span class=""> <span class="">
%=$localnetwork %=$localnetwork
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "ln_SUBNET_MASK" %=l "ln_SUBNET_MASK"
</span> </span>
<span class=""> <span class="">
%= $subnet %= $subnet
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "ROUTER" %=l "ROUTER"
</span> </span>
<span class=""> <span class="">
%= $router %= $router
</span> </span>
<br><br> <br><br>
% if($deletehosts) { % if($deletehosts) {
<br> <br>
%=$c->l("ln_REMOVE_HOSTS_DESC") %=$c->l("ln_REMOVE_HOSTS_DESC")
<br> <br>
<span class=""> <span class="">
%= $c->l("ln_REMOVE_HOSTS_LABEL") %= $c->l("ln_REMOVE_HOSTS_LABEL")
</span> </span>
<span class=""> <span class="">
%=check_box deletehost=>1, checked=>1 %=check_box deletehost=>1, checked=>1
</span> </span>
<br><br> <br><br>
%} %}
%= hidden_field localnetwork=>$localnetwork %= hidden_field localnetwork=>$localnetwork
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%end %end
</div> </div>

View File

@ -2,107 +2,107 @@
% my $btn = l('ln_LOCALNETWORK_ADD'); % my $btn = l('ln_LOCALNETWORK_ADD');
%= form_for '/localnetworksa' => (method => 'POST') => begin %= form_for '/localnetworksa' => (method => 'POST') => begin
% my $retref= $c->stash("ret"); % my $retref= $c->stash("ret");
% my %ret; % my %ret;
% unless (length($retref)) {%ret = (ret=>"");} % unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;} % else {%ret = %$retref;}
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper "Ret:".$ret{ret}; %= dumper "Ret:".$ret{ret};
</p> </p>
%} %}
% my @vars = split(",",$ret{vars}); % my @vars = split(",",$ret{vars});
% my $var1 = @vars[0]; % my $var1 = @vars[0];
% my $var2 = @vars[1]; % my $var2 = @vars[1];
% my $var3 = @vars[2]; % my $var3 = @vars[2];
% my $var4 = @vars[3]; % my $var4 = @vars[3];
% my $var5 = @vars[4]; % my $var5 = @vars[4];
% my $var6 = @vars[5]; % my $var6 = @vars[5];
% my $var7 = @vars[6]; % my $var7 = @vars[6];
%if ($ret{ret} eq "") { %if ($ret{ret} eq "") {
%=l "ln_FIRSTPAGE_DESC" %=l "ln_FIRSTPAGE_DESC"
%} elsif (index($ret{ret},"SUCCESS") != -1) { %} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class=""> <div class="">
<h2> Operation Status Report</h2> <h2> Operation Status Report</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7)); %= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div> </div>
%} else { %} else {
<div class=""> <div class="">
<h2> Operation Status Report - Error</h2> <h2> Operation Status Report - Error</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7)); %= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div> </div>
%} %}
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
% end % end
<br> <br>
% my $numlocalnetworks = @$localnetworks; % my $numlocalnetworks = @$localnetworks;
% if ($numlocalnetworks == 0){ % if ($numlocalnetworks == 0){
%=l 'ln_LOCAL_NETWORK_NONE' %=l 'ln_LOCAL_NETWORK_NONE'
% } else { % } else {
<br> <br>
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
<th class=""> <th class="">
%=l 'NETWORK' %=l 'NETWORK'
</th> </th>
<th class=""> <th class="">
%=l 'ln_SUBNET_MASK' %=l 'ln_SUBNET_MASK'
</th> </th>
<th class=""> <th class="">
%=l 'ln_NUMBER_OF_HOSTS' %=l 'ln_NUMBER_OF_HOSTS'
</th> </th>
<th class=""> <th class="">
%=l 'ROUTER' %=l 'ROUTER'
</th> </th>
<th class=""> <th class="">
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
% foreach my $localnetwork (@$localnetworks ) % foreach my $localnetwork (@$localnetworks )
% { % {
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') ); % my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
% my $removable = $localnetwork->prop('Removable') || "yes"; % my $removable = $localnetwork->prop('Removable') || "yes";
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no"; % my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
% if ( $system eq "yes" ) { $removable = "no"; } % if ( $system eq "yes" ) { $removable = "no"; }
<tr> <tr>
%= t td => (class => "") => $localnetwork->key %= t td => (class => "") => $localnetwork->key
%= t td => (class => "") => $localnetwork->prop('Mask') %= t td => (class => "") => $localnetwork->prop('Mask')
%= t td => (class => "") => $num_hosts %= t td => (class => "") => $num_hosts
%= t td => (class => "") => $localnetwork->prop('Router') %= t td => (class => "") => $localnetwork->prop('Router')
%my $actionRemove = '&nbsp;'; %my $actionRemove = '&nbsp;';
%if ($removable eq "yes") { %if ($removable eq "yes") {
%my $remove_text = l('REMOVE'); # Localized text %my $remove_text = l('REMOVE'); # Localized text
%my $local_network_entry = $localnetwork->key; %my $local_network_entry = $localnetwork->key;
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%$actionRemove = qq{ %$actionRemove = qq{
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry"> % <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
% <button type='button' class="" title='$remove_text' > % <button type='button' class="" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>
%}; %};
% } % }
<td class=""><%= $c->render_to_string(inline => $actionRemove) %></td> <td class=""><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr> </tr>
% } % }
</tbody> </tbody>
</table> </table>
%= hidden_field 'trt' => $ln_datas->{trt} %= hidden_field 'trt' => $ln_datas->{trt}
%} %}
</div> </div>

View File

@ -2,162 +2,162 @@
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33 %# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $nut_data %= dumper $nut_data
</pre> </pre>
% } % }
% my $btn = l('nut_APPLY'); % my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin %= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt'; % param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt} %= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<h2 class=""><%=l('nut_Manage_Nutups-config_settings:')%></h2> <h2 class=""><%=l('nut_Manage_Nutups-config_settings:')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('nut_Nut_status') %=l('nut_Nut_status')
</span> </span>
<span class=""> <span class="">
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']]; %# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
%# param 'status' => $nut_data->{status} unless param 'status'; %# param 'status' => $nut_data->{status} unless param 'status';
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status}); % my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status});
%= select_field 'status' => @status_options, class => "", id => "" %= select_field 'status' => @status_options, class => "", id => ""
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_Nut_mode') %=l('nut_Nut_mode')
</span> </span>
<span class=""> <span class="">
% my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']]; % my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']];
% param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode'; % param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode';
%= select_field 'Nutmode' => @Nutmode_options, class => "", id => "" %= select_field 'Nutmode' => @Nutmode_options, class => "", id => ""
<br> <br>
</span> </span>
</p> </p>
<div class=""> <div class="">
<h2 class=""><%=l('nut_if_Net_Server')%></h2> <h2 class=""><%=l('nut_if_Net_Server')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('nut_MasterUPS_UPSNAME@IP') %=l('nut_MasterUPS_UPSNAME@IP')
</span> </span>
<span class=""> <span class="">
% param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name'; % param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name';
%= text_field 'MasterUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'ups@localhost' %= text_field 'MasterUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'ups@localhost'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_MasterUPS_Password') %=l('nut_MasterUPS_Password')
</span> </span>
<span class=""> <span class="">
% param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password'; % param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password';
%=password_field 'MasterUPS_Password', class => "" %=password_field 'MasterUPS_Password', class => ""
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_UPS_Model') %=l('nut_UPS_Model')
</span> </span>
<span class=""> <span class="">
% my @UPS_Model_options = $c->get_model_options(); % my @UPS_Model_options = $c->get_model_options();
% param 'UPS_Model' => $nut_data->{UPS_Model} unless param 'UPS_Model'; % param 'UPS_Model' => $nut_data->{UPS_Model} unless param 'UPS_Model';
%= select_field 'UPS_Model' => \@UPS_Model_options, class => "", id => "" %= select_field 'UPS_Model' => \@UPS_Model_options, class => "", id => ""
<br> <br>
</span></p> </span></p>
<p><span class=""> <p><span class="">
%=l('nut_UPS_Device') %=l('nut_UPS_Device')
</span><span class=""> </span><span class="">
% param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device'; % param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device';
%= text_field 'UPS_Device', size => '50', class => "" , pattern=>'.*' , placeholder=>'auto (for usb)' %= text_field 'UPS_Device', size => '50', class => "" , pattern=>'.*' , placeholder=>'auto (for usb)'
<br></span></p> <br></span></p>
</div> </div>
<div class=""> <div class="">
<h2 class=""><%=l('nut_if_Net_Client')%></h2> <h2 class=""><%=l('nut_if_Net_Client')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('nut_SlaveUPS_UPSNAME@IP') %=l('nut_SlaveUPS_UPSNAME@IP')
</span> </span>
<span class=""> <span class="">
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name'; % param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
%= text_field 'SlaveUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'upsname@IP' %= text_field 'SlaveUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'upsname@IP'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_SlaveUPS_Password') %=l('nut_SlaveUPS_Password')
</span> </span>
<span class=""> <span class="">
% param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password'; % param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password';
%=password_field 'SlaveUPS_Password', class => "" %=password_field 'SlaveUPS_Password', class => ""
</span> </span>
</p> </p>
</div> </div>
<div class=""> <div class="">
` <h2 class=""><%=l('nut_if_genericups')%></h2> ` <h2 class=""><%=l('nut_if_genericups')%></h2>
<p> <p>
<span class=""> <span class="">
%=l('nut_UPS_Generic_Type') %=l('nut_UPS_Generic_Type')
</span> </span>
<span class=""> <span class="">
% param 'UPS_gen_Type' => $nut_data->{UPS_gen_Type} unless param 'UPS_gen_Type'; % param 'UPS_gen_Type' => $nut_data->{UPS_gen_Type} unless param 'UPS_gen_Type';
%= text_field 'UPS_gen_Type', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Type' %= text_field 'UPS_gen_Type', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Type'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_UPS_Generic_Manufacturer') %=l('nut_UPS_Generic_Manufacturer')
</span> </span>
<span class=""> <span class="">
% param 'UPS_gen_Mfr' => $nut_data->{UPS_gen_Mfr} unless param 'UPS_gen_Mfr'; % param 'UPS_gen_Mfr' => $nut_data->{UPS_gen_Mfr} unless param 'UPS_gen_Mfr';
%= text_field 'UPS_gen_Mfr', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Mfr' %= text_field 'UPS_gen_Mfr', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Mfr'
<br> <br>
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l('nut_UPS_Generic_Model') %=l('nut_UPS_Generic_Model')
</span> </span>
<span class=""> <span class="">
% param 'UPS_gen_Model' => $nut_data->{UPS_gen_Model} unless param 'UPS_gen_Model'; % param 'UPS_gen_Model' => $nut_data->{UPS_gen_Model} unless param 'UPS_gen_Model';
%= text_field 'UPS_gen_Model', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Model' %= text_field 'UPS_gen_Model', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Model'
<br> <br>
</span> </span>
</p> </p>
` </div> ` </div>
<span class=""> <span class="">
%= submit_button l('nut_Save'), class => "" %= submit_button l('nut_Save'), class => ""
</span> </span>
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -2,55 +2,55 @@
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33 %# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
%# %#
<div> <div>
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $nut_data %= dumper $nut_data
</pre> </pre>
% } % }
% my $btn = l('nut_APPLY'); % my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin %= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt'; % param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt} %= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here. %# Inputs etc in here.
<div class=""> <div class="">
<a href='nutupsd?trt=CONFIG' class=""> <a href='nutupsd?trt=CONFIG' class="">
%= l('nut_Configure_NutUPS') %= l('nut_Configure_NutUPS')
</a> </a>
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1' %#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
</div> </div>
<h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2> <h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2>
<p class=""> <p class="">
%=l('nut_Descriptive_paragraph') %=l('nut_Descriptive_paragraph')
</p> </p>
<!-- <!--
<span class=""> <span class="">
%=l('nut_Status_(from_upsc)') %=l('nut_Status_(from_upsc)')
</span> </span>
<span class=""> <span class="">
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus'; % param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true' %= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
</span> </span>
<br> <br>
--> -->
%= include 'partials/_nut_UPS_STATUS' %= include 'partials/_nut_UPS_STATUS'
%# Probably finally by a submit. %# Probably finally by a submit.
%end %end
</div> </div>

View File

@ -1,45 +1,45 @@
<h1>UPS Status</h1> <h1>UPS Status</h1>
%= stylesheet '/css/nut_ups-status-page.css' %= stylesheet '/css/nut_ups-status-page.css'
<div class="container-md"> <div class="container-md">
<div> <div>
<h2>Device Information</h2> <h2>Device Information</h2>
<table class="table table-bordered"> <table class="table table-bordered">
<tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr> <tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr>
<tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr> <tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr>
<tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr> <tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr> <tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
</table> </table>
</div> </div>
<div> <div>
<h2>Battery Status</h2> <h2>Battery Status</h2>
<table class="table table-bordered"> <table class="table table-bordered">
<tr><td>Charge:</td><td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td></tr> <tr><td>Charge:</td><td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td></tr>
<tr><td>Runtime:</td><td><%= sprintf("%.2f", $nut_data->{'ups_data'}->{'battery.runtime'} / 60) %> minutes</td></tr> <tr><td>Runtime:</td><td><%= sprintf("%.2f", $nut_data->{'ups_data'}->{'battery.runtime'} / 60) %> minutes</td></tr>
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'battery.voltage'} %>V</td></tr> <tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'battery.voltage'} %>V</td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'battery.type'} %></td></tr> <tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'battery.type'} %></td></tr>
</table> </table>
</div> </div>
<div> <div>
<h2>Input Power</h2> <h2>Input Power</h2>
<table class="table table-bordered"> <table class="table table-bordered">
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr> <tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr>
<tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr> <tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr>
<tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr> <tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr>
<tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr> <tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr>
<tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr> <tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
</table> </table>
</div> </div>
<div> <div>
<h2>UPS Status</h2> <h2>UPS Status</h2>
<table class="table table-bordered"> <table class="table table-bordered">
<tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr> <tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr>
<tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr> <tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr>
<tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr> <tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr>
<tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr> <tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr>
<tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr> <tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
</table> </table>
</div> </div>
</div> </div>

View File

@ -1,95 +1,95 @@
<div> <div>
% my $retref= $c->stash("ret"); % my $retref= $c->stash("ret");
% my %ret; % my %ret;
% unless (length($retref)) {%ret = (ret=>"");} % unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;} % else {%ret = %$retref;}
% my @vars = split(",",$ret{vars}); % my @vars = split(",",$ret{vars});
% my $var1 = @vars[0]; % my $var1 = @vars[0];
% my $var2 = @vars[1]; % my $var2 = @vars[1];
% my $var3 = @vars[2]; % my $var3 = @vars[2];
% my $var4 = @vars[3]; % my $var4 = @vars[3];
% my $var5 = @vars[4]; % my $var5 = @vars[4];
% my $var6 = @vars[5]; % my $var6 = @vars[5];
<br> <br>
%if ($ret{'ret'} eq "") { %if ($ret{'ret'} eq "") {
%} elsif (index($ret{ret},"SUCCESS") != -1) { %} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class=""> <div class="">
<!--<h2> Operation Status Report</h2>--> <!--<h2> Operation Status Report</h2>-->
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} else { %} else {
<div class=""> <div class="">
<!--<h2> Operation Status Report - Error</h2>--> <!--<h2> Operation Status Report - Error</h2>-->
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} %}
<br /> <br />
% my $btn = l('ADD'); % my $btn = l('ADD');
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper $c->current_route %= dumper $c->current_route
%= dumper $c->stash("ret") %= dumper $c->stash("ret")
</p> </p>
% } % }
%= form_for '/portforwardingb' => (method => 'POST') => begin %= form_for '/portforwardingb' => (method => 'POST') => begin
<h2> <h2>
%=l "pf_CREATE_RULE" %=l "pf_CREATE_RULE"
</h2> </h2>
<p> <p>
%=l "pf_SUMMARY_ADD_DESC" %=l "pf_SUMMARY_ADD_DESC"
</p><br> </p><br>
<span class=""> <span class="">
%=l "pf_LABEL_PROTOCOL" %=l "pf_LABEL_PROTOCOL"
</span> </span>
<span class=""> <span class="">
%=select_field 'proto'=>["TCP","UDP"] %=select_field 'proto'=>["TCP","UDP"]
</span><br><br> </span><br><br>
<span class=""> <span class="">
%=l "pf_LABEL_SOURCE_PORT" %=l "pf_LABEL_SOURCE_PORT"
</span> </span>
<span class=""> <span class="">
%=text_field 'sport' %=text_field 'sport'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_LABEL_DESTINATION_PORT" %=l "pf_LABEL_DESTINATION_PORT"
</span> </span>
<span class=""> <span class="">
%=text_field 'dport' %=text_field 'dport'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_LABEL_DESTINATION_HOST" %=l "pf_LABEL_DESTINATION_HOST"
</span> </span>
<span class=""> <span class="">
%=text_field 'dhost' %=text_field 'dhost'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_ALLOW_HOSTS" %=l "pf_ALLOW_HOSTS"
</span> </span>
<span class=""> <span class="">
%=text_field 'allow' %=text_field 'allow'
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_RULE_COMMENT" %=l "pf_RULE_COMMENT"
</span> </span>
<span class=""> <span class="">
%=text_field 'cmmnt' %=text_field 'cmmnt'
</span> </span>
<br><br> <br><br>
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%end %end
</div> </div>

View File

@ -9,65 +9,65 @@
% my $allow = $pf_datas->{allow}; % my $allow = $pf_datas->{allow};
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper $c->current_route %= dumper $c->current_route
%= dumper $c->stash("ret") %= dumper $c->stash("ret")
%= dumper %$pf_datas %= dumper %$pf_datas
</p> </p>
% } % }
%= form_for '/portforwardinge' => (method => 'POST') => begin %= form_for '/portforwardinge' => (method => 'POST') => begin
<br> <br>
%= l "pf_SUMMARY_REMOVE_DESC" %= l "pf_SUMMARY_REMOVE_DESC"
</p><br> </p><br>
<span class=""> <span class="">
%=l "pf_LABEL_PROTOCOL" %=l "pf_LABEL_PROTOCOL"
</span> </span>
<span class=""> <span class="">
%=$proto %=$proto
</span><br><br> </span><br><br>
<span class=""> <span class="">
%=l "pf_LABEL_SOURCE_PORT" %=l "pf_LABEL_SOURCE_PORT"
</span> </span>
<span class=""> <span class="">
%=$sport %=$sport
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_LABEL_DESTINATION_HOST" %=l "pf_LABEL_DESTINATION_HOST"
</span> </span>
<span class=""> <span class="">
%=$dport %=$dport
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_LABEL_DESTINATION_PORT" %=l "pf_LABEL_DESTINATION_PORT"
</span> </span>
<span class=""> <span class="">
%=$dhost %=$dhost
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_RULE_COMMENT" %=l "pf_RULE_COMMENT"
</span> </span>
<span class=""> <span class="">
%=$cmmnt %=$cmmnt
</span> </span>
<br><br> <br><br>
<span class=""> <span class="">
%=l "pf_ALLOW_HOSTS" %=l "pf_ALLOW_HOSTS"
</span> </span>
<span class=""> <span class="">
%=$allow %=$allow
</span> </span>
<br><br> <br><br>
%#} %#}
%= hidden_field sport=>$sport %= hidden_field sport=>$sport
%= hidden_field proto=>$proto %= hidden_field proto=>$proto
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%end %end
</div> </div>

View File

@ -2,119 +2,119 @@
% my $btn = l('pf_CREATE_RULE'); % my $btn = l('pf_CREATE_RULE');
%= form_for '/portforwardinga' => (method => 'POST') => begin %= form_for '/portforwardinga' => (method => 'POST') => begin
% my $retref= $c->stash("ret"); % my $retref= $c->stash("ret");
% my %ret; % my %ret;
% unless (length($retref)) {%ret = (ret=>"");} % unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;} % else {%ret = %$retref;}
% my $numtcpforwards = @$tcpforwards; % my $numtcpforwards = @$tcpforwards;
% my $numudpforwards = @$udpforwards; % my $numudpforwards = @$udpforwards;
% my @vars = split(",",$ret{vars}); % my @vars = split(",",$ret{vars});
% my $var1 = @vars[0]; % my $var1 = @vars[0];
% my $var2 = @vars[1]; % my $var2 = @vars[1];
% my $var3 = @vars[2]; % my $var3 = @vars[2];
% my $var4 = @vars[3]; % my $var4 = @vars[3];
% my $var5 = @vars[4]; % my $var5 = @vars[4];
% my $var6 = @vars[5]; % my $var6 = @vars[5];
%if ($ret{ret} eq "") { %if ($ret{ret} eq "") {
%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION')); %= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION'));
%} elsif (index($ret{ret},"SUCCESS") != -1) { %} elsif (index($ret{ret},"SUCCESS") != -1) {
<br> <br>
<div class=""> <div class="">
<!--<h2> Operation Status Report</h2>--> <!--<h2> Operation Status Report</h2>-->
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} else { %} else {
<br> <br>
<div class=""> <div class="">
<!--<h2> Operation Status Report - Error</h2>--> <!--<h2> Operation Status Report - Error</h2>-->
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6); %= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
</div> </div>
%} %}
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
% end % end
% if ($empty){ % if ($empty){
<br> <br>
%=l 'pf_NO_FORWARDS' %=l 'pf_NO_FORWARDS'
% } else { % } else {
<br> <br>
%=l 'pf_SHOW_FORWARDS' %=l 'pf_SHOW_FORWARDS'
<br><br /> <br><br />
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
<th class=""> <th class="">
%=l 'pf_LABEL_PROTOCOL' %=l 'pf_LABEL_PROTOCOL'
</th> </th>
<th class=""> <th class="">
%=l 'pf_LABEL_SOURCE_PORT' %=l 'pf_LABEL_SOURCE_PORT'
</th> </th>
<th class=""> <th class="">
%=l 'pf_LABEL_DESTINATION_HOST' %=l 'pf_LABEL_DESTINATION_HOST'
</th> </th>
<th class=""> <th class="">
%=l 'pf_LABEL_DESTINATION_PORT' %=l 'pf_LABEL_DESTINATION_PORT'
</th> </th>
<th class=""> <th class="">
%=l 'pf_ALLOW_HOSTS' %=l 'pf_ALLOW_HOSTS'
</th> </th>
<th class=""> <th class="">
%=l 'pf_RULE_COMMENT' %=l 'pf_RULE_COMMENT'
</th> </th>
<th class="" '> <th class="" '>
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
% my %forwards = (); % my %forwards = ();
% $forwards{TCP} = $tcpforwards; % $forwards{TCP} = $tcpforwards;
% $forwards{UDP} = $udpforwards; % $forwards{UDP} = $udpforwards;
% foreach my $proto (sort keys %forwards) { % foreach my $proto (sort keys %forwards) {
% if (@{ $forwards{$proto} }) { % if (@{ $forwards{$proto} }) {
% foreach my $entry (@{ $forwards{$proto} }) { % foreach my $entry (@{ $forwards{$proto} }) {
<tr> <tr>
% my $sport = $entry->key; % my $sport = $entry->key;
% my $dhost = $entry->prop('DestHost'); % my $dhost = $entry->prop('DestHost');
% my $dport = $entry->prop('DestPort') || ''; % my $dport = $entry->prop('DestPort') || '';
% my $cmmnt = $entry->prop('Comment') || ''; % my $cmmnt = $entry->prop('Comment') || '';
% my $allow = $entry->prop('AllowHosts') || ''; % my $allow = $entry->prop('AllowHosts') || '';
%= t td => (class => "") => $proto %= t td => (class => "") => $proto
%= t td => (class => "") => $sport %= t td => (class => "") => $sport
%= t td => (class => "") => $dhost %= t td => (class => "") => $dhost
%= t td => (class => "") => $dport %= t td => (class => "") => $dport
%= t td => (class => "") => $allow %= t td => (class => "") => $allow
%= t td => (class => "") => $cmmnt %= t td => (class => "") => $cmmnt
<td class=""> <td class="">
%my $remove_text = l('REMOVE'); # Localized text %my $remove_text = l('REMOVE'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $actionRemove = qq{ %my $actionRemove = qq{
% <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto"> % <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto">
% <button type='button' class="" title='$remove_text' > % <button type='button' class="" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>
%}; %};
<%= $c->render_to_string(inline => $actionRemove) %> <%= $c->render_to_string(inline => $actionRemove) %>
</td> </td>
</tr> </tr>
% } % }
% } % }
%} %}
%} %}
</tbody> </tbody>
</table> </table>
%= hidden_field 'trt' => $pf_datas->{trt} %= hidden_field 'trt' => $pf_datas->{trt}
</div> </div>

View File

@ -1,50 +1,50 @@
<div> <div>
% my $btn = l('ADD'); % my $btn = l('ADD');
%= form_for '/printers2' => (method => 'POST') => begin %= form_for '/printers2' => (method => 'POST') => begin
<p> <p>
<h2> <h2>
%=l 'prt_CREATE_NEW_PRINTER' %=l 'prt_CREATE_NEW_PRINTER'
</h2> </h2>
<br> <br>
%=l 'prt_CREATE_NEW_DESC' %=l 'prt_CREATE_NEW_DESC'
</p> </p>
<br> <br>
<p> <p>
<span class=""> <span class="">
%=l 'prt_PRINTER_NAME', class => "" %=l 'prt_PRINTER_NAME', class => ""
</span> </span>
<span class=""> <span class="">
%= text_field 'Name', class => "" %= text_field 'Name', class => ""
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l 'DESCRIPTION_BRIEF', class => "" %=l 'DESCRIPTION_BRIEF', class => ""
</span> </span>
<span class=""> <span class="">
%= text_field 'Description', class => "" %= text_field 'Description', class => ""
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l 'LOCATION', class => "" %=l 'LOCATION', class => ""
</span> </span>
<span class=""> <span class="">
%= select_field 'Location' => $c->printerLocation_list(), class => "" %= select_field 'Location' => $c->printerLocation_list(), class => ""
</span> </span>
</p> </p>
<p> <p>
<br><br> <br><br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%= hidden_field 'trt' => $prt_datas->{trt} %= hidden_field 'trt' => $prt_datas->{trt}
% end % end

View File

@ -1,26 +1,26 @@
<div> <div>
% my $btn = l('REMOVE'); % my $btn = l('REMOVE');
%= form_for '/printers2' => (method => 'POST') => begin %= form_for '/printers2' => (method => 'POST') => begin
<p> <p>
<h2> <h2>
%=l 'prt_REMOVE_PRINTER' %=l 'prt_REMOVE_PRINTER'
</h2> </h2>
<br><br> <br><br>
<%=l 'prt_ABOUT_TO_REMOVE'%> <%=$prt_datas->{printer}%> <%=l 'prt_ABOUT_TO_REMOVE'%> <%=$prt_datas->{printer}%>
(<%=$prt_datas->{description}%>) (<%=$prt_datas->{description}%>)
<br> <br>
%=l 'prt_SPOOL_FILE_WARNING' %=l 'prt_SPOOL_FILE_WARNING'
<br> <br>
%=l 'prt_ARE_YOU_SURE' %=l 'prt_ARE_YOU_SURE'
</p> </p>
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%= hidden_field 'trt' => $prt_datas->{trt} %= hidden_field 'trt' => $prt_datas->{trt}
%= hidden_field 'printer' => $prt_datas->{printer} %= hidden_field 'printer' => $prt_datas->{printer}

View File

@ -6,45 +6,45 @@
%= hidden_field 'trt' => 'ADD' %= hidden_field 'trt' => 'ADD'
<p> <p>
<br> <br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
% end % end
<p> <p>
<h2> <h2>
%=l 'prt_CURRENT_LIST' %=l 'prt_CURRENT_LIST'
</h2> </h2>
<br><br> <br><br>
% my $numPrinters = @$printerDrivers; % my $numPrinters = @$printerDrivers;
% if ($numPrinters == 0){ % if ($numPrinters == 0){
%=l 'prt_NO_PRINTERS' %=l 'prt_NO_PRINTERS'
% } else { % } else {
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
<th class=""> <th class="">
%=l 'NAME' %=l 'NAME'
</th> </th>
<th class=""> <th class="">
%=l 'DESCRIPTION' %=l 'DESCRIPTION'
</th> </th>
<th class=""> <th class="">
%=l 'LOCATION' %=l 'LOCATION'
</th> </th>
<th class=""> <th class="">
%=l 'prt_REMOTE_ADDRESS' %=l 'prt_REMOTE_ADDRESS'
</th> </th>
<th class=""> <th class="">
%=l 'prt_REMOTE_NAME' %=l 'prt_REMOTE_NAME'
</th> </th>
<th class=""> <th class="">
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
% foreach my $printer (@$printerDrivers) % foreach my $printer (@$printerDrivers)
% { % {
% my $address = ($printer->prop('Location') eq 'remote') % my $address = ($printer->prop('Location') eq 'remote')
@ -58,25 +58,25 @@
%= t td => (class => "") => $printer->prop('Location') %= t td => (class => "") => $printer->prop('Location')
%= t td => (class => "") => $address %= t td => (class => "") => $address
%= t td => (class => "") => $remoteName %= t td => (class => "") => $remoteName
<td class=""> <td class="">
%my $remove_text = l('REMOVE'); # Localized text %my $remove_text = l('REMOVE'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $printer_name = $printer->key; %my $printer_name = $printer->key;
%my $actionRemove = qq{ %my $actionRemove = qq{
% <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name"> % <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name">
% <button type='button' class="" title='$remove_text' > % <button type='button' class="" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>
%}; %};
<%= $c->render_to_string(inline => $actionRemove) %> <%= $c->render_to_string(inline => $actionRemove) %>
</td> </td>
</tr> </tr>
% } % }
</tbody> </tbody>
</table> </table>
<%} %> <%} %>
</p> </p>
</div> </div>

View File

@ -1,44 +1,44 @@
<div> <div>
% my $btn = l('ADD'); % my $btn = l('ADD');
%= form_for '/printers2' => (method => 'POST') => begin %= form_for '/printers2' => (method => 'POST') => begin
<p> <p>
<h2> <h2>
%=l 'prt_CREATE_NETWORK_PRINTER' %=l 'prt_CREATE_NETWORK_PRINTER'
</h2> </h2>
<br><br> <br><br>
%=l 'prt_CREATE_NETWORK_DESC' %=l 'prt_CREATE_NETWORK_DESC'
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l 'prt_HOSTNAME_OR_IP', class => "" %=l 'prt_HOSTNAME_OR_IP', class => ""
</span> </span>
<span class=""> <span class="">
%= text_field 'Address', class => "" %= text_field 'Address', class => ""
</span> </span>
</p> </p>
<p> <p>
<span class=""> <span class="">
%=l 'prt_REMOTE_NAME_DESC', class => "" %=l 'prt_REMOTE_NAME_DESC', class => ""
</span> </span>
<span class=""> <span class="">
%= text_field 'RemoteName' => 'raw', class => "" %= text_field 'RemoteName' => 'raw', class => ""
</span> </span>
</p> </p>
<p> <p>
<br><br> <br><br>
%= submit_button "$btn", class => "" %= submit_button "$btn", class => ""
</p> </p>
%= hidden_field 'trt' => $prt_datas->{trt} %= hidden_field 'trt' => $prt_datas->{trt}
%= hidden_field 'Name' => $prt_datas->{name} %= hidden_field 'Name' => $prt_datas->{name}
%= hidden_field 'Description' => $prt_datas->{description} %= hidden_field 'Description' => $prt_datas->{description}
%= hidden_field 'Location' => $prt_datas->{location} %= hidden_field 'Location' => $prt_datas->{location}
% end % end

View File

@ -1,15 +1,15 @@
<p><h2> <p><h2>
%=l 'rma_TITLE_PPTP' %=l 'rma_TITLE_PPTP'
</h2><br> </h2><br>
%=l 'rma_DESC_PPTP' %=l 'rma_DESC_PPTP'
<br> <br>
<span class=""> <span class="">
%=l 'rma_LABEL_PPTP' %=l 'rma_LABEL_PPTP'
</span> </span>
<span class=""> <span class="">
% param 'PptpSessions' => $c->get_pptp_sessions unless param 'PptpSessions'; % param 'PptpSessions' => $c->get_pptp_sessions unless param 'PptpSessions';
%= text_field 'PptpSessions' => $c->get_pptp_sessions(), class => "" %= text_field 'PptpSessions' => $c->get_pptp_sessions(), class => ""
</span> </span>
</p> </p>
<!--<hr class="" />--> <!--<hr class="" />-->

View File

@ -1,6 +1,6 @@
%define name smeserver-manager-AdminLTE %define name smeserver-manager-AdminLTE
%define version 11.0.0 %define version 11.0.0
%define release 16 %define release 17
Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2 Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2
Name: %{name} Name: %{name}
Version: %{version} Version: %{version}
@ -26,6 +26,10 @@ AdminLTE is an html framework for admin consoles
wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
%changelog %changelog
* Thu May 01 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-17.sme
- Convert tabs to spaces for consistency
- Fix group update container
* Thu May 01 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-16.sme * Thu May 01 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-16.sme
- Fix user add error - Fix user add error
- Update group templates - Update group templates