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

View File

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

View File

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

View File

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

View File

@ -15,13 +15,13 @@
const password = document.querySelector('#id_password');
if (( togglePassword ) && ( password )) {
togglePassword.addEventListener('click', function (e) {
// toggle the type attribute
const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
password.setAttribute('type', type);
// toggle the eye slash icon
// this.classList.toggle('eye-slash');
})
togglePassword.addEventListener('click', function (e) {
// toggle the type attribute
const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
password.setAttribute('type', type);
// toggle the eye slash icon
// this.classList.toggle('eye-slash');
})
}
});
@ -36,34 +36,34 @@
%= javascript begin
$(document).ready(function() {
$('#tognav').click(function() {
//alert('click1:'+window.localStorage.getItem('menunav'));
window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
//alert('click2:'+window.localStorage.getItem('menunav'));
$('#menunav').toggle({ duration: 300 });
});
$('#tognav').click(function() {
//alert('click1:'+window.localStorage.getItem('menunav'));
window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
//alert('click2:'+window.localStorage.getItem('menunav'));
$('#menunav').toggle({ duration: 300 });
});
$('#toguser').click(function() {
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
$('#menuuser').toggle({ duration: 300 });
});
$('#toguser').click(function() {
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
$('#menuuser').toggle({ duration: 300 });
});
$('#togadm').click(function() {
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
$('#menuadm').toggle({ duration: 300 });
});
$('#togadm').click(function() {
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
$('#menuadm').toggle({ duration: 300 });
});
$('.section-title').click(function() {
var $section = $(this).parent().next('div');
if(!$section.length){
return false;
}
let localStorageTag = "admSection-"+this.innerHTML;
var jqObj = $($section);
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
$section.toggle({ duration: 600 });
})
$('.section-title').click(function() {
var $section = $(this).parent().next('div');
if(!$section.length){
return false;
}
let localStorageTag = "admSection-"+this.innerHTML;
var jqObj = $($section);
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
$section.toggle({ duration: 600 });
})
});
% end
@ -73,36 +73,36 @@
% content_for 'js_swapClass' => begin
%= javascript begin
(function($) {
$.fn.swapClass = function(class1, class2) {
this.each(function() {
var $elem = $(this);
if ($elem.hasClass(class1)) {
$elem.removeClass(class1).addClass(class2);
}
else if ($elem.hasClass(class2)) {
$elem.removeClass(class2).addClass(class1);
}
});
};
})(jQuery);
(function($) {
$.fn.swapClass = function(class1, class2) {
this.each(function() {
var $elem = $(this);
if ($elem.hasClass(class1)) {
$elem.removeClass(class1).addClass(class2);
}
else if ($elem.hasClass(class2)) {
$elem.removeClass(class2).addClass(class1);
}
});
};
})(jQuery);
$(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');
$.each(menus, function() {
if ( $(this).attr('href') == pathname ) {
$(this).swapClass('item', 'item-current');
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
}
})
var menus = $('a.item');
$.each(menus, function() {
if ( $(this).attr('href') == pathname ) {
$(this).swapClass('item', 'item-current');
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
}
})
});
});
% 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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<h1 class=""><%=l('lets_Check_all_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class="">
%=l('lets_All_domains_check_result')
</span>
<span class="">
% param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck';
%= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span><br>
<span class="">
<h1 class=""><%=l('lets_Check_all_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class="">
%=l('lets_All_domains_check_result')
</span>
<span class="">
% param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck';
%= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span><br>
<span class="">
%my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{
% <a href="letsencryptd">
@ -40,8 +40,8 @@
% </a>
%};
<%= $c->render_to_string(inline => $actionBack) %>
</span>
</span>
%# Probably finally by a submit.
%end
%# Probably finally by a submit.
%end
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class="">
%=l('lets_Enabled_domains_check_result')
</span>
<span class="">
% param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck';
%= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span>
<br>
<h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1>
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
<span class="">
%=l('lets_Enabled_domains_check_result')
</span>
<span class="">
% param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck';
%= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span>
<br>
<span class="">
<span class="">
%my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{
% <a href="letsencryptd">
@ -41,9 +41,9 @@
% </a>
%};
<%= $c->render_to_string(inline => $actionBack) %>
</span>
%# Probably finally by a submit.
%end
</span>
%# Probably finally by a submit.
%end
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<h1 class=""><%=l('lets_Check_just_one_domain')%></h1>
<h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2>
<p><span class="">
%=l('lets_Domains_name')
</span>
<span class="">
% param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck';
%= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true'
<br>
</span>
</p>
<span class="">
%=l('lets_One_domain_check_result')
</span>
<span class="">
% param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck';
%= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span>
<br>
<span class="">
<h1 class=""><%=l('lets_Check_just_one_domain')%></h1>
<h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2>
<p><span class="">
%=l('lets_Domains_name')
</span>
<span class="">
% param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck';
%= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true'
<br>
</span>
</p>
<span class="">
%=l('lets_One_domain_check_result')
</span>
<span class="">
% param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck';
%= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
</span>
<br>
<span class="">
%my $back_text = l('lets_Back'); # Localized text
%my $actionBack = qq{
% <a href="letsencryptd">
@ -51,9 +51,9 @@
% </a>
%};
<%= $c->render_to_string(inline => $actionBack) %>
</span>
%# Probably finally by a submit.
%end
</span>
%# Probably finally by a submit.
%end
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<div>
<div>
<a href='letsencryptd?trt=PARAMS' class="">
%= l('lets_CONFIG')
</a>
%#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2'
<a href='letsencryptd?trt=CHECKALLDOMAINS' class="">
%= l('lets_CHECK_ALL_DOMAINS')
</a>
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="">
%= l('lets_CHECK_ALL_ENABLED_DOMAINS')
</a>
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
</div>
<h2 class=""><%=l('lets_For_this_Server')%></h2>
<p>
<span class="">
%=l('lets_Internal_IP')
</span>
<span class="">
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_External_Interface_IP')
</span>
<span class="">
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Internet_IP')
</span>
<span class="">
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
<br>
</span>
</p>
<h2 class=""><%=l('lets_Current_certificate_details')%></h2>
<p>
<span class="">
%=l('lets_Issuer')
</span>
<span class="">
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Expiry')
</span>
<span class="">
% param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry';
%= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Not_Before')
</span>
<a href='letsencryptd?trt=PARAMS' class="">
%= l('lets_CONFIG')
</a>
%#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2'
<a href='letsencryptd?trt=CHECKALLDOMAINS' class="">
%= l('lets_CHECK_ALL_DOMAINS')
</a>
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="">
%= l('lets_CHECK_ALL_ENABLED_DOMAINS')
</a>
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
</div>
<h2 class=""><%=l('lets_For_this_Server')%></h2>
<p>
<span class="">
%=l('lets_Internal_IP')
</span>
<span class="">
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_External_Interface_IP')
</span>
<span class="">
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Internet_IP')
</span>
<span class="">
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
<br>
</span>
</p>
<h2 class=""><%=l('lets_Current_certificate_details')%></h2>
<p>
<span class="">
%=l('lets_Issuer')
</span>
<span class="">
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Expiry')
</span>
<span class="">
% param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry';
%= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true'
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_Not_Before')
</span>
<span class="">
% param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore';
%= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
<br>
</span>
</p>
<h2 class=""><%=l('lets_List_of_Domains_and_Hosts')%></h2>
<br />
<table class="table table-bordered">
<thead class="">
<tr table-head-row>
<th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th>
<th class=""><%=l('lets_Brief_description')%></th>
<th class=""><%=l('lets_Content')%></th>
<th class=""><%=l('lets_LABEL_NAMESERVERS')%></th>
<th class=""><%=l('lets_LABEL_POINT')%></th>
<th class=""><%=l('lets_LABEL_LECERT')%></th>
<th class=""><%=l('lets_IS_IN_CERT')%></th>
<th class=""><%=l('lets_CHECK')%></th>
</tr>
</thead>
<tbody class="">
% my $control_data = $c->stash('DomainList');
% foreach my $row (@$control_data) {
<tr class="">
<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-Content'})%></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_LECERT'})%></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>
</tr>
%}
</tbody>
</table>
%# Probably finally by a submit.
%end
% param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore';
%= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
<br>
</span>
</p>
<h2 class=""><%=l('lets_List_of_Domains_and_Hosts')%></h2>
<br />
<table class="table table-bordered">
<thead class="">
<tr table-head-row>
<th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th>
<th class=""><%=l('lets_Brief_description')%></th>
<th class=""><%=l('lets_Content')%></th>
<th class=""><%=l('lets_LABEL_NAMESERVERS')%></th>
<th class=""><%=l('lets_LABEL_POINT')%></th>
<th class=""><%=l('lets_LABEL_LECERT')%></th>
<th class=""><%=l('lets_IS_IN_CERT')%></th>
<th class=""><%=l('lets_CHECK')%></th>
</tr>
</thead>
<tbody class="">
% my $control_data = $c->stash('DomainList');
% foreach my $row (@$control_data) {
<tr class="">
<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-Content'})%></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_LECERT'})%></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>
</tr>
%}
</tbody>
</table>
%# Probably finally by a submit.
%end
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $lets_data
</pre>
% }
% my $btn = l('lets_APPLY');
%= form_for "letsencryptu" => (method => 'POST') => begin
% param 'trt' => $lets_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $lets_data->{trt}
%# Inputs etc in here.
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:')%></h2>
<p class="">
%=l('lets_CONFIG_LETSENCRYPT')
</p>
<p>
<span class="">
%=l('lets_SERVICE_STATUS')
</span>
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:')%></h2>
<p class="">
%=l('lets_CONFIG_LETSENCRYPT')
</p>
<p>
<span class="">
%=l('lets_SERVICE_STATUS')
</span>
<span class="">
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']];
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
%# param 'status' => $lets_data->{status} unless param 'status';
%= select_field 'status' => @status_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_HOOKSCRIPT_STATUS')
</span>
<span class="">
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
%= select_field 'hookScript' => @hookScript_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_HOSTOVERRIDE_STATUS')
</span>
<span class="">
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
%= select_field 'hostOverride' => @hostOverride_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_ACCEPT_TERMS_STATUS')
</span>
<span class="">
% 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 => ""
<br>
</span>
</p>
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']];
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
%# param 'status' => $lets_data->{status} unless param 'status';
%= select_field 'status' => @status_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_HOOKSCRIPT_STATUS')
</span>
<span class="">
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
%= select_field 'hookScript' => @hookScript_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_HOSTOVERRIDE_STATUS')
</span>
<span class="">
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
%= select_field 'hostOverride' => @hostOverride_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_ACCEPT_TERMS_STATUS')
</span>
<span class="">
% 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 => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_API_STATUS')
</span>
<p>
<span class="">
%=l('lets_API_STATUS')
</span>
<span class="">
% my @API_options = [['2' => '2']];
% param 'API' => $lets_data->{API} unless param 'API';
%= select_field 'API' => @API_options, class => ""
<br>
</span>
</p>
% my @API_options = [['2' => '2']];
% param 'API' => $lets_data->{API} unless param 'API';
%= select_field 'API' => @API_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_KEYSIZE_STATUS')
</span>
<span class="">
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
%= select_field 'keysize' => @keysize_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_KEYSIZE_STATUS')
</span>
<span class="">
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
%= select_field 'keysize' => @keysize_options, class => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_CONFIGUREMODE_STATUS')
</span>
<span class="">
% 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 => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_CONFIGUREMODE_STATUS')
</span>
<span class="">
% 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 => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('lets_EMAIL')
</span>
<span class="">
% param 'email' => $lets_data->{email} unless param 'email';
%=email_field 'email', class => ""
</span>
</p>
<p>
<span class="">
%=l('lets_EMAIL')
</span>
<span class="">
% param 'email' => $lets_data->{email} unless param 'email';
%=email_field 'email', class => ""
</span>
</p>
<span class="">
%= submit_button l('lets_Save'), class => ""
</span>
<span class="">
%= submit_button l('lets_Save'), class => ""
</span>
%# Probably finally by a submit.
%end
%# Probably finally by a submit.
%end
</div>

