Compare commits

...

8 Commits

Author SHA1 Message Date
John Crisp
01223b8a9f Update version number 2025-06-10 23:10:32 +02:00
John Crisp
f9f799d2ce Update clamav. Modify ibayupd,ln list, start remoteaccess 2025-06-10 23:05:00 +02:00
John Crisp
b1e896c187 Add autocomplete to login. Updates to quota list 2025-06-10 21:40:12 +02:00
John Crisp
e49e180ce0 Fix users panels - missing css file - override default font size for Brian 2025-06-09 15:27:17 +02:00
John Crisp
927a95af3b Add UTF8 support to local network panel 2025-06-09 13:38:09 +02:00
John Crisp
b6a78980a4 Fix login panel position 2025-06-06 19:22:25 +02:00
John Crisp
4b888a7112 Testing Roundcube iframe 2025-06-05 20:51:52 +02:00
John Crisp
b39eef01f9 Start Backup Panels 2025-06-05 19:51:11 +02:00
18 changed files with 700 additions and 539 deletions

View File

@@ -1,3 +1,6 @@
html {
font-size: 14px;
}
#busy-indicator {
display: none;
@@ -50,8 +53,8 @@
}
.login-page {
min-height: 10vh;
vertical-align: top !important;
min-height: 60vh !important ;
vertical-align: top !important ;
}
.nav-icon {

View File

@@ -4,83 +4,97 @@
<div class="card-body">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash 'error' ) {
<br><div class="">
%= $c->render_to_string(inline => stash 'error')
</div>
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l 'bac_ENABLE_DISABLE_TAPE'
</h2><br>
<br>
%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC'))
<h2><%= l 'bac_ENABLE_DISABLE_TAPE' %></h2>
%= form_for '/backupd' => (method => 'POST') => begin
<br>
<p>
<span class="">
%=l 'bac_ENABLE_TAPE_BACKUP'
</span>
<span class="">
% if ( $bac_datas->{status} eq 'checked' ) {
<input type='checkbox' name='Tapebackup' checked >
%} else {
%= check_box 'Tapebackup'
%}
</span>
</p>
<div>
<%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC')) %>
</div>
<br>
<form action="/smanager/backupd" method="POST">
<div class="row g-3 align-items-center">
<div class="col-md-1">
<%= l 'bac_ENABLE_TAPE_BACKUP' %>
</div>
<div class="col-auto">
% if ( $bac_datas->{status} eq 'checked' ) {
<input type='checkbox' name='Tapebackup' checked >
% } else {
<input type='checkbox' name='Tapebackup'>
% }
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'bac_TAPE_BACKUP_TIME' %>
</div>
<div class="col-auto">
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
<%= text_field 'BackupHour', size => '2' %>
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
<%= text_field 'BackupMin', size => '2' %>
</div>
<div class="col-auto">
% param 'BackupAMPM' => $bac_datas->{backupAMPM} unless param 'BackupAMPM';
<%= select_field 'BackupAMPM' => ['AM', 'PM'], class => "form-select" %>
</div>
</div>
<br>
<p>
<span class="">
%=l 'bac_TAPE_BACKUP_TIME'
</span>
<span class="">
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
%= text_field 'BackupHour', size => '2'
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
%= text_field 'BackupMin', size => '2'
</span>
<!--span class="">
%=l 'AM/PM:'
<!--/span-->
<span class="">
% param 'BackupAMPM' => $bac_datas->{backupAMPM} unless param 'BackupAMPM';
%= select_field 'BackupAMPM' => ['AM', 'PM'], class => ""
</span>
</p>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'bac_LOAD_TAPE_REMINDER_TIME' %>
</div>
<div class="col-auto">
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
<%= text_field 'ReminderHour', size => '2' %>
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
<%= text_field 'ReminderMin', size => '2' %>
</div>
<div class="col-auto">
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
<%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => "form-select" %>
</div>
</div>
<p>
<span class="">
%=l 'bac_LOAD_TAPE_REMINDER_TIME'
</span>
<span class="">
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
%= text_field 'ReminderHour', size => '2'
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
%= text_field 'ReminderMin', size => '2'
</span>
<!--span class="">
%=l 'AM/PM:'
<!--/span-->
<span class="">
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => ""
</span>
</p><br>
<br>
%= hidden_field 'Function' => $bac_datas->{'function'}
%= submit_button $c->l('bac_UPDATE_CONF'), class => ""
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
% my $btn = l('bac_UPDATE_CONF');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('bac_UPDATE_CONF')%>"><%= $btn %></button>
</div>
</div>
</form>
% end
</div>
% end

View File

@@ -5,34 +5,44 @@
<div class="card-body">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash 'error' ) {
<br><div class="">
%= $c->render_to_string(inline => stash 'error')
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
</div>
%}
% }
<h1><%= $title%></h1>
%= form_for '/backupd' => (method => 'POST') => begin
<h2>
%=l 'bac_RESTORE_CONF_FROM_TAPE'
</h2>
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC'))
<br>
%= hidden_field 'Function' => $bac_datas->{'function'}
<form action="/smanager/backupd" method="POST">
%= submit_button $c->l('bac_RESTORE_FROM_TAPE'), class => ""
<h2><%=l 'bac_RESTORE_CONF_FROM_TAPE' %></h2>
<br>
<%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC')) %>
<br>
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
% my $btn = l('bac_RESTORE_FROM_TAPE');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button>
</div>
</div>
<form>
% end
</div>
% end

