Compare commits
73 Commits
dbdd5217d9
...
11_0_0-47_
Author | SHA1 | Date | |
---|---|---|---|
![]() |
64de86dcf7 | ||
![]() |
6fc7fd819f | ||
![]() |
f571879414 | ||
![]() |
5b7e0a4d94 | ||
![]() |
142c05fbd7 | ||
![]() |
305e7b75d2 | ||
![]() |
b5b7645ebc | ||
![]() |
cd31fcfc5b | ||
![]() |
4204273b79 | ||
![]() |
4d47e099a6 | ||
![]() |
9e05c8df28 | ||
![]() |
625855f87e | ||
![]() |
37361c8c3f | ||
![]() |
322d3b7038 | ||
![]() |
1baec827d3 | ||
![]() |
2d6deb9b37 | ||
![]() |
f547a5300d | ||
![]() |
5f90b6573f | ||
![]() |
a2c75d9a29 | ||
![]() |
76cbe17b34 | ||
![]() |
ffe62c9951 | ||
![]() |
2ccc3b18cc | ||
![]() |
b356e9fabe | ||
![]() |
03eacd8e36 | ||
![]() |
9963a8836f | ||
![]() |
91105c83c9 | ||
![]() |
f3295483b2 | ||
![]() |
eb05438d80 | ||
![]() |
22fbb582d2 | ||
![]() |
de9c4a9264 | ||
![]() |
01223b8a9f | ||
![]() |
f9f799d2ce | ||
![]() |
b1e896c187 | ||
![]() |
e49e180ce0 | ||
![]() |
927a95af3b | ||
![]() |
b6a78980a4 | ||
![]() |
4b888a7112 | ||
![]() |
b39eef01f9 | ||
![]() |
307ee9dea4 | ||
![]() |
05d0b91138 | ||
![]() |
cd2de47aaf | ||
![]() |
eaf7721114 | ||
![]() |
343fd97ffd | ||
![]() |
8b4cdf6221 | ||
![]() |
176171c2c3 | ||
![]() |
6cc847b6b1 | ||
![]() |
12f8be6936 | ||
![]() |
12ea3b7c0b | ||
![]() |
76fc62002e | ||
![]() |
85d5927cd7 | ||
![]() |
266d8b279c | ||
![]() |
9d8b704b56 | ||
![]() |
0878755714 | ||
![]() |
35c2efaf4b | ||
![]() |
613f17bb4f | ||
![]() |
f90583b285 | ||
![]() |
e7f8f7b289 | ||
![]() |
07731ba442 | ||
![]() |
43f790de99 | ||
![]() |
ab587d4944 | ||
![]() |
e0dd4db0d9 | ||
![]() |
e88cf07647 | ||
![]() |
77d3e10bce | ||
![]() |
8ab480abfd | ||
![]() |
295c6b3ff3 | ||
![]() |
dbeacddd96 | ||
![]() |
1a4c172969 | ||
![]() |
cd6c752805 | ||
![]() |
95dedd2f38 | ||
![]() |
50edcdee9c | ||
![]() |
0d7f87c6aa | ||
![]() |
b42afb227a | ||
![]() |
767cf3bc19 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
*.log
|
*.log
|
||||||
*spec-20*
|
*spec-20*
|
||||||
*.tar.gz
|
*.tar.gz
|
||||||
|
*.workspace
|
||||||
|
1
root/usr/share/smanager/themes/AdminLTE/public/dist/css/jquery-ui.min.css
vendored
Symbolic link
1
root/usr/share/smanager/themes/AdminLTE/public/dist/css/jquery-ui.min.css
vendored
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/javascript/jquery-ui/jquery-ui.min.css
|
7
root/usr/share/smanager/themes/AdminLTE/public/dist/js/bootstrap.min.js
vendored
Normal file
7
root/usr/share/smanager/themes/AdminLTE/public/dist/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/bootstrap.min.js.map
vendored
Normal file
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/bootstrap.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/jquery-ui.min.js
vendored
Symbolic link
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/jquery-ui.min.js
vendored
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/javascript/jquery-ui/jquery-ui.min.js
|
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/jquery.min.js
vendored
Symbolic link
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/jquery.min.js
vendored
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/javascript/jquery/jquery.min.js
|
6
root/usr/share/smanager/themes/AdminLTE/public/dist/js/popper.min.js
vendored
Normal file
6
root/usr/share/smanager/themes/AdminLTE/public/dist/js/popper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/popper.min.js.map
vendored
Normal file
1
root/usr/share/smanager/themes/AdminLTE/public/dist/js/popper.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
@@ -1,3 +1,6 @@
|
|||||||
|
html {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
#busy-indicator {
|
#busy-indicator {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -50,7 +53,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.login-page {
|
.login-page {
|
||||||
min-height: 10vh;
|
min-height: 60vh !important ;
|
||||||
|
vertical-align: top !important ;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-icon {
|
.nav-icon {
|
||||||
@@ -88,3 +92,29 @@
|
|||||||
cursor: default; /* Prevent text cursor */
|
cursor: default; /* Prevent text cursor */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* TD and buttons in user lists */
|
||||||
|
|
||||||
|
.user-td-no-right {
|
||||||
|
border-left-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-td-no-left {
|
||||||
|
border-left-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .user-valign-center {
|
||||||
|
text-align: center;
|
||||||
|
-- Use align-middle --
|
||||||
|
} */
|
||||||
|
|
||||||
|
|
||||||
|
.user-table-max-width {
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.nutTable tr td:nth-child(1){
|
||||||
|
width:30%;
|
||||||
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
|
|||||||
|
function spinner() {
|
||||||
|
const spinnerDisplayer = document.querySelector('.spinner-displayer');
|
||||||
|
const btn = document.getElementById('btn');
|
||||||
|
|
||||||
|
btn.addEventListener('click', () => {
|
||||||
|
spinnerDisplayer.classList.add('loading');
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
spinner();
|
||||||
|
|
||||||
|
// <div class='spinner-displayer'></div>
|
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
This should work on class sidebar-wrapper
|
||||||
|
*/
|
||||||
|
|
||||||
|
const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
scrollbarTheme: 'os-theme-light',
|
||||||
|
scrollbarAutoHide: 'leave',
|
||||||
|
scrollbarClickScroll: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
|
||||||
|
if (sidebarWrapper && typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== 'undefined') {
|
||||||
|
OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
|
||||||
|
scrollbars: {
|
||||||
|
theme: Default.scrollbarTheme,
|
||||||
|
autoHide: Default.scrollbarAutoHide,
|
||||||
|
clickScroll: Default.scrollbarClickScroll,
|
||||||
|
},
|
||||||
|
overflow: {
|
||||||
|
x: 'hidden',
|
||||||
|
y: 'scroll',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* This should work with class=data-overlayscrollbars-initialize and id=scrolltarget */
|
||||||
|
|
||||||
|
/* https://kingsora.github.io/OverlayScrollbars/ */
|
||||||
|
|
||||||
|
/* const { OverlayScrollbars, ClickScrollPlugin } = OverlayScrollbarsGlobal;
|
||||||
|
|
||||||
|
// optional: use the ClickScrollPlugin to make the option "scrollbars.clickScroll: true" available
|
||||||
|
OverlayScrollbars.plugin(ClickScrollPlugin);
|
||||||
|
|
||||||
|
OverlayScrollbars(document.body, {
|
||||||
|
scrollbars: {
|
||||||
|
clickScroll: true,
|
||||||
|
},
|
||||||
|
overflow: {
|
||||||
|
x: 'hidden',
|
||||||
|
y: 'scroll',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
OverlayScrollbars(document.getElementById('scrollTarget'), {});
|
||||||
|
|
||||||
|
*/
|
@@ -0,0 +1,94 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
const togglePassword = document.querySelector("#togglePassword");
|
||||||
|
const password = document.querySelector("#password");
|
||||||
|
|
||||||
|
let pass = togglePassword;
|
||||||
|
|
||||||
|
if (pass) {
|
||||||
|
togglePassword.addEventListener("click", function () {
|
||||||
|
// toggle the type attribute
|
||||||
|
const type = password.getAttribute("type") === "password" ? "text" : "password";
|
||||||
|
password.setAttribute("type", type);
|
||||||
|
// toggle the eye icon
|
||||||
|
if (type === "text") {
|
||||||
|
$(this).removeClass("bi-eye");
|
||||||
|
$(this).addClass("bi-eye-slash");
|
||||||
|
} else {
|
||||||
|
$(this).removeClass("bi-eye-slash");
|
||||||
|
$(this).addClass("bi-eye");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
// Get the fields
|
||||||
|
const toggle = document.querySelector("#togglePasswords");
|
||||||
|
const passwords = document.querySelectorAll('[type="password"]');
|
||||||
|
|
||||||
|
|
||||||
|
// listen for click events on the toggle
|
||||||
|
toggle.addEventListener("click", function () {
|
||||||
|
// loop through each password field
|
||||||
|
for (let password of passwords) {
|
||||||
|
// if toggle is checked, change type to "text"
|
||||||
|
// otherwise, change it back to "password"
|
||||||
|
if (toggle.checked) {
|
||||||
|
password.type = "text";
|
||||||
|
} else {
|
||||||
|
password.type = "password";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
// For each password input
|
||||||
|
$('.sme-password').each(function () {
|
||||||
|
// Create a new container
|
||||||
|
//alert("sme-password");
|
||||||
|
//var $inputContainer = $('<div class="input-container"></div>');
|
||||||
|
|
||||||
|
// Move the input into the new container
|
||||||
|
//$(this).wrap($inputContainer);
|
||||||
|
|
||||||
|
// Create the toggle image
|
||||||
|
//var $togglePassword = $('<img src="images/visible.png" alt="Show Password" class="toggle-password" />');
|
||||||
|
|
||||||
|
// Append the toggle image to the container
|
||||||
|
//$(this).after($togglePassword);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.toggle-password').on('click', function () {
|
||||||
|
|
||||||
|
alert("toggle-password");
|
||||||
|
// Find the associated password field
|
||||||
|
var input = $(this).siblings('.sme-password');
|
||||||
|
|
||||||
|
// Toggle the type attribute between password and text
|
||||||
|
//var inputType = input.attr('type') === 'password' ? 'text' : 'password';
|
||||||
|
//input.attr('type', inputType);
|
||||||
|
|
||||||
|
// Toggle the icon source based on the input type
|
||||||
|
//var iconSrc = inputType === 'password' ? 'images/visible.png' : 'images/visible-slash.png';
|
||||||
|
//$(this).attr('src', iconSrc);
|
||||||
|
|
||||||
|
const type = password.getAttribute("type") === "password" ? "text" : "password";
|
||||||
|
|
||||||
|
password.setAttribute("type", type);
|
||||||
|
// toggle the eye icon
|
||||||
|
if (type === "text") {
|
||||||
|
$(this).removeClass("bi-eye");
|
||||||
|
$(this).addClass("bi-eye-slash");
|
||||||
|
} else {
|
||||||
|
$(this).removeClass("bi-eye-slash");
|
||||||
|
$(this).addClass("bi-eye");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
@@ -2,85 +2,105 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
<h2>
|
<br>
|
||||||
%=l 'bac_ENABLE_DISABLE_TAPE'
|
|
||||||
</h2><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>
|
<div>
|
||||||
<span class="">
|
<%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC')) %>
|
||||||
%=l 'bac_ENABLE_TAPE_BACKUP'
|
</div>
|
||||||
</span>
|
|
||||||
<span class="">
|
<br>
|
||||||
% if ( $bac_datas->{status} eq 'checked' ) {
|
|
||||||
<input type='checkbox' name='Tapebackup' checked >
|
<form action="/smanager/backupd" method="POST">
|
||||||
%} else {
|
|
||||||
%= check_box 'Tapebackup'
|
<div class="row g-3 align-items-center">
|
||||||
%}
|
<div class="col-md-1">
|
||||||
</span>
|
<%= l 'bac_ENABLE_TAPE_BACKUP' %>
|
||||||
</p>
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% if ( $bac_datas->{status} eq 'checked' ) {
|
||||||
|
<input type='checkbox' name='Tapebackup' aria-describedby="enabled" checked >
|
||||||
|
% } else {
|
||||||
|
<input type='checkbox' name='Tapebackup' aria-describedby="disabled">
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputBackupHour" class="col-form-label"><%= l 'bac_TAPE_BACKUP_TIME' %></label>
|
||||||
|
<label for="inputBackupMin" class="col-form-label"></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
|
||||||
|
<input type="text" name="BackupHour" id="inputBackupHour" class="form-control" maxlength="2" size="4" aria-describedby="Backup Hour" value="<%= $bac_datas->{backupHour} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
|
||||||
|
<input type="text" name="BackupMin" id="inputBackupMin" class="form-control" maxlength="2" size="4" aria-describedby="Backup Minute" value="<%= $bac_datas->{backupMin} %>">
|
||||||
|
</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>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-2">
|
||||||
%=l 'bac_TAPE_BACKUP_TIME'
|
<label for="inputReminderMin" class="col-form-label"><%= l 'bac_LOAD_TAPE_REMINDER_TIME' %></label>
|
||||||
</span>
|
<label for="inputReminderMin" class="col-form-label"></label>
|
||||||
<span class="">
|
</div>
|
||||||
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
|
<div class="col-auto">
|
||||||
%= text_field 'BackupHour', size => '2'
|
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
|
||||||
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
|
<input type="text" name="ReminderHour" id="inputReminderHour" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Hour" value="<%= $bac_datas->{reminderHour} %>">
|
||||||
%= text_field 'BackupMin', size => '2'
|
</div>
|
||||||
</span>
|
<div class="col-auto">
|
||||||
<!--span class="">
|
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
|
||||||
%=l 'AM/PM:'
|
<input type="text" name="ReminderMin" id="inputReminderMin" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Minute" value="<%= $bac_datas->{reminderMin} %>">
|
||||||
<!--/span-->
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% param 'BackupAMPM' => $bac_datas->{backupAMPM} unless param 'BackupAMPM';
|
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
|
||||||
%= select_field 'BackupAMPM' => ['AM', 'PM'], class => ""
|
<%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => "form-select" %>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<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>
|
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
|
||||||
%= submit_button $c->l('bac_UPDATE_CONF'), class => ""
|
|
||||||
|
% 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 btn-sm" value="<%=$c->l('bac_UPDATE_CONF')%>"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -2,36 +2,49 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<br>
|
||||||
|
|
||||||
<h2>
|
<h2><%=l 'bac_RESTORE_CONF_FROM_TAPE' %></h2>
|
||||||
%=l 'bac_RESTORE_CONF_FROM_TAPE'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC'))
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
<form action="/smanager/backupd" method="POST">
|
||||||
|
|
||||||
%= submit_button $c->l('bac_RESTORE_FROM_TAPE'), class => ""
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC')) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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 btn-sm" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -2,56 +2,74 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l 'bac_CONFIGURE_WORKSTN_BACKUP' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_WORKSTN_BACKUP_DESC')) %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
|
||||||
|
|
||||||
<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>
|
<br>
|
||||||
|
|
||||||
%= $c->render_to_string(inline => $c->workstnBackupConfig())
|
<form action="/smanager/backup" method="POST">
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<h3>
|
<%= l 'bac_WORKSTN_BACKUP_ENABLED' %>: <%= $bac_datas->{status} %>
|
||||||
%= l 'bac_WORKSTATION_BACKUP_SETCONF'
|
</div>
|
||||||
</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>
|
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
|
<br>
|
||||||
%= submit_button $c->l('NEXT'), class => ""
|
|
||||||
|
|
||||||
% end
|
<%= $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 btn-sm" value="<%=$c->l('NEXT')%>"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -2,171 +2,271 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div>
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'bac_CONFIGURE_WORKSTN_BACKUP'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_CONFIGURE_WORKSTN_BACKUP_DESC'))
|
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_ENABLE_WORKSTN_BACKUP'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% if ( $bac_datas->{status} eq 'checked' ) {
|
|
||||||
<input type='checkbox' name='Workstnbackup' checked >
|
|
||||||
%} else {
|
|
||||||
%= check_box 'Workstnbackup'
|
|
||||||
%}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<h3>
|
|
||||||
%= l 'bac_WORKSTATION_BACKUP_DEST'
|
|
||||||
</h3>
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
|
<h2><%= l 'bac_CONFIGURE_WORKSTN_BACKUP' %></h2>
|
||||||
<span class="">
|
|
||||||
%=l 'bac_WORKSTN_NAME'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkStation' => $bac_datas->{station} unless param 'BackupwkStation';
|
|
||||||
%= text_field 'BackupwkStation', size => 20, class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
%}
|
|
||||||
% if ( $bac_datas->{vfstype} eq 'usb' ) {
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_local removable disk'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkFolder' => $bac_datas->{mount} unless param 'BackupwkFolder';
|
|
||||||
%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
% } elsif ( $bac_datas->{vfstype} eq 'mnt') {
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_Mounted disk'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkFolder' => $bac_datas->{folder} unless param 'BackupwkFolder';
|
|
||||||
%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
% } else {
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_SHARED_FOLDER_NAME'
|
|
||||||
</span><span class="">
|
|
||||||
% param 'BackupwkFolder' => $bac_datas->{folder} unless param 'BackupwkFolder';
|
|
||||||
%= text_field 'BackupwkFolder', size => 20, class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
%}
|
|
||||||
% if ( $bac_datas->{vfstype} eq 'cifs' ) {
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_WORKSTN_LOGIN'
|
|
||||||
</span><span class="">
|
|
||||||
% param 'BackupwkLogin' => $bac_datas->{login} unless param 'BackupwkLogin';
|
|
||||||
%= text_field 'BackupwkLogin', size => 12, class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_PASSWORD'
|
|
||||||
</span><span class="">
|
|
||||||
% param 'BackupwkPassword' => $bac_datas->{password} unless param 'BackupwkPassword';
|
|
||||||
%= password_field 'BackupwkPassword', size => 12, class => ""
|
|
||||||
</span>
|
|
||||||
%}
|
|
||||||
</p><br><h3>
|
|
||||||
%= l 'bac_WORKSTN_BACKUP_SETTINGS'
|
|
||||||
</h3><br>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_NUMBER_OF_SETS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SetsNumber' => $bac_datas->{setsNumber} unless param 'SetsNumber';
|
|
||||||
%= text_field 'SetsNumber', size => '3'
|
|
||||||
</span>
|
|
||||||
%=l 'bac_NUMBER_OF_FILES_IN_SET'
|
|
||||||
<span class="">
|
|
||||||
% param 'Filesinset' => $bac_datas->{filesinset} unless param 'Filesinset';
|
|
||||||
%= text_field 'Filesinset', size => '3'
|
|
||||||
</span></p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_WORKSTN_BACKUP_TIME'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkHour' => $bac_datas->{hour} unless param 'BackupwkHour';
|
|
||||||
%= text_field 'BackupwkHour', size => '2'
|
|
||||||
% param 'BackupwkMin' => $bac_datas->{min} unless param 'BackupwkMin';
|
|
||||||
%= text_field 'BackupwkMin', size => '2'
|
|
||||||
</span>
|
|
||||||
%=l 'AM/PM:'
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkAMPM' => $bac_datas->{ampm} unless param 'BackupwkAMPM';
|
|
||||||
%= select_field 'BackupwkAMPM' => ['AM', 'PM'], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><span class="">
|
|
||||||
%=l 'bac_WORKSTN_TIMEOUT'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BackupwkTimeout' => $bac_datas->{timeout} unless param 'BackupwkTimeout';
|
|
||||||
%= text_field 'BackupwkTimeout', size => '2'
|
|
||||||
</span>
|
|
||||||
%=l 'bac_INC_ONLY_TIMEOUT'
|
|
||||||
<span class="">
|
|
||||||
% if ( $bac_datas->{incOnlyTimeout} eq 'checked' ) {
|
|
||||||
<input type='checkbox' name='IncOnlyTimeout' checked >
|
|
||||||
%} else {
|
|
||||||
%= check_box 'IncOnlyTimeout'
|
|
||||||
%}
|
|
||||||
</span></p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_COMPRESSION_LEVEL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Compression' => $bac_datas->{compression} unless param 'Compression';
|
|
||||||
%= text_field 'Compression', size => '1'
|
|
||||||
</span>
|
|
||||||
%=l 'bac_FULL_ONLY_ON'
|
|
||||||
<span class="">
|
|
||||||
% param 'Dof' => $bac_datas->{dof} unless param 'Dof';
|
|
||||||
%= select_field 'Dof' => $c->get_dow_list(), class => ""
|
|
||||||
</p>
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_CONFIGURE_WORKSTN_BACKUP_DESC')) %>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/backupd" method="POST">
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'bac_ENABLE_WORKSTN_BACKUP' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% if ( $bac_datas->{status} eq 'checked' ) {
|
||||||
|
<input type='checkbox' name='Workstnbackup' aria-describedby="enabled" checked >
|
||||||
|
% } else {
|
||||||
|
<input type='checkbox' name='Workstnbackup' aria-describedby="disabled">
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<h3>
|
||||||
|
%= l 'bac_WORKSTATION_BACKUP_DEST'
|
||||||
|
</h3>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputBackupWorkStationName" class="col-form-label"><%= l 'bac_WORKSTN_NAME' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkStation' => $bac_datas->{station} unless param 'BackupwkStation';
|
||||||
|
<input type="text" name="BackupwkStation" id="inputBackupWorkStationName" class="form-control"
|
||||||
|
size="20" aria-describedby="Workstation Name" value="<%= $bac_datas->{station} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( $bac_datas->{vfstype} eq 'usb' ) {
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'bac_local removable disk' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkFolder' => $bac_datas->{mount} unless param 'BackupwkFolder';
|
||||||
|
<%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% } elsif ( $bac_datas->{vfstype} eq 'mnt') {
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'bac_Mounted disk' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkFolder' => $bac_datas->{folder} unless param 'BackupwkFolder';
|
||||||
|
<%= select_field 'BackupwkFolder' => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% } else {
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputBackupSharedFolderName" class="col-form-label"><%= l 'bac_SHARED_FOLDER_NAME' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="BackupwkFolder" id="inputBackupSharedFolderName" class="form-control"
|
||||||
|
size="20" aria-describedby="Backup Shared Folder Name" value="<%= $bac_datas->{folder} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( $bac_datas->{vfstype} eq 'cifs' ) {
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputBackupWorkLogin" class="col-form-label"><%= l 'bac_WORKSTN_LOGIN' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkLogin' => $bac_datas->{login} unless param 'BackupwkLogin';
|
||||||
|
<input type="text" name="BackupwkLogin" id="inputBackupWorkLogin" class="form-control"
|
||||||
|
size="12" aria-describedby="Backup Workstation Login" value="<%= $bac_datas->{login} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="password" class="col-form-label"><%= l 'bac_PASSWORD' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkPassword' => $bac_datas->{password} unless param 'BackupwkPassword';
|
||||||
|
<input type="password" name="BackupwkPassword" id="password" class="form-control" size="12" aria-describedby="Backup Workstation Password" value="<%= $bac_datas->{password} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h3><%= l 'bac_WORKSTN_BACKUP_SETTINGS' %></h3>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputNumberofSets" class="col-form-label"><%= l 'bac_NUMBER_OF_SETS' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SetsNumber' => $bac_datas->{setsNumber} unless param 'SetsNumber';
|
||||||
|
<input type="text" name="SetsNumber" id="inputNumberofSets" class="form-control" maxlength="3" size="3" aria-describedby="Number of sets" value="<%= $bac_datas->{setsNumber} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputFilesinSet" class="col-form-label"><%= l 'bac_NUMBER_OF_FILES_IN_SET' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Filesinset' => $bac_datas->{filesinset} unless param 'Filesinset';
|
||||||
|
<input type="text" name="Filesinset" id="inputFilesinSet" class="form-control" maxlength="3" size="3" aria-describedby="Files in set" value="<%= $bac_datas->{filesinset} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputWorkstationBackupHour" class="col-form-label"><%= l 'bac_WORKSTN_BACKUP_TIME' %></label>
|
||||||
|
<label for="inputWorkstationBackupMin" class="col-form-label"></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkHour' => $bac_datas->{hour} unless param 'BackupwkHour';
|
||||||
|
<input type="text" name="BackupwkHour" id="inputWorkstationBackupHour" class="form-control" maxlength="2" size="4" aria-describedby="Backup Hour" value="<%= $bac_datas->{hour} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkMin' => $bac_datas->{min} unless param 'BackupwkMin';
|
||||||
|
<input type="text" name="BackupwkMin" id="inputWorkstationBackupMin" class="form-control" maxlength="2" size="4" aria-describedby="Backup Minute" value="<%= $bac_datas->{min} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= l 'AM/PM:' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkAMPM' => $bac_datas->{ampm} unless param 'BackupwkAMPM';
|
||||||
|
<%= select_field 'BackupwkAMPM' => ['AM', 'PM'], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputWorkstationTimeout" class="col-form-label"><%= l 'bac_WORKSTN_TIMEOUT' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BackupwkTimeout' => $bac_datas->{timeout} unless param 'BackupwkTimeout';
|
||||||
|
<input type="text" name="BackupwkTimeout" id="inputWorkstationTimeout" class="form-control" maxlength="2" size="2" aria-describedby="Workstation Timeout" value="<%= $bac_datas->{timeout} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'bac_INC_ONLY_TIMEOUT' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% if ( $bac_datas->{incOnlyTimeout} eq 'checked' ) {
|
||||||
|
<input type='checkbox' name='IncOnlyTimeout' aria-describedby="enabled" checked >
|
||||||
|
% } else {
|
||||||
|
<input type='checkbox' name='IncOnlyTimeout' aria-describedby="disabled">
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputBackupCompression" class="col-form-label"><%= l 'bac_COMPRESSION_LEVEL' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Compression' => $bac_datas->{compression} unless param 'Compression';
|
||||||
|
<input type="text" name="Compression" id="inputBackupCompression" class="form-control" maxlength="1" size="1" aria-describedby="Compression level" value="<%= $bac_datas->{compression} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'bac_FULL_ONLY_ON' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Dof' => $bac_datas->{dof} unless param 'Dof';
|
||||||
|
%= select_field 'Dof' => $c->get_dow_list(), class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
%= hidden_field 'Function' => $bac_datas->{function}
|
||||||
|
%= hidden_field 'VFSType' => $bac_datas->{vfstype}
|
||||||
|
% 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 btn-sm" value="<%=$c->l('NEXT')%>"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{function}
|
|
||||||
%= hidden_field 'VFSType' => $bac_datas->{vfstype}
|
|
||||||
%= submit_button $c->l('bac_UPDATE_CONF'), class => ""
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
% end
|
% end
|
@@ -2,44 +2,67 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<br>
|
||||||
|
|
||||||
<h2>
|
<h2><%= l 'bac_WORKSTN_RESTORE' %></h2>
|
||||||
%=l 'bac_WORKSTN_RESTORE'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<br><br>
|
<br>
|
||||||
% if ($bac_datas->{status} ne 'enabled') {
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE'))
|
|
||||||
% } else {
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_WORKSTN_DESC') . ' ' . $c->get_shared_folder_to_verify())
|
|
||||||
%}
|
|
||||||
|
|
||||||
<br><br><span class="">
|
<form action="/smanager/backupd" method="POST">
|
||||||
%=l 'bac_SELECT_BACKUP_FILE'
|
|
||||||
</span>
|
% if ($bac_datas->{status} ne 'enabled') {
|
||||||
<span class="">
|
<div>
|
||||||
%= select_field 'Backupset' => $c->get_Backupset_options(), class => ""
|
<%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE')) %>
|
||||||
</span><br><br>
|
</div>
|
||||||
|
% } else {
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_WORKSTN_DESC') . ' ' . $c->get_shared_folder_to_verify()) %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'bac_SELECT_BACKUP_FILE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'Backupset' => $c->get_Backupset_options(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
|
||||||
|
|
||||||
|
% my $btn = l('bac_RESTORE_FROM_WORKSTN');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
|
||||||
%= submit_button $c->l('bac_RESTORE_FROM_WORKSTN'), class => ""
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -2,35 +2,52 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l 'bac_WORKSTN_RESTORE' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/backupd" method="POST">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => $bac_datas->{restore_log}) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'bac_YOU_MUST_REBOOT' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
|
||||||
|
|
||||||
|
% my $btn = l('bac_REBOOT');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'bac_WORKSTN_RESTORE'
|
|
||||||
</h2>
|
|
||||||
<p>
|
|
||||||
%= $c->render_to_string(inline => $bac_datas->{restore_log})
|
|
||||||
</p><p>
|
|
||||||
%=l 'bac_YOU_MUST_REBOOT'
|
|
||||||
</p>
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
|
||||||
%= submit_button $c->l('bac_REBOOT'), class => ""
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
% end
|
% end
|
@@ -2,51 +2,76 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br><div class="text-danger">
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<br>
|
||||||
|
|
||||||
<h2><%=l 'bac_WORKSTN_SEL_RESTORE' %></h2>
|
<h2><%=l 'bac_WORKSTN_SEL_RESTORE' %></h2>
|
||||||
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_WORKSTN_SEL_REST_DESC') . ' ' . $c->get_shared_folder_to_verify())
|
<br>
|
||||||
|
|
||||||
<h3><%=l 'bac_BACKUP_CHOICE' %></h3>
|
<form action="/smanager/backupd" method="POST">
|
||||||
|
|
||||||
<br>
|
<div>
|
||||||
<span class="">
|
<%= $c->render_to_string(inline => (l 'bac_WORKSTN_SEL_REST_DESC') . ' ' . $c->get_shared_folder_to_verify()) %>
|
||||||
%=l 'bac_SELECT_BACKUP_FILE'
|
</div>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= select_field 'Backupset' => $c->get_Restoreset_options(), class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_FILTER_EXPRESSION'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= text_field 'Filterexp', size => 32, class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
|
||||||
%= submit_button $c->l('PERFORM'), class => ""
|
|
||||||
|
|
||||||
% end
|
<br>
|
||||||
|
|
||||||
|
<h3><%= l 'bac_BACKUP_CHOICE' %></h3>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'bac_SELECT_BACKUP_FILE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'Backupset' => $c->get_Restoreset_options(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputFilterExpression" class="col-form-label"><%=l 'bac_FILTER_EXPRESSION' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="Filterexp" id="inputFilterExpression" class="form-control" aria-describedby="Input Filter Expression">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
%= hidden_field 'Function' => $bac_datas->{'function'}
|
||||||
|
|
||||||
|
% my $btn = l('PERFORM');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -2,53 +2,74 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_READ_COMPLETE'))
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_READ_COMPLETE')) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<br>
|
||||||
|
|
||||||
<br><span class="">
|
<form action="/smanager/backupd" method="POST">
|
||||||
%=l 'bac_SELECT_FILES_TO_RESTORE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= select_field 'Restorefiles' => $c->get_Restorefiles_options($bac_datas->{'filterexp'},$bac_datas->{'backupset'}), class => "", multiple => 1, size => 15
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_SELECT_DATE_BEFORE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= text_field 'Seldatebefore', size => 32, class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
|
||||||
%= hidden_field 'Backupset' => $bac_datas->{'backupset'}
|
|
||||||
%= hidden_field 'Filterexp' => $bac_datas->{'filterexp'}
|
|
||||||
|
|
||||||
%= submit_button $c->l('PERFORM'), class => ""
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%=l 'bac_SELECT_FILES_TO_RESTORE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'Restorefiles' => $c->get_Restorefiles_options($bac_datas->{'filterexp'},$bac_datas->{'backupset'}), class => "form-select", multiple => 1, size => 15 %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
% end
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputSelectDate" class="col-form-label"><%=l 'bac_SELECT_DATE_BEFORE' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="Seldatebefore" id="inputSelectDate" class="form-control" aria-describedby="Restore most recent">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
%= hidden_field 'Function' => $bac_datas->{'function'}
|
||||||
|
%= hidden_field 'Backupset' => $bac_datas->{'backupset'}
|
||||||
|
%= hidden_field 'Filterexp' => $bac_datas->{'filterexp'}
|
||||||
|
|
||||||
|
|
||||||
|
% my $btn = l('PERFORM');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -2,32 +2,47 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div id="" class="">
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br>
|
<br>
|
||||||
<div class="">
|
<div class="text-danger">
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
||||||
<br>
|
|
||||||
%= $c->render_to_string(inline => $bac_datas->{restore_log})
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<form action="/smanager/backupd" method="POST">
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
|
||||||
%= submit_button $c->l('NEXT'), class => ""
|
|
||||||
|
|
||||||
% end
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => $bac_datas->{restore_log}) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
|
||||||
|
|
||||||
|
% my $btn = l('NEXT');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -1,61 +1,78 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - backup - verify";
|
% layout 'AdminLTE', title => "Sme server 2 - backup - verify";
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br>
|
<br><div class="text-danger">
|
||||||
<div class="">
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
</div>
|
||||||
</div>
|
% }
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'bac_VERIFY_WORKSTN_BACKUP_FILE'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%= form_for '/backup' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
% if ($bac_datas->{status} ne 'enabled') {
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE'))
|
|
||||||
% } else {
|
|
||||||
%= $c->render_to_string(inline => (l 'bac_VERIFY_WORKSTN_BACKUP_DESC') . ' ' . $c->get_shared_folder_to_verify())
|
|
||||||
%}
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_SELECT_BACKUP_FILE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= select_field 'Backupset' => $c->get_Backupset_options(), class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p>
|
<h2><%=l 'bac_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
|
||||||
<span class="">
|
|
||||||
%=l 'bac_CHECK_TO_VERIFY_FULL_RESTORE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= check_box 'Verifyall'
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
%=l 'bac_CHECK_INTEGRITY_WARNING'
|
<form action="/smanager/backup" method="POST">
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
|
|
||||||
%= submit_button $c->l('bac_VERIFY'), class => ""
|
|
||||||
|
|
||||||
% end
|
% if ($bac_datas->{status} ne 'enabled') {
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_CONFIGURATION_TO_BE_DONE')) %>
|
||||||
|
</div>
|
||||||
|
% } else {
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => (l 'bac_VERIFY_WORKSTN_BACKUP_DESC') . ' ' . $c->get_shared_folder_to_verify()) %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%=l 'bac_SELECT_BACKUP_FILE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'Backupset' => $c->get_Backupset_options(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<%=l 'bac_CHECK_TO_VERIFY_FULL_RESTORE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type='checkbox' name='Verifyall'>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
%=l 'bac_CHECK_INTEGRITY_WARNING'
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
|
||||||
|
|
||||||
|
% my $btn = l('bac_VERIFY');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -1,36 +1,50 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - backup - verify";
|
% layout 'AdminLTE', title => "Sme server 2 - backup - verify";
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas->{function}
|
<%= dumper $bac_datas->{function} %>
|
||||||
<!-- dumper $bac_datas->{'files_list'} -->
|
<!-- dumper $bac_datas->{'files_list'} -->
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br>
|
<br>
|
||||||
<div class="">
|
<div class="text-danger">
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2><%= l 'bac_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
|
<h2><%= l 'bac_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
%= $c->render_to_string(inline => $c->workstnVerify())
|
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => $c->workstnVerify()) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
%= form_for '/backupd' => (method => 'POST') => begin
|
<form action="/smanager/backupd" method="POST">
|
||||||
|
|
||||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
%= hidden_field 'Function' => $bac_datas->{'function'}
|
||||||
|
|
||||||
%= submit_button $c->l('NEXT'), class => ""
|
% my $btn = l('NEXT');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
% end
|
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
@@ -1,6 +1,6 @@
|
|||||||
<%
|
<%
|
||||||
|
|
||||||
my $backups = esmith::BackupHistoryDB->open;
|
my $backups = esmith::BackupHistoryDB->open; # no UTF8
|
||||||
my $now = time();
|
my $now = time();
|
||||||
my $backup_rec = $backups->new_record($now, {
|
my $backup_rec = $backups->new_record($now, {
|
||||||
type => 'backup_record', BackupType => 'desktop',
|
type => 'backup_record', BackupType => 'desktop',
|
||||||
|
@@ -2,90 +2,102 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $bac_datas
|
<%= dumper $bac_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'warning' ) {
|
% if ( stash 'warning' ) {
|
||||||
<br>
|
<br>
|
||||||
<div class="">
|
<div class="col-md-4 bg-info text-center">
|
||||||
%= $c->render_to_string(inline => stash 'warning')
|
<%= $c->render_to_string(inline => stash 'warning') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
<br>
|
||||||
|
% }
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br>
|
<br>
|
||||||
<div class="">
|
<div class="text-danger">
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
<br>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
<!--br>Still incomplete click here for previous version
|
<!--br>Still incomplete click here for previous version
|
||||||
<a href="/server-manager/cgi-bin/backup" target='_blank'><b>(Previous Backup version)</b></a>
|
<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_for '/backup' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'bac_BACKUP_CONFIG_STATUS'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_TAPE_BACKUPS',
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->l(uc($bac_datas->{'backupStatus'})).'.'
|
|
||||||
</span>
|
|
||||||
% if ( $bac_datas->{'backupStatus'} eq 'enabled' ) {
|
|
||||||
%= $c->l('bac_BACKUPS_RUN_AT')
|
|
||||||
<span class="">
|
|
||||||
%= $bac_datas->{'backupTime'}
|
|
||||||
</span>
|
|
||||||
%= $c->l('bac_REMINDER_MESSAGE_AT')
|
|
||||||
<span class="">
|
|
||||||
%= $bac_datas->{'reminderTime'}
|
|
||||||
</span>
|
|
||||||
%}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_WORKSTN_BACKUPS',
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->l(uc($bac_datas->{'backupwkStatus'})).'.'
|
|
||||||
</span>
|
|
||||||
% if ( $bac_datas->{'backupwkStatus'} eq 'enabled' ) {
|
|
||||||
%= $c->l('bac_WKBACKUPS_RUN_AT')
|
|
||||||
<b>
|
|
||||||
%= $bac_datas->{'backupwkTime'}
|
|
||||||
</b>
|
|
||||||
%}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'bac_SELECT_AN_ACTION'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Function' => $bac_datas->{function} unless param 'Function';
|
|
||||||
%= select_field 'Function' => $c->get_function_options(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
%= submit_button $c->l('PERFORM'), class => ""
|
|
||||||
|
|
||||||
% end
|
<%= $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-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
% end
|
% end
|
@@ -2,97 +2,130 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
(DBG)route: <%= $c->current_route %><br>
|
(DBG)route: <%= $c->current_route %><br>
|
||||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%= $title %></h1>
|
<h1><%= $title %></h1>
|
||||||
<!--br><%= $modul %><br-->
|
<!--br><%= $modul %><br-->
|
||||||
|
<br>
|
||||||
<b>
|
<h2><%= l ('bugr_DO_NOT_PANIC') %></h2>
|
||||||
%=l ('bugr_DO_NOT_PANIC')
|
<br>
|
||||||
</b>
|
<div>
|
||||||
<p>
|
<%= l ('bugr_SME_EXPERIENCE') %>
|
||||||
%=l ('bugr_SME_EXPERIENCE')
|
</div>
|
||||||
</p>
|
<br>
|
||||||
<p>
|
<div>
|
||||||
%=l ('bugr_USE_TEMPLATE')
|
<%= l ('bugr_USE_TEMPLATE') %>
|
||||||
: <a href="https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs"
|
: <a href="https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs"
|
||||||
target="_blank">https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs</a>.
|
target="_blank">https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs</a>
|
||||||
</p>
|
</div>
|
||||||
<p>
|
<br>
|
||||||
%=l ('bugr_PLEASE_REPORT_HERE')
|
<div>
|
||||||
: <a href="https://bugs.koozali.org" target="_blank">https://bugs.koozali.org</a>.
|
<%= l ('bugr_PLEASE_REPORT_HERE') %>
|
||||||
</p>
|
: <a href="https://bugs.koozali.org"
|
||||||
<p>
|
target="_blank">https://bugs.koozali.org</a>
|
||||||
%=l ('bugr_FOLLOWING_REPORT_MIGHT_HELP')
|
</div>
|
||||||
</p>
|
<br>
|
||||||
<p>
|
<div>
|
||||||
%=l ('bugr_REPORT_CONTENT')
|
<%= l ('bugr_FOLLOWING_REPORT_MIGHT_HELP') %>
|
||||||
<br>
|
</div>
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= l ('bugr_REPORT_CONTENT') %>
|
||||||
|
<br><br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_SME_VERSION')
|
<%= l ('bugr_SME_VERSION') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_SERVER_MODE')
|
<%= l ('bugr_SERVER_MODE') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_PREVIOUS_SERVER_MODE')
|
<%= l ('bugr_PREVIOUS_SERVER_MODE') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_KERNEL_AND_ARCH')
|
<%= l ('bugr_KERNEL_AND_ARCH') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_INSTALLED_RPMS')
|
<%= l ('bugr_INSTALLED_RPMS') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_ALTERED_TEMPLATES')
|
<%= l ('bugr_ALTERED_TEMPLATES') %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
%=l ('bugr_ALTERED_EVENTS')
|
<%= l ('bugr_ALTERED_EVENTS') %>
|
||||||
</li> <li>
|
</li> <li>
|
||||||
%=l ('bugr_YUM_REPOS')
|
<%= l ('bugr_YUM_REPOS') %>
|
||||||
</li>
|
</li>
|
||||||
<br>
|
|
||||||
</ul>
|
</ul>
|
||||||
%=l ('bugr_PRIVACY')
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
<% my $btn = l('bugr_CREATE_REPORT'); %>
|
|
||||||
|
|
||||||
%= form_for 'bugreport' => (method => 'POST') => begin
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
% end
|
|
||||||
|
|
||||||
<p><b>
|
|
||||||
%=l ('bugr_DONATING')
|
|
||||||
</b>
|
|
||||||
<br><br>
|
|
||||||
%=l ('bugr_AWARE_SME')
|
|
||||||
<br><br>
|
|
||||||
<b>
|
|
||||||
%=l ('bugr_YOUR_HELP')
|
|
||||||
</b>
|
|
||||||
<br><br>
|
|
||||||
%=l ('bugr_CONSIDER_DONATING')
|
|
||||||
<br><br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= link_to 'https://wiki.koozali.org/Donate' => begin
|
|
||||||
%= image '/images/btn_donateCC_LG.gif'
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $bugr_datas->{trt}
|
|
||||||
|
|
||||||
% end
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
%=l ('bugr_THANK_YOU')
|
|
||||||
|
<div>
|
||||||
|
<%= l ('bugr_PRIVACY') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('bugr_CREATE_REPORT');
|
||||||
|
|
||||||
|
|
||||||
|
<form action="/smanager/bugreport" method="POST">
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => $bugr_datas->{trt} %>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<b>
|
||||||
|
<%= l ('bugr_DONATING') %>
|
||||||
|
</b>
|
||||||
|
<br><br>
|
||||||
|
<%= l ('bugr_AWARE_SME') %>
|
||||||
|
<br><br>
|
||||||
|
<b>
|
||||||
|
<%= l ('bugr_YOUR_HELP') %>
|
||||||
|
</b>
|
||||||
|
<br><br>
|
||||||
|
<%= l ('bugr_CONSIDER_DONATING') %>
|
||||||
|
<br><br>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href="https://wiki.koozali.org/Donate"
|
||||||
|
target="_blank">
|
||||||
|
<img src="/smanager/images/btn_donateCC_LG.gif" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href="https://wiki.koozali.org/Donate"
|
||||||
|
target="_blank">Donate
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= l ('bugr_THANK_YOU') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
(DBG)route: <%= $c->current_route %><br>
|
(DBG)route: <%= $c->current_route %><br>
|
||||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%= $title %></h1>
|
<h1><%= $title %></h1>
|
||||||
@@ -17,17 +17,25 @@
|
|||||||
|
|
||||||
<% my $btn = l('bugr_Download this report'); %>
|
<% my $btn = l('bugr_Download this report'); %>
|
||||||
|
|
||||||
%= form_for 'bugreportD' => (method => 'POST') => begin
|
<form action="/smanager/bugreportD" method="POST">
|
||||||
%= submit_button "$btn", class => ""
|
<div class="row g-3 align-items-center">
|
||||||
%= hidden_field 'trt' => $bugr_datas->{trt}
|
<div class="col-md-2">
|
||||||
% end
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => $bugr_datas->{trt} %>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% my $out = "================== <br />";
|
% my $out = "================== <br />";
|
||||||
% $out .= "Boot anaysis image (right click and save image to download)<br />";
|
% $out .= "Boot anaysis image (right click and save image to download)<br />";
|
||||||
% $out .= "================== <br />";
|
% $out .= "================== <br />";
|
||||||
% $out .= "<img src='images/boot.svg' alt='boot timing image' width=95% >";
|
% $out .= "<img src='images/boot.svg' alt='boot timing image' width=95% >";
|
||||||
|
|
||||||
<br><%= $c->render_to_string(inline=>$out) %><br>
|
<br>
|
||||||
|
<%= $c->render_to_string(inline=>$out) %>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -1,48 +1,68 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - clamav";
|
% layout 'AdminLTE', title => "Sme server 2 - clamav";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
%if (config->{debug} == 1) {
|
|
||||||
<p>(DBG)route: <%= $c->current_route %><br>
|
|
||||||
(DBG)FsS stat: <%= $clm_datas->{FilesystemScan}%> <br>
|
|
||||||
(DBG)Quar stat: <%=$clm_datas->{Quarantine} %>
|
|
||||||
</p>
|
|
||||||
%}
|
|
||||||
<h1><%= $title %></h1>
|
|
||||||
<br>
|
|
||||||
<%= $modul %>
|
|
||||||
<% my $btn = l('SAVE'); %>
|
|
||||||
|
|
||||||
%= form_for 'clamav' => (method => 'POST') => begin
|
<div class="card-body">
|
||||||
<p>
|
|
||||||
<span class="">
|
% if (config->{debug} == 1) {
|
||||||
%=l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD'
|
<pre>
|
||||||
</span>
|
Route: <%= dumper $c->current_route %><br>
|
||||||
<span class="">
|
FsS stat: <%= dumper $clm_datas->{FilesystemScan}%> <br>
|
||||||
% param 'FilesystemScan' => $clm_datas->{FilesystemScan} unless param 'FilesystemScan';
|
Quar stat: <%= dumper $clm_datas->{Quarantine} %>
|
||||||
%= select_field 'FilesystemScan' => [[ (l 'clm_DAILY') => 'daily'], [ (l 'clm_NEVER') => 'disabled'], [ (l 'clm_WEEKLY') => 'weekly']], class => ""
|
</pre>
|
||||||
</span>
|
% }
|
||||||
</p>
|
|
||||||
<p>
|
<h1><%= $title %></h1>
|
||||||
<span class="">
|
<!-- reetp This $module should be split ijto two lines -->
|
||||||
%=l 'clm_LABEL_QUARANTINE'
|
<%= $modul %>
|
||||||
</span>
|
|
||||||
<span class="">
|
<br><br>
|
||||||
% param 'Quarantine' => $clm_datas->{Quarantine} unless param 'Quarantine';
|
|
||||||
%= select_field 'Quarantine' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => ""
|
<form action="/smanager/clamav" method="POST">
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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>
|
<br>
|
||||||
</span>
|
|
||||||
</p>
|
<div class="row g-3 align-items-center">
|
||||||
<p>
|
<div class="col-md-2">
|
||||||
<span class="">
|
<%= l 'clm_LABEL_QUARANTINE' %>:
|
||||||
%=l 'clm_LABEL_CLAM_VERSIONS'
|
</div>
|
||||||
</span>
|
<div class="col-md-2">
|
||||||
<span class="">
|
% param 'Quarantine' => $clm_datas->{Quarantine} unless param 'Quarantine';
|
||||||
%= $clm_datas->{clam_versions}
|
<%= select_field 'Quarantine' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
</span>
|
|
||||||
</p>
|
<div>
|
||||||
%= submit_button "$btn", class => ""
|
<div>
|
||||||
% end
|
<h6><%= l 'clm_LABEL_CLAM_VERSIONS' %>:</h6>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<%= $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-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
%end
|
%end
|
||||||
|
@@ -1,7 +1,16 @@
|
|||||||
<!-- common_css.html.ep -->
|
<!-- common_css.html.ep -->
|
||||||
|
|
||||||
%= stylesheet 'css/sme-jquery-overrides.css'
|
<!-- Generic to AdminLTE -->
|
||||||
%= stylesheet 'dist/css/adminlte.min.css'
|
%= stylesheet 'dist/css/adminlte.min.css'
|
||||||
|
%= stylesheet 'dist/font/bootstrap-icons.min.css'
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Specific to Koozali from smanager/default -->
|
||||||
|
%= stylesheet 'css/flag-icon.min.css'
|
||||||
|
|
||||||
|
<!-- Specific Koozali AdminLTE overrides -->
|
||||||
%= stylesheet 'koozali/css/adminlte.koozali.css'
|
%= stylesheet 'koozali/css/adminlte.koozali.css'
|
||||||
%= stylesheet 'koozali/css/flag-icon.min.css'
|
|
||||||
%= stylesheet 'dist/icons/font/bootstrap-icons.min.css'
|
|
||||||
|
%#= stylesheet 'dist/css/overlayscrollbars.min.css'
|
||||||
|
%#= stylesheet 'css/sme-jquery-overrides.css'
|
@@ -1,6 +1,16 @@
|
|||||||
<!-- Include files across the whole site -->
|
<!-- common_js.html.ep -->
|
||||||
%= javascript 'js/jquery.min.js'
|
|
||||||
%= javascript 'dist/js/adminlte.min.js'
|
<!-- Specific to AdminLTE -->
|
||||||
|
%= javascript 'dist/js/adminlte.min.js'
|
||||||
|
%= javascript 'dist/js/bootstrap.min.js'
|
||||||
|
|
||||||
|
<!-- Generic JS -->
|
||||||
|
%= javascript 'dist/js/jquery.min.js'
|
||||||
|
%= javascript 'dist/js/popper.min.js'
|
||||||
|
|
||||||
|
<!-- Specific to Koozali from smanager/default -->
|
||||||
|
%= javascript 'js/flag-by-locale.js'
|
||||||
|
|
||||||
|
<!-- Specific to Koozali AdminLTE -->
|
||||||
|
%= javascript 'koozali/js/sme-password.js'
|
||||||
|
|
||||||
%= javascript '/js/flag-by-locale.js'
|
|
||||||
%= javascript '/js/sme-password.js'
|
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - err 400";
|
% layout 'AdminLTE', title => "Sme server 2 - err 400";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
<div class="text-danger">
|
<div class="text-danger">
|
||||||
%= l 'CSRF_VALIDATION_FAILURE'
|
%= l 'CSRF_VALIDATION_FAILURE'
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,135 +1,232 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - datetime";
|
% layout 'AdminLTE', title => "Sme server 2 - datetime";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $dat_datas
|
<%= dumper $dat_data %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
|
||||||
|
% if ($c->stash('first')) {
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline =>$c->l($c->stash('first'))) %>
|
||||||
|
</div>
|
||||||
|
% } elsif ($c->stash('success')) {
|
||||||
|
<div class='text-success'>
|
||||||
|
<%= $c->l($c->stash('success')); %>
|
||||||
|
</div>
|
||||||
|
% } elsif ($c->stash('error')) {
|
||||||
|
<div class='text-danger'>
|
||||||
|
<%= $c->l($c->stash('error')); %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
|
||||||
|
<h1><%= $title %></h1>
|
||||||
<br>
|
<br>
|
||||||
<div class="">
|
<%= $modul %>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
|
||||||
</div>
|
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title %></h1><br>
|
<br><br>
|
||||||
%= $modul
|
|
||||||
<% my $btn = l('SAVE'); %>
|
|
||||||
|
|
||||||
%= form_for '/datetime' => (method => 'POST') => begin
|
<div div class="row g-3 align-items-center">
|
||||||
<p>
|
<div class="col-md-2">
|
||||||
%= hidden_field 'Old_ntpstatus' => $dat_datas->{ntpstatus};
|
<%= $c->l('dat_The_time_is_currently') %>
|
||||||
|
</div>
|
||||||
% param 'Ntpstatus' => $dat_datas->{ntpstatus} unless param 'Ntpstatus';
|
|
||||||
%= radio_button Ntpstatus => 'enabled'
|
|
||||||
<span class="">
|
|
||||||
%=l 'dat_NTP_CONFIGURE_TITLE'
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
% if ($dat_datas->{ntpstatus} eq 'disabled') {
|
|
||||||
<div class="">
|
|
||||||
%=l 'dat_NTP_ENABLE_DESC'
|
|
||||||
<br>
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= text_field 'clock', id => 'real-time-clock', readonly => 'readonly', class => 'col-md-2' , value => $dat_data->{currentdatetime} %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% if ($dat_data->{ntpstatus} eq 'disabled') {
|
||||||
|
<div class='datetime-set-ntp'>
|
||||||
|
<%= l 'dat_NTP_ENABLE_DESC' %>
|
||||||
|
</div>
|
||||||
% } else {
|
% } else {
|
||||||
<div class="">
|
|
||||||
%=l 'dat_NTP_CONFIGURE_DESC'
|
% my $current_year = $dat_data->{year};
|
||||||
<br><br>
|
% my $year_options = [ map { [ $_, $_ ] } ($current_year..($current_year+30)) ];
|
||||||
<p>
|
% my $month_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (1..12) ];
|
||||||
%=l 'dat_CURRENT_SETTING'
|
% my $hour_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..23) ];
|
||||||
<b>
|
% my $minute_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..60) ];
|
||||||
%= $dat_datas->{now_string}
|
% my $second_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..60) ];
|
||||||
</b>
|
% my $mode_options = [
|
||||||
</p>
|
% [ $c->l('dat_ntp_server'), 'dat_ntp_server' ],
|
||||||
<p>
|
% [ $c->l('dat_manually_set'), 'dat_manually_set' ]
|
||||||
|
% ];
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'dat_NTP_SERVER'
|
<h2><%= $c->l('Time Configuration') %></h2>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= text_field 'Ntpserver' => $dat_datas->{ntpserver}, class => ""
|
<form action="/smanager/datetimeu" method="POST">
|
||||||
</span>
|
|
||||||
</p>
|
<br>
|
||||||
</div>
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= label_for time_mode => $c->l('Time Setting Mode:') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'time_mode' => $dat_data->{time_mode} unless param 'time_mode';
|
||||||
|
<%= select_field time_mode => ($mode_options, id => 'time_mode_select'), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div id='ntp_section'>
|
||||||
|
<div>
|
||||||
|
<%= $c->l('dat_NTP_CONFIGURE_DESC') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputNTPServerURL" class="col-form-label"><%=$c->l('dat_NTP_Server_URL') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my $server_check = '^([a-zA-Z0-9][a-zA-Z0-9\.\-]{0,253}[a-zA-Z0-9]|(\d{1,3}\.){3}\d{1,3})$';
|
||||||
|
% param 'ntpserver' => $dat_data->{ntpserver} unless param 'ntpserver';
|
||||||
|
<input type="text" name="ntpserver" id="inputNTPServerURL" class="form-control" aria-describedby="NTP Server URL" pattern="<%= $server_check %>" value="<%= $dat_data->{ntpserver} %>">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button type="button" id="test-ntp-btn" class="btn btn-primary btn-sm ml-2">Test Server</button>
|
||||||
|
<span id="ntp-test-result" class="ntp-test-result ml-2"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div id='manual_section'>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->l('dat_NTP_DISABLE_DESC') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3><%= $c->l('dat_set_manually') %></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
|
||||||
|
<div class="col-md-1">
|
||||||
|
<legend><%= $c->l('Date') %><legend>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->l('Year:') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'year' => ($dat_data->{year}) unless param 'year';
|
||||||
|
<%= select_field year => ($year_options, id => 'year'), required => 'required', class=> "form-select" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->l('Month:') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'month' => ($dat_data->{month}) unless param 'month';
|
||||||
|
<%= select_field month => ($month_options, id => 'month'), required => 'required', class=> "form-select" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
<label for="inputDay" class="col-form-label"><%= $c->l('Day:') %></label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'day' => ($dat_data->{day}) unless param 'day';
|
||||||
|
<input type="text" name="day" id="inputDay" class="form-control" aria-describedby="Day" placeholder="<%= $dat_data->{day} %>" pattern="^(0[1-9]|[12][0-9]|3[01])$" size="2" maxlength="2" required="required" inputmode = "numeric" autcomplete="off">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
|
||||||
|
<div class="col-md-1">
|
||||||
|
<legend><%= $c->l('Time') %></legend>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->l('Hour:') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'hour' => ($dat_data->{hour}) unless param 'hour';
|
||||||
|
<%= select_field hour => ($hour_options, id => 'hour'), required => 'required', class=> "form-select" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
%= label_for minute => $c->l('Minute:')
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'minute' => ($dat_data->{minute}) unless param 'minute';
|
||||||
|
<%= select_field minute => ($minute_options, id => 'minute'), required => 'required', class=> "form-select", inputmode => 'numeric' %>
|
||||||
|
|
||||||
|
%#= text_field minute => id => 'minute', size => 2, maxlength => 2, placeholder => 'MM', pattern => '^[0-5][0-9]$', title => 'Minute (00-59)', required => 'required', inputmode => 'numeric', autocomplete => 'off'
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
%= label_for second => $c->l('Second:')
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'second' => ($dat_data->{second}) unless param 'second';
|
||||||
|
<%= select_field minute => ($second_options, id => 'minute'), required => 'required', class=> "form-select" , inputmode => 'numeric' %>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'dat_TZ' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Timezone' => $c->getTimezone() unless param 'Timezone';
|
||||||
|
<%= select_field 'Timezone' => $c->getZone_list(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<%= hidden_field 'Old_ntpstatus' => $dat_data->{ntpstatus}; %>
|
||||||
|
<%= hidden_field 'trt' => $dat_data->{trt}; %>
|
||||||
|
|
||||||
|
<% 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-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
% }
|
% }
|
||||||
%= radio_button Ntpstatus => 'disabled'
|
|
||||||
<span class="">
|
|
||||||
%=l 'dat_NTP_DISABLE_TITLE'
|
|
||||||
</span>
|
|
||||||
|
|
||||||
% if ($dat_datas->{ntpstatus} eq 'enabled') {
|
|
||||||
|
|
||||||
<br><BR>
|
|
||||||
<div class="">
|
|
||||||
%=l 'dat_NTP_DISABLE_DESC'
|
|
||||||
</div>
|
|
||||||
% } else {
|
|
||||||
<div class="">
|
|
||||||
<br>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
%=l 'dat_CURRENT_SETTING'
|
|
||||||
<b>
|
|
||||||
%= $dat_datas->{now_string}
|
|
||||||
</b>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dat_NEW_M/D/Y'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Month' => $dat_datas->{month} unless param 'Month';
|
|
||||||
%= select_field 'Month' => $c->getMonth_list(), class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Day' => $dat_datas->{day} unless param 'Day';
|
|
||||||
%= text_field 'Day', size => '2', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Year' => $dat_datas->{year} unless param 'Year';
|
|
||||||
%= text_field 'Year', size => '4', class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dat_NEW_H/M/S'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Hour' => $dat_datas->{hour} unless param 'Hour';
|
|
||||||
%= text_field 'Hour', size => '2', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Minute' => $dat_datas->{minute} unless param 'Minute';
|
|
||||||
%= text_field 'Minute', size => '2', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Second' => $dat_datas->{second} unless param 'Second';
|
|
||||||
%= text_field 'Second', size => '2', class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dat_AM/PM_AND_TZ'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Ampm' => $dat_datas->{ampm} unless param 'Ampm';
|
|
||||||
%= select_field 'Ampm' => ['AM', 'PM'], class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Timezone' => $c->getTimezone() unless param 'Timezone';
|
|
||||||
%= select_field 'Timezone' => $c->getZone_list(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
% }
|
|
||||||
<p>
|
|
||||||
<br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
%end
|
% end
|
||||||
|
1;
|
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
<p><%= $title %></p>
|
<p><%= $title %></p>
|
||||||
<%= $modul %>
|
<%= $modul %>
|
||||||
<p>
|
<p>
|
||||||
|
@@ -1,90 +1,133 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - directory";
|
% layout 'AdminLTE', title => "Sme server 2 - directory";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
%if (config->{debug} == 1) {
|
%if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
(DBG)route: <%= $c->current_route %><br>
|
<%= dumper $c->current_route %><br>
|
||||||
(DBG)dir. access: <%= $dir_datas->{access}%><br>
|
<%= dumper $dir_datas->{access}%><br>
|
||||||
</p>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<h1><%= $title %></h1>
|
<h1><%= $title %></h1>
|
||||||
<br>
|
<br>
|
||||||
<%= $modul %>
|
<%= $modul %>
|
||||||
<% my $btn = l('SAVE');
|
<% my $btn = l('SAVE'); %>
|
||||||
%>
|
|
||||||
|
|
||||||
|
<form action="/smanager/directory" method="POST">
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l('dir_LABEL_ROOT') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $dir_datas->{root} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
%= form_for 'directory' => (method => 'POST') => begin
|
<br>
|
||||||
<br>
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= l('dir_LABEL_ROOT'), class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $dir_datas->{root}, class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
%=l 'dir_DESC_DIRECTORY_ACCESS', class => ""
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_DIRECTORY_ACCESS', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'access' => $dir_datas->{access} unless param 'access';
|
|
||||||
%= select_field 'access' => [[ (l 'NETWORKS_ALLOW_LOCAL') => 'private'], [ (l 'NETWORKS_ALLOW_PUBLIC') => 'public']], class => "", id => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
%=l 'dir_DESC_DEPARTMENT', class => ""
|
|
||||||
<br><br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_DEPARTMENT', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= text_field 'department' => $dir_datas->{department}, class => ""
|
|
||||||
</span>
|
|
||||||
</p><p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_COMPANY', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= text_field 'company', $dir_datas->{company}, class => ""
|
|
||||||
</span>
|
|
||||||
</p><p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_STREET', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= text_field 'street' => $dir_datas->{street}, class => ""
|
|
||||||
</span>
|
|
||||||
</p><p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_CITY', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= text_field 'city', $dir_datas->{city}, class => ""
|
|
||||||
</span>
|
|
||||||
</p><p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_PHONENUMBER', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= text_field 'phonenumber', $dir_datas->{phonenumber}, class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
%=l 'dir_DESC_EXISTING', class => ""
|
|
||||||
<br><br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dir_EXISTING', class => ""
|
|
||||||
</span><span class="">
|
|
||||||
%= select_field 'existing'=> [[ (l 'dir_LEAVE') => 'leave'], [ (l 'dir_UPDATE') => 'update' ]], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
% end
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'dir_DESC_DIRECTORY_ACCESS' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'dir_DIRECTORY_ACCESS' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'access' => $dir_datas->{access} unless param 'access';
|
||||||
|
<%= select_field 'access' => [[ (l 'NETWORKS_ALLOW_LOCAL') => 'private'], [ (l 'NETWORKS_ALLOW_PUBLIC') => 'public']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'dir_DESC_DEPARTMENT' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDirDepartment" class="col-form-label"><%= l 'dir_DEPARTMENT' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="department" id="inputDirDepartment" class="form-control" aria-describedby="DirectoryDepartment" value="<%= $dir_datas->{department} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDirCompany" class="col-form-label"><%= l 'dir_COMPANY' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="company" id="inputDirCompany" class="form-control" aria-describedby="DirectoryCompany" value="<%= $dir_datas->{company} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDirStreet" class="col-form-label"><%= l 'dir_STREET' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="street" id="inputDirStreet" class="form-control" aria-describedby="DirectoryStreet" value="<%= $dir_datas->{street} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDirCity" class="col-form-label"><%= l 'dir_CITY' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="city" id="inputDirCity" class="form-control" aria-describedby="DirectoryCity" value="<%= $dir_datas->{city} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDirPhoneNumber" class="col-form-label"><%= l 'dir_PHONENUMBER' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="phonenumber" id="inputDirPhoneNumber" class="form-control" aria-describedby="DirectoryPhoneNmber" value="<%= $dir_datas->{phonenumber} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'dir_DESC_EXISTING' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'dir_EXISTING' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'existing'=> [[ (l 'dir_LEAVE') => 'leave'], [ (l 'dir_UPDATE') => 'update' ]], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%end
|
%end
|
@@ -1,32 +1,34 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - domains";
|
% layout 'AdminLTE', title => "Sme server 2 - domains";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $dom_datas
|
<%= dumper $dom_datas %>
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
% if ($dom_datas->{trt} eq 'ADD' or $dom_datas->{trt} eq 'UPD') {
|
% if ($dom_datas->{trt} eq 'ADD' or $dom_datas->{trt} eq 'UPD') {
|
||||||
%= include 'partials/_dom_upd'
|
%= include 'partials/_dom_upd'
|
||||||
%} elsif ($dom_datas->{trt} eq 'DEL') {
|
% } elsif ($dom_datas->{trt} eq 'DEL') {
|
||||||
%= include 'partials/_dom_del'
|
%= include 'partials/_dom_del'
|
||||||
%} elsif ($dom_datas->{trt} eq 'UP2') {
|
% } elsif ($dom_datas->{trt} eq 'UP2') {
|
||||||
%= include 'partials/_dom_up2'
|
%= include 'partials/_dom_up2'
|
||||||
%} else {
|
% } else {
|
||||||
%= include 'partials/_dom_list'
|
%= include 'partials/_dom_list'
|
||||||
%}
|
% }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
%end
|
%end
|
||||||
|
@@ -1,66 +0,0 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - emailaccess";
|
|
||||||
|
|
||||||
% content_for 'module' => begin
|
|
||||||
<div>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
|
||||||
%= dumper $mai_datas
|
|
||||||
</p>
|
|
||||||
% }
|
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
|
||||||
<br><div class="">
|
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
|
||||||
</div>
|
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
|
||||||
|
|
||||||
%= form_for '/emailsettingd' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
%=l 'mai_DESC_POP_ACCESS_CONTROL'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_POP_ACCESS_CONTROL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
|
|
||||||
%= select_field 'POPAccess' => $c->get_pop_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_IMAP_ACCESS_CONTROL'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
|
|
||||||
%= select_field 'IMAPAccess' => $c->get_imap_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_WEBMAIL'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_WEBMAIL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
|
|
||||||
%= select_field 'WebMail' => $c->get_webmail_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'ACC'
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
|
||||||
%end
|
|
@@ -1,111 +0,0 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - emaildeliver";
|
|
||||||
|
|
||||||
% content_for 'module' => begin
|
|
||||||
<div>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
|
||||||
%= dumper $mai_datas
|
|
||||||
</p>
|
|
||||||
% }
|
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
|
||||||
<br>
|
|
||||||
<div class="">
|
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
|
||||||
</div>
|
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
|
||||||
|
|
||||||
%= form_for '/emailsettingd' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'mai_TITLE_UNKNOWN'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_UNKNOWN'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_UNKNOWN'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'EmailUnknownUser' => $mai_datas->{emailunknownuser} unless param 'EmailUnknownUser';
|
|
||||||
%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
|
||||||
<h2>
|
|
||||||
%=l 'mai_TITLE_DELEGATE'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_DELEGATE'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_DELEGATE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'DelegateMailServer' => $mai_datas->{delegatemailserver} unless param 'DelegateMailServer';
|
|
||||||
%= text_field 'DelegateMailServer', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
|
||||||
<h2>
|
|
||||||
%=l 'mai_TITLE_SMARTHOST'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_SMARTHOST'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SMARTHOST'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SMTPSmartHost' => $mai_datas->{smtpsmarthost} unless param 'SMTPSmartHost';
|
|
||||||
%= text_field 'SMTPSmartHost', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SMTPAUTHPROXY_status' => $mai_datas->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
|
|
||||||
%= select_field 'SMTPAUTHPROXY_status' => [[(l 'DISABLED') => 'disabled'], [(l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SMTPAUTHPROXY_Userid' => $mai_datas->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
|
|
||||||
%= text_field 'SMTPAUTHPROXY_Userid', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SMTPAUTHPROXY_Passwd' => $mai_datas->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
|
|
||||||
%= password_field 'SMTPAUTHPROXY_Passwd', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'DEL'
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
|
||||||
%end
|
|
@@ -1,130 +0,0 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - emailfilter";
|
|
||||||
|
|
||||||
% content_for 'module' => begin
|
|
||||||
<div>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
|
||||||
%= dumper $mai_datas
|
|
||||||
</p>
|
|
||||||
% }
|
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
|
||||||
<br>
|
|
||||||
<div class="">
|
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
|
||||||
</div>
|
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
|
||||||
|
|
||||||
%= form_for '/emailsettingd' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
%=l 'mai_DESC_VIRUS_SCAN'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_VIRUS_SCAN'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'VirusStatus' => $mai_datas->{virusstatus} unless param 'VirusStatus';
|
|
||||||
%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_SPAM_SCAN'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_SCAN'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Spamstatus' => $mai_datas->{spamstatus} unless param 'Spamstatus';
|
|
||||||
%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_SENSITIVITY'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamSensitivity' => $mai_datas->{spamsensitivity} unless param 'SpamSensitivity';
|
|
||||||
%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_TAGLEVEL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamTagLevel' => $mai_datas->{spamtaglevel} unless param 'SpamTagLevel';
|
|
||||||
%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_REJECTLEVEL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamRejectLevel' => $mai_datas->{spamrejectlevel} unless param 'SpamRejectLevel';
|
|
||||||
%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SORTSPAM'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamSortSpam' => $mai_datas->{spamsortspam} unless param 'SpamSortSpam';
|
|
||||||
%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_SPAM_SUBJECT'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_SUBJECTTAG'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamSubjectTag' => $mai_datas->{spamsubjecttag} unless param 'SpamSubjectTag';
|
|
||||||
%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SPAM_SUBJECT'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpamSubject' => $mai_datas->{spamsubject} unless param 'SpamSubject';
|
|
||||||
%= text_field 'SpamSubject' => class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_BLOCK_EXECUTABLE_CONTENT'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_CONTENT_TO_BLOCK'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'BlockExecutableContent' => $c->get_patterns_current_opt() unless param 'BlockExecutableContent';
|
|
||||||
%= select_field 'BlockExecutableContent' => $c->get_patterns_opt(), class => "", multiple => "1"
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'FIL'
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
|
||||||
%end
|
|
@@ -1,203 +0,0 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - emailreceive";
|
|
||||||
|
|
||||||
% content_for 'module' => begin
|
|
||||||
|
|
||||||
% use constant FALSE => 0;
|
|
||||||
% use constant TRUE => 1;
|
|
||||||
|
|
||||||
<div>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
|
||||||
%= dumper $mai_datas
|
|
||||||
%= dumper $c->param('SMTPAuth')
|
|
||||||
</p>
|
|
||||||
% }
|
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
|
||||||
<br>
|
|
||||||
<div class="">
|
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
|
||||||
</div>
|
|
||||||
%}
|
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
|
||||||
|
|
||||||
%= form_for '/emailsettingd' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
%=l 'mai_DESC_MODE'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_MODE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'FetchmailMethod' => $mai_datas->{fetchmailmethod} unless param 'FetchmailMethod';
|
|
||||||
<!--
|
|
||||||
<pre>
|
|
||||||
%= dumper $mai_datas->{fetchmailmethod}
|
|
||||||
%= dumper $c->get_retrieval_opt()
|
|
||||||
%= param 'FetchmailMethod'
|
|
||||||
</pre>
|
|
||||||
-->
|
|
||||||
%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%#=l 'mai_DESC_SMTP_AUTH_CONTROL'
|
|
||||||
<br />
|
|
||||||
%= l "SMTP port (25) main purpose is to receive emails from another server, STARTTLS is always offered, but auth if offered is only if STARTTLS is also used by client."
|
|
||||||
<br />
|
|
||||||
%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send."
|
|
||||||
<br />
|
|
||||||
%= l "SMTP Submission port (587) will require STARTTLS, then authenticate to send."
|
|
||||||
<br />
|
|
||||||
|
|
||||||
% my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth';
|
|
||||||
<!--
|
|
||||||
<pre>
|
|
||||||
%= dumper $c->get_smtp_auth_opt()
|
|
||||||
%= dumper $c->get_current_smtp_auth(FALSE)
|
|
||||||
%= dumper $c->get_db_prop("qpsmtpd","Authentication")
|
|
||||||
%= param 'SMTPAuth'
|
|
||||||
</pre>
|
|
||||||
-->
|
|
||||||
%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'sSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE) unless param 'sSMTPAuth';
|
|
||||||
%= select_field 'sSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%my $smtp_mesg=l('Submission port %u status:');
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'uSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE) unless param 'uSMTPAuth';
|
|
||||||
<!--
|
|
||||||
<pre>
|
|
||||||
%= dumper $c->get_smtp_ssl_auth_opt()
|
|
||||||
%= dumper $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE)
|
|
||||||
%= dumper $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE)
|
|
||||||
%= dumper $c->get_db_prop("uqpsmtpd","access")
|
|
||||||
%= param 'uSMTPAuth'
|
|
||||||
</pre>
|
|
||||||
-->
|
|
||||||
%= select_field 'uSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
|
||||||
<h2>
|
|
||||||
%=l 'mai_TITLE_SECONDARY'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_SECONDARY'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SECONDARY'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SecondaryMailServer' => $mai_datas->{secondarymailserver} unless param 'SecondaryMailServer';
|
|
||||||
%= text_field 'SecondaryMailServer', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%=l 'mai_DESC_FETCH_PERIOD'
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_FETCH_PERIOD'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'FreqOffice' => $mai_datas->{freqoffice} unless param 'FreqOffice';
|
|
||||||
%= select_field 'FreqOffice' => $c->fetchmail_freq(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_FETCH_PERIOD_NIGHTS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'FreqOutside' => $mai_datas->{freqoutside} unless param 'FreqOutside';
|
|
||||||
%= select_field 'FreqOutside' => $c->fetchmail_freq(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_FETCH_PERIOD_WEEKENDS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'FreqWeekend' => $mai_datas->{freqweekend} unless param 'FreqWeekend';
|
|
||||||
%= select_field 'FreqWeekend' => $c->fetchmail_freq(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_POP_ACCOUNT'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SecondaryMailAccount' => $mai_datas->{secondarymailaccount} unless param 'SecondaryMailAccount';
|
|
||||||
%= text_field 'SecondaryMailAccount', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_POP_PASS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SecondaryMailPassword' => $mai_datas->{secondarymailpassword} unless param 'SecondaryMailPassword';
|
|
||||||
%= password_field 'SecondaryMailPassword', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SORT_METHOD'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SpecifyHeader' => $mai_datas->{specifyheader} unless param 'SpecifyHeader';
|
|
||||||
%= select_field 'SpecifyHeader' => [[(l 'mai_DEFAULT') => 'off'], [(l 'mai_SPECIFY_BELOW') => 'on']], class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SORT_HEADER'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SecondaryMailEnvelope' => $mai_datas->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
|
|
||||||
%= text_field 'SecondaryMailEnvelope', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'REC'
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
|
||||||
%end
|
|
@@ -1,194 +1,57 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - emailsettings";
|
% layout 'AdminLTE', title => "Sme server 2 - E-Mail";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
% use constant FALSE => 0;
|
% use constant FALSE => 0;
|
||||||
% use constant TRUE => 1;
|
% use constant TRUE => 1;
|
||||||
|
|
||||||
<div>
|
<!-- see ibays as an example with partials -->
|
||||||
|
|
||||||
% if (config->{debug} == TRUE) {
|
<div class="card-body">
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
% if (config->{debug} == 1) {
|
||||||
%= dumper $mai_datas
|
<pre>
|
||||||
</p>
|
<%= dumper $c->current_route %>
|
||||||
|
<%= dumper $mai_data->{trt} %>
|
||||||
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
%}
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= form_for 'emailsettings' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_POP_ACCESS_CONTROL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_pop3_access( TRUE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_IMAP_ACCESS_CONTROL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_imap_access( TRUE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_WEBMAIL'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_webmail_status( TRUE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('mai_DESC_STATE_ACCESS_BUTTON');
|
|
||||||
<div class="">
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</div>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'ACC'
|
|
||||||
% end
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
%#Routing to partials according to trt parameter.
|
||||||
|
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
||||||
|
|
||||||
%= form_for 'emailsettings' => (method => 'POST') => begin
|
% if ($mai_data->{trt} eq "FRONT") {
|
||||||
<p>
|
<%= include 'partials/_mai_FRONT' %>
|
||||||
<span class="">
|
% }
|
||||||
%=l 'mai_LABEL_VIRUS_SCAN'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_virus_status(TRUE)
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
% if ($mai_data->{trt} eq "ACC") {
|
||||||
<span class="">
|
<%= include 'partials/_mai_ACC' %>
|
||||||
%=l 'mai_LABEL_SPAM_SCAN'
|
% }
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_spam_status(TRUE)
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
% if ($mai_data->{trt} eq "FIL") {
|
||||||
<span class="">
|
<%= include 'partials/_mai_FIL' %>
|
||||||
%=l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT'
|
% }
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_patterns_status(TRUE)
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('mai_DESC_STATE_FILTERING_BUTTON');
|
% if ($mai_data->{trt} eq "REC") {
|
||||||
<div class="">
|
<%= include 'partials/_mai_REC' %>
|
||||||
%= submit_button "$btn", class => ""
|
% }
|
||||||
</div>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'FIL'
|
% if ($mai_data->{trt} eq "DEL") {
|
||||||
% end
|
<%= include 'partials/_mai_DEL' %>
|
||||||
<br>
|
% }
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
|
||||||
|
|
||||||
%= form_for 'emailsettings' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_MODE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $mai_datas->{fetchmailmethod}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $smtp_mesg;
|
|
||||||
|
|
||||||
% $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_smtp_auth( TRUE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_smtp_ssl_auth( TRUE, 's', FALSE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% $smtp_mesg=l 'Submission port %u status:';
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587));
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_current_smtp_ssl_auth( TRUE,'u', FALSE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
% my $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
|
|
||||||
<div class="">
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</div>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'REC'
|
|
||||||
% end
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<!--<hr class="" />-->
|
|
||||||
|
|
||||||
%= form_for 'emailsettings' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_UNKNOWN'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_emailunknownuser_status( TRUE )
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_DELEGATE'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_value('DelegateMailServer')
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'mai_LABEL_SMARTHOST'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $c->get_value('SMTPSmartHost')
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $btn = l('mai_DESC_STATE_DELIVERY_BUTTON');
|
|
||||||
<div class="">
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</div>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'DEL'
|
|
||||||
% end
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%end
|
%end
|
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<p>
|
||||||
%= dumper $c->current_route
|
%= dumper $c->current_route
|
||||||
@@ -16,10 +17,12 @@
|
|||||||
%}
|
%}
|
||||||
<h1> Embedded - <%=$title %></h1>
|
<h1> Embedded - <%=$title %></h1>
|
||||||
<br>
|
<br>
|
||||||
<p>If the legacy panel does not appear, then you may not be logged into the original Server manager.<br />You can log in by clicking <a href="/server-manager" target='_blank'>here</a>. Or by clicking on the "Legacy SM" button at the top of the window.</p>
|
<div>If the legacy panel does not appear, then you may not be logged into the original Server manager.<br />You can log in by clicking <a href="/server-manager" target='_blank'>here</a>. Or by clicking on the "Legacy SM" button at the top of the window.</div>
|
||||||
|
|
||||||
% my $height = $c->stash('height') | '600px';
|
% my $height = $c->stash('height') | '600px';
|
||||||
% if ($height !~ /px$/) { $height = $height.'px';}
|
% if ($height !~ /px$/) { $height = $height.'px';}
|
||||||
<object id="" class="" data="<%=$c->stash('modul') %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
|
|
||||||
|
<object class="" data="<%=$c->stash('modul') %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%end
|
%end
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
<p>
|
<p>
|
||||||
<br>dev<br>
|
<br>dev<br>
|
||||||
Oups !!!
|
Oups !!!
|
||||||
|
@@ -1,32 +1,35 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - groups";
|
% layout 'AdminLTE', title => "Sme server 2 - groups";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
%= dumper $c->current_route
|
%= dumper $c->current_route
|
||||||
%= dumper $grp_datas
|
%= dumper $grp_datas
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
|
<!-- reetp error here -->
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<div class="text-danger">
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
% if ($grp_datas->{trt} eq 'ADD') {
|
% if ($grp_datas->{trt} eq 'ADD') {
|
||||||
%= include 'partials/_grp_add'
|
%= include 'partials/_grp_add'
|
||||||
%} elsif ($grp_datas->{trt} eq 'DEL') {
|
% } elsif ($grp_datas->{trt} eq 'DEL') {
|
||||||
%= include 'partials/_grp_del'
|
%= include 'partials/_grp_del'
|
||||||
%} elsif ($grp_datas->{trt} eq 'UPD') {
|
% } elsif ($grp_datas->{trt} eq 'UPD') {
|
||||||
%= include 'partials/_grp_upd'
|
%= include 'partials/_grp_upd'
|
||||||
%} else {
|
% } else {
|
||||||
%= include 'partials/_grp_list'
|
%= include 'partials/_grp_list'
|
||||||
%}
|
% }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
%end
|
%end
|
||||||
|
@@ -1,34 +1,35 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - hostentries";
|
% layout 'AdminLTE', title => "Sme server 2 - hostentries";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $hos_datas
|
<%= dumper $hos_datas %>
|
||||||
</p>
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( $notif ) {
|
||||||
|
<br>
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => $notif) %>
|
||||||
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
% if ( $notif ) {
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
<%= $c->render_to_string(inline => $notif) %>
|
|
||||||
</span>
|
|
||||||
%}
|
|
||||||
|
|
||||||
% if ($hos_datas->{trt} eq 'ADD' or $hos_datas->{trt} eq 'UPD') {
|
% if ($hos_datas->{trt} eq 'ADD' or $hos_datas->{trt} eq 'UPD') {
|
||||||
%= include 'partials/_hos_upd'
|
%= include 'partials/_hos_upd'
|
||||||
%} elsif ($hos_datas->{trt} eq 'DEL') {
|
%} elsif ($hos_datas->{trt} eq 'DEL') {
|
||||||
%= include 'partials/_hos_del'
|
%= include 'partials/_hos_del'
|
||||||
%} elsif ( $hos_datas->{trt} eq 'ALC' or $hos_datas->{trt} eq 'ULC') {
|
%} elsif ( $hos_datas->{trt} eq 'ALC' or $hos_datas->{trt} eq 'ULC') {
|
||||||
%= include 'partials/_hos_ulc'
|
%= include 'partials/_hos_ulc'
|
||||||
%} elsif ( $hos_datas->{trt} eq 'ARM' or $hos_datas->{trt} eq 'URM') {
|
%} elsif ( $hos_datas->{trt} eq 'ARM' or $hos_datas->{trt} eq 'URM') {
|
||||||
%= include 'partials/_hos_urm'
|
%= include 'partials/_hos_urm'
|
||||||
%} else {
|
%} else {
|
||||||
%= include 'partials/_hos_list'
|
%= include 'partials/_hos_list'
|
||||||
%}
|
%}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,25 +1,27 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - ibays";
|
% layout 'AdminLTE', title => "Sme server 2 - ibays";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $iba_datas
|
<%= dumper $iba_datas %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="text-danger">
|
||||||
</div>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
%}
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
% if ( stash 'modul' ) {
|
% if ( stash 'modul' ) {
|
||||||
%= $c->render_to_string(inline => stash 'modul' );
|
%= $c->render_to_string(inline => stash 'modul' );
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if ($iba_datas->{trt} eq 'ADD') {
|
% if ($iba_datas->{trt} eq 'ADD') {
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
</p>
|
</p>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br>
|
<br>
|
||||||
@@ -18,11 +18,10 @@
|
|||||||
% }
|
% }
|
||||||
|
|
||||||
<h3><%= $title %> </h3>
|
<h3><%= $title %> </h3>
|
||||||
<!-- <h3>template: initial.html.ep</h3> -->
|
<!-- <h3>template: initial.html.ep</h3> -->
|
||||||
<!-- <H1>Initial AdminLTE</H1> -->
|
<!-- <H1>Initial AdminLTE</H1> -->
|
||||||
<p>
|
|
||||||
%= $modul
|
%= $modul
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -1,38 +1,41 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
<!-- default +jquery -->
|
<!-- default +jquery -->
|
||||||
<!-- https://icons.getbootstrap.com/ -->
|
<!-- https://icons.getbootstrap.com/ -->
|
||||||
|
|
||||||
|
<!-- Nice mojo links -->
|
||||||
|
<!-- https://en.mojolicious.perlzemi.com/blog/20140414139745.html -->
|
||||||
|
<!-- https://en.mojolicious.perlzemi.com/blog/20110616130993.html -->
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>
|
<title>
|
||||||
<%= $title %>
|
<%= $title %>
|
||||||
</title>
|
</title>
|
||||||
<link rel="made" href="mailto:bugs%40koozali.org">
|
<link rel="made" href="mailto:bugs%40koozali.org">
|
||||||
|
<link rel="icon" type="image/x-icon" href="koozali/assets/img/favicon.ico">
|
||||||
<meta name="copyright" content="(head.tmpl)Copyright 2003-2004 Mitel Corporation">
|
<meta name="copyright" content="(head.tmpl)Copyright 2003-2004 Mitel Corporation">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
%= content_for 'head_contrib'
|
%= content_for 'head_contrib'
|
||||||
% if (config 'hasJquery') {
|
|
||||||
%= include 'partials/_js_imports'
|
|
||||||
%= include 'common_js'
|
|
||||||
% }
|
|
||||||
|
|
||||||
%= content_for 'refresh'
|
%= content_for 'refresh'
|
||||||
|
|
||||||
|
<!-- Specific for AdminLTE -->
|
||||||
|
%= include 'common_js'
|
||||||
%= include 'common_css'
|
%= include 'common_css'
|
||||||
|
|
||||||
|
%# panel specific css file
|
||||||
<!-- Custom overrides? -->
|
% my $controller = stash('controller');
|
||||||
|
% if ($controller) {
|
||||||
% if ($c->current_route eq 'nutups') {
|
% my $css_path = "css/$controller.css";
|
||||||
%= include 'partials/_nutups_overrides'
|
%# Use the url_for helper to generate the correct static file URL
|
||||||
% }
|
% if (app->static->file($css_path)) {
|
||||||
|
<link rel="stylesheet" href="<%= url_for("/$css_path") %>">
|
||||||
|
% }
|
||||||
|
% }
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="sidebar-expand-lg bg-body-tertiary">
|
<body class="sidebar-expand-lg bg-body-tertiary app-loaded">
|
||||||
|
|
||||||
|
|
||||||
<!-- This is set from the data at the top of the _partials -->
|
<!-- This is set from the data at the top of the _partials -->
|
||||||
@@ -47,133 +50,155 @@
|
|||||||
<div class="app-wrapper">
|
<div class="app-wrapper">
|
||||||
|
|
||||||
|
|
||||||
<!-- Should create a new separate header partial -->
|
<!-- Should create a new separate header partial?? -->
|
||||||
|
|
||||||
<!--begin::Header-->
|
<!--begin::Header-->
|
||||||
<nav id="koozali_grad" class="app-header navbar navbar-expand bg-success-subtle" data-bs-theme="light">
|
|
||||||
<!--begin::Container-->
|
|
||||||
<div class="container-fluid">
|
|
||||||
<!--begin::Start Navbar Links-->
|
|
||||||
<!-- Top bar links -->
|
|
||||||
<ul class="navbar-nav">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" data-lte-toggle="sidebar" href="#" role="button">
|
|
||||||
<i class="bi bi-list"></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item d-none d-md-block"><a href="/smanager" class="nav-link">Home</a></li>
|
<nav id="koozali_grad" class="app-header navbar navbar-expand bg-success-subtle" data-bs-theme="light">
|
||||||
% if ( not defined $c->session->{username} ) {
|
|
||||||
<li class="nav-item d-none d-md-block"><a href="login" class="nav-link">Login</a></li>
|
|
||||||
% } else {
|
|
||||||
<li class="nav-item d-none d-md-block"><a href="logout" class="nav-link">Logout</a></li>
|
|
||||||
% }
|
|
||||||
<li class="nav-item d-none d-md-block">
|
|
||||||
%= include 'partials/_flag_icon'
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<!--end::Start Navbar Links-->
|
|
||||||
<!-- this can do direct to header so always available-->
|
|
||||||
% if ($c->is_logged_in && scalar @{SrvMngr::theme_list( $c )} > 1) {
|
|
||||||
%= include 'partials/_swt_theme'
|
|
||||||
% }
|
|
||||||
|
|
||||||
|
<!--begin::Container-->
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!--begin::Start Navbar Links-->
|
||||||
|
<!-- Top bar links -->
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" data-lte-toggle="sidebar" href="#" role="button">
|
||||||
|
<i class="bi bi-list"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
</div>
|
<li class="nav-item d-none d-md-block"><a href="/smanager" class="nav-link">Home</a></li>
|
||||||
<!--end::Container-->
|
% if ( not defined $c->session->{username} ) {
|
||||||
</nav>
|
<li class="nav-item d-none d-md-block"><a href="login" class="nav-link">Login</a></li>
|
||||||
|
% } else {
|
||||||
|
<li class="nav-item d-none d-md-block"><a href="logout" class="nav-link">Logout</a></li>
|
||||||
|
% }
|
||||||
|
<li class="nav-item d-none d-md-block">
|
||||||
|
%= include 'partials/_flag_icon'
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<!--end::Start Navbar Links-->
|
||||||
|
|
||||||
|
<!-- this can do direct to header so always available-->
|
||||||
|
% if ($c->is_logged_in && scalar @{SrvMngr::theme_list( $c )} > 1) {
|
||||||
|
%= include 'partials/_swt_theme'
|
||||||
|
% }
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!--end::Container-->
|
||||||
|
</nav>
|
||||||
|
|
||||||
<!--end::Header-->
|
<!--end::Header-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--begin::Sidebar-->
|
<!--begin::Sidebar-->
|
||||||
<aside class="app-sidebar bg-success-subtle" data-bs-theme="light">
|
|
||||||
<!--begin::Sidebar Brand-->
|
|
||||||
<div class="sidebar-brand sidebar-dark-primary">
|
|
||||||
<!--begin::Brand Link-->
|
|
||||||
<a href="../index.html" class="brand-link">
|
|
||||||
<!--begin::Brand Image-->
|
|
||||||
<img src="koozali/assets/img/Koozali_EyeIcon.png" alt="Koozali Logo"
|
|
||||||
class="brand-image opacity-75 shadow" />
|
|
||||||
<!--end::Brand Image-->
|
|
||||||
<!--begin::Brand Text-->
|
|
||||||
<span class="brand-text fw-light">Koozali</span>
|
|
||||||
<!--end::Brand Text-->
|
|
||||||
</a>
|
|
||||||
<!--end::Brand Link-->
|
|
||||||
</div>
|
|
||||||
<!--end::Sidebar Brand-->
|
|
||||||
|
|
||||||
<!--begin::Sidebar Wrapper-->
|
<aside class="app-sidebar bg-success-subtle" data-bs-theme="light">
|
||||||
<div class="sidebar-wrapper">
|
<!--begin::Sidebar Brand-->
|
||||||
<nav class="mt-2">
|
<div class="sidebar-brand sidebar-dark-primary">
|
||||||
<!--begin::Sidebar Menu-->
|
<!--begin::Brand Link-->
|
||||||
<ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
|
<a href="../index.html" class="brand-link">
|
||||||
|
<!--begin::Brand Image-->
|
||||||
|
<img src="koozali/assets/img/Koozali_EyeIcon.png" alt="Koozali Logo"
|
||||||
|
class="brand-image opacity-75 shadow" />
|
||||||
|
<!--end::Brand Image-->
|
||||||
|
<!--begin::Brand Text-->
|
||||||
|
<span class="brand-text fw-light">Koozali</span>
|
||||||
|
<!--end::Brand Text-->
|
||||||
|
</a>
|
||||||
|
<!--end::Brand Link-->
|
||||||
|
</div>
|
||||||
|
<!--end::Sidebar Brand-->
|
||||||
|
|
||||||
%= include 'partials/_sidebar_support_menu'
|
<!--begin::Sidebar Wrapper-->
|
||||||
|
<div class="sidebar-wrapper navbar-nav-scroll">
|
||||||
|
<nav class="mt-2">
|
||||||
|
<!--begin::Sidebar Menu-->
|
||||||
|
<ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
|
||||||
|
|
||||||
% if ( $c->is_logged_in ) {
|
%= include 'partials/_sidebar_support_menu'
|
||||||
%= include 'partials/_sidebar_user_menu'
|
|
||||||
% }
|
|
||||||
|
|
||||||
% if ( $c->is_admin ) {
|
% if ( $c->is_logged_in ) {
|
||||||
%= include 'partials/_sidebar_main_menu'
|
%= include 'partials/_sidebar_user_menu'
|
||||||
% }
|
% }
|
||||||
|
|
||||||
|
% if ( $c->is_admin ) {
|
||||||
|
%= include 'partials/_sidebar_main_menu'
|
||||||
|
% }
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<!--end::Sidebar Menu-->
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<!--end::Sidebar Wrapper-->
|
||||||
|
</aside>
|
||||||
|
|
||||||
</ul>
|
|
||||||
<!--end::Sidebar Menu-->
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<!--end::Sidebar Wrapper-->
|
|
||||||
</aside>
|
|
||||||
<!--end::Sidebar-->
|
<!--end::Sidebar-->
|
||||||
|
|
||||||
|
|
||||||
<!--begin::App Main-->
|
<!--begin::App Main-->
|
||||||
<main class="app-main">
|
|
||||||
|
|
||||||
<!-- Can add a header row here? -->
|
<main class="app-main">
|
||||||
<!-- %= include 'partials/_app_content_header' -->
|
|
||||||
|
|
||||||
<!--begin::App Content-->
|
<!-- Can add a header row here? -->
|
||||||
<div class="app-content">
|
<!-- %= include 'partials/_app_content_header' -->
|
||||||
<!--begin::Container-->
|
|
||||||
<div class="container-fluid">
|
|
||||||
<!--begin::Rows-->
|
|
||||||
<!-- Add breadcrumb here -->
|
|
||||||
%= include 'partials/_app_content_breadcrumb'
|
|
||||||
|
|
||||||
<! We can add extra rows in the main panel here -->
|
<!--begin::App Content-->
|
||||||
<!-- %#= include 'partials/_app_content_first_row' -->
|
<div class="app-content">
|
||||||
<!-- %#= include 'partials/_app_content_demo_row' -->
|
<!--begin::Container-->
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!--begin::Rows-->
|
||||||
|
<!-- Add breadcrumb here -->
|
||||||
|
%= include 'partials/_app_content_breadcrumb'
|
||||||
|
|
||||||
<!--end::Rows-->
|
<!-- We can add extra rows in the main panel here -->
|
||||||
<br>
|
|
||||||
|
|
||||||
<!-- This is the main page content depening on the calling module -->
|
<!-- %#= include 'partials/_app_content_first_row' -->
|
||||||
%= content 'module'
|
<!-- %#= include 'partials/_app_content_demo_row' -->
|
||||||
|
|
||||||
|
<!--end::Rows-->
|
||||||
|
|
||||||
|
<!-- <br> -->
|
||||||
|
|
||||||
|
<!-- This is the main page content depening on the calling module -->
|
||||||
|
<!-- nameofpanel.html.ep -->
|
||||||
|
<!-- That will also include it's own _partials -->
|
||||||
|
%#= dumper $c->current_route
|
||||||
|
% if ($c->current_route ne 'login') {
|
||||||
|
%= include 'partials/_panel_card_top'
|
||||||
|
%= include 'partials/_panel_card_header'
|
||||||
|
% }
|
||||||
|
|
||||||
|
%= content 'module'
|
||||||
|
|
||||||
|
% if ($c->current_route ne 'login') {
|
||||||
|
%= include 'partials/_panel_card_footer'
|
||||||
|
%= include 'partials/_panel_card_bottom'
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!--end::App Content-->
|
||||||
<!--end::App Content-->
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<!--end::App Main-->
|
<!--end::App Main-->
|
||||||
|
|
||||||
|
<!-- This is the original footer - move content to new one -->
|
||||||
<!-- %= include 'partials/_footer' -->
|
<!-- %= include 'partials/_footer' -->
|
||||||
|
|
||||||
<!--begin::Footer-->
|
<!--begin::Footer-->
|
||||||
<footer class="app-footer">
|
<footer class="app-footer">
|
||||||
<!--begin::To the end-->
|
<!--begin::To the end-->
|
||||||
<div class="float-end d-none d-sm-inline">Anything you want</div>
|
<div class="float-end d-none d-sm-inline">Anything you want</div>
|
||||||
<!--end::To the end-->
|
<!--end::To the end-->
|
||||||
<!--begin::Copyright-->
|
<!--begin::Copyright-->
|
||||||
<strong>
|
<strong>
|
||||||
Copyright © 2014-2025
|
Copyright © 2014-2025
|
||||||
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
||||||
</strong>
|
</strong>
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
<!--end::Copyright-->
|
<!--end::Copyright-->
|
||||||
</footer>
|
</footer>
|
||||||
<!--end::Footer-->
|
<!--end::Footer-->
|
||||||
</div>
|
</div>
|
||||||
<!--end::App Wrapper-->
|
<!--end::App Wrapper-->
|
||||||
@@ -181,6 +206,16 @@
|
|||||||
|
|
||||||
<div id="adminlte-version"></div>
|
<div id="adminlte-version"></div>
|
||||||
|
|
||||||
|
%# Specific panel js code
|
||||||
|
% $controller = stash('controller');
|
||||||
|
% if ($controller) {
|
||||||
|
% my $js_path = "js/$controller.js";
|
||||||
|
%# Use the url_for helper to generate the correct static file URL
|
||||||
|
% if (app->static->file($js_path)) {
|
||||||
|
<script src="<%= url_for("/$js_path") %>"></script>
|
||||||
|
% }
|
||||||
|
% }
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@@ -6,67 +6,73 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
%= stylesheet '/css/letsencrypt.css'
|
<!-- reetp needs moving - probabyl not required -->
|
||||||
|
|
||||||
<div>
|
<!-- stylesheet '/css/letsencrypt.css' -->
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<pre>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $lets_data->{trt}
|
<%= dumper $lets_data->{trt} %>
|
||||||
</pre>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%=$title%></h1>
|
<h1><%=$title%></h1>
|
||||||
|
|
||||||
% if ( stash('modul')) {
|
% if ( stash('modul')) {
|
||||||
%= $c->render_to_string(inline => stash('modul') );
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => stash('modul') ); %>
|
||||||
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
%if ($c->stash('first')) {
|
% if ($c->stash('first')) {
|
||||||
<br><p>
|
<br>
|
||||||
%=$c->render_to_string(inline =>$c->l($c->stash('first')))
|
<div>
|
||||||
</p>
|
<%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
|
||||||
|
|
||||||
%} elsif ($c->stash('success')) {
|
|
||||||
<div class="">
|
|
||||||
<h2><%=$c->l('lets_Status_Report') %></h2><p>
|
|
||||||
%= $c->l($c->stash('success'));
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%} elsif ($c->stash('error')) {
|
% } elsif ($c->stash('success')) {
|
||||||
<div class="">
|
<div class="text-success">
|
||||||
<h2><%=$c->l('lets_Error_Status_Report') %></h2><p>
|
<h2><%=$c->l('lets_Status_Report') %></h2>
|
||||||
%= $c->l($c->stash('error'));
|
<div>
|
||||||
</p>
|
<%= $c->l($c->stash('success')); %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
%}
|
|
||||||
|
% } elsif ($c->stash('error')) {
|
||||||
|
<div class="text-danger">
|
||||||
|
<h2><%=$c->l('lets_Error_Status_Report') %></h2>
|
||||||
|
<div>
|
||||||
|
<%= $c->l($c->stash('error')); %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
%#Routing to partials according to trt parameter.
|
%#Routing to partials according to trt parameter.
|
||||||
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
||||||
|
|
||||||
% if ($lets_data->{trt} eq "LIST") {
|
% if ($lets_data->{trt} eq "LIST") {
|
||||||
%= include 'partials/_lets_LIST'
|
<%= include 'partials/_lets_LIST' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
% if ($lets_data->{trt} eq "PARAMS") {
|
% if ($lets_data->{trt} eq "PARAMS") {
|
||||||
%= include 'partials/_lets_PARAMS'
|
<%= include 'partials/_lets_PARAMS' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
% if ($lets_data->{trt} eq "CHECKALLDOMAINS") {
|
% if ($lets_data->{trt} eq "CHECKALLDOMAINS") {
|
||||||
%= include 'partials/_lets_CHECKALLDOMAINS'
|
<%= include 'partials/_lets_CHECKALLDOMAINS' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
% if ($lets_data->{trt} eq "CHECKALLENABLEDDOMAINS") {
|
% if ($lets_data->{trt} eq "CHECKALLENABLEDDOMAINS") {
|
||||||
%= include 'partials/_lets_CHECKALLENABLEDDOMAINS'
|
<%= include 'partials/_lets_CHECKALLENABLEDDOMAINS' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
% if ($lets_data->{trt} eq "CHECKONEDOMAIN") {
|
% if ($lets_data->{trt} eq "CHECKONEDOMAIN") {
|
||||||
%= include 'partials/_lets_CHECKONEDOMAIN'
|
<%= include 'partials/_lets_CHECKONEDOMAIN' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
%end
|
%end
|
@@ -1,19 +1,21 @@
|
|||||||
% layout 'AdminLTE', title => "Sme server 2 - localnetworks";
|
% layout 'AdminLTE', title => "Sme server 2 - localnetworks";
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div>
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $c->stash("ret")
|
<%= dumper $c->stash("ret") %>
|
||||||
%= dumper $c->param("localnetwork");
|
<%= dumper $c->param("localnetwork") %>
|
||||||
%= dumper $c->stash("ln_datas");
|
<%= dumper $c->stash("ln_datas") %>
|
||||||
%= dumper $c->param("deletehost");
|
<%= dumper $c->param("deletehost") %>
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%= $title%></h1>
|
<h1><%= $title%></h1>
|
||||||
|
|
||||||
%= $modul
|
%= $modul
|
||||||
|
|
||||||
% if ($ln_datas->{trt} eq 'ADD') {
|
% if ($ln_datas->{trt} eq 'ADD') {
|
||||||
@@ -29,4 +31,5 @@
|
|||||||
%}
|
%}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%end
|
%end
|
||||||
|
@@ -2,28 +2,35 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
%if ( config 'debug' ) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
<!-- %= dumper $c->current_route -->
|
<%= dumper $c->current_route %>
|
||||||
%if ( stash 'trt' ) {
|
% if ( stash 'trt' ) {
|
||||||
%= dumper stash 'trt'
|
<%= dumper stash 'trt' %>
|
||||||
%}
|
% }
|
||||||
</p>
|
</div>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
% if ( stash 'error' ) {
|
% if ( stash 'error' ) {
|
||||||
<br><div class="">
|
<br>
|
||||||
%= $c->render_to_string(inline => stash 'error')
|
<div class="container text-center">
|
||||||
</div>
|
<div class="row">
|
||||||
%}
|
<div class="col-sm">
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
% my $btn = l('use_SIGNIN');
|
% my $btn = l('use_SIGNIN');
|
||||||
% if ( $trt eq 'RESET' ) {
|
% if ( $trt eq 'RESET' ) {
|
||||||
<br><div class=""><h2>
|
<br>
|
||||||
%= $c->render_to_string(inline => l 'use_DESC_RESET')
|
<div>
|
||||||
</h2></div>
|
<h2><%= $c->render_to_string(inline => l 'use_DESC_RESET') %></h2>
|
||||||
|
</div>
|
||||||
% $btn = l('use_RESET');
|
% $btn = l('use_RESET');
|
||||||
%}
|
% }
|
||||||
|
|
||||||
<div class="login-page bg-body-secondary-subtle app-loaded">
|
<div class="login-page bg-body-secondary-subtle app-loaded">
|
||||||
<!-- /.login-logo -->
|
<!-- /.login-logo -->
|
||||||
@@ -36,7 +43,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<a href="/smanager" class="link-dark text-center link-offset-2 link-opacity-100 link-opacity-50-hover">
|
<a href="/smanager" class="link-dark text-center link-offset-2 link-opacity-100 link-opacity-50-hover">
|
||||||
<h1 class="mb-0"><b>Koozali</b></h1><br><h3>Server Manager</h3>
|
<h1 class="mb-0"><b>Koozali</b></h1>
|
||||||
|
<br>
|
||||||
|
<h3>Server Manager</h3>
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<h1 class="text-center">
|
<h1 class="text-center">
|
||||||
@@ -55,16 +64,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="input-group-text"><span class="bi bi-person-fill"></span></div>
|
<div class="input-group-text"><span class="bi bi-person-fill"></span></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input-group mb-1">
|
<div class="input-group mb-1">
|
||||||
<div class="form-floating">
|
<div class="form-floating">
|
||||||
<input name='Password' id="Password" type="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>
|
<label for="password">Password</label>
|
||||||
|
</div>
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group-text"><span class="bi bi-lock-fill"></span></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%= hidden_field 'From' => $c->tx->req->url
|
<%= hidden_field 'From' => $c->tx->req->url %>
|
||||||
%= hidden_field 'Trt' => stash 'trt'
|
<%= hidden_field 'Trt' => stash 'trt' %>
|
||||||
|
|
||||||
<!--begin::Row-->
|
<!--begin::Row-->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -77,14 +89,19 @@
|
|||||||
<!-- /.col -->
|
<!-- /.col -->
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<div class="d-grid gap-2">
|
<div class="d-grid gap-2">
|
||||||
<button type="submit" class="btn btn-primary">Sign In</button>
|
<button type="submit" class="btn btn-primary btn-sm">Login</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /.col -->
|
<!-- /.col -->
|
||||||
</div>
|
</div>
|
||||||
<!--end::Row-->
|
<!--end::Row-->
|
||||||
</form>
|
</form>
|
||||||
<p class="mb-1"><a href="login2">I forgot my password</a></p>
|
<br>
|
||||||
|
<!--
|
||||||
|
<div class="mb-1 text-center">
|
||||||
|
<a href="login2">I forgot my password</a>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
<!-- /.login-card-body -->
|
<!-- /.login-card-body -->
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,8 +1,11 @@
|
|||||||
% layout 'AdminLTE', title => 'Sme server 2 - Manual';
|
% layout 'AdminLTE', title => 'Sme server 2 - Manual';
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
<div id="" class="">
|
|
||||||
<p><h1><%= $title %></h1></p>
|
<div class="card-body">
|
||||||
|
<p>
|
||||||
|
<h1><%= $title %></h1>
|
||||||
|
</p>
|
||||||
%= $c->render_to_string( inline => stash 'modul' )
|
%= $c->render_to_string( inline => stash 'modul' )
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -2,18 +2,20 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
|
<!-- should be moved? -->
|
||||||
|
|
||||||
%= stylesheet '/css/module.css'
|
%= stylesheet '/css/module.css'
|
||||||
|
|
||||||
<div id="" class="">
|
<div class="card-body">
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<div>
|
||||||
<strong>Debug Info:</strong>
|
<strong>Debug Info:</strong>
|
||||||
<pre><%= dumper $c->current_route %></pre>
|
<pre><%= dumper $c->current_route %></pre>
|
||||||
</p>
|
</div>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% if (stash 'error') {
|
% if (stash 'error') {
|
||||||
<div class="">
|
<div>
|
||||||
<strong>Error:</strong><br>
|
<strong>Error:</strong><br>
|
||||||
<%= $c->render_to_string(inline => stash 'error') %>
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
</div>
|
</div>
|
||||||
@@ -21,7 +23,7 @@
|
|||||||
|
|
||||||
<h1><%= $title %></h1>
|
<h1><%= $title %></h1>
|
||||||
|
|
||||||
<div class="">
|
<div>
|
||||||
<%= $c->render_to_string(inline => stash 'modul') %>
|
<%= $c->render_to_string(inline => stash 'modul') %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div id="" class="">
|
<div class="card-body">
|
||||||
<p><br>dev<br> Oups !!!
|
<p>
|
||||||
|
<br>dev<br> Oups !!!
|
||||||
The page you were requesting
|
The page you were requesting
|
||||||
"<%= $self->req->url->path || '/' %>"
|
"<%= $self->req->url->path || '/' %>"
|
||||||
could not be found.
|
could not be found.
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
% layout 'AdminLTE', title => 'Sme server 2 - Error P';
|
% layout 'AdminLTE', title => 'Sme server 2 - Error P';
|
||||||
<div id="" class="">
|
<div class="card-body">
|
||||||
<p><br><br>
|
<p>
|
||||||
|
<br><br>
|
||||||
The page you were requesting
|
The page you were requesting
|
||||||
"<%= $self->req->url->path || '/' %>"
|
"<%= $self->req->url->path || '/' %>"
|
||||||
could not be found.
|
could not be found.
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div id="" class="">
|
<div class="card-body">
|
||||||
<p><br>dev<br> Oups !!!
|
<p><br>dev<br> Oups !!!
|
||||||
The page you were requesting
|
The page you were requesting
|
||||||
"<%= $self->req->url->path || '/' %>"
|
"<%= $self->req->url->path || '/' %>"
|
||||||
|
@@ -6,55 +6,61 @@
|
|||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
|
||||||
<div>
|
<div class="card-body">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<pre>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $nut_data->{trt}
|
<%= dumper $nut_data->{trt} %>
|
||||||
</pre>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1><%=$title%></h1>
|
<h1><%=$title%></h1>
|
||||||
|
|
||||||
% if ( stash('modul')) {
|
% if ( stash('modul')) {
|
||||||
%= $c->render_to_string(inline => stash('modul') );
|
<%= $c->render_to_string(inline => stash('modul') ); %>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
%if ($c->stash('first')) {
|
%if ($c->stash('first')) {
|
||||||
<br><p>
|
<br>
|
||||||
%=$c->render_to_string(inline =>$c->l($c->stash('first')))
|
<div>
|
||||||
</p>
|
<%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
|
||||||
|
|
||||||
%} elsif ($c->stash('success')) {
|
|
||||||
<div class="">
|
|
||||||
<h2><%=$c->l('nut_Status_Report') %></h2><p>
|
|
||||||
%= $c->l($c->stash('success'));
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
|
||||||
|
|
||||||
%} elsif ($c->stash('error')) {
|
% } elsif ($c->stash('success')) {
|
||||||
<div class="">
|
<div class="text-success">
|
||||||
<h2><%=$c->l('nut_Error_Status_Report') %></h2><p>
|
<h2><%=$c->l('nut_Status_Report') %></h2>
|
||||||
%= $c->l($c->stash('error'));
|
<div>
|
||||||
</p>
|
<%= $c->l($c->stash('success')); %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
% } elsif ($c->stash('error')) {
|
||||||
%}
|
<div class="text-danger">
|
||||||
|
<h2><%=$c->l('nut_Error_Status_Report') %></h2>
|
||||||
|
<div>
|
||||||
|
<%= $c->l($c->stash('error')); %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
%#Routing to partials according to trt parameter.
|
%#Routing to partials according to trt parameter.
|
||||||
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
% if ($nut_data->{trt} eq "STATUS") {
|
% if ($nut_data->{trt} eq "STATUS") {
|
||||||
%= include 'partials/_nut_STATUS'
|
<%= include 'partials/_nut_STATUS' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
% if ($nut_data->{trt} eq "CONFIG") {
|
% if ($nut_data->{trt} eq "CONFIG") {
|
||||||
%= include 'partials/_nut_CONFIG'
|
<%= include 'partials/_nut_CONFIG' %>
|
||||||
%}
|
% }
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
%end
|
%end
|
@@ -1,29 +1,38 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('REMOVE');
|
% my $btn = l('REMOVE');
|
||||||
%= form_for '/domains2' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
%=l 'dom_REMOVE_TITLE'
|
|
||||||
</h2>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<form action="/smanager/domain2" method="POST">
|
||||||
%= $c->l('dom_REMOVE_DESCRIPTION', $dom_datas->{domain}, $dom_datas->{description});
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><b>
|
<br>
|
||||||
%= l('dom_ABOUT_TO_REMOVE')
|
|
||||||
<b></p>
|
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<br>
|
<h2><%=l 'dom_REMOVE_TITLE' %></h2>
|
||||||
%= submit_button "$btn", class => ""
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $dom_datas->{trt}
|
<br>
|
||||||
%= hidden_field 'Domain' => $dom_datas->{domain}
|
|
||||||
|
|
||||||
% end
|
<div>
|
||||||
|
<%= $c->l('dom_REMOVE_DESCRIPTION', $dom_datas->{domain}, $dom_datas->{description}); %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= l('dom_ABOUT_TO_REMOVE') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $dom_datas->{trt} %>
|
||||||
|
<%= hidden_field 'Domain' => $dom_datas->{domain} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,127 +1,123 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('dom_ADD_DOMAIN');
|
% my $btn = l('dom_ADD_DOMAIN');
|
||||||
|
<%= l('dom_FORM_DESCRIPTION'); %>
|
||||||
|
|
||||||
|
<form action="/smanager/domains" method="POST">
|
||||||
%= form_for '/domains' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
%= l('dom_FORM_DESCRIPTION');
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<br>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
<div class="row g-3 align-items-center">
|
||||||
</p>
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => 'ADD' %>
|
||||||
|
</form>
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'ADD'
|
<br>
|
||||||
|
|
||||||
% end
|
<div>
|
||||||
|
<h2><%=l 'dom_CURRENT_DOMAINS' %></h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2>
|
|
||||||
%=l 'dom_CURRENT_DOMAINS'
|
|
||||||
</h2>
|
|
||||||
<table class="table table-bordered">
|
<table class="table table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="">
|
<th class="col-sm"><%=l 'DOMAIN_NAME' %></th>
|
||||||
%=l 'DOMAIN_NAME'
|
<th class="col-sm"><%=l 'DESCRIPTION_BRIEF' %></th>
|
||||||
</th>
|
<th class="col-sm"><%=l 'dom_CONTENT' %></th>
|
||||||
<th class="">
|
<th class="col-sm"><%=l 'dom_LABEL_NAMESERVERS'%></th>
|
||||||
%=l 'DESCRIPTION_BRIEF'
|
<th class="col-sm text-center" colspan="2"><%=l 'ACTION' %></th>
|
||||||
</th>
|
</tr>
|
||||||
<th class="">
|
</thead>
|
||||||
%=l 'dom_CONTENT'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'dom_LABEL_NAMESERVERS'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'ACTION'
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
% foreach my $domain ( @$domains ) {
|
<tbody>
|
||||||
<tr>
|
|
||||||
%= t td => (class => "") => $domain->{Domain}
|
|
||||||
%= t td => (class => "") => $domain->{'Description'}
|
|
||||||
%= t td => (class => "") => $domain->{'Content'}
|
|
||||||
%= t td => (class => "") => l('dom_' . $domain->{'Nameservers'})
|
|
||||||
|
|
||||||
%# my $actionModify = "<a href='domains2?CsrfDef=TOKEN&trt=UPD&Domain=" . $domain->{Domain} . "'>" . "<button class="" title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
|
% foreach my $domain ( @$domains ) {
|
||||||
%my $modify_text = l('MODIFY'); # Localized text
|
<tr>
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
<td><%= $domain->{Domain} %></td>
|
||||||
%my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
<td><%= $domain->{'Description'} %></td>
|
||||||
%my $actionModify = qq{
|
<td><%= $domain->{'Content'} %></td>
|
||||||
% <a href="domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name">
|
<td><%= l('dom_' . $domain->{'Nameservers'}) %></td>
|
||||||
% <button type='button' class="" title='$modify_text' >
|
|
||||||
% $modify_text
|
%# my $actionModify = "<a href='domains2?CsrfDef=TOKEN&trt=UPD&Domain=" . $domain->{Domain} . "'>" . "<button class="" title=".l('MODIFY').">".l('MODIFY')."</button>" . "</a>";
|
||||||
% </button>
|
% my $modify_text = l('MODIFY'); # Localized text
|
||||||
% </a>
|
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
%};
|
% my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
||||||
%my $removable = ($domain->{Removable} || 'yes');
|
% my $actionModify = qq{
|
||||||
%my $actionRemove = ' ';
|
% <a href="domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name">
|
||||||
%if ($removable eq 'yes') {
|
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||||
%my $remove_text = l('REMOVE'); # Localized text
|
% $modify_text
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
% </button>
|
||||||
%my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
% </a>
|
||||||
%$actionRemove = qq{
|
|
||||||
% <a href="domains2?CsrfDef=$csrf_token&trt=DEL&Domain=$domain_name">
|
|
||||||
% <button type='button' class="" title='$remove_text' >
|
|
||||||
% $remove_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
%};
|
||||||
%# $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . "<button class="" title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
|
% my $removable = ($domain->{Removable} || 'yes');
|
||||||
%};
|
% my $actionRemove = ' ';
|
||||||
<td class="" style="min-width:15em">
|
% if ($removable eq 'yes') {
|
||||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
% my $remove_text = l('REMOVE'); # Localized text
|
||||||
</td>
|
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
</tr>
|
% my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
||||||
% }
|
% $actionRemove = qq{
|
||||||
|
% <a href="domains2?CsrfDef=$csrf_token&trt=DEL&Domain=$domain_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||||
|
% $remove_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
%# $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . "<button class="" title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
|
||||||
|
%};
|
||||||
|
<td class="col-auto text-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||||
|
<td class="col-auto text-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||||
|
</tr>
|
||||||
|
% }
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'ADD'
|
<%= hidden_field 'trt' => 'ADD' %>
|
||||||
|
|
||||||
%= form_for '/domains' => (method => 'POST') => begin
|
<form action="/smanager/domains" method="POST">
|
||||||
|
|
||||||
<!-- <HR class="">-->
|
<!-- <HR class="">-->
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
% my $btn2 = l('dom_DOMAINS_PAGE_CORPORATE_DNS');
|
% my $btn2 = l('dom_DOMAINS_PAGE_CORPORATE_DNS');
|
||||||
|
|
||||||
<h3>
|
<h3><%= l 'dom_DESC_CORPORATE_DNS_CURRENT' %></h3>
|
||||||
%= l 'dom_DESC_CORPORATE_DNS_CURRENT'
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<p>
|
% if ($dom_datas->{forwarder}) {
|
||||||
<span class="">
|
<div class="row g-3 align-items-center">
|
||||||
%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY'
|
<div class="col-md-3">
|
||||||
</span>
|
<%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY' %>
|
||||||
<span class="">
|
</div>
|
||||||
%= $dom_datas->{forwarder}
|
<div class="col-auto">
|
||||||
</span>
|
<%= $dom_datas->{forwarder} %>
|
||||||
</p>
|
</div>
|
||||||
|
</div>
|
||||||
% if ($dom_datas->{forwarder2}) {
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $dom_datas->{forwarder2}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<p>
|
% if ($dom_datas->{forwarder2}) {
|
||||||
%= submit_button "$btn2", class => ""
|
<div class="row g-3 align-items-center">
|
||||||
</p>
|
<div class="col-md-3">
|
||||||
%= hidden_field 'trt' => 'UP2'
|
<%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY' %>
|
||||||
% end
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $dom_datas->{forwarder2} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-auto">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn2 %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => 'UP2' %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
@@ -1,39 +1,46 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
% my $btn = l('SAVE');
|
||||||
|
|
||||||
%= form_for '/domains2' => (method => 'POST') => begin
|
<form action="/smanager/domains2" method="POST">
|
||||||
|
|
||||||
<p><br>
|
<div>
|
||||||
%=l 'dom_DESC_CORPORATE_DNS'
|
<%=l 'dom_DESC_CORPORATE_DNS' %>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Forwarder' => $dom_datas->{forwarder} unless param 'Forwarder';
|
|
||||||
%= text_field 'Forwarder', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-3">
|
||||||
%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY', class => ""
|
<label for="inputCorpDNSPrimary" class="col-form-label"><%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY' %></label>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% param 'Forwarder2' => $dom_datas->{forwarder2} unless param 'Forwarder2';
|
% param 'Forwarder' => $dom_datas->{forwarder} unless param 'Forwarder';
|
||||||
%= text_field 'Forwarder2', class => ""
|
<input type="text" name="Forwarder" id="inputCorpDNSPrimary" class="form-control" aria-describedby="inputCorpDNSPrimary" value="<%= $dom_datas->{forwarder} %>">
|
||||||
</span>
|
</div>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $dom_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="inputCorpDNSSecondary" class="col-form-label"><%=l 'dom_LABEL_CORPORATE_DNS_SECONDARY' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Forwarder2' => $dom_datas->{forwarder2} unless param 'Forwarder2';
|
||||||
|
<input type="text" name="Forwarder2" id="inputCorpDNSSecondary" class="form-control" aria-describedby="inputCorpDNSSecondary" value="<%= $dom_datas->{forwarder2} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
%end
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => $dom_datas->{trt} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,74 +1,88 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('ADD');
|
% my $btn = l('ADD');
|
||||||
|
|
||||||
%= form_for '/domains2' => (method => 'POST') => begin
|
<form action="/smanager/domains2" method="POST">
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
|
||||||
%=l 'dom_CREATE_TITLE'
|
|
||||||
% } else {
|
|
||||||
%=l 'dom_MODIFY_TITLE'
|
|
||||||
% $btn = l('MODIFY');
|
|
||||||
% }
|
|
||||||
</h2>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><br>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'DOMAIN_NAME', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
|
||||||
% param 'Domain' => $dom_datas->{domain} unless param 'Domain';
|
|
||||||
%= text_field 'Domain', class => ""
|
|
||||||
% } else {
|
|
||||||
%= hidden_field 'Domain' => $dom_datas->{domain}
|
|
||||||
%= $dom_datas->{domain}, class => ""
|
|
||||||
% }
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><br>
|
<div>
|
||||||
<span class="">
|
<h2>
|
||||||
%=l 'DESCRIPTION_BRIEF', class => ""
|
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||||
</span>
|
<%=l 'dom_CREATE_TITLE' %>
|
||||||
<span class="">
|
% } else {
|
||||||
% param 'Description' => $dom_datas->{description} unless param 'Description';
|
<%=l 'dom_MODIFY_TITLE' %>
|
||||||
%= text_field 'Description', class => ""
|
% $btn = l('MODIFY');
|
||||||
</span>
|
% }
|
||||||
</p>
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p><br>
|
<br>
|
||||||
%=l 'dom_CONTENT_FIELD_DESCRIPTION'
|
|
||||||
<br>
|
|
||||||
<span class="">
|
|
||||||
%= $c->l('dom_CONTENT', '');
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Content' => $dom_datas->{content} unless param 'Content';
|
|
||||||
%= select_field 'Content', $c->content_options_list(), class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><br>
|
<div class="row g-3 algn-items-center">
|
||||||
%=l 'dom_DESC_NAMESERVERS'
|
<div class="col-md-2">
|
||||||
<br>
|
<label for="Domain" class="col-form-label"><%=l 'DOMAIN_NAME' %></label>
|
||||||
<span class="">
|
</div>
|
||||||
%=l 'dom_LABEL_NAMESERVERS', class => ""
|
<div class="col-auto">
|
||||||
</span>
|
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||||
<span class="">
|
% param 'Domain' => $dom_datas->{domain} unless param 'Domain';
|
||||||
% param 'Nameservers' => $dom_datas->{nameservers} unless param 'Nameservers';
|
<input type="text" name="Domain" id="Domain" class="form-control" aria-describedby="inputDomain" value="<%= $dom_datas->{domain} %>">
|
||||||
%= select_field 'Nameservers', $c->nameserver_options_list(), class => ""
|
% } else {
|
||||||
</span>
|
<%= hidden_field 'Domain' => $dom_datas->{domain} %>
|
||||||
</p>
|
<%= $dom_datas->{domain} %>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p><br>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $dom_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDomainDesc" class="col-form-label"><%=l 'DESCRIPTION_BRIEF' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Description' => $dom_datas->{description} unless param 'Description';
|
||||||
|
<input type="text" name="Description" id="DomainDesc" class="form-control" aria-describedby="inputCorpDNSPrimary" value="<%= $dom_datas->{description} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
%end
|
<br>
|
||||||
|
<%=l 'dom_CONTENT_FIELD_DESCRIPTION' %>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDomainContent" class="col-form-label"><%= $c->l('dom_CONTENT') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Content' => $dom_datas->{content} unless param 'Content';
|
||||||
|
<%= select_field 'Content', $c->content_options_list(), class => "form-select", id => "inputDomainContent" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<%=l 'dom_DESC_NAMESERVERS' %>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDomainNameServers" class="col-form-label"><%=l 'dom_LABEL_NAMESERVERS' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Nameservers' => $dom_datas->{nameservers} unless param 'Nameservers';
|
||||||
|
<%= select_field 'Nameservers', $c->nameserver_options_list(), class => "form-select", id => "inputDomainNameServers" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => $dom_datas->{trt} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<!--<HR class="">-->
|
<!--<HR class="">-->
|
||||||
<a href="https://mojolicious.org" target="_blank"><img src="images/sme-mojo-logo-white.png" style="position:relative;"></a>
|
<a href="https://mojolicious.org" target="_blank"><img src="images/sme-mojo-logo-white.png" style="position:relative;"></a>
|
||||||
<font>
|
|
||||||
% if ( $c->is_logged_in && $c->is_admin) {
|
% if ( $c->is_logged_in && $c->is_admin) {
|
||||||
SME Server <%= session 'releaseVersion' %>-<%= $c->app->VERSION %> Manager II
|
SME Server <%= session 'releaseVersion' %>-<%= $c->app->VERSION %> Manager II
|
||||||
% my $mode;
|
% my $mode;
|
||||||
@@ -11,4 +10,3 @@
|
|||||||
<br>Copyright 1999-2006 Mitel Corporation<br>
|
<br>Copyright 1999-2006 Mitel Corporation<br>
|
||||||
%= session 'copyRight'
|
%= session 'copyRight'
|
||||||
<br>Copyright (c) 2013-2024 Koozali Foundation Inc.<br>
|
<br>Copyright (c) 2013-2024 Koozali Foundation Inc.<br>
|
||||||
</font>
|
|
@@ -1,62 +1,80 @@
|
|||||||
<div>
|
<div>
|
||||||
|
<br>
|
||||||
|
<!-- <h2><%#= l 'grp_FORM_TITLE' %></h2> -->
|
||||||
|
|
||||||
% my $btn = l('ADD');
|
<h2><%= l 'CREATE_GROUP' %></h2>
|
||||||
|
<br>
|
||||||
|
<%= l 'grp_GROUP_NAMING' %>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
%= form_for '/groups2' => (method => 'POST') => begin
|
% my $btn = l('ADD');
|
||||||
<p><h2>
|
|
||||||
%=l 'CREATE_GROUP'
|
|
||||||
</h2>
|
|
||||||
<br><br>
|
|
||||||
%=l 'grp_GROUP_NAMING'
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<form action="/smanager/groups2" method="POST">
|
||||||
<span class="">
|
|
||||||
%=l 'GROUP_NAME', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= text_field 'groupName', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
%=l 'grp_GROUP_DESC_EXPL'
|
<div class="col-md-2">
|
||||||
<br><br>
|
<label for="inputGroupName" class="col-form-label"><%= l 'GROUP_NAME' %></label>
|
||||||
<span class="">
|
</div>
|
||||||
%=l 'grp_GROUP_DESC', class => ""
|
<div class="col-auto">
|
||||||
</span>
|
<input type="text" name="groupName" id="inputGroupName" class="form-control" aria-describedby="GroupName" >
|
||||||
<span class="">
|
</div>
|
||||||
%= text_field 'groupDesc', class => ""
|
<div class="col-auto">
|
||||||
</span>
|
<span id="passwordHelpInline" class="form-text">
|
||||||
</p>
|
Group
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<br><br>
|
||||||
<span class="">
|
|
||||||
%=l 'GROUP_MEMBERS', class => ""
|
<%= l 'grp_GROUP_DESC_EXPL' %>
|
||||||
</span>
|
|
||||||
<br>
|
<br><br>
|
||||||
<span class="">
|
|
||||||
%= check_box 'groupMembers' => 'admin'
|
<div class="row g-3 align-items-center">
|
||||||
Administrator (admin)
|
<div class="col-md-2">
|
||||||
<br>
|
<label for="inputGroupDesc" class="col-form-label"><%= l 'grp_GROUP_DESC' %></label>
|
||||||
% my $users = $c->gen_users_list();
|
</div>
|
||||||
% foreach my $key ( sort keys %$users )
|
<div class="col-auto">
|
||||||
% {
|
<input type="text" name="groupDesc" id="inputGroupDesc" class="form-control" aria-describedby="GroupDesc" >
|
||||||
%= check_box 'groupMembers' => $key
|
</div>
|
||||||
%=$users->{$key}
|
<div class="col-auto">
|
||||||
%= "(" . $key . ")"
|
<span id="passwordHelpInline" class="form-text">
|
||||||
|
Group Alias
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'GROUP_MEMBERS' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= check_box 'groupMembers' => 'admin' %>
|
||||||
|
 Administrator (admin)
|
||||||
<br>
|
<br>
|
||||||
% }
|
% my $users = $c->gen_users_list();
|
||||||
</span>
|
% foreach my $key ( sort keys %$users ) {
|
||||||
</p>
|
%= check_box 'groupMembers' => $key
|
||||||
|
 
|
||||||
|
%= $users->{$key}
|
||||||
|
%= " (" . $key . ")"
|
||||||
|
<br>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<br><br>
|
||||||
<br><br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $grp_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
% end
|
%= hidden_field 'trt' => $grp_datas->{trt}
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,63 +1,71 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('REMOVE');
|
% my $btn = l('REMOVE');
|
||||||
%= form_for '/groups2' => (method => 'POST') => begin
|
|
||||||
<p><h2>
|
|
||||||
%=l 'REMOVE_USER_GROUP'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<p>
|
<form action="/smanager/groups2" method="POST">
|
||||||
%=l('grp_DELETE_DESCRIPTION', $grp_datas->{group})
|
<br><br>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<h2><%=l 'REMOVE_USER_GROUP' %></h2>
|
||||||
% my $size = keys %$members;
|
|
||||||
% if ( ! $size ){
|
|
||||||
%=l 'ACCOUNT_GROUP_NONE'
|
|
||||||
% } else {
|
|
||||||
%=l 'grp_GROUP_HAS_MEMBERS'
|
|
||||||
<br>
|
|
||||||
<ul>
|
|
||||||
% foreach my $key ( keys %$members)
|
|
||||||
% {
|
|
||||||
<li>
|
|
||||||
%=$key
|
|
||||||
(
|
|
||||||
%=$members->{$key}
|
|
||||||
)
|
|
||||||
</li>
|
|
||||||
% }
|
|
||||||
</ul>
|
|
||||||
% }
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
% $size = keys %$ibays;
|
|
||||||
% if ( $size ) {
|
|
||||||
%=l 'grp_IBAYS_WILL_BE_CHANGED'
|
|
||||||
<br>
|
|
||||||
<ul>
|
|
||||||
% foreach my $key (sort ( keys %$ibays ))
|
|
||||||
% {
|
|
||||||
<li>
|
|
||||||
%=$key
|
|
||||||
(
|
|
||||||
%=$ibays->{$key}
|
|
||||||
)
|
|
||||||
</li>
|
|
||||||
% }
|
|
||||||
</ul>
|
|
||||||
% }
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<%=l('grp_DELETE_DESCRIPTION', $grp_datas->{group}) %>
|
||||||
<br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $grp_datas->{trt}
|
<br><br>
|
||||||
%= hidden_field 'groupName' => $grp_datas->{group}
|
|
||||||
|
|
||||||
% end
|
<div>
|
||||||
|
|
||||||
|
% my $size = keys %$members;
|
||||||
|
% if ( ! $size ){
|
||||||
|
%= l 'ACCOUNT_GROUP_NONE'
|
||||||
|
% } else {
|
||||||
|
%= l 'grp_GROUP_HAS_MEMBERS'
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
% foreach my $key ( keys %$members) {
|
||||||
|
<li>
|
||||||
|
%=$key
|
||||||
|
( <%=$members->{$key} %> )
|
||||||
|
</li>
|
||||||
|
% }
|
||||||
|
</ul>
|
||||||
|
% }
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
% $size = keys %$ibays;
|
||||||
|
|
||||||
|
% if ( $size ) {
|
||||||
|
%=l 'grp_IBAYS_WILL_BE_CHANGED'
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
% foreach my $key (sort ( keys %$ibays )) {
|
||||||
|
<li>
|
||||||
|
%=$key
|
||||||
|
(
|
||||||
|
%=$ibays->{$key}
|
||||||
|
)
|
||||||
|
</li>
|
||||||
|
% }
|
||||||
|
</ul>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $grp_datas->{trt} %>
|
||||||
|
<%= hidden_field 'groupName' => $grp_datas->{group} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,73 +2,64 @@
|
|||||||
|
|
||||||
% my $btn = l('GROUP_ADD');
|
% my $btn = l('GROUP_ADD');
|
||||||
|
|
||||||
%= form_for '/groups' => (method => 'POST') => begin
|
<form action="/smanager/groups2" method="POST">
|
||||||
|
<br>
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => 'ADD' %>
|
||||||
|
</form>
|
||||||
|
|
||||||
%= hidden_field 'trt' => 'ADD'
|
<br>
|
||||||
|
<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-width">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="col-sm"><%= l 'GROUP' %></th>
|
||||||
|
<th class="col-sm"><%= l 'DESCRIPTION' %></th>
|
||||||
|
<th class="col-sm align-middle" colspan="2"><%= l 'ACTION' %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
% foreach my $group ( @$groups ) {
|
||||||
|
<tr>
|
||||||
|
<td><%= $group->key %></td>
|
||||||
|
<td><%= $group->prop('Description') %></td>
|
||||||
|
|
||||||
<p> <br>
|
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
%= submit_button "$btn", class => ""
|
% my $group_name = $group->key; # group name extracted from the data structure
|
||||||
</p>
|
|
||||||
% end
|
|
||||||
|
|
||||||
|
% my $modify_text = l('MODIFY'); # Localized text
|
||||||
|
% my $actionModify = qq{
|
||||||
|
% <a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||||
|
% $modify_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
|
||||||
<p> <h2>
|
% my $remove_text = l('REMOVE'); # Localized text
|
||||||
%=l 'grp_CURRENT_LIST'
|
% my $actionRemove = qq{
|
||||||
</h2><br><br>
|
% <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
|
||||||
% my $numGroups = @$groups;
|
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||||
% if ($numGroups == 0){
|
% $remove_text
|
||||||
%=l 'ACCOUNT_GROUP_NONE'
|
% </button>
|
||||||
% } else {
|
% </a>
|
||||||
<table class="table table-bordered">
|
%};
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="">
|
|
||||||
%=l 'GROUP'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'DESCRIPTION'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'ACTION'
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
% foreach my $group ( @$groups )
|
|
||||||
% {
|
|
||||||
<tr>
|
|
||||||
%= t td => (class => "") => $group->key
|
|
||||||
%= t td => (class => "") => $group->prop('Description')
|
|
||||||
<td class="" style="min-width:15em">
|
|
||||||
%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="" 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{
|
|
||||||
% <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
|
|
||||||
% <button type='button' class="" title='$remove_text' >
|
|
||||||
% $remove_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
% }
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<%} %>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||||
|
</tr>
|
||||||
|
% }
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
% }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,71 +1,92 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('SAVE');
|
% my $btn = l('SAVE');
|
||||||
|
|
||||||
%= form_for '/groups2' => (method => 'POST') => begin
|
<form action="/smanager/groups2" method="POST">
|
||||||
|
|
||||||
<p><h2>
|
<br>
|
||||||
%=l 'MODIFY_USER_GROUP'
|
|
||||||
</h2><br></p>
|
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<span class="">
|
<h2><%= l 'MODIFY_USER_GROUP' %></h2>
|
||||||
%=l 'GROUP_NAME', class => ""
|
</div>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= $grp_datas->{group}, class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
%=l 'grp_GROUP_DESC_EXPL'
|
|
||||||
<br><br>
|
|
||||||
<span class="">
|
|
||||||
%=l 'grp_GROUP_DESC', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'groupDesc' => $grp_datas->{description} unless param 'groupDesc';
|
|
||||||
%= text_field 'groupDesc', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-2">
|
||||||
%=l 'GROUP_MEMBERS', class => ""
|
<label for="inputGroupName" class="col-form-label"><%= l 'GROUP_NAME' %></label>
|
||||||
</span>
|
</div>
|
||||||
<br>
|
<div class="col-auto">
|
||||||
<span class="">
|
<input disabled type="text" id="disabledTextInput" class="form-control" placeholder="<%= $grp_datas->{group} %>">
|
||||||
% if ( $members->{'admin'} ) {
|
</div>
|
||||||
%= check_box 'groupMembers', value => 'admin', checked => undef
|
</div>
|
||||||
%} else {
|
|
||||||
%= check_box 'groupMembers' => 'admin'
|
|
||||||
%}
|
|
||||||
Administrator (admin)
|
|
||||||
<br>
|
|
||||||
|
|
||||||
% my $users = $c->gen_users_list();
|
<br><br>
|
||||||
% foreach my $key ( sort keys %$users )
|
|
||||||
% {
|
<%= l 'grp_GROUP_DESC_EXPL'%>
|
||||||
% if ( $members->{ $key } ) {
|
|
||||||
<!-- % = check_box 'groupMembers', value => $key, checked => 'checked' -->
|
<br><br>
|
||||||
<input type='checkbox' name='groupMembers' checked value='<%= $key %>'>
|
|
||||||
%} else {
|
% param 'groupDesc' => $grp_datas->{description} unless param 'groupDesc';
|
||||||
%= check_box 'groupMembers' => $key
|
|
||||||
%}
|
<div class="row g-3 align-items-center">
|
||||||
%=$users->{$key} . " (" . $key . ")"
|
<div class="col-md-2">
|
||||||
|
<label for="inputGroupDesc" class="col-form-label"><%= l 'grp_GROUP_DESC' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="groupDesc" id="inputGroupDesc" class="form-control" aria-describedby="GroupDesc" value="<%= $grp_datas->{description} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="passwordHelpInline" class="form-text">
|
||||||
|
Group Alias
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'GROUP_MEMBERS' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
% if ( $members->{'admin'} ) {
|
||||||
|
%= check_box 'groupMembers', value => 'admin', checked => undef
|
||||||
|
% } else {
|
||||||
|
%= check_box 'groupMembers' => 'admin'
|
||||||
|
% }
|
||||||
|
 Administrator (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
|
||||||
|
 
|
||||||
|
% }
|
||||||
|
<%= $users->{$key} %>
|
||||||
|
<%= " (" . $key . ")" %>
|
||||||
<br>
|
<br>
|
||||||
% }
|
% }
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br><br>
|
||||||
<br><br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $grp_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
%= hidden_field 'groupName' => $grp_datas->{group}
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
% end
|
|
||||||
|
<%= hidden_field 'trt' => $grp_datas->{trt} %>
|
||||||
|
<%= hidden_field 'groupName' => $grp_datas->{group} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,29 +1,34 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('REMOVE');
|
% my $btn = l('REMOVE');
|
||||||
%= form_for '/hostentriesd' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
%=l 'hos_REMOVE_TITLE'
|
|
||||||
</h2>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<form action="/smanager/hostentriesd" method="POST">
|
||||||
%= $c->l('hos_REMOVE_PAGE_DESCRIPTION', $hos_datas->{hostname});
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><b>
|
<div>
|
||||||
%=l 'hos_ABOUT_TO_REMOVE'
|
<h2><%= l 'hos_REMOVE_TITLE'%> </h2>
|
||||||
</b></p>
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<br>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $hos_datas->{trt}
|
<div>
|
||||||
%= hidden_field 'Hostname' => $hos_datas->{hostname}
|
<%= $c->l('hos_REMOVE_PAGE_DESCRIPTION', $hos_datas->{hostname}); %>
|
||||||
|
</div>
|
||||||
|
|
||||||
% end
|
<br>
|
||||||
|
|
||||||
|
<b><%= l 'hos_ABOUT_TO_REMOVE' %></b>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $hos_datas->{trt} %>
|
||||||
|
<%= hidden_field 'Hostname' => $hos_datas->{hostname} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,85 +2,73 @@
|
|||||||
|
|
||||||
% my $btn = l('hos_ADD_HOSTNAME');
|
% my $btn = l('hos_ADD_HOSTNAME');
|
||||||
|
|
||||||
%= form_for '/hostentries' => (method => 'POST') => begin
|
<form action="/smanager/hostentriesd" method="POST">
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => $hos_datas->{trt} %>
|
||||||
|
</form>
|
||||||
|
|
||||||
<p>
|
% my %dom_hos = %{$dom_hosts};
|
||||||
%= submit_button "$btn", class => ""
|
% foreach my $domain ( sort ( keys %dom_hos ) ) {
|
||||||
<br></p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $hos_datas->{trt}
|
<br>
|
||||||
|
<%= $c->l('hos_CURRENT_HOSTNAMES_FOR_LOCAL_DOMAIN', $domain); %>
|
||||||
|
<br>
|
||||||
|
|
||||||
% end
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr class="">
|
||||||
|
<th class="col-sm"><%= l 'hos_HOSTNAME' %></th>
|
||||||
|
<th class="col-auto"><%= l 'hos_HOSTTYPE' %></th>
|
||||||
|
<th class="col-auto"><%= l 'IP_ADDRESS_OR_FQDN' %></th>
|
||||||
|
<th class="col-auto"><%= l 'hos_ETHERNET_ADDRESS' %></th>
|
||||||
|
<th class="col-auto"><%= l 'COMMENT' %></th>
|
||||||
|
<th class="align-middle" colspan="2"><%= l 'ACTION' %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
% my %dom_hos = %{$dom_hosts};
|
<tbody>
|
||||||
% foreach my $domain ( sort ( keys %dom_hos ) ) {
|
% foreach (@{$dom_hos{$domain}{'HOSTS'}}) {
|
||||||
|
<tr>
|
||||||
|
<td><%= $_->{'HostName'}; %></td>
|
||||||
|
<td><%= $_->{'HostType'}; %></td>
|
||||||
|
<td><%= $_->{'IP'}; %></td>
|
||||||
|
<td><%= $_->{'MACAddress'}; %></td>
|
||||||
|
<td><%= $_->{'Comment'}; %></td>
|
||||||
|
|
||||||
<p><br><b>
|
% my ($actionModify, $actionRemove) = ' ';
|
||||||
%= $c->l('hos_CURRENT_HOSTNAMES_FOR_LOCAL_DOMAIN', $domain);
|
% my $static = $_->{'static'} || "no";
|
||||||
</b><br></p>
|
% if ($static ne 'yes') {
|
||||||
|
%my $modify_text = l('MODIFY'); # Localized text
|
||||||
|
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
|
%my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
||||||
|
%$actionModify = qq{
|
||||||
|
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=UPD&Hostname=$hostentries_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||||
|
% $modify_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
%my $remove_text = l('REMOVE'); # Localized text
|
||||||
|
%$csrf_token = "TOKEN"; # CSRF token for security
|
||||||
|
%#my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
||||||
|
%$actionRemove = qq{
|
||||||
|
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=DEL&Hostname=$hostentries_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||||
|
% $remove_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
% }
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||||
|
|
||||||
<table class="table table-bordered">
|
</tr>
|
||||||
<thead>
|
% }
|
||||||
<tr>
|
</tbody>
|
||||||
<th class="">
|
</table>
|
||||||
%=l 'hos_HOSTNAME'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'hos_HOSTTYPE'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'IP_ADDRESS_OR_FQDN'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'hos_ETHERNET_ADDRESS'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'COMMENT'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'ACTION'
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
% foreach (@{$dom_hos{$domain}{'HOSTS'}}) {
|
|
||||||
<tr>
|
|
||||||
%= t td => (class => "") => $_->{'HostName'};
|
|
||||||
%= t td => (class => "") => $_->{'HostType'};
|
|
||||||
%= t td => (class => "") => $_->{'IP'};
|
|
||||||
%= t td => (class => "") => $_->{'MACAddress'};
|
|
||||||
%= t td => (class => "") => $_->{'Comment'};
|
|
||||||
<td class="" style="min-width:15em">
|
|
||||||
%my ($actionModify, $actionRemove) = ' ';
|
|
||||||
%my $static = $_->{'static'} || "no";
|
|
||||||
%if ($static ne 'yes') {
|
|
||||||
%my $modify_text = l('MODIFY'); # Localized text
|
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
|
||||||
%my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
|
||||||
%$actionModify = qq{
|
|
||||||
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=UPD&Hostname=$hostentries_name">
|
|
||||||
% <button type='button' class="" title='$modify_text' >
|
|
||||||
% $modify_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
%my $remove_text = l('REMOVE'); # Localized text
|
|
||||||
%$csrf_token = "TOKEN"; # CSRF token for security
|
|
||||||
%#my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
|
|
||||||
%$actionRemove = qq{
|
|
||||||
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=DEL&Hostname=$hostentries_name">
|
|
||||||
% <button type='button' class="" title='$remove_text' >
|
|
||||||
% $remove_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
%}
|
|
||||||
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
% }
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
% }
|
% }
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,62 +1,71 @@
|
|||||||
<div>
|
<div>
|
||||||
<!-- UPDATE HOST TYPE -->
|
<!-- UPDATE HOST TYPE -->
|
||||||
|
|
||||||
% my $btn = l('NEXT');
|
% my $btn = l('NEXT');
|
||||||
|
|
||||||
%= form_for '/hostentriesd' => (method => 'POST') => begin
|
<form action="/smanager/hostentriesd" method="POST">
|
||||||
<p><h2>
|
|
||||||
% if ( $hos_datas->{trt} eq "ALC" ) {
|
|
||||||
%=l 'hos_CREATE_TYPE'
|
|
||||||
% } else {
|
|
||||||
%=l 'hos_MODIFY_TYPE'
|
|
||||||
% $btn = l('MODIFY');
|
|
||||||
% }
|
|
||||||
</h2></p>
|
|
||||||
|
|
||||||
<p>
|
% if ( $hos_datas->{trt} eq "ALC" ) {
|
||||||
%=l 'hos_LOCAL_PAGE_DESCRIPTION'
|
<h2><%= l 'hos_CREATE_TYPE' %></h2>
|
||||||
</p>
|
% } else {
|
||||||
|
<h2><%= l 'hos_MODIFY_TYPE' %></h2>
|
||||||
|
% $btn = l('MODIFY');
|
||||||
|
% }
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
%=l 'hos_LOCAL_IP_DESCRIPTION'
|
<%= l 'hos_LOCAL_PAGE_DESCRIPTION' %>
|
||||||
</p>
|
</div>
|
||||||
|
<div>
|
||||||
|
<%= l 'hos_LOCAL_IP_DESCRIPTION' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'hos_LOCAL_IP', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Internalip' => $hos_datas->{internalip} unless param 'Internalip';
|
|
||||||
%= text_field 'Internalip', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
%=l 'hos_ETHERNET_ADDRESS_DESCRIPTION'
|
<div class="col-md-2">
|
||||||
</p>
|
<%= l 'hos_LOCAL_IP' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Internalip' => $hos_datas->{internalip} unless param 'Internalip';
|
||||||
|
<%= text_field 'Internalip' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'hos_ETHERNET_ADDRESS', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Macaddress' => $hos_datas->{macaddress} unless param 'Macaddress';
|
|
||||||
%= text_field 'Macaddress', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><br>
|
<div>
|
||||||
%= submit_button "$btn", class => ""
|
<%= l 'hos_ETHERNET_ADDRESS_DESCRIPTION' %>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
%= hidden_field 'trt' => $hos_datas->{trt}
|
<br>
|
||||||
%= hidden_field 'Hostname' => $hos_datas->{hostname}
|
|
||||||
%= hidden_field 'Name' => $hos_datas->{name}
|
|
||||||
%= hidden_field 'Domain' => $hos_datas->{domain}
|
|
||||||
%= hidden_field 'Comment'=> $hos_datas->{comment}
|
|
||||||
%= hidden_field 'Hosttype'=> $hos_datas->{hosttype}
|
|
||||||
%= hidden_field 'Externalip' => $hos_datas->{externalip}
|
|
||||||
|
|
||||||
%end
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'hos_ETHERNET_ADDRESS' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Macaddress' => $hos_datas->{macaddress} unless param 'Macaddress';
|
||||||
|
<%= text_field 'Macaddress' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $hos_datas->{trt} %>
|
||||||
|
<%= hidden_field 'Hostname' => $hos_datas->{hostname} %>
|
||||||
|
<%= hidden_field 'Name' => $hos_datas->{name} %>
|
||||||
|
<%= hidden_field 'Domain' => $hos_datas->{domain} %>
|
||||||
|
<%= hidden_field 'Comment'=> $hos_datas->{comment} %>
|
||||||
|
<%= hidden_field 'Hosttype'=> $hos_datas->{hosttype} %>
|
||||||
|
<%= hidden_field 'Externalip' => $hos_datas->{externalip} %>
|
||||||
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,81 +1,92 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('NEXT');
|
% my $btn = l('NEXT');
|
||||||
|
|
||||||
%= form_for '/hostentriesd' => (method => 'POST') => begin
|
<form action="/smanager/hostentriesd" method="POST">
|
||||||
<p><h2>
|
|
||||||
% if ( $hos_datas->{trt} eq "ADD" ) {
|
|
||||||
%=l 'hos_CREATE_TITLE'
|
|
||||||
% } else {
|
|
||||||
%=l 'hos_MODIFY_TITLE'
|
|
||||||
% $btn = l('MODIFY');
|
|
||||||
% }
|
|
||||||
</h2></p>
|
|
||||||
|
|
||||||
<p>
|
% if ( $hos_datas->{trt} eq "ADD" ) {
|
||||||
%=l 'hos_HOSTNAME_DESCRIPTION'
|
<h2><%=l 'hos_CREATE_TITLE' %></h2>
|
||||||
</p>
|
% } else {
|
||||||
|
<h2><%=l 'hos_MODIFY_TITLE' %></h2>
|
||||||
|
% $btn = l('MODIFY');
|
||||||
|
% }
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<span class="">
|
<%= l 'hos_HOSTNAME_DESCRIPTION' %>
|
||||||
%=l 'hos_HOSTNAME', class => ""
|
</div>
|
||||||
</span>
|
<br>
|
||||||
<span class="">
|
<div class="row g-3 align-items-center">
|
||||||
% if ( $hos_datas->{trt} eq "ADD" ) {
|
<div class="col-md-2">
|
||||||
% param 'Name' => $hos_datas->{name} unless param 'Name';
|
<%=l 'hos_HOSTNAME' %>
|
||||||
%= text_field 'Name', class => ""
|
</div>
|
||||||
% } else {
|
<div class="col-auto">
|
||||||
%= hidden_field 'Name' => $hos_datas->{name}
|
% if ( $hos_datas->{trt} eq "ADD" ) {
|
||||||
%= $hos_datas->{name}, class => ""
|
% param 'Name' => $hos_datas->{name} unless param 'Name';
|
||||||
% }
|
<%= text_field 'Name' %>
|
||||||
</span>
|
% } else {
|
||||||
</p>
|
<%= hidden_field 'Name' => $hos_datas->{name} %>
|
||||||
|
<%= $hos_datas->{name} %>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'DOMAIN', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% if ( $hos_datas->{trt} eq "ADD" ) {
|
|
||||||
% param 'Domain' => $hos_datas->{domain} unless param 'Domain';
|
|
||||||
%= select_field 'Domain', $c->domains_list(), class => ""
|
|
||||||
% } else {
|
|
||||||
%= hidden_field 'Domain' => $hos_datas->{domain}
|
|
||||||
%= $hos_datas->{domain}, class => ""
|
|
||||||
% }
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-2">
|
||||||
%= $c->l('COMMENT', '');
|
<%= l 'DOMAIN' %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
|
||||||
% param 'Comment' => $hos_datas->{comment} unless param 'Comment';
|
|
||||||
%= text_field 'Comment', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="col-auto">
|
||||||
<span class="">
|
% if ( $hos_datas->{trt} eq "ADD" ) {
|
||||||
%=l 'LOCATION', class => ""
|
% param 'Domain' => $hos_datas->{domain} unless param 'Domain';
|
||||||
</span>
|
<%= select_field 'Domain', $c->domains_list() %>
|
||||||
<span class="">
|
% } else {
|
||||||
% param 'Hosttype' => $hos_datas->{hosttype} unless param 'Hosttype';
|
<%= hidden_field 'Domain' => $hos_datas->{domain} %>
|
||||||
%= select_field 'Hosttype', $c->hosttype_list(), class => ""
|
<%= $hos_datas->{domain} %>
|
||||||
</span>
|
% }
|
||||||
</p>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p><br>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $hos_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
%= hidden_field 'Hostname' => $hos_datas->{hostname}
|
<div class="col-md-2">
|
||||||
%= hidden_field 'Internalip' => $hos_datas->{internalip}
|
<label for="inputHostComment" class="col-form-label"><%= $c->l('COMMENT', ''); %></label>
|
||||||
%= hidden_field 'Externalip' => $hos_datas->{externalip}
|
</div>
|
||||||
%= hidden_field 'Macaddress' => $hos_datas->{macaddress}
|
<div class="col-auto">
|
||||||
|
% param 'Comment' => $hos_datas->{comment} unless param 'Comment';
|
||||||
|
<input type="text" name="Comment" id="inputHostComment" class="form-control" aria-describedby="inputHostComment" value="<%= $hos_datas->{comment} %>">
|
||||||
|
|
||||||
%end
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%=l 'LOCATION' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Hosttype' => $hos_datas->{hosttype} unless param 'Hosttype';
|
||||||
|
<%= select_field 'Hosttype', $c->hosttype_list(), class => "form-select"; %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $hos_datas->{trt} %>
|
||||||
|
<%= hidden_field 'Hostname' => $hos_datas->{hostname} %>
|
||||||
|
<%= hidden_field 'Internalip' => $hos_datas->{internalip} %>
|
||||||
|
<%= hidden_field 'Externalip' => $hos_datas->{externalip} %>
|
||||||
|
<%= hidden_field 'Macaddress' => $hos_datas->{macaddress} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -3,36 +3,38 @@
|
|||||||
|
|
||||||
% my $btn = l('MODIFY');
|
% my $btn = l('MODIFY');
|
||||||
|
|
||||||
%= form_for '/hostentriesd' => (method => 'POST') => begin
|
<form action="/smanager/hostentriesd" method="POST">
|
||||||
|
%#= form_for '/hostentriesd' => (method => 'POST') => begin
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
%=l 'hos_REMOTE_PAGE_DESCRIPTION'
|
<%= l 'hos_REMOTE_PAGE_DESCRIPTION' %>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<span class="">
|
<%= l 'IP_ADDRESS_OR_FQDN' %>
|
||||||
%=l 'IP_ADDRESS_OR_FQDN', class => ""
|
</div>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'Externalip' => $hos_datas->{externalip} unless param 'Externalip';
|
|
||||||
%= text_field 'Externalip', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
% param 'Externalip' => $hos_datas->{externalip} unless param 'Externalip';
|
||||||
|
<%= text_field 'Externalip' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p><br>
|
<div class="row g-3 align-items-center">
|
||||||
%= submit_button "$btn", class => ""
|
<div class="col-md-2">
|
||||||
</p>
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
%= hidden_field 'trt' => $hos_datas->{trt}
|
%= hidden_field 'trt' => $hos_datas->{trt}
|
||||||
%= hidden_field 'Hostname' => $hos_datas->{hostname}
|
%= hidden_field 'Hostname' => $hos_datas->{hostname}
|
||||||
%= hidden_field 'Name' => $hos_datas->{name}
|
%= hidden_field 'Name' => $hos_datas->{name}
|
||||||
%= hidden_field 'Domain' => $hos_datas->{domain}
|
%= hidden_field 'Domain' => $hos_datas->{domain}
|
||||||
%= hidden_field 'Comment'=> $hos_datas->{comment}
|
%= hidden_field 'Comment'=> $hos_datas->{comment}
|
||||||
%= hidden_field 'Hosttype'=> $hos_datas->{hosttype}
|
%= hidden_field 'Hosttype'=> $hos_datas->{hosttype}
|
||||||
%= hidden_field 'Internalip' => $hos_datas->{internalip}
|
%= hidden_field 'Internalip' => $hos_datas->{internalip}
|
||||||
%= hidden_field 'Macaddress' => $hos_datas->{macaddress}
|
%= hidden_field 'Macaddress' => $hos_datas->{macaddress}
|
||||||
|
|
||||||
%end
|
%#end
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,22 +1,31 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $btn = l('REMOVE');
|
% my $btn = l('REMOVE');
|
||||||
%= form_for '/ibaysd' => (method => 'POST') => begin
|
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
%=l 'iba_REMOVE_TITLE'
|
|
||||||
</h2>
|
|
||||||
<br>
|
|
||||||
%= $c->render_to_string(inline => l('iba_REMOVE_DESC', $iba_datas->{ibay}, $iba_datas->{description}));
|
|
||||||
<br>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $iba_datas->{trt}
|
<form action="/smanager/ibaysd" method="POST">
|
||||||
%= hidden_field 'ibay' => $iba_datas->{ibay}
|
|
||||||
|
|
||||||
% end
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2><%=l 'iba_REMOVE_TITLE' %></h2>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->render_to_string(inline => l('iba_REMOVE_DESC', $iba_datas->{ibay}, $iba_datas->{description})); %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $iba_datas->{trt} %>
|
||||||
|
<%= hidden_field 'ibay' => $iba_datas->{ibay} %>
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -3,111 +3,114 @@
|
|||||||
|
|
||||||
% my $btn = l('iba_ADD_IBAY');
|
% my $btn = l('iba_ADD_IBAY');
|
||||||
|
|
||||||
%= form_for '/ibays' => (method => 'POST') => begin
|
<form action="/smanager/ibays" method="POST">
|
||||||
|
<br>
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= hidden_field 'trt' => 'ADD'; %>
|
||||||
|
</form>
|
||||||
|
|
||||||
<p>
|
|
||||||
<br>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
<div>
|
||||||
</p>
|
<%= l 'iba_FIRSTPAGE_DESC' %>
|
||||||
%= hidden_field 'trt' => 'ADD';
|
</div>
|
||||||
|
|
||||||
% end
|
<br>
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
%=l 'iba_FIRSTPAGE_DESC'
|
<h2>Current List of i-bays - translation string required</h2>
|
||||||
<br><br>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
% my $numIbays = @$ibays;
|
<br>
|
||||||
% if ($numIbays == 0){
|
|
||||||
%=l 'iba_NO_IBAYS'
|
|
||||||
% } else {
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="">
|
|
||||||
%=l 'NAME'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'DESCRIPTION'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'ACTION'
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
% foreach my $ibay (@$ibays)
|
|
||||||
% {
|
|
||||||
% my $modifiable = $ibay->prop('Modifiable') || 'yes';
|
|
||||||
% my $passwordable = $ibay->prop('Passwordable') || 'yes';
|
|
||||||
% my $removable = $ibay->prop('Removable') || 'yes';
|
|
||||||
% my $needPassword = grep { $_ eq $ibay->prop('PublicAccess') }
|
|
||||||
% qw(local-pw global-pw global-pw-remote);
|
|
||||||
|
|
||||||
<tr>
|
% my $numIbays = @$ibays;
|
||||||
%= t td => (class => "") => $ibay->key
|
% if ($numIbays == 0) {
|
||||||
%= t td => (class => "") => $ibay->prop('Name')
|
<%= l 'iba_NO_IBAYS' %>
|
||||||
<td class="" style="min-width:15em">
|
% } else {
|
||||||
%my ($actionModify, $actionResetPw, $actionRemove) = ' ';
|
|
||||||
%if ($modifiable eq 'yes') {
|
|
||||||
%my $modify_text = l('MODIFY'); # Localized text
|
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
|
||||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
|
||||||
%$actionModify = qq{
|
|
||||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=UPD&ibay=$ibays_entry_name">
|
|
||||||
% <button type='button' class="" title='$modify_text' >
|
|
||||||
% $modify_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
%}
|
|
||||||
|
|
||||||
%if ($passwordable eq 'yes') {
|
<table class="table table-bordered">
|
||||||
%my $password_text = l('PASSWORD_RESET'); # Localized text
|
<thead>
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
<tr>
|
||||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
<th class="col-sm"><%= l 'NAME' %></th>
|
||||||
%if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
|
<th class="col-sm"><%= l 'DESCRIPTION' %></th>
|
||||||
%$actionResetPw = qq{
|
<th class="col-sm align-middle" colspan="3"><%= l 'ACTION' %></th>
|
||||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
</tr>
|
||||||
% <button type='button' class="" title="$password_text - currently unset" style = background:pink; >
|
</thead>
|
||||||
% $password_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
%} else {
|
|
||||||
%$actionResetPw = qq{
|
|
||||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
|
||||||
% <button type='button' class="" title='$password_text' >
|
|
||||||
% $password_text
|
|
||||||
% </button>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
%}
|
|
||||||
|
|
||||||
%}
|
<tbody>
|
||||||
|
% foreach my $ibay (@$ibays)
|
||||||
|
% {
|
||||||
|
% my $modifiable = $ibay->prop('Modifiable') || 'yes';
|
||||||
|
% my $passwordable = $ibay->prop('Passwordable') || 'yes';
|
||||||
|
% my $removable = $ibay->prop('Removable') || 'yes';
|
||||||
|
% my $needPassword = grep { $_ eq $ibay->prop('PublicAccess') }
|
||||||
|
% qw(local-pw global-pw global-pw-remote);
|
||||||
|
|
||||||
%if ($removable eq 'yes') {
|
<tr>
|
||||||
%my $remove_text = l('REMOVE'); # Localized text
|
<td><%= $ibay->key %>
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
<td><%= $ibay->prop('Name') %>
|
||||||
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
<td class="">
|
||||||
%$actionRemove = qq{
|
% my ($actionModify, $actionResetPw, $actionRemove) = ' ';
|
||||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=DEL&ibay=$ibays_entry_name">
|
% if ($modifiable eq 'yes') {
|
||||||
% <button type='button' class="" title='$remove_text' >
|
%my $modify_text = l('MODIFY'); # Localized text
|
||||||
% $remove_text
|
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
% </button>
|
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||||
% </a>
|
%$actionModify = qq{
|
||||||
%};
|
% <a href="ibaysd?CsrfDef=$csrf_token&trt=UPD&ibay=$ibays_entry_name">
|
||||||
%}
|
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||||
<%= $c->render_to_string(inline => $actionModify) %>
|
% $modify_text
|
||||||
<%= $c->render_to_string(inline => $actionResetPw)%>
|
% </button>
|
||||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
% </a>
|
||||||
</td>
|
%};
|
||||||
</tr>
|
% }
|
||||||
% }
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<%} %>
|
|
||||||
|
|
||||||
|
% if ($passwordable eq 'yes') {
|
||||||
|
%my $password_text = l('PASSWORD_RESET'); # Localized text
|
||||||
|
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
|
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||||
|
%if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
|
||||||
|
%$actionResetPw = qq{
|
||||||
|
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
||||||
|
% <button type='button' class="btn btn-danger btn-sm" title="$password_text - currently unset" >
|
||||||
|
% $password_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
% };
|
||||||
|
% } else {
|
||||||
|
%$actionResetPw = qq{
|
||||||
|
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$password_text' >
|
||||||
|
% $password_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
% }
|
||||||
|
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ($removable eq 'yes') {
|
||||||
|
%my $remove_text = l('REMOVE'); # Localized text
|
||||||
|
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||||
|
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
|
||||||
|
%$actionRemove = qq{
|
||||||
|
% <a href="ibaysd?CsrfDef=$csrf_token&trt=DEL&ibay=$ibays_entry_name">
|
||||||
|
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||||
|
% $remove_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
% }
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionResetPw)%></td>
|
||||||
|
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
% }
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
% }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,43 +2,60 @@
|
|||||||
|
|
||||||
% my $btn = l('SAVE');
|
% my $btn = l('SAVE');
|
||||||
|
|
||||||
%= form_for '/ibaysd' => (method => 'POST') => begin
|
<form action="/smanager/ibaysd" method="POST">
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
%=l 'PASSWORD_RESET'
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<br><br>
|
<br>
|
||||||
%=l 'iba_PASSWORD_DESC'
|
|
||||||
%= $iba_datas->{ibay}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<span class="">
|
<h2><%= l 'PASSWORD_RESET' %></h2>
|
||||||
%=l 'PASSWORD_NEW', class => ""
|
<div>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= password_field 'newPass', class => "" , class=> 'sme-password'
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l 'PASSWORD_VERIFY_NEW', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
%= password_field 'newPassVerify', class => "", class=> 'sme-password'
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<br><br>
|
<%= l 'iba_PASSWORD_DESC' %> <%= $iba_datas->{ibay} %>
|
||||||
%= submit_button "$btn", class => ""
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $iba_datas->{trt}
|
<br>
|
||||||
%= hidden_field 'ibay' => $iba_datas->{ibay}
|
|
||||||
|
|
||||||
% end
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'PASSWORD_NEW' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input name="newPass" id="password" type="password" class="form-control sme-password" placeholder="Password" autocomplete="on">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'PASSWORD_VERIFY_NEW' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input name="newPassVerify" id="passVerify" type="password" class="form-control sme-password" placeholder="Password" autocomplete="on">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePasswordVerify" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $iba_datas->{trt} %>
|
||||||
|
<%= hidden_field 'ibay' => $iba_datas->{ibay} %>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -3,106 +3,119 @@
|
|||||||
|
|
||||||
% my $btn = l('ADD');
|
% my $btn = l('ADD');
|
||||||
|
|
||||||
%= form_for '/ibaysd' => (method => 'POST') => begin
|
<form action="/smanager/ibaysd" method="POST">
|
||||||
<p>
|
|
||||||
<h2>
|
|
||||||
%=l 'iba_ADD_TITLE'
|
|
||||||
</h2>
|
|
||||||
<br>
|
|
||||||
%=l 'iba_NAME_FIELD_DESC'
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div>
|
||||||
<span class="">
|
<h2><%=l 'iba_ADD_TITLE' %></h2>
|
||||||
%=l 'iba_NAME_LABEL', class => ""
|
</div>
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% if ( $iba_datas->{trt} eq 'ADD' ) {
|
|
||||||
% param 'ibay' => $iba_datas->{ibay} unless param 'ibay';
|
|
||||||
%= text_field 'ibay', class => ""
|
|
||||||
% } else {
|
|
||||||
% $btn = l('SAVE');
|
|
||||||
%= $iba_datas->{ibay}, class => ""
|
|
||||||
% }
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'DESCRIPTION', class => ""
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'ibayDesc' => $iba_datas->{description} unless param 'ibayDesc';
|
|
||||||
%= text_field 'ibayDesc', class => ""
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'GROUP'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'group' => $iba_datas->{group} unless param 'group';
|
|
||||||
%= select_field 'group' => $c->group_list_m(), class => ""
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'iba_USER_ACCESS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'userAccess' => $iba_datas->{userAccess} unless param 'userAccess';
|
|
||||||
%= select_field 'userAccess' => $c->userAccess_list_m(), class => ""
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<%=l 'iba_NAME_FIELD_DESC'%>
|
||||||
<span class="">
|
|
||||||
%=l 'iba_PUBLIC_ACCESS'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'publicAccess' => $iba_datas->{publicAccess} unless param 'publicAccess';
|
|
||||||
%= select_field 'publicAccess' => $c->publicAccess_list_m(), class => ""
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'iba_ALLOW_DYNAMIC_CONTENT'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'CgiBin' => $iba_datas->{CgiBin} unless param 'CgiBin';
|
|
||||||
%= select_field 'CgiBin' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<span class="">
|
|
||||||
%=l 'iba_HTTPS_Only'
|
|
||||||
</span>
|
|
||||||
<span class="">
|
|
||||||
% param 'SSL' => $iba_datas->{SSL} unless param 'SSL';
|
|
||||||
%= select_field 'SSL' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => ""
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<br><br>
|
<br><br>
|
||||||
%= submit_button $btn, class => ""
|
|
||||||
</p>
|
|
||||||
|
|
||||||
%= hidden_field 'trt' => $iba_datas->{trt}
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputIbayLabel" class="col-form-label"><%= l 'iba_NAME_LABEL' %></label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-auto">
|
||||||
|
% if ( $iba_datas->{trt} eq 'ADD' ) {
|
||||||
|
% param 'ibay' => $iba_datas->{ibay} unless param 'ibay';
|
||||||
|
<input type="text" name="ibay" id="inputIbay" class="form-control" aria-describedby="Ibay" value="<%= $iba_datas->{ibays} %>">
|
||||||
|
% } else {
|
||||||
|
% $btn = l('SAVE');
|
||||||
|
<%= $iba_datas->{ibay} %>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputIbayDesc" class="col-form-label"><%= l 'DESCRIPTION' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'ibayDesc' => $iba_datas->{description} unless param 'ibayDesc';
|
||||||
|
<input type="text" name="ibayDesc" id="inputIbayDesc" class="form-control" aria-describedby="IbayDesc" value="<%= $iba_datas->{description} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<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"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= hidden_field 'trt' => $iba_datas->{trt} %>
|
||||||
% if ( $iba_datas->{trt} eq 'UPD' ) {
|
% if ( $iba_datas->{trt} eq 'UPD' ) {
|
||||||
%= hidden_field 'ibay' => $iba_datas->{ibay}
|
<%= hidden_field 'ibay' => $iba_datas->{ibay} %>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% end
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,25 +1,42 @@
|
|||||||
<% use POSIX qw(strftime); %>
|
% use POSIX qw(strftime);
|
||||||
<div id="">
|
|
||||||
<% if (! $c->session->{PwdSet} ) { %>
|
<div>
|
||||||
<div class=""><h5>
|
% if (! $c->session->{PwdSet} ) {
|
||||||
Warning: you have not yet changed the default system password.</h5></div>
|
<div>
|
||||||
<% } %>
|
<h5 class="text-danger">
|
||||||
<% if ( $c->is_unsafe ) { %>
|
Warning: you have not yet changed the default system password.
|
||||||
<div class=""><h5>
|
</h5>
|
||||||
Warning: a reconfigure and reboot is required before proceeding! Failure to do so now
|
</div>
|
||||||
may leave your system in an unknown state!</h5></div>
|
% }
|
||||||
<% } %>
|
|
||||||
<% if ( $c->session->{Access} eq 'public' && ((config->{debug} ne '0') || (config->{mode} ne 'production')) ) { %>
|
% if ( $c->is_unsafe ) {
|
||||||
<div class=""><h5>
|
<div>
|
||||||
Warning: Development or debug mode enabled AND public access is offered !
|
<h5 class="text-danger">
|
||||||
</h5></div>
|
Warning: a reconfigure and reboot is required before proceeding!<br>
|
||||||
<% } %>
|
Failure to do so now may leave your system in an unknown state!
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( $c->session->{Access} eq 'public' && ((config->{debug} ne '0') || (config->{mode} ne 'production')) ) {
|
||||||
|
<div>
|
||||||
|
<h5 class="text-danger">
|
||||||
|
Warning: Development or debug mode enabled AND public access is offered !
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
<% my $curdate = strftime '%Y%m%d', localtime; %>
|
<% my $curdate = strftime '%Y%m%d', localtime; %>
|
||||||
<% if ( "$curdate" >= "20290531" ) { %>
|
|
||||||
<div class=""><h5>
|
% if ( "$curdate" >= "20290531" ) {
|
||||||
URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE. NO support will be offered for any issue found with this installed version.
|
<div>
|
||||||
Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version. Failure to upgrade may lead to the compromise of this server.
|
<h5>
|
||||||
<br>Please, consult <a href="https://wiki.koozali.org/SME_Server:Download" target="_blank">https://wiki.koozali.org/SME_Server:Download</a> to get the latest version
|
URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE.<br>
|
||||||
</h5></div>
|
NO support will be offered for any issue found with this installed version.<br>
|
||||||
<% } %>
|
Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version.<br>
|
||||||
|
Failure to upgrade may lead to the compromise of this server.<br>
|
||||||
|
Please, consult <a href="https://wiki.koozali.org/SME_Server:Download" target="_blank">https://wiki.koozali.org/SME_Server:Download</a> to get the latest version
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
</div>
|
</div>
|
@@ -15,13 +15,13 @@
|
|||||||
const password = document.querySelector('#id_password');
|
const password = document.querySelector('#id_password');
|
||||||
|
|
||||||
if (( togglePassword ) && ( password )) {
|
if (( togglePassword ) && ( password )) {
|
||||||
togglePassword.addEventListener('click', function (e) {
|
togglePassword.addEventListener('click', function (e) {
|
||||||
// toggle the type attribute
|
// toggle the type attribute
|
||||||
const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
|
const type = password.getAttribute('type') === 'password' ? 'text' : 'password';
|
||||||
password.setAttribute('type', type);
|
password.setAttribute('type', type);
|
||||||
// toggle the eye slash icon
|
// toggle the eye slash icon
|
||||||
// this.classList.toggle('eye-slash');
|
// this.classList.toggle('eye-slash');
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -36,34 +36,34 @@
|
|||||||
%= javascript begin
|
%= javascript begin
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#tognav').click(function() {
|
$('#tognav').click(function() {
|
||||||
//alert('click1:'+window.localStorage.getItem('menunav'));
|
//alert('click1:'+window.localStorage.getItem('menunav'));
|
||||||
window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
|
window.localStorage.setItem('menunav',!$('#menunav').is(':visible'));
|
||||||
//alert('click2:'+window.localStorage.getItem('menunav'));
|
//alert('click2:'+window.localStorage.getItem('menunav'));
|
||||||
$('#menunav').toggle({ duration: 300 });
|
$('#menunav').toggle({ duration: 300 });
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#toguser').click(function() {
|
$('#toguser').click(function() {
|
||||||
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
|
window.localStorage.setItem('menuuser',!$('#menuuser').is(':visible'));
|
||||||
$('#menuuser').toggle({ duration: 300 });
|
$('#menuuser').toggle({ duration: 300 });
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#togadm').click(function() {
|
$('#togadm').click(function() {
|
||||||
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
|
window.localStorage.setItem('menuadm',!$('#menuadm').is(':visible'));
|
||||||
$('#menuadm').toggle({ duration: 300 });
|
$('#menuadm').toggle({ duration: 300 });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$('.section-title').click(function() {
|
$('.section-title').click(function() {
|
||||||
var $section = $(this).parent().next('div');
|
var $section = $(this).parent().next('div');
|
||||||
if(!$section.length){
|
if(!$section.length){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let localStorageTag = "admSection-"+this.innerHTML;
|
let localStorageTag = "admSection-"+this.innerHTML;
|
||||||
var jqObj = $($section);
|
var jqObj = $($section);
|
||||||
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
|
window.localStorage.setItem(localStorageTag,!jqObj.is(':visible'));
|
||||||
$section.toggle({ duration: 600 });
|
$section.toggle({ duration: 600 });
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
% end
|
% end
|
||||||
@@ -73,36 +73,36 @@
|
|||||||
|
|
||||||
% content_for 'js_swapClass' => begin
|
% content_for 'js_swapClass' => begin
|
||||||
%= javascript begin
|
%= javascript begin
|
||||||
(function($) {
|
(function($) {
|
||||||
$.fn.swapClass = function(class1, class2) {
|
$.fn.swapClass = function(class1, class2) {
|
||||||
this.each(function() {
|
this.each(function() {
|
||||||
var $elem = $(this);
|
var $elem = $(this);
|
||||||
if ($elem.hasClass(class1)) {
|
if ($elem.hasClass(class1)) {
|
||||||
$elem.removeClass(class1).addClass(class2);
|
$elem.removeClass(class1).addClass(class2);
|
||||||
}
|
}
|
||||||
else if ($elem.hasClass(class2)) {
|
else if ($elem.hasClass(class2)) {
|
||||||
$elem.removeClass(class2).addClass(class1);
|
$elem.removeClass(class2).addClass(class1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('a.item-current').swapClass('item-current','item');
|
$('a.item-current').swapClass('item-current','item');
|
||||||
|
|
||||||
var pathname = $(location).attr('pathname');
|
var pathname = $(location).attr('pathname');
|
||||||
|
|
||||||
//alert('jQuery loaded. Path searched: ' + pathname);
|
//alert('jQuery loaded. Path searched: ' + pathname);
|
||||||
|
|
||||||
var menus = $('a.item');
|
var menus = $('a.item');
|
||||||
$.each(menus, function() {
|
$.each(menus, function() {
|
||||||
if ( $(this).attr('href') == pathname ) {
|
if ( $(this).attr('href') == pathname ) {
|
||||||
$(this).swapClass('item', 'item-current');
|
$(this).swapClass('item', 'item-current');
|
||||||
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
|
// alert('menu found! ' + $(this).attr('href') + ' ' + $(this).attr('class'));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
});
|
});
|
||||||
% end
|
% end
|
||||||
% end
|
% end
|
||||||
|
|
||||||
|
@@ -2,37 +2,37 @@
|
|||||||
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
SelectInput();
|
SelectInput();
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<pre>
|
<pre>
|
||||||
%= dumper $lets_data
|
%= dumper $lets_data
|
||||||
</pre>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
% my $btn = l('lets_APPLY');
|
% my $btn = l('lets_APPLY');
|
||||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
%= hidden_field 'trt' => $lets_data->{trt}
|
%= hidden_field 'trt' => $lets_data->{trt}
|
||||||
%# Inputs etc in here.
|
%# Inputs etc in here.
|
||||||
|
|
||||||
<h1 class=""><%=l('lets_Check_all_domains')%></h1>
|
<h1 class=""><%=l('lets_Check_all_domains')%></h1>
|
||||||
|
|
||||||
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
|
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
|
||||||
|
|
||||||
<span class="">
|
<span class="">
|
||||||
%=l('lets_All_domains_check_result')
|
%=l('lets_All_domains_check_result')
|
||||||
</span>
|
</span>
|
||||||
<span class="">
|
<span class="">
|
||||||
% param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck';
|
% param 'AllDomainsCheck' => $lets_data->{AllDomainsCheck} unless param 'AllDomainsCheck';
|
||||||
%= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
|
%= text_area 'AllDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
|
||||||
</span><br>
|
</span><br>
|
||||||
|
|
||||||
<span class="">
|
<span class="">
|
||||||
%my $back_text = l('lets_Back'); # Localized text
|
%my $back_text = l('lets_Back'); # Localized text
|
||||||
%my $actionBack = qq{
|
%my $actionBack = qq{
|
||||||
% <a href="letsencryptd">
|
% <a href="letsencryptd">
|
||||||
@@ -40,8 +40,8 @@
|
|||||||
% </a>
|
% </a>
|
||||||
%};
|
%};
|
||||||
<%= $c->render_to_string(inline => $actionBack) %>
|
<%= $c->render_to_string(inline => $actionBack) %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
%# Probably finally by a submit.
|
||||||
%end
|
%end
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,48 +2,67 @@
|
|||||||
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
<!-- reetp Move to JS file -->
|
||||||
<pre>
|
<!--
|
||||||
%= dumper $lets_data
|
<script>
|
||||||
</pre>
|
window.onload = function() {
|
||||||
% }
|
SelectInput();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
-->
|
||||||
|
|
||||||
% my $btn = l('lets_APPLY');
|
% if (config->{debug} == 1) {
|
||||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
<pre>
|
||||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
<%= dumper $lets_data %>
|
||||||
%= hidden_field 'trt' => $lets_data->{trt}
|
</pre>
|
||||||
%# Inputs etc in here.
|
% }
|
||||||
|
|
||||||
<h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1>
|
% my $btn = l('lets_APPLY');
|
||||||
|
|
||||||
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
|
<!-- reetp could change this to a form -->
|
||||||
|
|
||||||
<span class="">
|
<!-- <form action="/smanager/letsencryptu" method="POST"> -->
|
||||||
%=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="">
|
%# Inputs etc in here.
|
||||||
%my $back_text = l('lets_Back'); # Localized text
|
|
||||||
%my $actionBack = qq{
|
|
||||||
% <a href="letsencryptd">
|
|
||||||
% <input class="" type='submit' value='$back_text'>
|
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
<%= $c->render_to_string(inline => $actionBack) %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
<h1><%= l ('lets_Check_all_enabled_domains')%></h1>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l ('lets_Loop_through_checking_the_letsencrypt')%></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<!-- Domains being checked -->
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_Enabled_domains_check_result') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck';
|
||||||
|
%= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<!-- results box-->
|
||||||
|
|
||||||
|
% my $back_text = l('lets_Back'); # Localized text
|
||||||
|
%# param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
|
%#= hidden_field 'trt' => $lets_data->{trt}
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<a href='letsencryptd' class="btn btn-primary btn-sm btn-sm" role="button"><%= $back_text %></a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
</form>
|
||||||
|
-->
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
|
||||||
%end
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,58 +2,76 @@
|
|||||||
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
<!--
|
||||||
<pre>
|
<script>
|
||||||
%= dumper $lets_data
|
window.onload = function() {
|
||||||
</pre>
|
SelectInput();
|
||||||
% }
|
};
|
||||||
|
</script>
|
||||||
|
-->
|
||||||
|
|
||||||
% my $btn = l('lets_APPLY');
|
% if (config->{debug} == 1) {
|
||||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
<pre>
|
||||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
%= dumper $lets_data
|
||||||
%= hidden_field 'trt' => $lets_data->{trt}
|
</pre>
|
||||||
%# Inputs etc in here.
|
% }
|
||||||
|
|
||||||
<h1 class=""><%=l('lets_Check_just_one_domain')%></h1>
|
% my $btn = l('lets_APPLY');
|
||||||
|
|
||||||
<h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2>
|
<!-- <form action="/smanager/letsencrypt" method="POST"> -->
|
||||||
|
|
||||||
<p><span class="">
|
%# Inputs etc in here.
|
||||||
%=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="">
|
<h1><%=l('lets_Check_just_one_domain')%></h1>
|
||||||
%=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="">
|
<br>
|
||||||
%my $back_text = l('lets_Back'); # Localized text
|
|
||||||
%my $actionBack = qq{
|
<h2><%=l('lets_Loop_through_and_check_the')%></h2>
|
||||||
% <a href="letsencryptd">
|
|
||||||
% <input class="" type='submit' value='$back_text'>
|
<br>
|
||||||
% </a>
|
|
||||||
%};
|
|
||||||
<%= $c->render_to_string(inline => $actionBack) %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
<!-- Domain being checked -->
|
||||||
%end
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_Domains_name') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'OneDomainToCheck' => $lets_data->{OneDomainToCheck} unless param 'OneDomainToCheck';
|
||||||
|
%= text_field 'OneDomainToCheck', size => '50', class => "" , pattern=>'.*' , placeholder=>'OneDomainToCheck', Readonly=>'true'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<!-- results box-->
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_One_domain_check_result') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'OneDomainsCheck' => $lets_data->{OneDomainsCheck} unless param 'OneDomainsCheck';
|
||||||
|
%= text_area 'OneDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
% my $back_text = l('lets_Back'); # Localized text
|
||||||
|
%# param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
|
%#= hidden_field 'trt' => $lets_data->{trt}
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<a href='letsencryptd' class="btn btn-primary btn-sm btn-sm" role="button"><%= $back_text %></a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- </form> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,151 +2,207 @@
|
|||||||
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
<!-- reetp Move to JS file -->
|
||||||
<pre>
|
<!--
|
||||||
%= dumper $lets_data
|
<script>
|
||||||
</pre>
|
window.onload = function() {
|
||||||
% }
|
SelectInput();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
-->
|
||||||
|
|
||||||
% my $btn = l('lets_APPLY');
|
% if (config->{debug} == 1) {
|
||||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
<pre>
|
||||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
<%= dumper $lets_data %>
|
||||||
%= hidden_field 'trt' => $lets_data->{trt}
|
</pre>
|
||||||
%# Inputs etc in here.
|
% }
|
||||||
|
|
||||||
<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="">
|
<br>
|
||||||
%= l('lets_CHECK_ALL_DOMAINS')
|
|
||||||
</a>
|
<!-- reetp could change this to a form -->
|
||||||
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
|
|
||||||
|
<!-- <form action="/smanager/letsencryptu" method="POST"> -->
|
||||||
|
|
||||||
|
%# my $btn = l('lets_APPLY');
|
||||||
|
%# param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
|
%#= hidden_field 'trt' => $lets_data->{trt}
|
||||||
|
|
||||||
|
% my $linkbtn = l ('MODIFY');
|
||||||
|
|
||||||
|
%# Inputs etc in here.
|
||||||
|
%# reetp Needs some language translations?
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l('lets_CONFIG') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<a href='letsencryptd?trt=PARAMS' class="btn btn-outline-primary btn-sm" role="button"><%= $linkbtn %></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
%#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2'
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_CHECK_ALL_DOMAINS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<a href='letsencryptd?trt=CHECKALLDOMAINS' class="btn btn-outline-primary btn-sm" role="button"><%= $linkbtn %></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_CHECK_ALL_ENABLED_DOMAINS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="btn btn-outline-primary btn-sm" role="button"><%= $linkbtn %></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
|
||||||
|
|
||||||
|
|
||||||
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="">
|
<!-- </form> -->
|
||||||
%= l('lets_CHECK_ALL_ENABLED_DOMAINS')
|
|
||||||
</a>
|
|
||||||
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
<br><br>
|
||||||
|
|
||||||
|
<h2><%=l('lets_For_this_Server') %></h2>
|
||||||
|
|
||||||
<h2 class=""><%=l('lets_For_this_Server')%></h2>
|
<br>
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-1">
|
||||||
%=l('lets_Internal_IP')
|
<%= l ('lets_Internal_IP') %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
|
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
|
||||||
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
|
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
|
||||||
<br>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<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>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-1">
|
||||||
%=l('lets_Internet_IP')
|
<%= l ('lets_External_Interface_IP') %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
|
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
|
||||||
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
|
||||||
<br>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2 class=""><%=l('lets_Current_certificate_details')%></h2>
|
<br>
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-1">
|
||||||
%=l('lets_Issuer')
|
<%= l ('lets_Internet_IP') %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
|
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
|
||||||
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
|
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
||||||
<br>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br><br>
|
||||||
<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>
|
<h2><%=l('lets_Current_certificate_details') %></h2>
|
||||||
<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>
|
||||||
|
|
||||||
<br />
|
<div class="row g-3 align-items-center">
|
||||||
<table class="table table-bordered">
|
<div class="col-md-1">
|
||||||
<thead class="">
|
<%= l ('lets_Issuer') %>
|
||||||
<tr table-head-row>
|
</div>
|
||||||
<th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th>
|
<div class="col-auto">
|
||||||
<th class=""><%=l('lets_Brief_description')%></th>
|
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
|
||||||
<th class=""><%=l('lets_Content')%></th>
|
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
|
||||||
<th class=""><%=l('lets_LABEL_NAMESERVERS')%></th>
|
</div>
|
||||||
<th class=""><%=l('lets_LABEL_POINT')%></th>
|
</div>
|
||||||
<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>
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_Expiry') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry';
|
||||||
|
%= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_Not_Before') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore';
|
||||||
|
%= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<h2 class=""><%=l('lets_List_of_Domains_and_Hosts') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% $linkbtn = l 'lets_CHECK';
|
||||||
|
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr table-head-row>
|
||||||
|
<th><%= l ('lets_Domain_name_/_HOSTNAME') %></th>
|
||||||
|
<th><%= l ('lets_Brief_description') %></th>
|
||||||
|
<th><%= l ('lets_Content') %></th>
|
||||||
|
<th><%= l ('lets_LABEL_NAMESERVERS') %></th>
|
||||||
|
<th><%= l ('lets_LABEL_POINT') %></th>
|
||||||
|
<th><%= l ('lets_LABEL_LECERT') %></th>
|
||||||
|
<th><%= l ('lets_IS_IN_CERT') %></th>
|
||||||
|
<th><%= l ('lets_CHECK') %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
% my $control_data = $c->stash('DomainList');
|
||||||
|
% foreach my $row (@$control_data) {
|
||||||
|
% my $link = $c->render_to_string(inline=>$row->{'Table1-CHECK'});
|
||||||
|
% my $type = $c->render_to_string(inline=>$row->{'Table1-TYPE'});
|
||||||
|
<tr>
|
||||||
|
% if ($type eq "Domain\n"){
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'}) %></td>
|
||||||
|
% }
|
||||||
|
% if ($type eq "Host\n") {
|
||||||
|
<td><i class="bi bi-arrow-return-right"> </i><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'}) %></td>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'}) %></td>
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-Content'}) %></td>
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'}) %></td>
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'}) %></td>
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'}) %></td>
|
||||||
|
<td><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'}) %></td>
|
||||||
|
|
||||||
|
% if ($link ne "") {
|
||||||
|
<td><a href= "<%= $link %>" class="btn btn-outline-primary btn-sm" role="button" > <%= $linkbtn %></a></td>
|
||||||
|
% } else {
|
||||||
|
<td> </td>
|
||||||
|
% }
|
||||||
|
</tr>
|
||||||
|
% }
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
|
||||||
%end
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,129 +2,151 @@
|
|||||||
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.12.3 at 2024-12-01 15:22:43
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
<!-- reetp This needs fixing -->
|
||||||
<pre>
|
<!--
|
||||||
%= dumper $lets_data
|
<script>
|
||||||
</pre>
|
window.onload = function() {
|
||||||
% }
|
SelectInput();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
-->
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<%= dumper $lets_data %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
% my $btn = l('lets_APPLY');
|
<form action="/smanager/letsencryptu" method="POST">
|
||||||
%= 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>
|
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||||
|
%= hidden_field 'trt' => $lets_data->{trt}
|
||||||
|
%# Inputs etc in here.
|
||||||
|
|
||||||
<p class="">
|
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:') %></h2>
|
||||||
%=l('lets_CONFIG_LETSENCRYPT')
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<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>
|
<div>
|
||||||
<span class="">
|
<%= l ('lets_CONFIG_LETSENCRYPT') %>
|
||||||
%=l('lets_HOOKSCRIPT_STATUS')
|
</div>
|
||||||
</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>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-1">
|
||||||
%=l('lets_HOSTOVERRIDE_STATUS')
|
<%= l ('lets_SERVICE_STATUS') %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
|
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
|
||||||
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
|
%= select_field 'status' => @status_options, class => "form-select"
|
||||||
%= select_field 'hostOverride' => @hostOverride_options, class => ""
|
</div>
|
||||||
<br>
|
</div>
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<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>
|
|
||||||
<span class="">
|
|
||||||
% my @API_options = [['2' => '2']];
|
|
||||||
% param 'API' => $lets_data->{API} unless param 'API';
|
|
||||||
%= select_field 'API' => @API_options, class => ""
|
|
||||||
<br>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<div class="row g-3 align-items-center">
|
||||||
<span class="">
|
<div class="col-md-1">
|
||||||
%=l('lets_KEYSIZE_STATUS')
|
<%= l ('lets_HOOKSCRIPT_STATUS') %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
<div class="col-auto">
|
||||||
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
|
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
|
||||||
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
|
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
|
||||||
%= select_field 'keysize' => @keysize_options, class => ""
|
%= select_field 'hookScript' => @hookScript_options, class => "form-select"
|
||||||
<br>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<br>
|
||||||
<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>
|
|
||||||
|
|
||||||
<span class="">
|
<div class="row g-3 align-items-center">
|
||||||
%= submit_button l('lets_Save'), class => ""
|
<div class="col-md-1">
|
||||||
</span>
|
<%= l ('lets_HOSTOVERRIDE_STATUS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
|
||||||
|
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
|
||||||
|
%= select_field 'hostOverride' => @hostOverride_options, class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
<br>
|
||||||
%end
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_ACCEPT_TERMS_STATUS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my @ACCEPT_TERMS_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
|
||||||
|
% param 'ACCEPT_TERMS' => $lets_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS';
|
||||||
|
%= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_API_STATUS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my @API_options = [['2' => '2']];
|
||||||
|
% param 'API' => $lets_data->{API} unless param 'API';
|
||||||
|
%= select_field 'API' => @API_options, class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_KEYSIZE_STATUS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
|
||||||
|
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
|
||||||
|
%= select_field 'keysize' => @keysize_options, class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('lets_CONFIGUREMODE_STATUS') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% my @configure_options = [['ALL' => 'all'], ['Domains' => 'domains'], ['HOSTS' => 'hosts'], ['NONE' => 'none']];
|
||||||
|
% param 'configure' => $lets_data->{configure} unless param 'configure';
|
||||||
|
%= select_field 'configure' => @configure_options, class => "form-select"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="email_address" class="col-form-label"><%= l ('lets_EMAIL') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'email' => $lets_data->{email} unless param 'email';
|
||||||
|
<input type="email" name="email" id="email_address" class="form-control" aria-describedby="Email Address" value="<%= $lets_data->{email} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('lets_APPLY');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,76 +1,97 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $retref= $c->stash("ret");
|
% my $retref = $c->stash("ret");
|
||||||
% my %ret;
|
% my %ret = $retref ? %$retref : (ret => "");
|
||||||
% unless (length($retref)) {%ret = (ret=>"");}
|
% my @vars = split(/,/, $ret{vars} // '');
|
||||||
% else {%ret = %$retref;}
|
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||||
|
|
||||||
% my @vars = split(",",$ret{vars});
|
% if ($c->app->config->{debug}) {
|
||||||
% my $var1 = @vars[0];
|
<br>
|
||||||
% my $var2 = @vars[1];
|
<pre>
|
||||||
% my $var3 = @vars[2];
|
<%= dumper { ret_data => \%ret } %>
|
||||||
% my $var4 = @vars[3];
|
</pre>
|
||||||
% 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 />
|
|
||||||
% my $btn = l('ADD');
|
|
||||||
% my $network_db = esmith::NetworksDB->open();
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<p>
|
|
||||||
%= dumper $c->current_route
|
|
||||||
%= dumper $c->stash("ret")
|
|
||||||
</p>
|
|
||||||
% }
|
% }
|
||||||
|
|
||||||
%= form_for '/localnetworksb' => (method => 'POST') => begin
|
% if ($ret{ret} eq "") {
|
||||||
<h2>
|
<div>
|
||||||
%=l "ln_ADD_TITLE"
|
<%= l "ln_FIRSTPAGE_DESC" %>
|
||||||
</h2>
|
</div>
|
||||||
<p>
|
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||||
%= $c->render_to_string(inline => l('ln_ADD_DESC'));
|
<div>
|
||||||
</p>
|
<!-- <h2> Operation Status Report</h2> -->
|
||||||
<br>
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
<span class="">
|
</div>
|
||||||
%=l "NETWORK"
|
% } else {
|
||||||
</span>
|
<div class="text-danger">
|
||||||
<span class="">
|
<!-- <h2> Operation Status Report - Error</h2> -->
|
||||||
%=text_field 'networkAddress'
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
</span>
|
</div>
|
||||||
<br><br>
|
% }
|
||||||
<span class="">
|
|
||||||
%=l "ln_SUBNET_MASK"
|
<br>
|
||||||
</span>
|
|
||||||
<span class="">
|
% my $network_db = esmith::NetworksDB::UTF8->open() || die "Couldn't open NetworksDB db";
|
||||||
%=text_field 'networkMask'
|
|
||||||
</span>
|
% if (config->{debug} == 1) {
|
||||||
<br><br>
|
<div>
|
||||||
<span class="">
|
<%= dumper $c->current_route %>
|
||||||
%=l "ROUTER"
|
<%= dumper $c->stash("ret") %>
|
||||||
</span>
|
</div>
|
||||||
<span class="">
|
% }
|
||||||
%=text_field 'networkRouter'
|
|
||||||
</span>
|
<form action="/smanager/localnetworksb" method="POST">
|
||||||
<br><br>
|
<div>
|
||||||
<p>
|
<h2><%=l "ln_ADD_TITLE" %></h2>
|
||||||
<br>
|
</div>
|
||||||
%= submit_button "$btn", class => ""
|
<br>
|
||||||
</p>
|
<div>
|
||||||
%end
|
<%= $c->render_to_string(inline => l('ln_ADD_DESC')); %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputNetwork" class="col-form-label"><%= l "NETWORK" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="networkAddress" id="inputNetwork" class="form-control" aria-describedby="Network" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputNetworkMask" class="col-form-label"><%= l "ln_SUBNET_MASK" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="networkMask" id="inputNetworkMask" class="form-control" aria-describedby="Network Subnet Mask" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputNetworkRouter" class="col-form-label"><%= l "ROUTER" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="networkRouter" id="inputNetworkRouter" class="form-control" aria-describedby="Network Router" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
% my $btn = l('ADD');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -6,60 +6,80 @@
|
|||||||
% my $router = $ln_datas->{router};
|
% my $router = $ln_datas->{router};
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $c->stash("ret")
|
<%= dumper $c->stash("ret") %>
|
||||||
%= dumper %$ln_datas
|
<%= dumper %$ln_datas %>
|
||||||
%= dumper $deletehosts
|
<%= dumper $deletehosts %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
%= form_for '/localnetworkse' => (method => 'POST') => begin
|
<form action="/smanager/localnetworkse" method="POST">
|
||||||
<h2>
|
|
||||||
%=l "ln_REMOVE_TITLE"
|
<div>
|
||||||
</h2>
|
<h2><%= l "ln_REMOVE_TITLE" %></h2>
|
||||||
<p>
|
</div>
|
||||||
%=l "ln_REMOVE_DESC"
|
|
||||||
</p>
|
<div>
|
||||||
<br>
|
<%= l "ln_REMOVE_DESC" %>
|
||||||
<span class="">
|
</div>
|
||||||
%=l "NETWORK"
|
|
||||||
</span>
|
<br><br>
|
||||||
<span class="">
|
|
||||||
%=$localnetwork
|
<div class="row g-3 align-items-center">
|
||||||
</span>
|
<div class="col-md-1">
|
||||||
<br><br>
|
<label for="inputNetwork" class="col-form-label"><%= l "NETWORK" %></label>
|
||||||
<span class="">
|
</div>
|
||||||
%=l "ln_SUBNET_MASK"
|
<div class="col-auto">
|
||||||
</span>
|
<input disabled type="text" name="networkAddress" id="inputNetwork" class="form-control" aria-describedby="inputNetwork" value="<%= $localnetwork %>" >
|
||||||
<span class="">
|
</div>
|
||||||
%= $subnet
|
</div>
|
||||||
</span>
|
|
||||||
<br><br>
|
<br>
|
||||||
<span class="">
|
|
||||||
%=l "ROUTER"
|
<div class="row g-3 align-items-center">
|
||||||
</span>
|
<div class="col-md-1">
|
||||||
<span class="">
|
<label for="inputNetworkMask" class="col-form-label"><%= l "ln_SUBNET_MASK" %></label>
|
||||||
%= $router
|
</div>
|
||||||
</span>
|
<div class="col-auto">
|
||||||
<br><br>
|
<input disabled type="text" name="networkMask" id="inputNetworkMask" class="form-control" aria-describedby="inputNetworkMask" value="<%= $subnet %>" >
|
||||||
% if($deletehosts) {
|
</div>
|
||||||
<br>
|
</div>
|
||||||
%=$c->l("ln_REMOVE_HOSTS_DESC")
|
|
||||||
<br>
|
<br>
|
||||||
<span class="">
|
|
||||||
%= $c->l("ln_REMOVE_HOSTS_LABEL")
|
<div class="row g-3 align-items-center">
|
||||||
</span>
|
<div class="col-md-1">
|
||||||
<span class="">
|
<label for="inputNetworkRouter" class="col-form-label"><%= l "ROUTER" %></label>
|
||||||
%=check_box deletehost=>1, checked=>1
|
</div>
|
||||||
</span>
|
<div class="col-auto">
|
||||||
<br><br>
|
<input disabled type="text" name="networkRouter" id="inputNetworkRouter" class="form-control" aria-describedby="inputNetworkRouter" value="<%= $router %>">
|
||||||
%}
|
</div>
|
||||||
%= hidden_field localnetwork=>$localnetwork
|
</div>
|
||||||
<p>
|
|
||||||
<br>
|
<br>
|
||||||
%= submit_button "$btn", class => ""
|
|
||||||
</p>
|
% if ($deletehosts) {
|
||||||
%end
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= $c->l("ln_REMOVE_HOSTS_DESC") %>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="text-danger align-bottom">
|
||||||
|
<%= $c->l("ln_REMOVE_HOSTS_LABEL") %>  <input type="checkbox" name="deletehost">
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<%= hidden_field localnetwork=>$localnetwork %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,108 +1,96 @@
|
|||||||
<div>
|
<div>
|
||||||
% my $btn = l('ln_LOCALNETWORK_ADD');
|
|
||||||
%= form_for '/localnetworksa' => (method => 'POST') => begin
|
|
||||||
|
|
||||||
% my $retref= $c->stash("ret");
|
<form action="/smanager/localnetworksa" method="POST">
|
||||||
% my %ret;
|
|
||||||
% unless (length($retref)) {%ret = (ret=>"");}
|
|
||||||
% else {%ret = %$retref;}
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
|
||||||
<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];
|
|
||||||
|
|
||||||
|
|
||||||
%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>
|
|
||||||
|
|
||||||
% end
|
|
||||||
|
|
||||||
<br>
|
|
||||||
% my $numlocalnetworks = @$localnetworks;
|
|
||||||
% if ($numlocalnetworks == 0){
|
|
||||||
%=l 'ln_LOCAL_NETWORK_NONE'
|
|
||||||
% } else {
|
|
||||||
<br>
|
<br>
|
||||||
<table class="table table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="">
|
|
||||||
%=l 'NETWORK'
|
|
||||||
</th>
|
|
||||||
<th class="">
|
|
||||||
%=l 'ln_SUBNET_MASK'
|
|
||||||
</th>
|
|
||||||
|
|
||||||
<th class="">
|
% my $retref = $c->stash("ret");
|
||||||
%=l 'ln_NUMBER_OF_HOSTS'
|
% my %ret = $retref ? %$retref : (ret => "");
|
||||||
</th>
|
% my @vars = split(/,/, $ret{vars} // '');
|
||||||
|
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||||
|
|
||||||
<th class="">
|
% if ($c->app->config->{debug}) {
|
||||||
%=l 'ROUTER'
|
<br>
|
||||||
</th>
|
<pre>
|
||||||
|
<%= dumper { ret_data => \%ret } %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
<th class="">
|
% if ($ret{ret} eq "") {
|
||||||
%=l 'ACTION'
|
<%= l "ln_FIRSTPAGE_DESC" %>
|
||||||
</th>
|
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||||
</tr>
|
<h2> Operation Status Report</h2>
|
||||||
</thead>
|
<br>
|
||||||
<tbody>
|
<div>
|
||||||
% foreach my $localnetwork (@$localnetworks )
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
% {
|
</div>
|
||||||
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
|
% } else {
|
||||||
% my $removable = $localnetwork->prop('Removable') || "yes";
|
<h2> Operation Status Report - Error</h2>
|
||||||
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
|
<br>
|
||||||
% if ( $system eq "yes" ) { $removable = "no"; }
|
<div class="text-danger">
|
||||||
<tr>
|
<h2> Operation Status Report - Error</h2>
|
||||||
%= t td => (class => "") => $localnetwork->key
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
%= t td => (class => "") => $localnetwork->prop('Mask')
|
</div>
|
||||||
%= t td => (class => "") => $num_hosts
|
% }
|
||||||
%= t td => (class => "") => $localnetwork->prop('Router')
|
|
||||||
%my $actionRemove = ' ';
|
<br><br>
|
||||||
%if ($removable eq "yes") {
|
|
||||||
%my $remove_text = l('REMOVE'); # Localized text
|
% my $btn = l('ln_LOCALNETWORK_ADD');
|
||||||
%my $local_network_entry = $localnetwork->key;
|
|
||||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
<div class="row g-3 align-items-center">
|
||||||
%$actionRemove = qq{
|
<div class="col-md-2">
|
||||||
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
% <button type='button' class="" title='$remove_text' >
|
</div>
|
||||||
% $remove_text
|
</div>
|
||||||
% </button>
|
|
||||||
% </a>
|
<br>
|
||||||
%};
|
|
||||||
% }
|
% my $numlocalnetworks = @$localnetworks;
|
||||||
<td class=""><%= $c->render_to_string(inline => $actionRemove) %></td>
|
% if ($numlocalnetworks == 0) {
|
||||||
</tr>
|
<%= l 'ln_LOCAL_NETWORK_NONE' %>
|
||||||
% }
|
% } else {
|
||||||
</tbody>
|
<br>
|
||||||
</table>
|
<table class="table table-bordered">
|
||||||
%= hidden_field 'trt' => $ln_datas->{trt}
|
<thead>
|
||||||
%}
|
<tr>
|
||||||
|
<th><%= l 'NETWORK' %></th>
|
||||||
|
<th><%= l 'ln_SUBNET_MASK' %></th>
|
||||||
|
<th><%= l 'ln_NUMBER_OF_HOSTS' %></th>
|
||||||
|
<th><%= l 'ROUTER' %></th>
|
||||||
|
<th class="text-center"><%= 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 class="align-middle">
|
||||||
|
<td><%= $localnetwork->key %></td>
|
||||||
|
<td><%= $localnetwork->prop('Mask') %></td>
|
||||||
|
<td><%= $num_hosts %></td>
|
||||||
|
<td><%= $localnetwork->prop('Router') %></td>
|
||||||
|
% my $actionRemove = ' ';
|
||||||
|
% 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 btn-sm" title='$remove_text' >
|
||||||
|
% $remove_text
|
||||||
|
% </button>
|
||||||
|
% </a>
|
||||||
|
%};
|
||||||
|
% }
|
||||||
|
<td class="text-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||||
|
</tr>
|
||||||
|
% }
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<%= hidden_field 'trt' => $ln_datas->{trt} %>
|
||||||
|
% }
|
||||||
|
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
<!-- Not used -->
|
||||||
<div class="login-page bg-body-secondary app-loaded">
|
<div class="login-page bg-body-secondary app-loaded">
|
||||||
<!-- /.login-logo -->
|
<!-- /.login-logo -->
|
||||||
<br>
|
<br>
|
||||||
@@ -38,7 +40,7 @@
|
|||||||
<!-- /.col -->
|
<!-- /.col -->
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<div class="d-grid gap-2">
|
<div class="d-grid gap-2">
|
||||||
<button type="submit" class="btn btn-primary">Sign In</button>
|
<button type="submit" class="btn btn-primary btn-sm">Sign In</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /.col -->
|
<!-- /.col -->
|
||||||
|
@@ -0,0 +1,97 @@
|
|||||||
|
%# layout 'AdminLTE', title => "Sme server 2 - emailaccess";
|
||||||
|
|
||||||
|
%# content_for 'module' => begin
|
||||||
|
|
||||||
|
<!-- <div class="card-body"> -->
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<%= dumper $c->current_route %>
|
||||||
|
<%= dumper $mai_data %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( stash 'error' ) {
|
||||||
|
<br>
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<!-- <h1><%#= $title%></h1> -->
|
||||||
|
<h2><%= $c->l('mai_DESC_STATE_ACCESS_BUTTON') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettingsu" method="POST">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_POP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%=l 'mai_LABEL_POP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
|
||||||
|
<%= select_field 'POPAccess' => $c->get_pop_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%=l 'mai_DESC_IMAP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%=l 'mai_LABEL_IMAP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
|
||||||
|
<%= select_field 'IMAPAccess' => $c->get_imap_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_WEBMAIL' %>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%=l 'mai_LABEL_WEBMAIL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
|
||||||
|
<%= select_field 'WebMail' => $c->get_webmail_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('SAVE');
|
||||||
|
<%= hidden_field 'trt' => 'ACC' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#end
|
@@ -0,0 +1,153 @@
|
|||||||
|
%# layout 'AdminLTE', title => "Sme server 2 - emaildeliver";
|
||||||
|
|
||||||
|
%# content_for 'module' => begin
|
||||||
|
|
||||||
|
<!-- <div class="card-body"> -->
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<%= dumper $c->current_route %>
|
||||||
|
<%= dumper $mai_data %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
|
||||||
|
% if ( stash 'error' ) {
|
||||||
|
<br>
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<!-- <h1><%#= $title%></h1> -->
|
||||||
|
<h2><%= $c->l('mai_DESC_STATE_DELIVERY_BUTTON') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettingsu" method="POST">
|
||||||
|
|
||||||
|
<h2><%= l 'mai_TITLE_UNKNOWN' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_UNKNOWN' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_UNKNOWN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'EmailUnknownUser' => $mai_data->{emailunknownuser} unless param 'EmailUnknownUser';
|
||||||
|
<%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<!--<hr class="" />-->
|
||||||
|
<h2><%= l 'mai_TITLE_DELEGATE' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_DELEGATE' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'DelegateMailServer' => $mai_data->{delegatemailserver} unless param 'DelegateMailServer';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputDelegateMailServer" class="col-form-label"><%= l 'mai_LABEL_DELEGATE' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="DelegateMailServer" id="inputDelegateMailServer" class="form-control" aria-describedby="DelegateMailServer" value="<%= $mai_data->{delegatemailserver} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<!--<hr class="" />-->
|
||||||
|
<h2><%= l 'mai_TITLE_SMARTHOST' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_SMARTHOST' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SMTPSmartHost' => $mai_data->{smtpsmarthost} unless param 'SMTPSmartHost';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputSMTPSmartHost" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="SMTPSmartHost" id="inputSMTPSmartHost" class="form-control" aria-describedby="SMTPSmartHost" value="<%= $mai_data->{smtpsmarthost} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SMTPAUTHPROXY_status' => $mai_data->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_STATUS' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'SMTPAUTHPROXY_status' => [[(l 'DISABLED') => 'disabled'], [(l 'ENABLED') => 'enabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SMTPAUTHPROXY_Userid' => $mai_data->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputSMTPAuthproxy" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="SMTPAUTHPROXY_Userid" id="inputSMTPAuthproxy" class="form-control" aria-describedby="SMTPAuthproxy" value="<%= $mai_data->{smtpauthproxyuserid} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SMTPAUTHPROXY_Passwd' => $mai_data->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="password" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="password" name="SMTPAUTHPROXY_Passwd" id="password" class="form-control" aria-describedby="SMTPAuthProxyPassword" value="<%= $mai_data->{smtpauthproxypassword} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('SAVE');
|
||||||
|
<%= hidden_field 'trt' => 'DEL' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#end
|
@@ -0,0 +1,177 @@
|
|||||||
|
%# layout 'AdminLTE', title => "Sme server 2 - emailfilter";
|
||||||
|
|
||||||
|
%# content_for 'module' => begin
|
||||||
|
|
||||||
|
<!-- <div class="card-body"> -->
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<%= dumper $c->current_route %>
|
||||||
|
<%= dumper $mai_data %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( stash 'error' ) {
|
||||||
|
<br>
|
||||||
|
<div class="text-danger">
|
||||||
|
<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<!-- <h1><%#= $title%></h1> -->
|
||||||
|
<h2><%= $c->l('mai_DESC_STATE_FILTERING_BUTTON') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettingsu" method="POST">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_VIRUS_SCAN' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_VIRUS_SCAN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'VirusStatus' => $mai_data->{virusstatus} unless param 'VirusStatus';
|
||||||
|
<%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_SPAM_SCAN' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SPAM_SCAN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'Spamstatus' => $mai_data->{spamstatus} unless param 'Spamstatus';
|
||||||
|
<%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SPAM_SENSITIVITY' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SpamSensitivity' => $mai_data->{spamsensitivity} unless param 'SpamSensitivity';
|
||||||
|
<%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SPAM_TAGLEVEL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SpamTagLevel' => $mai_data->{spamtaglevel} unless param 'SpamTagLevel';
|
||||||
|
<%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SPAM_REJECTLEVEL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SpamRejectLevel' => $mai_data->{spamrejectlevel} unless param 'SpamRejectLevel';
|
||||||
|
<%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SORTSPAM' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SpamSortSpam' => $mai_data->{spamsortspam} unless param 'SpamSortSpam';
|
||||||
|
<%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_SPAM_SUBJECT' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_SPAM_SUBJECTTAG' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'SpamSubjectTag' => $mai_data->{spamsubjecttag} unless param 'SpamSubjectTag';
|
||||||
|
<%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SpamSubject' => $mai_data->{spamsubject} unless param 'SpamSubject';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputSpamSubjectTag" class="col-form-label"><%= l 'mai_LABEL_SPAM_SUBJECT' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<!-- text_field 'Soft' -->
|
||||||
|
<input type="text" name="SpamSubject" id="inputSpamSubjectTag" class="form-control" aria-describedby="SpamSubjectTag" value="<%= $mai_data->{spamsubject} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_BLOCK_EXECUTABLE_CONTENT' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l 'mai_LABEL_CONTENT_TO_BLOCK' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'BlockExecutableContent' => $c->get_patterns_current_opt() unless param 'BlockExecutableContent';
|
||||||
|
<%= select_field 'BlockExecutableContent' => $c->get_patterns_opt(), class => "form-select", multiple => "1" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('SAVE');
|
||||||
|
<%= hidden_field 'trt' => 'FIL' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#end
|
@@ -0,0 +1,206 @@
|
|||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<%= dumper $mai_data %>
|
||||||
|
<br>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<h2><%= $c->l('mai_DESC_STATE_ACCESS_BUTTON') %></h2>
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettings" method="POST">
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_POP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_pop3_access( TRUE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_IMAP_ACCESS_CONTROL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_imap_access( TRUE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_WEBMAIL' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_webmail_status( TRUE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('mai_DESC_STATE_ACCESS_BUTTON');
|
||||||
|
<%= hidden_field 'trt' => 'ACC' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<!--<hr class="" />-->
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettings" method="POST">
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_VIRUS_SCAN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_virus_status(TRUE) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_SPAM_SCAN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_spam_status(TRUE) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_patterns_status(TRUE) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% $btn = l('mai_DESC_STATE_FILTERING_BUTTON');
|
||||||
|
<%= hidden_field 'trt' => 'FIL' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<!--<hr class="" />-->
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettings" method="POST">
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_MODE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $mai_data->{fetchmailmethod} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
% my $smtp_mesg;
|
||||||
|
|
||||||
|
% $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_smtp_auth( TRUE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
% $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_smtp_ssl_auth( TRUE, 's', FALSE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
% $smtp_mesg=l 'Submission port %u status:';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_current_smtp_ssl_auth( TRUE,'u', FALSE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% $btn = l('mai_DESC_STATE_RECEPTION_BUTTON');
|
||||||
|
<%= hidden_field 'trt' => 'REC' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<!--<hr class="" />-->
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettings" method="POST">
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_UNKNOWN' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_emailunknownuser_status( TRUE ) %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_DELEGATE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_value('DelegateMailServer') %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_SMARTHOST' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $c->get_value('SMTPSmartHost') %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
% $btn = l('mai_DESC_STATE_DELIVERY_BUTTON');
|
||||||
|
<%= hidden_field 'trt' => 'DEL' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</form>
|
@@ -0,0 +1,272 @@
|
|||||||
|
%# layout 'AdminLTE', title => "Sme server 2 - emailreceive";
|
||||||
|
|
||||||
|
%# content_for 'module' => begin
|
||||||
|
|
||||||
|
%# use constant FALSE => 0;
|
||||||
|
%# use constant TRUE => 1;
|
||||||
|
|
||||||
|
<!-- <div class="card-body"> -->
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
<<%= dumper $c->current_route %>
|
||||||
|
<<%= dumper $mai_data %>
|
||||||
|
<<%= dumper $c->param('SMTPAuth') %>
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
% if ( stash 'error' ) {
|
||||||
|
<br>
|
||||||
|
<div class="text-danger">
|
||||||
|
<<%= $c->render_to_string(inline => stash 'error') %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<!--<h1><%#= $title %></h1> -->
|
||||||
|
|
||||||
|
<h2><%= $c->l('mai_DESC_STATE_RECEPTION_BUTTON') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<form action="/smanager/emailsettingsu" method="POST">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_MODE' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_MODE' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'FetchmailMethod' => $mai_data->{fetchmailmethod} unless param 'FetchmailMethod';
|
||||||
|
<%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class =>"form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<b><i>Note - this first line was disabled?</b></i>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<%= l 'mai_DESC_SMTP_AUTH_CONTROL' %>
|
||||||
|
<br>
|
||||||
|
<b><i>/end</b></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l "SMTP port (25) main purpose is to receive emails from another server, STARTTLS is always offered, but auth if offered is only if STARTTLS is also used by client." %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send." %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l "SMTP Submission port (587) will require STARTTLS, then authenticate to send." %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
|
||||||
|
% param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $smtp_mesg=l('SMTPS SSL/TLS auth: port %u status:');
|
||||||
|
% param 'sSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE) unless param 'sSMTPAuth';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('sqpsmtpd','TCPPort',465)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'sSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $smtp_mesg=l('Submission port %u status:');
|
||||||
|
% param 'uSMTPAuth' => $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE) unless param 'uSMTPAuth';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= sprintf($smtp_mesg,$c->get_db_prop('uqpsmtpd','TCPPort',587)); %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<!--
|
||||||
|
<pre>
|
||||||
|
<%= dumper $c->get_smtp_ssl_auth_opt() %>
|
||||||
|
<%= dumper $c->get_current_smtp_ssl_auth(FALSE,'s', TRUE) %>
|
||||||
|
<%= dumper $c->get_current_smtp_ssl_auth(FALSE,'u', TRUE) %>
|
||||||
|
<%= dumper $c->get_db_prop("uqpsmtpd","access") %>
|
||||||
|
<%= param 'uSMTPAuth' %>
|
||||||
|
</pre>
|
||||||
|
-->
|
||||||
|
<%= select_field 'uSMTPAuth' => $c->get_smtp_ssl_auth_opt(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l 'mai_TITLE_SECONDARY' %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_SECONDARY' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SecondaryMailServer' => $mai_data->{secondarymailserver} unless param 'SecondaryMailServer';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputSecondaryMailServer" class="col-form-label"><%= l 'mai_LABEL_SECONDARY' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="SecondaryMailServer" id="inputSecondaryMailServer" class="form-control" aria-describedby="SecondaryMailServer" value="<%= $mai_data->{secondarymailserver} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<%= l 'mai_DESC_FETCH_PERIOD' %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
% param 'FreqOffice' => $mai_data->{freqoffice} unless param 'FreqOffice';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_FETCH_PERIOD' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'FreqOffice' => $c->fetchmail_freq(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'FreqOutside' => $mai_data->{freqoutside} unless param 'FreqOutside';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_FETCH_PERIOD_NIGHTS' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'FreqOutside' => $c->fetchmail_freq(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'FreqWeekend' => $mai_data->{freqweekend} unless param 'FreqWeekend';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_FETCH_PERIOD_WEEKENDS' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'FreqWeekend' => $c->fetchmail_freq(), class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SecondaryMailAccount' => $mai_data->{secondarymailaccount} unless param 'SecondaryMailAccount';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputSecondaryMailAccount" class="col-form-label"><%= l 'mai_LABEL_POP_ACCOUNT' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="SecondaryMailAccount" id="inputSecondaryMailAccount" class="form-control" aria-describedby="SecondaryMailAccount" value="<%= $mai_data->{secondarymailaccount} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SecondaryMailPassword' => $mai_data->{secondarymailpassword} unless param 'SecondaryMailPassword';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="password" class="col-form-label"><%= l 'mai_LABEL_POP_PASS' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="password" name="SecondaryMailPassword" id="password" class="form-control" aria-describedby="SecondaryMailPassword" value="<%= $mai_data->{secondarymailpassword} %>">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SpecifyHeader' => $mai_data->{specifyheader} unless param 'SpecifyHeader';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<%= l 'mai_LABEL_SORT_METHOD' %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= select_field 'SpecifyHeader' => [[(l 'mai_DEFAULT') => 'off'], [(l 'mai_SPECIFY_BELOW') => 'on']], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'SecondaryMailEnvelope' => $mai_data->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="inputSecondaryMailEnvelope" class="col-form-label"><%= l 'mai_LABEL_SORT_HEADER' %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="SecondaryMailEnvelope" id="inputSecondaryEnvelope" class="form-control" aria-describedby="SecondaryMailEnvelope" value="<%= $mai_data->{secondarymailenvelope} %>">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('SAVE');
|
||||||
|
% param 'trt' => $mai_data->{trt} unless param 'trt';
|
||||||
|
<%= hidden_field 'trt' => 'REC' %>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%#end
|
||||||
|
|
@@ -22,20 +22,22 @@
|
|||||||
% end
|
% end
|
||||||
|
|
||||||
% content_for 'end' => begin
|
% content_for 'end' => begin
|
||||||
<div id="" class="">
|
<div>
|
||||||
content_end
|
content_end
|
||||||
</div>
|
</div>
|
||||||
% end
|
% end
|
||||||
|
|
||||||
<div id="">
|
<div>
|
||||||
<p> < %= $title % ></p><br>
|
<p> < %= $title % ></p><br>
|
||||||
|
|
||||||
<%= $modul %><br>
|
<%= $modul %><br>
|
||||||
Et eu humo modo paratus quadrum turpis validus. Abico appellatio augue qui refero valetudo vereor. Augue diam eu genitus ille letalis nobis typicus veniam.
|
Et eu humo modo paratus quadrum turpis validus. Abico appellatio augue qui refero valetudo vereor. Augue diam eu genitus ille letalis nobis typicus veniam.
|
||||||
|
|
||||||
Dignissim dolus loquor lucidus probo proprius tation torqueo. Abluo luptatum quidem. Acsi aliquip eu ex iaceo natu populus quae scisco si.
|
Dignissim dolus loquor lucidus probo proprius tation torqueo. Abluo luptatum quidem. Acsi aliquip eu ex iaceo natu populus quae scisco si.
|
||||||
|
|
||||||
Aliquam autem blandit decet in jus loquor quidne saluto te. Eu meus voco wisi. Abico defui euismod huic jumentum lobortis mos vulpes. Causa eros feugiat hendrerit illum luctus nimis quidem valetudo. Elit ex obruo tation usitas vero. Abigo dolus hendrerit huic iriure jumentum letalis lobortis melior nulla. Blandit causa immitto iriure metuo nutus pagus ut voco.
|
Aliquam autem blandit decet in jus loquor quidne saluto te. Eu meus voco wisi. Abico defui euismod huic jumentum lobortis mos vulpes. Causa eros feugiat hendrerit illum luctus nimis quidem valetudo. Elit ex obruo tation usitas vero. Abigo dolus hendrerit huic iriure jumentum letalis lobortis melior nulla. Blandit causa immitto iriure metuo nutus pagus ut voco.
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
%= link_to Welcome => '/'
|
%= link_to Welcome => '/'
|
||||||
</p>
|
</p>
|
||||||
|
@@ -2,162 +2,231 @@
|
|||||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
|
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
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.
|
|
||||||
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<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_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>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
%= dumper $nut_data
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
|
||||||
|
<form action="/smanager/nutupsu" method="POST">
|
||||||
|
|
||||||
|
%# Inputs etc in here.
|
||||||
|
|
||||||
|
<!-- reetp - autocomplete="off" ? -->
|
||||||
|
|
||||||
|
<h2><%=l('nut_Manage_Nutups-config_settings:')%></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('nut_Nut_status') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
%# 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 => "form-select", id => 'status_select' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('nut_Nut_mode') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% 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 => "input form-select", id => "Nutmode_select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="masterups">
|
||||||
|
<div class="secondaryups">
|
||||||
|
|
||||||
|
<h2><%=l('nut_if_Net_Server')%></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputMasterUPSName" class="col-form-label"><%= l ('nut_MasterUPS_UPSNAME@IP') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name';
|
||||||
|
<%= 'ups@'. $nut_data->{'localip'} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l ('nut_SlaveUPS_User') %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= 'upssecondary' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('nut_SlaveUPS_Password')
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%= $nut_data->{'SlaveUPS_Pass'}%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h2><%= l ('nut_UPS_Device') %></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="UPS_Model_select" class="col-form-label"><%= l ('nut_UPS_Model') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% 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 => "form-select", id => 'UPS_Model_select' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputUPSDevice" class="col-form-label"><%= l ('nut_UPS_Device') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device';
|
||||||
|
<input type="text" name="UPS_Device" pattern=".*" size="50" id="inputUPSDevice" class="form-control" aria-describedby="UPS Device" placeholder="auto (for usb)" value="<%= $nut_data->{UPS_Device} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="slaveups">
|
||||||
|
|
||||||
|
<h2><%=l('nut_if_Net_Client')%></h2>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputClientUPSDevice" class="col-form-label"><%= l ('nut_SlaveUPS_UPSNAME@IP') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'ClientUPS_Name' => $nut_data->{ClientUPS_Name} unless param 'ClientUPS_Name';
|
||||||
|
<input type="text" name="ClientUPS_Name" pattern=".*" size="50" id="inputClientUPSDevice" class="form-control" aria-describedby="Client UPS Name" placeholder="upsname@IP[:port]" value="<%= $nut_data->{ClientUPS_Name} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="ClientUPSUsername" class="col-form-label"><%= l ('nut_ClientUPS_Username') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'ClientUPS_User' => $nut_data->{ClientUPS_User} unless param 'ClientUPS_User';
|
||||||
|
<input type="text" name="ClientUPS_User" id="ClientUPSUsername" class="form-control" aria-describedby="Client UPS Username" placeholder="Client username" value="<%= $nut_data->{ClientUPS_User} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="password" class="col-form-label"><%= l ('nut_ClientUPS_Password') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'ClientUPS_Pass' => $nut_data->{ClientUPS_Pass} unless param 'ClientUPS_Pass';
|
||||||
|
<input type="password" name="ClientUPS_Pass" id="password" class="form-control" aria-describedby="Client UPS Password" placeholder="Client password" value="<%= $nut_data->{ClientUPS_Pass} %>" >
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<span id="togglePassword" class="bi bi-eye"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="generics">
|
||||||
|
|
||||||
|
<h2><%=l('nut_if_genericups')%></h2>
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputUPSGenericType" class="col-form-label"><%= l ('nut_UPS_Generic_Type') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'UPS_gen_Type' => $nut_data->{UPS_gen_Type} unless param 'UPS_gen_Type';
|
||||||
|
<input type="text" name="UPS_gen_Type" pattern=".*" size="50" id="inputUPSGenericType" class="form-control" aria-describedby="UPS Generic Type" placeholder="UPS_Gen_Type" value="<%= $nut_data->{UPS_gen_Type} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputUPSManufacturer" class="col-form-label"><%= l ('nut_UPS_Generic_Manufacturer') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'UPS_gen_Mfr' => $nut_data->{UPS_gen_Mfr} unless param 'UPS_gen_Mfr';
|
||||||
|
<input type="text" name="UPS_gen_Mfr" pattern=".*" size="50" id="inputUPSManufacturer" class="form-control" aria-describedby="UPS Generic Manufacturer" placeholder="UPS_sen_Mfr" value="<%= $nut_data->{UPS_gen_Mfr} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputUPSModel" class="col-form-label"><%= l ('nut_UPS_Generic_Model') %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
% param 'UPS_gen_Model' => $nut_data->{UPS_gen_Model} unless param 'UPS_gen_Model';
|
||||||
|
<input type="text" name="UPS_gen_Model" pattern=".*" size="50" id="inputUPSModel" class="form-control" aria-describedby="UPS Generic Model" placeholder="UPS_gen_Model" value="<%= $nut_data->{UPS_gen_Model} %>" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% param 'trt' => $nut_data->{trt} unless param 'trt';
|
||||||
|
<%= hidden_field 'trt' => $nut_data->{trt} %>
|
||||||
|
|
||||||
|
% my $btn = l ('nut_Save');
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
|
||||||
%end
|
|
||||||
</div>
|
</div>
|
@@ -2,55 +2,59 @@
|
|||||||
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
|
%# Generated by SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-01-20 16:21:33
|
||||||
%#
|
%#
|
||||||
<div>
|
<div>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
<!--
|
||||||
% if (config->{debug} == 1) {
|
<script>
|
||||||
<pre>
|
window.onload = function() {
|
||||||
%= dumper $nut_data
|
SelectInput();
|
||||||
</pre>
|
};
|
||||||
% }
|
</script>
|
||||||
|
-->
|
||||||
|
|
||||||
% my $btn = l('nut_APPLY');
|
% if (config->{debug} == 1) {
|
||||||
%= form_for "nutupsu" => (method => 'POST') => begin
|
<pre>
|
||||||
% param 'trt' => $nut_data->{trt} unless param 'trt';
|
<%= dumper $nut_data %>
|
||||||
%= hidden_field 'trt' => $nut_data->{trt}
|
</pre>
|
||||||
%# Inputs etc in here.
|
% }
|
||||||
|
|
||||||
<div class="">
|
% my $btn = l('nut_APPLY');
|
||||||
|
|
||||||
|
<form action="/smanager/nutupsu" method="POST">
|
||||||
|
% param 'trt' => $nut_data->{trt} unless param 'trt';
|
||||||
|
<%= hidden_field 'trt' => $nut_data->{trt} %>
|
||||||
|
|
||||||
<a href='nutupsd?trt=CONFIG' class="">
|
%# Inputs etc in here.
|
||||||
%= l('nut_Configure_NutUPS')
|
|
||||||
</a>
|
|
||||||
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href='nutupsd?trt=CONFIG' class = "btn btn-sm btn-primary">
|
||||||
|
<%= l ('nut_Configure_NutUPS') %>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l ('nut_Status_of_the_controlled_UPS')%></h2>
|
||||||
|
|
||||||
<h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2>
|
<div >
|
||||||
|
<%= l ('nut_Descriptive_paragraph') %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p class="">
|
<br>
|
||||||
%=l('nut_Descriptive_paragraph')
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<span class="">
|
<span class="">
|
||||||
%=l('nut_Status_(from_upsc)')
|
%=l('nut_Status_(from_upsc)')
|
||||||
</span>
|
</span>
|
||||||
<span class="">
|
<span class="">
|
||||||
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
|
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
|
||||||
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
|
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
|
||||||
</span>
|
</span>
|
||||||
<br>
|
<br>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
%= include 'partials/_nut_UPS_STATUS'
|
<%= include 'partials/_nut_UPS_STATUS' %>
|
||||||
|
|
||||||
|
%# Probably finally by a submit.
|
||||||
|
</form>
|
||||||
|
|
||||||
%# Probably finally by a submit.
|
|
||||||
%end
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,45 +1,105 @@
|
|||||||
<h1>UPS Status</h1>
|
<h2>UPS Status</h2>
|
||||||
%= stylesheet '/css/nut_ups-status-page.css'
|
|
||||||
<div class="container-md">
|
<div class="container-md">
|
||||||
<div>
|
<div>
|
||||||
<h2>Device Information</h2>
|
<h2>Device Information</h2>
|
||||||
<table class="table table-bordered">
|
<table class="table table-bordered nutTable">
|
||||||
<tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr>
|
<tr>
|
||||||
<tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr>
|
<td>Manufacturer:</td>
|
||||||
<tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
|
<td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td>
|
||||||
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
|
</tr>
|
||||||
</table>
|
<tr>
|
||||||
</div>
|
<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>
|
<br>
|
||||||
<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>
|
<div>
|
||||||
<h2>Input Power</h2>
|
<h2>Battery Status</h2>
|
||||||
<table class="table table-bordered">
|
<table class="table table-bordered nutTable">
|
||||||
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr>
|
<tr>
|
||||||
<tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr>
|
<td>Charge:</td>
|
||||||
<tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr>
|
<td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td>
|
||||||
<tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr>
|
</tr>
|
||||||
<tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
|
<tr>
|
||||||
</table>
|
<td>Runtime:</td>
|
||||||
</div>
|
<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>
|
<br>
|
||||||
<h2>UPS Status</h2>
|
|
||||||
<table class="table table-bordered">
|
<div>
|
||||||
<tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr>
|
<h2>Input Power</h2>
|
||||||
<tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr>
|
<table class="table table-bordered nutTable">
|
||||||
<tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr>
|
<tr>
|
||||||
<tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr>
|
<td>Voltage:</td>
|
||||||
<tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
|
<td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td>
|
||||||
</table>
|
</tr>
|
||||||
</div>
|
<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>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>UPS Status</h2>
|
||||||
|
<table class="table table-bordered nutTable">
|
||||||
|
<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>
|
</div>
|
@@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
<!-- card footer -->
|
<!-- card footer -->
|
||||||
<div class="card-footer">Footer</div>
|
<div class="card-footer">Card Footer</div>
|
||||||
<!-- /.card-footer-->
|
<!-- /.card-footer-->
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title">Card Title <%= $title%></h3>
|
<h3 class="card-title">Card Title - <%= $title%></h3>
|
||||||
|
|
||||||
%= include 'partials/_panel_card_tools'
|
%= include 'partials/_panel_card_tools'
|
||||||
|
|
||||||
</div>
|
</div>
|
@@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
|
<!--
|
||||||
<div class="card-tools">
|
<div class="card-tools">
|
||||||
|
|
||||||
<button type="button" class="btn btn-tool" data-lte-toggle="card-collapse"
|
<button type="button" class="btn btn-tool" data-lte-toggle="card-collapse"
|
||||||
title="Collapse">
|
title="Collapse">
|
||||||
<i data-lte-icon="expand" class="bi bi-plus-lg"></i>
|
<i data-lte-icon="expand" class="bi bi-plus-lg"></i>
|
||||||
@@ -10,3 +12,4 @@
|
|||||||
<i class="bi bi-x-lg"></i>
|
<i class="bi bi-x-lg"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
|
@@ -1,95 +1,122 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
% my $retref= $c->stash("ret");
|
% my $retref = $c->stash("ret");
|
||||||
% my %ret;
|
% my %ret = $retref ? %$retref : (ret => "");
|
||||||
% unless (length($retref)) {%ret = (ret=>"");}
|
% my @vars = split(/,/, $ret{vars} // '');
|
||||||
% else {%ret = %$retref;}
|
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||||
|
|
||||||
% my @vars = split(",",$ret{vars});
|
<br>
|
||||||
% 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 />
|
|
||||||
% my $btn = l('ADD');
|
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
<p>
|
<pre>
|
||||||
%= dumper $c->current_route
|
<%= dumper $c->current_route %>
|
||||||
%= dumper $c->stash("ret")
|
<%= dumper $c->stash("ret") %>
|
||||||
</p>
|
</pre>
|
||||||
% }
|
% }
|
||||||
|
|
||||||
%= form_for '/portforwardingb' => (method => 'POST') => begin
|
% if ($ret{'ret'} eq "") {
|
||||||
<h2>
|
<div>
|
||||||
%=l "pf_CREATE_RULE"
|
<%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION')); %>
|
||||||
</h2>
|
</div>
|
||||||
<p>
|
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||||
%=l "pf_SUMMARY_ADD_DESC"
|
<div>
|
||||||
</p><br>
|
<!--<h2> Operation Status Report</h2>-->
|
||||||
<span class="">
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
%=l "pf_LABEL_PROTOCOL"
|
</div>
|
||||||
</span>
|
% } else {
|
||||||
<span class="">
|
<div class="text-danger">
|
||||||
%=select_field 'proto'=>["TCP","UDP"]
|
<!--<h2> Operation Status Report - Error</h2>-->
|
||||||
</span><br><br>
|
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||||
<span class="">
|
</div>
|
||||||
%=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
|
<br>
|
||||||
|
|
||||||
|
<h2><%= l "pf_CREATE_RULE" %></h2>
|
||||||
|
|
||||||
|
<form action="/smanager/portforwardingb" method="POST">
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<%= l "pf_SUMMARY_ADD_DESC" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<%= l "pf_LABEL_PROTOCOL" %>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<%=select_field 'proto'=>["TCP","UDP"], class => "form-select" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputSourcePort" class="col-form-label"><%= l "pf_LABEL_SOURCE_PORT" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="sport" id="inputSourcePort" class="form-control" aria-describedby="Source Port">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputDestinationPort" class="col-form-label"><%= l "pf_LABEL_DESTINATION_PORT" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="port" id="inputDestinationPort" class="form-control" aria-describedby="Destination Port">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputDestinationHost" class="col-form-label"><%= l "pf_LABEL_DESTINATION_HOST" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="dhost" id="inputDestinationHost" class="form-control" aria-describedby="Destination Host">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputAllowHosts" class="col-form-label"><%= l "pf_ALLOW_HOSTS" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="allow" id="inputAllowHosts" class="form-control" aria-describedby="Allow Hosts">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label for="inputRuleComment" class="col-form-label"><%= l "pf_RULE_COMMENT" %></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" name="cmmnt" id="inputRuleComment" class="form-control" aria-describedby="Comment">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
% my $btn = l('ADD');
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user