View File

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

View File

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

View File

@ -2,107 +2,107 @@
% my $btn = l('ln_LOCALNETWORK_ADD');
%= form_for '/localnetworksa' => (method => 'POST') => begin
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% my $retref= $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
% if (config->{debug} == 1) {
<p>
%= dumper "Ret:".$ret{ret};
</p>
%}
<p>
%= dumper "Ret:".$ret{ret};
</p>
%}
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
% my $var7 = @vars[6];
% my @vars = split(",",$ret{vars});
% my $var1 = @vars[0];
% my $var2 = @vars[1];
% my $var3 = @vars[2];
% my $var4 = @vars[3];
% my $var5 = @vars[4];
% my $var6 = @vars[5];
% my $var7 = @vars[6];
%if ($ret{ret} eq "") {
%=l "ln_FIRSTPAGE_DESC"
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class="">
<h2> Operation Status Report</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%} else {
<div class="">
<h2> Operation Status Report - Error</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%}
%if ($ret{ret} eq "") {
%=l "ln_FIRSTPAGE_DESC"
%} elsif (index($ret{ret},"SUCCESS") != -1) {
<div class="">
<h2> Operation Status Report</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%} else {
<div class="">
<h2> Operation Status Report - Error</h2>
%= $c->render_to_string(inline => l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6,$var7));
</div>
%}
<p>
<br>
%= submit_button "$btn", class => ""
</p>
<p>
<br>
%= submit_button "$btn", class => ""
</p>
% end
<br>
<br>
% my $numlocalnetworks = @$localnetworks;
% if ($numlocalnetworks == 0){
% if ($numlocalnetworks == 0){
%=l 'ln_LOCAL_NETWORK_NONE'
% } else {
% } else {
<br>
<table class="table table-bordered">
<thead>
<tr>
<th class="">
%=l 'NETWORK'
</th>
<th class="">
%=l 'ln_SUBNET_MASK'
</th>
<table class="table table-bordered">
<thead>
<tr>
<th class="">
%=l 'NETWORK'
</th>
<th class="">
%=l 'ln_SUBNET_MASK'
</th>
<th class="">
%=l 'ln_NUMBER_OF_HOSTS'
</th>
<th class="">
%=l 'ln_NUMBER_OF_HOSTS'
</th>
<th class="">
%=l 'ROUTER'
</th>
<th class="">
%=l 'ROUTER'
</th>
<th class="">
%=l 'ACTION'
</th>
</tr>
</thead>
<tbody>
% foreach my $localnetwork (@$localnetworks )
% {
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
% my $removable = $localnetwork->prop('Removable') || "yes";
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
% if ( $system eq "yes" ) { $removable = "no"; }
<tr>
%= t td => (class => "") => $localnetwork->key
%= t td => (class => "") => $localnetwork->prop('Mask')
%= t td => (class => "") => $num_hosts
%= t td => (class => "") => $localnetwork->prop('Router')
%my $actionRemove = '&nbsp;';
%if ($removable eq "yes") {
%my $remove_text = l('REMOVE'); # Localized text
%my $local_network_entry = $localnetwork->key;
%my $csrf_token = "TOKEN"; # CSRF token for security
%$actionRemove = qq{
<th class="">
%=l 'ACTION'
</th>
</tr>
</thead>
<tbody>
% foreach my $localnetwork (@$localnetworks )
% {
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
% my $removable = $localnetwork->prop('Removable') || "yes";
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
% if ( $system eq "yes" ) { $removable = "no"; }
<tr>
%= t td => (class => "") => $localnetwork->key
%= t td => (class => "") => $localnetwork->prop('Mask')
%= t td => (class => "") => $num_hosts
%= t td => (class => "") => $localnetwork->prop('Router')
%my $actionRemove = '&nbsp;';
%if ($removable eq "yes") {
%my $remove_text = l('REMOVE'); # Localized text
%my $local_network_entry = $localnetwork->key;
%my $csrf_token = "TOKEN"; # CSRF token for security
%$actionRemove = qq{
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
% <button type='button' class="" title='$remove_text' >
% $remove_text
% </button>
% <button type='button' class="" title='$remove_text' >
% $remove_text
% </button>
% </a>
%};
% }
<td class=""><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr>
% }
</tbody>
</table>
%= hidden_field 'trt' => $ln_datas->{trt}
%}
%};
% }
<td class=""><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr>
% }
</tbody>
</table>
%= hidden_field 'trt' => $ln_datas->{trt}
%}
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $nut_data
</pre>
% }
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $nut_data
</pre>
% }
% my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here.
% my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here.
<h2 class=""><%=l('nut_Manage_Nutups-config_settings:')%></h2>
<p>
<span class="">
%=l('nut_Nut_status')
</span>
<span class="">
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
%# param 'status' => $nut_data->{status} unless param 'status';
<h2 class=""><%=l('nut_Manage_Nutups-config_settings:')%></h2>
<p>
<span class="">
%=l('nut_Nut_status')
</span>
<span class="">
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
%# param 'status' => $nut_data->{status} unless param 'status';
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status});
%= select_field 'status' => @status_options, class => "", id => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_Nut_mode')
</span>
<span class="">
% my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']];
% param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode';
%= select_field 'Nutmode' => @Nutmode_options, class => "", id => ""
<br>
</span>
</p>
<div class="">
<h2 class=""><%=l('nut_if_Net_Server')%></h2>
<p>
<span class="">
%=l('nut_MasterUPS_UPSNAME@IP')
</span>
<span class="">
% param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name';
%= text_field 'MasterUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'ups@localhost'
<br>
</span>
</p>
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status});
%= select_field 'status' => @status_options, class => "", id => ""
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_Nut_mode')
</span>
<span class="">
% my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']];
% param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode';
%= select_field 'Nutmode' => @Nutmode_options, class => "", id => ""
<br>
</span>
</p>
<div class="">
<h2 class=""><%=l('nut_if_Net_Server')%></h2>
<p>
<span class="">
%=l('nut_MasterUPS_UPSNAME@IP')
</span>
<span class="">
% param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name';
%= text_field 'MasterUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'ups@localhost'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_MasterUPS_Password')
</span>
<span class="">
% param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password';
%=password_field 'MasterUPS_Password', class => ""
</span>
</p>
<p>
<span class="">
%=l('nut_MasterUPS_Password')
</span>
<span class="">
% param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password';
%=password_field 'MasterUPS_Password', class => ""
</span>
</p>
<p>
<span class="">
%=l('nut_UPS_Model')
</span>
<span class="">
% my @UPS_Model_options = $c->get_model_options();
% param 'UPS_Model' => $nut_data->{UPS_Model} unless param 'UPS_Model';
%= select_field 'UPS_Model' => \@UPS_Model_options, class => "", id => ""
<br>
</span></p>
<p>
<span class="">
%=l('nut_UPS_Model')
</span>
<span class="">
% my @UPS_Model_options = $c->get_model_options();
% param 'UPS_Model' => $nut_data->{UPS_Model} unless param 'UPS_Model';
%= select_field 'UPS_Model' => \@UPS_Model_options, class => "", id => ""
<br>
</span></p>
<p><span class="">
%=l('nut_UPS_Device')
</span><span class="">
% param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device';
%= text_field 'UPS_Device', size => '50', class => "" , pattern=>'.*' , placeholder=>'auto (for usb)'
<br></span></p>
</div>
<div class="">
<h2 class=""><%=l('nut_if_Net_Client')%></h2>
<p>
<span class="">
%=l('nut_SlaveUPS_UPSNAME@IP')
</span>
<span class="">
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
%= text_field 'SlaveUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'upsname@IP'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_SlaveUPS_Password')
</span>
<span class="">
% param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password';
%=password_field 'SlaveUPS_Password', class => ""
</span>
</p>
</div>
<div class="">
` <h2 class=""><%=l('nut_if_genericups')%></h2>
<p>
<span class="">
%=l('nut_UPS_Generic_Type')
</span>
<span class="">
% 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'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_UPS_Generic_Manufacturer')
</span>
<span class="">
% 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'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_UPS_Generic_Model')
</span>
<span class="">
% 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'
<br>
</span>
</p>
` </div>
<span class="">
%= submit_button l('nut_Save'), class => ""
</span>
<p><span class="">
%=l('nut_UPS_Device')
</span><span class="">
% param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device';
%= text_field 'UPS_Device', size => '50', class => "" , pattern=>'.*' , placeholder=>'auto (for usb)'
<br></span></p>
</div>
<div class="">
<h2 class=""><%=l('nut_if_Net_Client')%></h2>
<p>
<span class="">
%=l('nut_SlaveUPS_UPSNAME@IP')
</span>
<span class="">
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
%= text_field 'SlaveUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'upsname@IP'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_SlaveUPS_Password')
</span>
<span class="">
% param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password';
%=password_field 'SlaveUPS_Password', class => ""
</span>
</p>
</div>
<div class="">
` <h2 class=""><%=l('nut_if_genericups')%></h2>
<p>
<span class="">
%=l('nut_UPS_Generic_Type')
</span>
<span class="">
% 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'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_UPS_Generic_Manufacturer')
</span>
<span class="">
% 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'
<br>
</span>
</p>
<p>
<span class="">
%=l('nut_UPS_Generic_Model')
</span>
<span class="">
% 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'
<br>
</span>
</p>
` </div>
<span class="">
%= submit_button l('nut_Save'), class => ""
</span>
%# Probably finally by a submit.
%end
%# Probably finally by a submit.
%end
</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
%#
<div>
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $nut_data
</pre>
% }
% my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here.
<script>
window.onload = function() {
SelectInput();
};
</script>
% if (config->{debug} == 1) {
<pre>
%= dumper $nut_data
</pre>
% }
% my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin
% param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt}
%# Inputs etc in here.
<div class="">
<a href='nutupsd?trt=CONFIG' class="">
%= l('nut_Configure_NutUPS')
</a>
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
</div>
<h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2>
<p class="">
%=l('nut_Descriptive_paragraph')
</p>
<div class="">
<a href='nutupsd?trt=CONFIG' class="">
%= l('nut_Configure_NutUPS')
</a>
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
</div>
<h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2>
<p class="">
%=l('nut_Descriptive_paragraph')
</p>
<!--
<span class="">
%=l('nut_Status_(from_upsc)')
</span>
<span class="">
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
</span>
<br>
<span class="">
%=l('nut_Status_(from_upsc)')
</span>
<span class="">
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
</span>
<br>
-->
%= include 'partials/_nut_UPS_STATUS'
%# Probably finally by a submit.
%end
%= include 'partials/_nut_UPS_STATUS'
%# Probably finally by a submit.
%end
</div>

View File

@ -1,45 +1,45 @@
<h1>UPS Status</h1>
%= stylesheet '/css/nut_ups-status-page.css'
<div class="container-md">
<div>
<h2>Device Information</h2>
<table class="table table-bordered">
<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>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
</table>
</div>
<div>
<h2>Battery Status</h2>
<table class="table table-bordered">
<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>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>
</table>
</div>
<div>
<h2>Input Power</h2>
<table class="table table-bordered">
<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>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 Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
</table>
</div>
<div>
<h2>UPS Status</h2>
<table class="table table-bordered">
<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>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>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
</table>
</div>
<div>
<h2>Device Information</h2>
<table class="table table-bordered">
<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>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
</table>
</div>
<div>
<h2>Battery Status</h2>
<table class="table table-bordered">
<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>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>
</table>
</div>
<div>
<h2>Input Power</h2>
<table class="table table-bordered">
<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>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 Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
</table>
</div>
<div>
<h2>UPS Status</h2>
<table class="table table-bordered">
<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>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>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
</table>
</div>
</div>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
%define name smeserver-manager-AdminLTE
%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
Name: %{name}
Version: %{version}
@ -26,6 +26,10 @@ AdminLTE is an html framework for admin consoles
wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
%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
- Fix user add error
- Update group templates