View File

@@ -5,54 +5,68 @@
<div class="card-body">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash 'error' ) {
<br><div class="">
%= $c->render_to_string(inline => stash 'error')
<br><div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
</div>
%}
<h1><%= $title%></h1>
<h1><%= $title%></h1>
%= form_for '/backup' => (method => 'POST') => begin
<h2>
%=l 'bac_CONFIGURE_WORKSTN_BACKUP'
</h2>
%= $c->render_to_string(inline => (l 'bac_WORKSTN_BACKUP_DESC'))
%=l 'bac_WORKSTN_BACKUP_ENABLED'
<span class="">
%= $bac_datas->{status}
</span>
<br>
%= $c->render_to_string(inline => $c->workstnBackupConfig())
<form action="/smanager/backup" method="POST">
<p>
<h3>
%= l 'bac_WORKSTATION_BACKUP_SETCONF'
</h3>
<br>
<span class="">
%=l 'bac_SELECT_VFS_TYPE'
</span>
<span class="">
% param 'VFSType' => $bac_datas->{vfstype} unless param 'VFSType';
%= select_field 'VFSType' => $c->get_VFSType_options(), class => ""
</span>
</p>
<h2><%= l 'bac_CONFIGURE_WORKSTN_BACKUP' %></h2>
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
%= submit_button $c->l('NEXT'), class => ""
<br>
% end
<%= $c->render_to_string(inline => (l 'bac_WORKSTN_BACKUP_DESC')) %>
<br>
<div>
<%= l 'bac_WORKSTN_BACKUP_ENABLED' %>: <%= $bac_datas->{status} %>
</div>
<br>
<%= $c->render_to_string(inline => $c->workstnBackupConfig()) %>
<br>
<h3><%= l 'bac_WORKSTATION_BACKUP_SETCONF' %></h3>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'bac_SELECT_VFS_TYPE' %>
</div>
<div class="col-auto">
% param 'VFSType' => $bac_datas->{vfstype} unless param 'VFSType';
<%= select_field 'VFSType' => $c->get_VFSType_options(), class => "form-select" %>
</div>
</div>
<br>
<%= hidden_field 'Function' => $bac_datas->{'function'} . '1' %>
% my $btn = l('NEXT');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('NEXT')%>"><%= $btn %></button>
</div>
</div>
</form>
</div>

View File

@@ -5,76 +5,99 @@
<div class="card-body">
% if (config->{debug} == 1) {
<div>
%= dumper $c->current_route
%= dumper $bac_datas
</div>
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash 'warning' ) {
<br>
<div>
%= $c->render_to_string(inline => stash 'warning')
<div class="col-md-4 bg-info text-center">
<%= $c->render_to_string(inline => stash 'warning') %>
</div>
%}
<br>
% }
% if ( stash 'error' ) {
<br>
<div>
%= $c->render_to_string(inline => stash 'error')
<div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
</div>
%}
<br>
% }
<h1><%= $title%></h1>
<!--br>Still incomplete click here for previous version
<a href="/server-manager/cgi-bin/backup" target='_blank'><b>(Previous Backup version)</b></a>
<br-->
<%= $c->render_to_string(inline => (l 'bac_BACKUP_DESC_DAR', $bac_datas->{module},
$bac_datas->{dumpsize}, $bac_datas->{tarsize})) %>
<form action="/smanager/backup" method="POST">
%#= form_for '/backup' => (method => 'POST') => begin
<h2><%= l 'bac_BACKUP_CONFIG_STATUS' %></h2>
<div>
<%= l 'bac_TAPE_BACKUPS' %>,
<%= $c->l(uc($bac_datas->{'backupStatus'})).'.' %>
% if ( $bac_datas->{'backupStatus'} eq 'enabled' ) {
%= $c->l('bac_BACKUPS_RUN_AT')
%= $bac_datas->{'backupTime'}
%= $c->l('bac_REMINDER_MESSAGE_AT')
%= $bac_datas->{'reminderTime'}
% }
</div>
<div>
<%=l 'bac_WORKSTN_BACKUPS' %>,
<%= $c->l(uc($bac_datas->{'backupwkStatus'})) . '.' %>
% if ( $bac_datas->{'backupwkStatus'} eq 'enabled' ) {
<%= $c->l('bac_WKBACKUPS_RUN_AT') %>
<%= $bac_datas->{'backupwkTime'} %>
% }
</div>
<div>
<%= l 'bac_SELECT_AN_ACTION' %>
% param 'Function' => $bac_datas->{function} unless param 'Function';
<%= select_field 'Function' => $c->get_function_options() %>
</div>
-->
<br>
<% my $btn = $c->l('PERFORM'); %>
<div class="row g-3 align-items-center">
<%= $c->render_to_string(inline => (l 'bac_BACKUP_DESC_DAR', $bac_datas->{module},
$bac_datas->{dumpsize}, $bac_datas->{tarsize})) %>
<form action="/smanager/backup" method="POST">
<br>
<h2><%= l 'bac_BACKUP_CONFIG_STATUS' %></h2>
<br>
<div>
<div>
<%= l 'bac_TAPE_BACKUPS' %>: <%= $c->l(uc($bac_datas->{'backupStatus'})).'.' %>
</div>
% if ( $bac_datas->{'backupStatus'} eq 'enabled' ) {
<div>
<%= $c->l('bac_BACKUPS_RUN_AT') %>: <%= $bac_datas->{'backupTime'} %>
</div>
<br>
<div>
<%= $c->l('bac_REMINDER_MESSAGE_AT') %>: <%= $bac_datas->{'reminderTime'} %>
</div>
% }
</div>
<br>
<div>
<div>
<%=l 'bac_WORKSTN_BACKUPS' %>: <%= $c->l(uc($bac_datas->{'backupwkStatus'})) . '.' %>
</div>
<div>
% if ( $bac_datas->{'backupwkStatus'} eq 'enabled' ) {
<%= $c->l('bac_WKBACKUPS_RUN_AT') %>: <%= $bac_datas->{'backupwkTime'} %>
% }
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-1">
<%= l 'bac_SELECT_AN_ACTION' %>
</div>
<div class="col-auto">
% param 'Function' => $bac_datas->{function} unless param 'Function';
<%= select_field 'Function' => $c->get_function_options(), class => "form-select" %>
</div>
</div>
<br>
% my $btn = $c->l('PERFORM');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
% end
</form>
</div>
% end

View File

@@ -5,40 +5,45 @@
<div class="card-body">
% if (config->{debug} == 1) {
<div>
(DBG)route: <%= $c->current_route %><br>
(DBG)FsS stat: <%= $clm_datas->{FilesystemScan}%> <br>
(DBG)Quar stat: <%=$clm_datas->{Quarantine} %>
</div>
<pre>
Route: <%= dumper $c->current_route %><br>
FsS stat: <%= dumper $clm_datas->{FilesystemScan}%> <br>
Quar stat: <%= dumper $clm_datas->{Quarantine} %>
</pre>
% }
<h1><%= $title %></h1>
<br>
<%= $modul %>
<% my $btn = l('SAVE'); %>
<!-- reetp This $module should be split ijto two lines -->
<%= $modul %>
<br><br>
<form action="/smanager/clamav" method="POST">
<div class="row g-3 align-items-center">
<div class="col-auto">
<h6><%= l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' %>:</h6>
<div class="col-md-2">
<%= l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' %>:
</div>
<div class="col-md-2">
% param 'FilesystemScan' => $clm_datas->{FilesystemScan} unless param 'FilesystemScan';
<%= select_field 'FilesystemScan' => [[ (l 'clm_DAILY') => 'daily'], [ (l 'clm_NEVER') => 'disabled'], [ (l 'clm_WEEKLY') => 'weekly']], class => "form-select" %>
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<br>
<div class="col-auto">
<h6><%= l 'clm_LABEL_QUARANTINE' %>:</h6>
<div class="col-md-2">
<%= l 'clm_LABEL_QUARANTINE' %>:
</div>
<div class="col-md-2">
% param 'Quarantine' => $clm_datas->{Quarantine} unless param 'Quarantine';
<%= select_field 'Quarantine' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => "form-select" %>
<br>
</div>
</div>
<br>
<div>
<div>
<h6><%= l 'clm_LABEL_CLAM_VERSIONS' %>:</h6>
@@ -47,7 +52,11 @@
<%= $clm_datas->{clam_versions} %>
</div>
</div>
<br>
<% my $btn = l('SAVE'); %>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>

View File

@@ -5,5 +5,5 @@
%#= stylesheet 'css/sme-jquery-overrides.css'
%= stylesheet 'dist/css/adminlte.min.css'
%= stylesheet 'dist/icons/font/bootstrap-icons.min.css'
%#= stylesheet 'dist/css/overlayscrollbars.min.css'
%= stylesheet 'dist/font/bootstrap-icons.min.css'
%#= stylesheet 'dist/css/overlayscrollbars.min.css'

View File

@@ -6,8 +6,8 @@
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $mai_datas %>
<%= dumper $c->current_route %>
<%= dumper $mai_datas %>
</pre>
% }
@@ -15,7 +15,7 @@
% if ( stash 'error' ) {
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
<%= $c->render_to_string(inline => stash 'error') %>
</div>
% }
@@ -135,14 +135,8 @@
</div>
</div>
<br>
% my $btn = l('SAVE');
<%= hidden_field 'trt' => 'DEL' %>

View File

@@ -67,7 +67,7 @@
<div class="input-group mb-1">
<div class="form-floating">
<input type="password" name="Password" id="password" class="form-control" placeholder="<%=l 'PASSWORD'%>">
<input type="password" name="Password" id="password" class="form-control" placeholder="<%=l 'PASSWORD'%>" autocomplete="on">
<label for="password">Password</label>
</div>
<div class="input-group-text">

View File

@@ -5,7 +5,6 @@
<form action="/smanager/ibaysd" method="POST">
<div>
<h2><%=l 'iba_ADD_TITLE' %></h2>
</div>
@@ -36,7 +35,7 @@
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputIbayDesc" class="col-form-label"><%= l 'DESCRIPTION' %></label>
<label for="inputIbayDesc" class="col-form-label"><%= l 'DESCRIPTION' %></label>
</div>
<div class="col-auto">
% param 'ibayDesc' => $iba_datas->{description} unless param 'ibayDesc';
@@ -50,7 +49,6 @@
<div class="col-md-2">
<%= l 'GROUP' %>
</div>
<div class="col-auto">
% param 'group' => $iba_datas->{group} unless param 'group';
%= select_field 'group' => $c->group_list_m(), class => "form-select"
@@ -63,7 +61,6 @@
<div class="col-md-2">
<%= l 'iba_USER_ACCESS' %>
</div>
<div class="col-auto">
% param 'userAccess' => $iba_datas->{userAccess} unless param 'userAccess';
%= select_field 'userAccess' => $c->userAccess_list_m(), class => "form-select"
@@ -76,7 +73,6 @@
<div class="col-md-2">
%=l 'iba_PUBLIC_ACCESS'
</div>
<div class="col-auto">
% param 'publicAccess' => $iba_datas->{publicAccess} unless param 'publicAccess';
%= select_field 'publicAccess' => $c->publicAccess_list_m(), class => "form-select"
@@ -89,7 +85,6 @@
<div class="col-md-2">
<%=l 'iba_ALLOW_DYNAMIC_CONTENT' %>
</div>
<div class="col-auto">
% param 'CgiBin' => $iba_datas->{CgiBin} unless param 'CgiBin';
%= select_field 'CgiBin' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select"
@@ -102,7 +97,6 @@
<div class="col-md-2">
<%=l 'iba_HTTPS_Only' %>
</div>
<div class="col-auto">
% param 'SSL' => $iba_datas->{SSL} unless param 'SSL';
%= select_field 'SSL' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select"

View File

@@ -28,7 +28,7 @@
%}
<br />
% my $btn = l('ADD');
% my $network_db = esmith::NetworksDB->open();
% my $network_db = esmith::NetworksDB::UTF8->open() || die "Couldn't open NetworksDB db";
% if (config->{debug} == 1) {
<div>

View File

@@ -1,29 +1,28 @@
<div>
% my $btn = l('ln_LOCALNETWORK_ADD');
<form action="/smanager/localnetworksa" method="POST">
<br>
% my $retref= $c->stash("ret");
% my $retref = $c->stash("ret");
% my %ret;
% unless (length($retref)) {%ret = (ret=>"");}
% else {%ret = %$retref;}
<!-- So at this point the next section is only relevant it ret is not defined -->
% if (config->{debug} == 1) {
<div>
%= dumper "Ret:".$ret{ret};
</div>
% }
%# my $element_count = scalar(@ret);
% 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 (length $element_count == 0) {
% 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" %>
@@ -41,60 +40,63 @@
% }
<br><br>
% my $btn = l('ln_LOCALNETWORK_ADD');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
</form>
<br>
% my $numlocalnetworks = @$localnetworks;
% if ($numlocalnetworks == 0) {
<%= l 'ln_LOCAL_NETWORK_NONE' %>
% } else {
<br>
<table class="table table-bordered">
<thead>
<tr>
<th><%= l 'NETWORK' %></th>
<th><%= l 'ln_SUBNET_MASK' %></th>
<th><%= l 'ln_NUMBER_OF_HOSTS' %></th>
<th><%= l 'ROUTER' %></th>
<th><%= 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>
<td><%= $localnetwork->key %>
<td><%= $localnetwork->prop('Mask') %>
<td><%= $num_hosts %>
<td><%= $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="btn btn-primary" title='$remove_text' >
% $remove_text
% </button>
% </a>
%};
% }
<td><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr>
% }
</tbody>
</table>
<%= hidden_field 'trt' => $ln_datas->{trt} %>
% }
% my $numlocalnetworks = @$localnetworks;
% if ($numlocalnetworks == 0) {
<%= l 'ln_LOCAL_NETWORK_NONE' %>
% } else {
<br>
<table class="table table-bordered">
<thead>
<tr>
<th><%= l 'NETWORK' %></th>
<th><%= l 'ln_SUBNET_MASK' %></th>
<th><%= l 'ln_NUMBER_OF_HOSTS' %></th>
<th><%= l 'ROUTER' %></th>
<th><%= 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>
<td><%= $localnetwork->key %>
<td><%= $localnetwork->prop('Mask') %>
<td><%= $num_hosts %>
<td><%= $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="btn btn-primary" title='$remove_text' >
% $remove_text
% </button>
% </a>
%};
% }
<td><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr>
% }
</tbody>
</table>
<%= hidden_field 'trt' => $ln_datas->{trt} %>
% }
</form>
</div>

View File

@@ -4,11 +4,20 @@
<%= $modul %>
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $userAccounts %>
</pre>
% }
<h2><%= l 'quo_CURRENT_USAGE_AND_SETTINGS' %></h2>
<br>
% my $numUsers = @$userAccounts;
% if ($numUsers == 0){
<%= l 'ACCOUNT_USER_NONE' %>
% } else {
@@ -32,14 +41,21 @@
<tbody>
% foreach my $user (@$userAccounts) {
% my $uid = getpwnam($user->key);
% unless ($uid) {
% warn($self->localise('COULD_NOT_GET_UID'),$user->key);
% next;
% }
% my $name = $user->prop("FirstName")." ".$user->prop("LastName");
% my $dev = Quota::getqcarg('/home/e-smith/files');
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
% my $uid = getpwnam($user->key);
% if (config->{debug} == 1) {
UID <%= l 'quo_COULD_NOT_GET_UID' %> <%= dumper $user->key %><br>
% }
<br>
% unless ($uid) {
% warn (l 'quo_COULD_NOT_GET_UID', $user->key);
% next;
% }
% my $name = $user->prop("FirstName")." ".$user->prop("LastName");
% my $dev = Quota::getqcarg('/home/e-smith/files');
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
<tr>
<td><%= $user->key %></td>

View File

@@ -1,20 +1,20 @@
<div class="container-sm">
<div>
<br>
<h2><%= l 'usr_P2_TITLE' %></h2>
<br>
<%= $c->render_to_string(inline => l ('usr_CREATE_MODIFY_DESC')) %>
<br><br>
% my $btn = l('ADD');
% my $btn = l('ADD');
<form action="/smanager/useraccountsd" method="POST">
%#= form_for '/useraccountsd' => (method => 'POST') => begin
% if ( $usr_datas->{trt} eq 'ADD' ) {
% param 'user' => $usr_datas->{user} unless param 'user';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputAccountName" class="col-form-label"><%= l 'usr_ACCOUNT_NAME' %></label>
@@ -28,7 +28,7 @@
</span>
</div>
</div>
% } else {
<!-- If not user set Button Save not Add -->
% $btn = l('SAVE');
@@ -40,12 +40,12 @@
<div class="col-auto">
<input disabled type="text" id="disabledTextInput" class="form-control" placeholder="<%= $usr_datas->{user} %>">
</div>
</div>
% }
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputFirstName" class="col-form-label"><%= l 'usr_FIRSTNAME' %></label>
@@ -60,9 +60,9 @@
</div>
</div>
<br>
% param 'LastName' => $usr_datas->{lastname} unless param 'LastName';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputLastNAme" class="col-form-label"><%= l 'usr_LASTNAME' %></label>
@@ -77,10 +77,10 @@
</div>
</div>
<br>
% param 'Dept' => $usr_datas->{dept} unless param 'Dept';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputDepartment" class="col-form-label"><%= l 'usr_DEPARTMENT' %></label>
@@ -95,10 +95,10 @@
</div>
</div>
<br>
% param 'Company' => $usr_datas->{company} unless param 'Company';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputCompany" class="col-form-label"><%= l 'usr_COMPANY' %></label>
@@ -113,10 +113,10 @@
</div>
</div>
<br>
% param 'Street' => $usr_datas->{street} unless param 'Street';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputStreet" class="col-form-label"><%= l 'usr_STREET_ADDRESS' %></label>
@@ -131,9 +131,9 @@
</div>
</div>
<br>
% param 'City' => $usr_datas->{city} unless param 'City';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputCity" class="col-form-label"><%= l 'usr_CITY' %></label>
@@ -148,9 +148,9 @@
</div>
</div>
<br>
% param 'Phone' => $usr_datas->{phone} unless param 'Phone';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputPhone" class="col-form-label"><%= l 'usr_PHONE_NUMBER' %></label>
@@ -165,9 +165,9 @@
</div>
</div>
<br>
% param 'EmailForward' => $usr_datas->{emailforward} unless param 'EmailForward';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputEmailDelivery" class="col-form-label"><%= l 'usr_EMAIL_DELIVERY' %></label>
@@ -177,9 +177,9 @@
</div>
</div>
<br>
% param 'ForwardAddress' => $usr_datas->{forwardaddress} unless param 'ForwardAddress';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputEmail" class="col-form-label"><%= l 'usr_FORWARDING_ADDRESS' %></label>
@@ -194,10 +194,10 @@
</div>
</div>
<br>
% param 'VPNClientAccess' => $usr_datas->{vpnclientaccess} unless param 'VPNClientAccess';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputVPNClientAccess" class="col-form-label"><%= l 'usr_VPN_CLIENT_ACCESS' %></label>
@@ -207,10 +207,10 @@
</div>
</div>
<br>
<!-- fix from here -->
<!-- Begin if ipsec needs fixing -->
% if ( $usr_datas->{trt} eq 'UPD' and $c->ipsec_for_acct eq 'OK' ) {
% my $btn2 = $c->l('DOWNLOAD');
@@ -222,22 +222,22 @@
% end
% }
<!-- End if ipsec -->
<!-- Groups begin -->
<div>
% my @groups = @{$c->get_groups()};
%#= dumper @groups
% if ( @groups ) {
<br><br>
%=l 'usr_GROUP_MEMBERSHIPS'
<br><br>
<table class="table table-bordered user-table-max-wdith">
<thead>
<tr>
@@ -247,7 +247,7 @@
</tr>
</thead>
<tbody>
% foreach my $g ( @groups) {
% my $user = $usr_datas->{user};
% my $groupname = $g->key();
@@ -256,7 +256,7 @@
% if ( $user and $c->is_user_in_group($user, $groupname) ) {
% $checked = 'checked';
% }
<tr>
<td>
% if ( $checked eq 'checked' ) {
@@ -269,26 +269,26 @@
<td><%= $description %></td>
</tr>
% }
</tbody>
</table>
% }
<!-- Groups End -->
</div>
<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' => $usr_datas->{trt}
% if ( $usr_datas->{trt} eq 'UPD' ) {
%= hidden_field 'user' => $usr_datas->{user}
% }
</form>
%#end
</div>

View File

@@ -1,13 +1,12 @@
% content_for 'module' => begin
<div class="container-sm">
<br>
<h2><%= l 'usr_MODIFY_ADMIN_TITLE' %></h2>
<br><br>
<h2><%= l 'usr_MODIFY_ADMIN_TITLE' %></h2>
<div>
<br><br>
<form action="/smanager/useraccountsd" method="POST">
%#= form_for '/useraccountsd' => (method => 'POST') => begin
<div class="row g-3 align-items-center">
<div class="col-md-2">
@@ -17,10 +16,11 @@
<input disabled type="text" id="disabledTextInput" class="form-control" placeholder="<%= $usr_datas->{user} %>">
</div>
</div>
<br>
% param 'FirstName' => $usr_datas->{firstname} unless param 'FirstName';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputFirstName" class="col-form-label"><%= l 'usr_FIRSTNAME' %></label>
@@ -35,9 +35,9 @@
</div>
</div>
<br>
% param 'LastName' => $usr_datas->{lastname} unless param 'LastName';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputLastNAme" class="col-form-label"><%= l 'usr_LASTNAME' %></label>
@@ -51,22 +51,24 @@
</span>
</div>
</div>
<br>
% param 'EmailForward' => $usr_datas->{emailforward} unless param 'EmailForward';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputEmailDelivery" class="col-form-label"><%= l 'usr_EMAIL_DELIVERY' %></label>
</div>
<div class="col-auto">
%= select_field 'EmailForward' => $c->emailForward_list(), class => "form-select"
<%= select_field 'EmailForward' => $c->emailForward_list(), class => "form-select" %>
</div>
</div>
<br>
% param 'ForwardAddress' => $usr_datas->{forwardaddress} unless param 'ForwardAddress';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputEmail" class="col-form-label"><%= l 'usr_FORWARDING_ADDRESS' %></label>
@@ -80,21 +82,26 @@
</span>
</div>
</div>
<br>
% param 'VPNClientAccess' => $usr_datas->{vpnclientaccess} unless param 'VPNClientAccess';
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputVPNClientAccess" class="col-form-label"><%= l 'usr_VPN_CLIENT_ACCESS' %></label>
</div>
<div class="col-auto">
%= select_field 'VPNClientAccess' => [[ (l 'NO') => 'no'], [ (l 'YES') => 'yes']], class => "form-select"
<%= select_field 'VPNClientAccess' => [[ (l 'NO') => 'no'], [ (l 'YES') => 'yes']], class => "form-select" %>
</div>
<br>
</div>
<br>
% my $btn = l('SAVE');
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
<div class="row g-3 align-items-center">
<div class="col-md-2">
@@ -103,13 +110,6 @@
</div>
trt: <%= dumper $usr_datas->{trt} %>
user: <%= dumper $usr_datas->{user} %>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
%# end
</form>
</div>

View File

@@ -5,100 +5,99 @@
<div class="card-body">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $rma_datas
</p>
<pre>
<%= dumper $c->current_route %>
<%= dumper $rma_datas %>
</pre>
% }
<h1><%= $title%></h1>
% if ( $notif ) {
<br>
<span class="">
<%= $c->render_to_string(inline => $notif) %>
</span>
<br>
<div>
<%= $c->render_to_string(inline => $notif) %>
</div>
%}
<!--<hr class="" />-->
<% my $btn = l('SAVE'); %>
%= form_for 'remoteaccess' => (method => 'POST') => begin
<form action="/smanager/remoteaccess" method="POST">
% my $ipsec = $c->get_ipsecrw_status();
% if ( $ipsec ) {
<p>
<h2>
%=l 'rma_TITLE_IPSECRW'
</h2><br>
%=l 'rma_DESC_IPSECRW'
<br>
<span class="">
%=l 'rma_LABEL_IPSECRW_SESS'
</span>
<span class="">
% param 'IpsecrwSess' => $c->get_ipsecrw_sessions unless param 'IpsecrwSess';
%= text_field 'IpsecrwSess', class => ""
</span>
<br>
%= $c->render_to_string(inline => $c->l('rma_DESC_IPSECRW_RESET'));
<br>
<span class="">
%=l 'rma_LABEL_IPSECRW_RESET'
</span>
<span class="">
%= check_box 'IpsecrwReset',class => ""
</span>
<br><br>
<h2><%= l 'rma_TITLE_IPSECRW' %></h2>
<div>
<%= l 'rma_DESC_IPSECRW' %>
</div>
<div>
<%= l 'rma_LABEL_IPSECRW_SESS' %>
</div>
<div>
% param 'IpsecrwSess' => $c->get_ipsecrw_sessions unless param 'IpsecrwSess';
<%= text_field 'IpsecrwSess', class => "" %>
</div>
<br>
<div>
<%= $c->render_to_string(inline => $c->l('rma_DESC_IPSECRW_RESET')); %>
</div>
<br>
<div>
<%= l 'rma_LABEL_IPSECRW_RESET' %>
</div>
<div>
<%= check_box 'IpsecrwReset',class => "" %>
</div>
<br><br>
<!--<hr class="" />-->
%}
<!-- percequ include 'partials/_rma_pptp' -->
<h2>
%= $c->l('rma_VALIDFROM_TITLE', $c->l('rma_REMOTE_MANAGEMENT'));
</h2><br>
%=l 'rma_VALIDFROM_DESC'
<h2><%= $c->l('rma_VALIDFROM_TITLE', $c->l('rma_REMOTE_MANAGEMENT')); %></h2>
<br>
<div>
<%= l 'rma_VALIDFROM_DESC' %>
</div>
<br><br>
% my @vals = $self->_get_valid_from();
% if (@vals) {
<table class="table table-bordered">
<thead>
<tr>
<th class="">
%=l 'NETWORK'
</th><th class="">
%=l 'SUBNET_MASK'
</th><th class="">
%=l 'NUM_OF_HOSTS'
</th><th class="">
%=l 'REMOVE'
</th>
</tr>
</thead>
</tbody>
% foreach my $val ( @vals )
% {
% my ($net, $mask) = split '/', $val;
% $mask = '255.255.255.255' unless ($mask);
% my ($numhosts,$a,$b) = esmith::util::computeHostRange($net,$mask);
<tr>
%= t td => (class => "") => $net
%= t td => (class => "") => $mask
%= t td => (class => "") => $numhosts
<td class="">
<input type='checkbox' name='Remove_nets' value='<%= $net.'/'.$mask %>'>
</td>
</tr>
% }
</tbody>
<table class="table table-bordered">
<thead>
<tr>
<th><%= l 'NETWORK' %></th>
<th><%= l 'rma_SUBNET_MASK' %></th>
<th><%= l 'rma_NUM_OF_HOSTS' %></th>
<th><%= l 'REMOVE' %></th>
</tr>
</thead>
<tbody>
% foreach my $val ( @vals ) {
% my ($net, $mask) = split '/', $val;
% $mask = '255.255.255.255' unless ($mask);
% my ($numhosts,$a,$b) = esmith::util::computeHostRange($net,$mask);
<tr>
<td><%= $net %></td>
<td><%= $mask %></td>
<td><%= $numhosts %></td>
<td>
<input type='checkbox' name='Remove_nets' value='<%= $net.'/'.$mask %>'>
</td>
</tr>
% }
</tbody>
</table>
<!-- my @cbGroup = $q->checkbox_group(-name => 'validFromRemove',
@@ -106,126 +105,172 @@
foreach my $val (@vals)
{ esmith::cgi::genSmallCell($q, shift(@cbGroup), } -->
% } else {
<br><b>
%= l('rma_NO_ENTRIES_YET');
</b>
%}
%=l 'rma_DESC_VALID_FROM_ENTRIES'
<br>
<b><%= l('rma_NO_ENTRIES_YET'); %></b>
% }
<%= l 'rma_DESC_VALID_FROM_ENTRIES' %>
<br><br>
<span class="">
%=l 'NETWORK'
</span>
<span class="">
%= text_field 'ValidFromNetwork', class => ""
</span>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'NETWORK' %>
</div>
<div class="col-auto">
<%= text_field 'ValidFromNetwork', class => "" %>
</div>
</div>
<br>
<span class="">
%=l 'rma_SUBNET_MASK'
</span>
<span class="">
%= text_field 'ValidFromMask', class => ""
</span>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_SUBNET_MASK' %>
</div>
<div class="col-auto">
<%= text_field 'ValidFromMask', class => "" %>
</div>
</div>
<!--<hr class="" />-->
<h2>
%=l 'rma_TITLE_SSH'
</h2><br>
%=l 'rma_DESC_SSH'
<br><br>
<span class="">
%=l 'rma_LABEL_SSH'
</span>
<span class="">
% param 'SshAccess' => $c->get_ssh_access() unless param 'SshAccess';
%= select_field 'SshAccess' => $c->networkAccess_list(), class => ""
</span>
<h2><%= l 'rma_TITLE_SSH' %></h2>
<br>
<span class="">
%=l 'rma_LABEL_SSH_ADMIN'
</span>
<span class="">
% param 'SshPermitRootLogin' => $rma_datas->{sshPermitRootLogin} unless param 'SshPermitRootLogin';
%= select_field 'SshPermitRootLogin' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => ""
</span>
<div>
<%= l 'rma_DESC_SSH' %>
</div>
<br><br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_SSH' %>
</div>
<div class="col-md-2">
% param 'SshAccess' => $c->get_ssh_access() unless param 'SshAccess';
<%= select_field 'SshAccess' => $c->networkAccess_list(), class => "form-select" %>
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_SSH_ADMIN' %>
</div>
<div class="col-auto">
% param 'SshPermitRootLogin' => $rma_datas->{sshPermitRootLogin} unless param 'SshPermitRootLogin';
<%= select_field 'SshPermitRootLogin' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => "form-select" %>
</div>
</div>
<br>
<span class="">
%=l 'rma_LABEL_SSH_PASSWORD_ACCESS'
</span>
<span class="">
% param 'SshPasswordAuthentication' => $c->get_ssh_password_auth() unless param 'SshPasswordAuthentication';
%= select_field 'SshPasswordAuthentication' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => ""
</span>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_SSH_PASSWORD_ACCESS' %>
</div>
<div class="col-auto">
% param 'SshPasswordAuthentication' => $c->get_ssh_password_auth() unless param 'SshPasswordAuthentication';
<%= select_field 'SshPasswordAuthentication' => [[(l 'NO'), 'no'], [(l 'YES'), 'yes']], class => "form-select" %>
</div>
</div>
<br>
<span class="">
%=l 'rma_LABEL_SSH_PORT'
</span>
<span class="">
% param 'SshTCPPort' => $c->get_ssh_port() unless param 'SshTCPPort';
%= text_field 'SshTCPPort', class => ""
</span>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_SSH_PORT' %>
</div>
<div class="col-auto">
% param 'SshTCPPort' => $c->get_ssh_port() unless param 'SshTCPPort';
<%= text_field 'SshTCPPort' %>
</div>
</div>
<br>
<!--<hr class="" />-->
<h2>
%=l 'rma_TITLE_FTP_ACCESS'
</h2><br>
%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_ACCESS'));
<h2><%= l 'rma_TITLE_FTP_ACCESS' %></h2>
<br>
<span class="">
%=l 'rma_LABEL_FTP_ACCESS'
</span>
<span class="">
% param 'FtpAccess' => $c->get_ftp_access() unless param 'FtpAccess';
%= select_field 'FtpAccess' => $c->networkAccess_list(), class => ""
</span>
<div>
<%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_ACCESS')); %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_FTP_ACCESS' %>
</div>
<div class="col-auto">
% param 'FtpAccess' => $c->get_ftp_access() unless param 'FtpAccess';
<%= select_field 'FtpAccess' => $c->networkAccess_list(), class => "form-select" %>
</div>
</div>
<br>
%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_LOGIN'));
<br>
<span class="">
%=l 'rma_LABEL_FTP_LOGIN'
</span>
<span class="">
% param 'FtpPasswordAccess' => $c->get_ftp_password_login_access() unless param 'FtpPasswordAccess';
%= select_field 'FtpPasswordAccess' => $c->passwordLogin_list(), class => ""
</span>
<div>
<%= $c->render_to_string(inline => $c->l('rma_DESC_FTP_LOGIN')); %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_FTP_LOGIN' %>
</div>
<div class="col-auto">
% param 'FtpPasswordAccess' => $c->get_ftp_password_login_access() unless param 'FtpPasswordAccess';
<%= select_field 'FtpPasswordAccess' => $c->passwordLogin_list(), class => "form-select" %>
</div>
<div>
<br>
% my $mode = $c->get_telnet_mode();
% if ( $mode ne 'off') {
<!--<hr class="" />-->
<!--<hr class="" />-->
<h2><%= l 'rma_TITLE_TELNET_ACCESS' %></h2>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_DESC_TELNET_ACCESS' %>
</div>
<div>
<br><br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l 'rma_LABEL_TELNET_ACCESS' %>
</div>
<div class="col-auto">
% param 'TelnetAccess' => $mode unless param 'TelnetAccess';
<%= select_field 'TelnetAccess' => $c->networkAccess_list(), class => "form-select" %>
</div>
</div>
<h2>
%=l 'rma_TITLE_TELNET_ACCESS'
</h2><br>
<br>
<span class="">
%=l 'rma_DESC_TELNET_ACCESS'
</span>
<br><br>
<span class="">
%=l 'rma_LABEL_TELNET_ACCESS'
</span>
<span class="">
% param 'TelnetAccess' => $mode unless param 'TelnetAccess';
%= select_field 'TelnetAccess' => $c->networkAccess_list(), class => ""
</span>
<br>
%}
% }
<br>
%= submit_button "$btn", class => ""
% end
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
</div>

View File

@@ -6,36 +6,62 @@
<div class="card-body">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
</p>
<pre>
<%= dumper $c->current_route %>
</pre>
% }
% if ( stash 'error' ) {
<br><div class="">
%= $c->render_to_string(inline => stash 'error')
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash 'error') %>
</div>
%}
<h1><%=$title %></h1><br>
<p>If the Webmail panel does not appear after logging in, then please check your password.</p><br />
% }
<h1><%=$title %></h1>
<br>
<div>
If the Webmail panel does not appear after logging in, then please check your password.
</div>
<br>
% my $thisdomain = $c->req->url->to_abs->host;
% my $url = $c->stash('modul');
% if (!$url) {
% $url = $thisdomain."/roundcube";
%}
% my $username = 'admin';
% if (!$url) {
% $url = $thisdomain."/roundcube";
% }
% if ($url =~ /[?&]_user=([^&]+)/) {
% $username = $1;
%}
% $username = $1;
% }
% if (!($url =~ /https:/)) {
% $url = 'https://' . $url;
% $url = 'https://' . $url;
%}
<div class="">
<a href="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>"><button class="" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %></button></a>
<div class="container-fluid">
<a href="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>">
<button class="" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %>
</button>
</a>
<object id="" data="<%=$url %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div>
</div>
<iframe width="100%" height="600" style="border:1px solid black;" src="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>">
</iframe>
% my $btn = l('Full Window');
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
%end

View File

@@ -1,6 +1,6 @@
%define name smeserver-manager-AdminLTE
%define version 11.0.0
%define release 29
%define release 32
Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2
Name: %{name}
Version: %{version}
@@ -18,6 +18,9 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildRequires: smeserver-devtools
Requires: smeserver-release >= 11.0
Requires: smeserver-manager >= 11.0.0
Requires: smeserver-lib >= 11.0.0-13
Requires: e-smith-manager >= 2.4.0-22
AutoReqProv: no
%description
@@ -26,6 +29,14 @@ AdminLTE is an html framework for admin consoles
wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
%changelog
* Mon Jun 09 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0.31.sme
- Fix some issues with user panel
- Fix missing bootstrap icons
- Reduce font size to keep Brian happy
* Mon Jun 09 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-30.sme
- Add UTF8 support to network panel
* Wed Jun 04 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-29.sme
- Proxy panel done
@@ -127,10 +138,10 @@ wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
- Rename some partials more logically
* Tue Mar 25 2025 Brian Read <brianr@koozali.org> 11.0.0-1.sme
- New version for AdminLTE integration with no class or ids
- New version for AdminLTE integration with no class or ids
%prep
%setup
%setup
%build
perl createlinks