Compare commits
46 Commits
11_0_0-23_
...
11_0_0-46_
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 |
@@ -1,3 +1,6 @@
|
||||
html {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#busy-indicator {
|
||||
display: none;
|
||||
@@ -50,8 +53,8 @@
|
||||
}
|
||||
|
||||
.login-page {
|
||||
min-height: 10vh;
|
||||
vertical-align: top !important;
|
||||
min-height: 60vh !important ;
|
||||
vertical-align: top !important ;
|
||||
}
|
||||
|
||||
.nav-icon {
|
||||
@@ -101,10 +104,17 @@
|
||||
border-left-width: 0px;
|
||||
}
|
||||
|
||||
.user-valign-center {
|
||||
/* .user-valign-center {
|
||||
text-align: center;
|
||||
}
|
||||
-- Use align-middle --
|
||||
} */
|
||||
|
||||
.user-table-max-wdith {
|
||||
|
||||
.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>
|
@@ -1,298 +0,0 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const flagContainer = document.getElementById('flag-container');
|
||||
// Mapping of language codes to country codes and their names
|
||||
const languageToCountryMap = {
|
||||
"af": { code: "NA", name: "Namibia" },
|
||||
"agq": { code: "CM", name: "Cameroon" },
|
||||
"ak": { code: "GH", name: "Ghana" },
|
||||
"am": { code: "ET", name: "Ethiopia" },
|
||||
"ar": { code: "SA", name: "Saudi Arabia" },
|
||||
"as": { code: "IN", name: "India" },
|
||||
"asa": { code: "TZ", name: "Tanzania" },
|
||||
"ast": { code: "ES", name: "Spain" },
|
||||
"az": { code: "AZ", name: "Azerbaijan" },
|
||||
"bas": { code: "CM", name: "Cameroon" },
|
||||
"be": { code: "BY", name: "Belarus" },
|
||||
"bem": { code: "ZM", name: "Zambia" },
|
||||
"bez": { code: "TZ", name: "Tanzania" },
|
||||
"bg": { code: "BG", name: "Bulgaria" },
|
||||
"bm": { code: "ML", name: "Mali" },
|
||||
"bn": { code: "BD", name: "Bangladesh" },
|
||||
"bo": { code: "CN", name: "China" },
|
||||
"br": { code: "FR", name: "France" },
|
||||
"brx": { code: "IN", name: "India" },
|
||||
"bs": { code: "BA", name: "Bosnia and Herzegovina" },
|
||||
"ca": { code: "AD", name: "Andorra" },
|
||||
"ccp": { code: "BD", name: "Bangladesh" },
|
||||
"ce": { code: "RU", name: "Russia" },
|
||||
"cgg": { code: "UG", name: "Uganda" },
|
||||
"chr": { code: "US", name: "United States" },
|
||||
"ckb": { code: "IQ", name: "Iraq" },
|
||||
"cs": { code: "CZ", name: "Czech Republic" },
|
||||
"cy": { code: "GB", name: "United Kingdom" },
|
||||
"da": { code: "DK", name: "Denmark" },
|
||||
"dav": { code: "KE", name: "Kenya" },
|
||||
"de": { code: "DE", name: "Germany" },
|
||||
"dje": { code: "NE", name: "Niger" },
|
||||
"dsb": { code: "DE", name: "Germany" },
|
||||
"dua": { code: "CM", name: "Cameroon" },
|
||||
"dyo": { code: "SN", name: "Senegal" },
|
||||
"dz": { code: "BT", name: "Bhutan" },
|
||||
"ebu": { code: "KE", name: "Kenya" },
|
||||
"ee": { code: "GH", name: "Ghana" },
|
||||
"el": { code: "CY", name: "Cyprus" },
|
||||
"en": { code: "US", name: "United States" }, // Assume US for English if unspecified
|
||||
"es": { code: "ES", name: "Spain" },
|
||||
"et": { code: "EE", name: "Estonia" },
|
||||
"eu": { code: "ES", name: "Spain" },
|
||||
"ewo": { code: "CM", name: "Cameroon" },
|
||||
"fa": { code: "AF", name: "Afghanistan" },
|
||||
"ff": { code: "CM", name: "Cameroon" },
|
||||
"fi": { code: "FI", name: "Finland" },
|
||||
"fil": { code: "PH", name: "Philippines" },
|
||||
"fo": { code: "FO", name: "Faroe Islands" },
|
||||
"fr": { code: "FR", name: "France" },
|
||||
"fur": { code: "IT", name: "Italy" },
|
||||
"fy": { code: "NL", name: "Netherlands" },
|
||||
"ga": { code: "IE", name: "Ireland" },
|
||||
"gd": { code: "GB", name: "United Kingdom" },
|
||||
"gl": { code: "ES", name: "Spain" },
|
||||
"gsw": { code: "CH", name: "Switzerland" },
|
||||
"gu": { code: "IN", name: "India" },
|
||||
"guz": { code: "KE", name: "Kenya" },
|
||||
"gv": { code: "IM", name: "Isle of Man" },
|
||||
"ha": { code: "GH", name: "Ghana" },
|
||||
"haw": { code: "US", name: "United States" },
|
||||
"he": { code: "IL", name: "Israel" },
|
||||
"hi": { code: "IN", name: "India" },
|
||||
"hr": { code: "HR", name: "Croatia" },
|
||||
"hsb": { code: "DE", name: "Germany" },
|
||||
"hu": { code: "HU", name: "Hungary" },
|
||||
"hy": { code: "AM", name: "Armenia" },
|
||||
"id": { code: "ID", name: "Indonesia" },
|
||||
"ig": { code: "NG", name: "Nigeria" },
|
||||
"ii": { code: "CN", name: "China" },
|
||||
"is": { code: "IS", name: "Iceland" },
|
||||
"it": { code: "IT", name: "Italy" },
|
||||
"ja": { code: "JP", name: "Japan" },
|
||||
"jgo": { code: "CM", name: "Cameroon" },
|
||||
"jmc": { code: "TZ", name: "Tanzania" },
|
||||
"ka": { code: "GE", name: "Georgia" },
|
||||
"kab": { code: "DZ", name: "Algeria" },
|
||||
"kam": { code: "KE", name: "Kenya" },
|
||||
"kde": { code: "TZ", name: "Tanzania" },
|
||||
"kea": { code: "CV", name: "Cabo Verde" },
|
||||
"khq": { code: "ML", name: "Mali" },
|
||||
"ki": { code: "KE", name: "Kenya" },
|
||||
"kk": { code: "KZ", name: "Kazakhstan" },
|
||||
"kkj": { code: "CM", name: "Cameroon" },
|
||||
"kl": { code: "GL", name: "Greenland" },
|
||||
"kln": { code: "KE", name: "Kenya" },
|
||||
"km": { code: "KH", name: "Cambodia" },
|
||||
"kn": { code: "IN", name: "India" },
|
||||
"ko": { code: "KP", name: "North Korea" },
|
||||
"kok": { code: "IN", name: "India" },
|
||||
"ks": { code: "IN", name: "India" },
|
||||
"ksb": { code: "TZ", name: "Tanzania" },
|
||||
"ksf": { code: "CM", name: "Cameroon" },
|
||||
"ksh": { code: "DE", name: "Germany" },
|
||||
"kw": { code: "GB", name: "United Kingdom" },
|
||||
"ky": { code: "KG", name: "Kyrgyzstan" },
|
||||
"lag": { code: "TZ", name: "Tanzania" },
|
||||
"lb": { code: "LU", name: "Luxembourg" },
|
||||
"lg": { code: "UG", name: "Uganda" },
|
||||
"lkt": { code: "US", name: "United States" },
|
||||
"ln": { code: "AO", name: "Angola" },
|
||||
"lo": { code: "LA", name: "Laos" },
|
||||
"lrc": { code: "IQ", name: "Iraq" },
|
||||
"lt": { code: "LT", name: "Lithuania" },
|
||||
"lu": { code: "CD", name: "Democratic Republic of the Congo" },
|
||||
"luo": { code: "KE", name: "Kenya" },
|
||||
"Luo": { code: "KE", name: "Kenya" },
|
||||
"luy": { code: "KE", name: "Kenya" },
|
||||
"lv": { code: "LV", name: "Latvia" },
|
||||
"mas": { code: "KE", name: "Kenya" },
|
||||
"mer": { code: "KE", name: "Kenya" },
|
||||
"mfe": { code: "MU", name: "Mauritius" },
|
||||
"mg": { code: "MG", name: "Madagascar" },
|
||||
"mgh": { code: "MZ", name: "Mozambique" },
|
||||
"mgo": { code: "CM", name: "Cameroon" },
|
||||
"mk": { code: "MK", name: "North Macedonia" },
|
||||
"ml": { code: "IN", name: "India" },
|
||||
"mn": { code: "MN", name: "Mongolia" },
|
||||
"mr": { code: "IN", name: "India" },
|
||||
"ms": { code: "BN", name: "Brunei" },
|
||||
"mt": { code: "MT", name: "Malta" },
|
||||
"mua": { code: "CM", name: "Cameroon" },
|
||||
"my": { code: "MM", name: "Myanmar" },
|
||||
"mzn": { code: "IR", name: "Iran" },
|
||||
"naq": { code: "NA", name: "Namibia" },
|
||||
"nb": { code: "NO", name: "Norway" },
|
||||
"nd": { code: "ZW", name: "Zimbabwe" },
|
||||
"nds": { code: "DE", name: "Germany" },
|
||||
"ne": { code: "IN", name: "India" },
|
||||
"nl": { code: "NL", name: "Netherlands" },
|
||||
"nmg": { code: "CM", name: "Cameroon" },
|
||||
"nn": { code: "NO", name: "Norway" },
|
||||
"nnh": { code: "CM", name: "Cameroon" },
|
||||
"nus": { code: "SS", name: "South Sudan" },
|
||||
"nyn": { code: "UG", name: "Uganda" },
|
||||
"om": { code: "ET", name: "Ethiopia" },
|
||||
"or": { code: "IN", name: "India" },
|
||||
"os": { code: "GE", name: "Georgia" },
|
||||
"pa": { code: "PK", name: "Pakistan" },
|
||||
"pl": { code: "PL", name: "Poland" },
|
||||
"ps": { code: "AF", name: "Afghanistan" },
|
||||
"pt": { code: "PT", name: "Portugal" },
|
||||
"qu": { code: "BO", name: "Bolivia" },
|
||||
"rm": { code: "CH", name: "Switzerland" },
|
||||
"rn": { code: "BI", name: "Burundi" },
|
||||
"ro": { code: "RO", name: "Romania" },
|
||||
"rof": { code: "TZ", name: "Tanzania" },
|
||||
"ru": { code: "RU", name: "Russia" },
|
||||
"rw": { code: "RW", name: "Rwanda" },
|
||||
"rwk": { code: "TZ", name: "Tanzania" },
|
||||
"sah": { code: "RU", name: "Russia" },
|
||||
"saq": { code: "KE", name: "Kenya" },
|
||||
"sbp": { code: "TZ", name: "Tanzania" },
|
||||
"se": { code: "SE", name: "Sweden" },
|
||||
"seh": { code: "MZ", name: "Mozambique" },
|
||||
"ses": { code: "ML", name: "Mali" },
|
||||
"sg": { code: "CF", name: "Central African Republic" },
|
||||
"shi": { code: "TN", name: "Tunisia" },
|
||||
"si": { code: "LK", name: "Sri Lanka" },
|
||||
"sk": { code: "SK", name: "Slovakia" },
|
||||
"sl": { code: "SI", name: "Slovenia" },
|
||||
"smn": { code: "FI", name: "Finland" },
|
||||
"sn": { code: "ZW", name: "Zimbabwe" },
|
||||
"so": { code: "SO", name: "Somalia" },
|
||||
"sq": { code: "AL", name: "Albania" },
|
||||
"sr": { code: "RS", name: "Serbia" },
|
||||
"sv": { code: "SE", name: "Sweden" },
|
||||
"sw": { code: "CD", name: "Democratic Republic of the Congo" },
|
||||
"ta": { code: "IN", name: "India" },
|
||||
"te": { code: "IN", name: "India" },
|
||||
"teo": { code: "KE", name: "Kenya" },
|
||||
"tg": { code: "TJ", name: "Tajikistan" },
|
||||
"th": { code: "TH", name: "Thailand" },
|
||||
"ti": { code: "ER", name: "Eritrea" },
|
||||
"to": { code: "TO", name: "Tonga" },
|
||||
"tr": { code: "TR", name: "Turkey" },
|
||||
"tt": { code: "RU", name: "Russia" },
|
||||
"twq": { code: "NE", name: "Niger" },
|
||||
"tzm": { code: "MA", name: "Morocco" },
|
||||
"ug": { code: "CN", name: "China" },
|
||||
"uk": { code: "UA", name: "Ukraine" },
|
||||
"ur": { code: "IN", name: "India" },
|
||||
"uz": { code: "UZ", name: "Uzbekistan" },
|
||||
"vai": { code: "TN", name: "Tunisia" },
|
||||
"Vai": { code: "TN", name: "Tunisia" },
|
||||
"vi": { code: "VN", name: "Vietnam" },
|
||||
"vun": { code: "TZ", name: "Tanzania" },
|
||||
"wae": { code: "CH", name: "Switzerland" },
|
||||
"wo": { code: "SN", name: "Senegal" },
|
||||
"xog": { code: "UG", name: "Uganda" },
|
||||
"yav": { code: "CM", name: "Cameroon" },
|
||||
"yi": { code: "01", name: "Unknown" }, // Placeholder for unspecified region
|
||||
"yo": { code: "BJ", name: "Benin" },
|
||||
"yue": { code: "CN", name: "China" },
|
||||
"zgh": { code: "MA", name: "Morocco" },
|
||||
"zh": { code: "CN", name: "China" },
|
||||
"zu": { code: "ZA", name: "South Africa" },
|
||||
};
|
||||
|
||||
|
||||
//async function getCountryName(countryCode) {
|
||||
//try {
|
||||
//const response = await fetch(`https://restcountries.com/v3.1/alpha/${countryCode}`);
|
||||
//if (!response.ok) throw new Error('Country not found');
|
||||
//const data = await response.json();
|
||||
//// Return the name in the native language
|
||||
//return data[0].name.common;
|
||||
//} catch (error) {
|
||||
//console.error(error);
|
||||
//return 'Unknown Country';
|
||||
//}
|
||||
//}
|
||||
|
||||
function getCountryNameFromLanguage(language) {
|
||||
return languageToCountryMap[language] ? languageToCountryMap[language].name : null;
|
||||
}
|
||||
|
||||
function getCountryCodeFromLanguage(language) {
|
||||
return languageToCountryMap[language] ? languageToCountryMap[language].code : null;
|
||||
}
|
||||
|
||||
function getCountryNameFromCountryCode(countryCode) {
|
||||
//alert(`Country code: ${countryCode}`);
|
||||
for (const language in languageToCountryMap) {
|
||||
if (languageToCountryMap.hasOwnProperty(language)) {
|
||||
if (languageToCountryMap[language].code === countryCode) {
|
||||
return languageToCountryMap[language].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null; // Return null if country code not found
|
||||
}
|
||||
|
||||
function getFlagEmoji(locale) {
|
||||
// Split the locale to get the language and country code
|
||||
const parts = locale.split('-');
|
||||
let countryCode;
|
||||
|
||||
// Handle single subtag (language only) or double subtag (language-country)
|
||||
if (parts.length === 1) {
|
||||
countryCode = getCountryCodeFromLanguage(parts[0]);
|
||||
} else if (parts.length === 2) {
|
||||
countryCode = parts[1].toLowerCase(); // Use the country code
|
||||
}
|
||||
|
||||
// If country code is not found, set a fallback output
|
||||
if (!countryCode) {
|
||||
const fallback = `? ${locale.toUpperCase()}`; // Just a question mark and the full locale
|
||||
return { flag: fallback, isUnknown: true, countryName: 'Unknown Country' };
|
||||
}
|
||||
|
||||
// Convert the country code to a flag emoji
|
||||
return {
|
||||
flag: String.fromCodePoint(...[...countryCode.toUpperCase()].map(char => 0x1F1E6 + char.charCodeAt(0) - 'A'.charCodeAt(0))),
|
||||
isUnknown: false,
|
||||
countryCode: countryCode
|
||||
};
|
||||
}
|
||||
|
||||
function displayLocaleAndFlag() {
|
||||
// Get the browser locale
|
||||
const userLocale = navigator.language || navigator.userLanguage;
|
||||
//alert(`User Locale: ${userLocale}`); // Alert the detected locale
|
||||
|
||||
const { flag, isUnknown, countryCode } = getFlagEmoji(userLocale);
|
||||
|
||||
//alert(`Country Code: ${countryCode}, Is Unknown: ${isUnknown}`); // Debug country code and unknown flag status
|
||||
|
||||
// Display the locale and the corresponding flag (or fallback)
|
||||
//document.getElementById('locale').textContent = `Your Locale: ${userLocale}`;
|
||||
|
||||
if (isUnknown) {
|
||||
const fallbackDiv = document.createElement('div');
|
||||
fallbackDiv.className = 'fallback-box';
|
||||
fallbackDiv.textContent = `? ${userLocale.toUpperCase()}`; // Show ? and locale code inside the box
|
||||
document.getElementById('flag-container').appendChild(fallbackDiv);
|
||||
|
||||
// Tooltip for fallback
|
||||
fallbackDiv.title = "Unknown Country"; // Tooltip for fallback
|
||||
//alert('Fallback triggered: Unknown Country'); // Debug fallback
|
||||
} else {
|
||||
const countryName = getCountryNameFromCountryCode(countryCode.toUpperCase());
|
||||
//alert(`Country Name from Country Code: ${countryName}`); // Alert the country name
|
||||
|
||||
const flagSpan = document.createElement('span');
|
||||
flagSpan.textContent = flag; // Use flag emoji
|
||||
flagSpan.title = countryName; // Tooltip for the flag in country language
|
||||
document.getElementById('flag-container').appendChild(flagSpan);
|
||||
|
||||
//alert(`Flag Emoji: ${flag}`); // Debug flag emoji display
|
||||
}
|
||||
}
|
||||
displayLocaleAndFlag();
|
||||
});
|
@@ -1,28 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
function toggleUPSClasses() {
|
||||
var selectedOption = $('#Nutmode_select').val();
|
||||
$('.masterups').toggle(selectedOption === 'netserver' || selectedOption === 'standalone'); // Show/Hide masterups based on Net Server or Standalone
|
||||
$('.slaveups').toggle(selectedOption === 'netclient'); // Show/Hide slaveups based on Net Client
|
||||
|
||||
// Enable/Disable inputs based on the selected option
|
||||
$('.masterups input').prop('disabled', !(selectedOption === 'netserver' || selectedOption === 'standalone'));
|
||||
$('.slaveups input').prop('disabled', selectedOption !== 'netclient');
|
||||
}
|
||||
|
||||
function toggleGenerics() {
|
||||
var upsModelValue = $('#UPS_Model_select').val().toLowerCase(); // Get the current value from UPS_Model
|
||||
var isGenericUps = upsModelValue === 'genericups'; // Check if it's 'genericups'
|
||||
|
||||
// Show/Hide generics section and enable/disable inputs
|
||||
$('.generics').toggle(isGenericUps);
|
||||
$('.generics input').prop('disabled', !isGenericUps); // Enable/Disable inputs based on the value
|
||||
}
|
||||
|
||||
// Event listener for the selections
|
||||
$('#Nutmode_select').change(toggleUPSClasses);
|
||||
$('#UPS_Model_select').change(toggleGenerics); // Listen for changes in the UPS_Model dropdown
|
||||
|
||||
// Set the initial state based on current selections
|
||||
toggleGenerics();
|
||||
toggleUPSClasses();
|
||||
});
|
@@ -1,25 +0,0 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const analysisType = document.getElementById('analysis_type');
|
||||
const messageIdGroup = document.getElementById('message_id_group');
|
||||
const emailAddressGroup = document.getElementById('email_address_group');
|
||||
|
||||
// Initially hide both controls
|
||||
messageIdGroup.style.display = 'none';
|
||||
emailAddressGroup.style.display = 'none';
|
||||
|
||||
analysisType.addEventListener('change', function() {
|
||||
// Hide both controls first
|
||||
messageIdGroup.style.display = 'none';
|
||||
emailAddressGroup.style.display = 'none';
|
||||
|
||||
// Show the relevant control based on the selected option
|
||||
switch(this.value) {
|
||||
case 'trace_message':
|
||||
messageIdGroup.style.display = 'block';
|
||||
break;
|
||||
case 'user_activity':
|
||||
emailAddressGroup.style.display = 'block';
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
@@ -1,33 +1,22 @@
|
||||
// js/sme-password.js
|
||||
$(document).ready(function () {
|
||||
const togglePassword = document.querySelector("#togglePassword");
|
||||
const password = document.querySelector("#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);
|
||||
}); */
|
||||
let pass = togglePassword;
|
||||
|
||||
$('.toggle-password').on('click', function() {
|
||||
// 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
|
||||
// Check boostrap colours?
|
||||
// var iconSrc = inputType === 'password' ? 'images/visible.png' : 'images/visible-slash.png';
|
||||
// $(this).attr('src', iconSrc);
|
||||
});
|
||||
});
|
||||
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");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@@ -4,83 +4,103 @@
|
||||
|
||||
<div class="card-body">
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<h2>
|
||||
%=l 'bac_ENABLE_DISABLE_TAPE'
|
||||
</h2><br>
|
||||
<br>
|
||||
|
||||
%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC'))
|
||||
<h2><%= l 'bac_ENABLE_DISABLE_TAPE' %></h2>
|
||||
|
||||
%= form_for '/backupd' => (method => 'POST') => begin
|
||||
<br>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'bac_ENABLE_TAPE_BACKUP'
|
||||
</span>
|
||||
<span class="">
|
||||
% if ( $bac_datas->{status} eq 'checked' ) {
|
||||
<input type='checkbox' name='Tapebackup' checked >
|
||||
%} else {
|
||||
%= check_box 'Tapebackup'
|
||||
%}
|
||||
</span>
|
||||
</p>
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => (l 'bac_TAPE_CONFIG_DESC')) %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<form action="/smanager/backupd" method="POST">
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l 'bac_ENABLE_TAPE_BACKUP' %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% if ( $bac_datas->{status} eq 'checked' ) {
|
||||
<input type='checkbox' name='Tapebackup' 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>
|
||||
<span class="">
|
||||
%=l 'bac_TAPE_BACKUP_TIME'
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'BackupHour' => $bac_datas->{backupHour} unless param 'BackupHour';
|
||||
%= text_field 'BackupHour', size => '2'
|
||||
% param 'BackupMin' => $bac_datas->{backupMin} unless param 'BackupMin';
|
||||
%= text_field 'BackupMin', size => '2'
|
||||
</span>
|
||||
<!--span class="">
|
||||
%=l 'AM/PM:'
|
||||
<!--/span-->
|
||||
<span class="">
|
||||
% param 'BackupAMPM' => $bac_datas->{backupAMPM} unless param 'BackupAMPM';
|
||||
%= select_field 'BackupAMPM' => ['AM', 'PM'], class => ""
|
||||
</span>
|
||||
</p>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputReminderMin" class="col-form-label"><%= l 'bac_LOAD_TAPE_REMINDER_TIME' %></label>
|
||||
<label for="inputReminderMin" class="col-form-label"></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
|
||||
<input type="text" name="ReminderHour" id="inputReminderHour" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Hour" value="<%= $bac_datas->{reminderHour} %>">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
|
||||
<input type="text" name="ReminderMin" id="inputReminderMin" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Minute" value="<%= $bac_datas->{reminderMin} %>">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
|
||||
<%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => "form-select" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'bac_LOAD_TAPE_REMINDER_TIME'
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'ReminderHour' => $bac_datas->{reminderHour} unless param 'ReminderHour';
|
||||
%= text_field 'ReminderHour', size => '2'
|
||||
% param 'ReminderMin' => $bac_datas->{reminderMin} unless param 'ReminderMin';
|
||||
%= text_field 'ReminderMin', size => '2'
|
||||
</span>
|
||||
<!--span class="">
|
||||
%=l 'AM/PM:'
|
||||
<!--/span-->
|
||||
<span class="">
|
||||
% param 'ReminderAMPM' => $bac_datas->{reminderAMPM} unless param 'ReminderAMPM';
|
||||
%= select_field 'ReminderAMPM' => ['AM', 'PM'], class => ""
|
||||
</span>
|
||||
</p><br>
|
||||
<br>
|
||||
|
||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
||||
%= submit_button $c->l('bac_UPDATE_CONF'), class => ""
|
||||
<%= hidden_field 'Function' => $bac_datas->{'function'} %>
|
||||
|
||||
% my $btn = l('bac_UPDATE_CONF');
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('bac_UPDATE_CONF')%>"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
% end
|
||||
</div>
|
||||
% end
|
@@ -5,34 +5,46 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
%}
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= form_for '/backupd' => (method => 'POST') => begin
|
||||
<br>
|
||||
|
||||
<h2>
|
||||
%=l 'bac_RESTORE_CONF_FROM_TAPE'
|
||||
</h2>
|
||||
|
||||
%= $c->render_to_string(inline => (l 'bac_RESTORE_CONF_FROM_TAPE_DESC'))
|
||||
<h2><%=l 'bac_RESTORE_CONF_FROM_TAPE' %></h2>
|
||||
|
||||
<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>
|
||||
% end
|
@@ -5,54 +5,71 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%= l 'bac_CONFIGURE_WORKSTN_BACKUP' %></h2>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => (l 'bac_WORKSTN_BACKUP_DESC')) %>
|
||||
</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>
|
||||
|
||||
%= $c->render_to_string(inline => $c->workstnBackupConfig())
|
||||
<form action="/smanager/backup" method="POST">
|
||||
|
||||
<p>
|
||||
<h3>
|
||||
%= l 'bac_WORKSTATION_BACKUP_SETCONF'
|
||||
</h3>
|
||||
<br>
|
||||
<span class="">
|
||||
%=l 'bac_SELECT_VFS_TYPE'
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'VFSType' => $bac_datas->{vfstype} unless param 'VFSType';
|
||||
%= select_field 'VFSType' => $c->get_VFSType_options(), class => ""
|
||||
</span>
|
||||
</p>
|
||||
<div>
|
||||
<%= l 'bac_WORKSTN_BACKUP_ENABLED' %>: <%= $bac_datas->{status} %>
|
||||
</div>
|
||||
|
||||
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
|
||||
%= submit_button $c->l('NEXT'), class => ""
|
||||
<br>
|
||||
|
||||
% 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>
|
||||
|
||||
|
@@ -5,169 +5,268 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div>
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<h2>
|
||||
%=l 'bac_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>
|
||||
|
||||
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
|
||||
<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>
|
||||
<h2><%= l 'bac_CONFIGURE_WORKSTN_BACKUP' %></h2>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
% end
|
@@ -5,42 +5,64 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= form_for '/backupd' => (method => 'POST') => begin
|
||||
<br>
|
||||
|
||||
<h2>
|
||||
%=l 'bac_WORKSTN_RESTORE'
|
||||
</h2>
|
||||
<h2><%= l 'bac_WORKSTN_RESTORE' %></h2>
|
||||
|
||||
<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><br><span class="">
|
||||
%=l 'bac_SELECT_BACKUP_FILE'
|
||||
</span>
|
||||
<span class="">
|
||||
%= select_field 'Backupset' => $c->get_Backupset_options(), class => ""
|
||||
</span><br><br>
|
||||
<form action="/smanager/backupd" method="POST">
|
||||
|
||||
% 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_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>
|
||||
% end
|
@@ -5,33 +5,49 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= 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>
|
||||
|
||||
% end
|
@@ -5,49 +5,73 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<br><div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
%}
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= form_for '/backupd' => (method => 'POST') => begin
|
||||
<br>
|
||||
|
||||
<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>
|
||||
<span class="">
|
||||
%=l 'bac_SELECT_BACKUP_FILE'
|
||||
</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 => ""
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => (l 'bac_WORKSTN_SEL_REST_DESC') . ' ' . $c->get_shared_folder_to_verify()) %>
|
||||
</div>
|
||||
|
||||
% 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>
|
||||
|
||||
|
@@ -5,51 +5,71 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
||||
|
||||
<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="">
|
||||
%=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'}
|
||||
<form action="/smanager/backupd" method="POST">
|
||||
|
||||
%= 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>
|
||||
% end
|
@@ -5,30 +5,44 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
%}
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%=l 'bac_WORKSTN_SELECTIVE_RESTORE' %></h2>
|
||||
<br>
|
||||
%= $c->render_to_string(inline => $bac_datas->{restore_log})
|
||||
|
||||
<br>
|
||||
|
||||
%= form_for '/backupd' => (method => 'POST') => begin
|
||||
%= hidden_field 'Function' => $bac_datas->{'function'}
|
||||
%= submit_button $c->l('NEXT'), class => ""
|
||||
<form action="/smanager/backupd" method="POST">
|
||||
|
||||
% 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>
|
||||
% end
|
@@ -4,59 +4,75 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<br><div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<h2>
|
||||
%=l 'bac_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>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'bac_CHECK_TO_VERIFY_FULL_RESTORE'
|
||||
</span>
|
||||
<span class="">
|
||||
%= check_box 'Verifyall'
|
||||
</span>
|
||||
</p>
|
||||
<br>
|
||||
<h2><%=l 'bac_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
|
||||
|
||||
%=l 'bac_CHECK_INTEGRITY_WARNING'
|
||||
<form action="/smanager/backup" method="POST">
|
||||
|
||||
<br>
|
||||
<br>
|
||||
%= hidden_field 'Function' => $bac_datas->{'function'} . '1'
|
||||
%= submit_button $c->l('bac_VERIFY'), class => ""
|
||||
<br>
|
||||
|
||||
% 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>
|
||||
% end
|
@@ -4,34 +4,47 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas->{function}
|
||||
<!-- dumper $bac_datas->{'files_list'} -->
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas->{function} %>
|
||||
<!-- dumper $bac_datas->{'files_list'} -->
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $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_VERIFY_WORKSTN_BACKUP_FILE' %></h2>
|
||||
|
||||
<br>
|
||||
%= $c->render_to_string(inline => $c->workstnVerify())
|
||||
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => $c->workstnVerify()) %>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
% end
|
@@ -1,6 +1,6 @@
|
||||
<%
|
||||
|
||||
my $backups = esmith::BackupHistoryDB->open;
|
||||
my $backups = esmith::BackupHistoryDB->open; # no UTF8
|
||||
my $now = time();
|
||||
my $backup_rec = $backups->new_record($now, {
|
||||
type => 'backup_record', BackupType => 'desktop',
|
||||
@@ -22,7 +22,7 @@
|
||||
my $success = open my $fh, '-|', $cmd;
|
||||
#unless ($success) { return "Error download command."; };
|
||||
if ($success) {
|
||||
# Try with download plugin - seems to fail to complete download and also
|
||||
# Try with download plugin - seems to fail to complete download and also
|
||||
# name of file deposited is not as required.
|
||||
#my $output = do { local $/; <$fh> };
|
||||
#close $fh;
|
||||
|
@@ -5,76 +5,99 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $bac_datas
|
||||
</div>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $bac_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'warning' ) {
|
||||
<br>
|
||||
<div>
|
||||
%= $c->render_to_string(inline => stash 'warning')
|
||||
<div class="col-md-4 bg-info text-center">
|
||||
<%= $c->render_to_string(inline => stash 'warning') %>
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
% }
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div>
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
%}
|
||||
<br>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<!--br>Still incomplete click here for previous version
|
||||
<a href="/server-manager/cgi-bin/backup" target='_blank'><b>(Previous Backup version)</b></a>
|
||||
<br-->
|
||||
|
||||
<%= $c->render_to_string(inline => (l 'bac_BACKUP_DESC_DAR', $bac_datas->{module},
|
||||
$bac_datas->{dumpsize}, $bac_datas->{tarsize})) %>
|
||||
|
||||
<form action="/smanager/backup" method="POST">
|
||||
%#= form_for '/backup' => (method => 'POST') => begin
|
||||
|
||||
<h2><%= l 'bac_BACKUP_CONFIG_STATUS' %></h2>
|
||||
|
||||
<div>
|
||||
<%= l 'bac_TAPE_BACKUPS' %>,
|
||||
<%= $c->l(uc($bac_datas->{'backupStatus'})).'.' %>
|
||||
|
||||
% if ( $bac_datas->{'backupStatus'} eq 'enabled' ) {
|
||||
%= $c->l('bac_BACKUPS_RUN_AT')
|
||||
%= $bac_datas->{'backupTime'}
|
||||
%= $c->l('bac_REMINDER_MESSAGE_AT')
|
||||
%= $bac_datas->{'reminderTime'}
|
||||
% }
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<%=l 'bac_WORKSTN_BACKUPS' %>,
|
||||
<%= $c->l(uc($bac_datas->{'backupwkStatus'})) . '.' %>
|
||||
% if ( $bac_datas->{'backupwkStatus'} eq 'enabled' ) {
|
||||
<%= $c->l('bac_WKBACKUPS_RUN_AT') %>
|
||||
<%= $bac_datas->{'backupwkTime'} %>
|
||||
% }
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= l 'bac_SELECT_AN_ACTION' %>
|
||||
% param 'Function' => $bac_datas->{function} unless param 'Function';
|
||||
<%= select_field 'Function' => $c->get_function_options() %>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<br>
|
||||
|
||||
<% my $btn = $c->l('PERFORM'); %>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<%= $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>
|
||||
% end
|
||||
|
||||
<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>
|
||||
|
||||
% end
|
@@ -5,94 +5,127 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
(DBG)route: <%= $c->current_route %><br>
|
||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||
</p>
|
||||
<div>
|
||||
(DBG)route: <%= $c->current_route %><br>
|
||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||
</div>
|
||||
% }
|
||||
|
||||
|
||||
<h1><%= $title %></h1>
|
||||
<!--br><%= $modul %><br-->
|
||||
|
||||
<b>
|
||||
%=l ('bugr_DO_NOT_PANIC')
|
||||
</b>
|
||||
<p>
|
||||
%=l ('bugr_SME_EXPERIENCE')
|
||||
</p>
|
||||
<p>
|
||||
%=l ('bugr_USE_TEMPLATE')
|
||||
: <a href="https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs"
|
||||
target="_blank">https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs</a>.
|
||||
</p>
|
||||
<p>
|
||||
%=l ('bugr_PLEASE_REPORT_HERE')
|
||||
: <a href="https://bugs.koozali.org" target="_blank">https://bugs.koozali.org</a>.
|
||||
</p>
|
||||
<p>
|
||||
%=l ('bugr_FOLLOWING_REPORT_MIGHT_HELP')
|
||||
</p>
|
||||
<p>
|
||||
%=l ('bugr_REPORT_CONTENT')
|
||||
<br>
|
||||
<br>
|
||||
<h2><%= l ('bugr_DO_NOT_PANIC') %></h2>
|
||||
<br>
|
||||
<div>
|
||||
<%= l ('bugr_SME_EXPERIENCE') %>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= l ('bugr_USE_TEMPLATE') %>
|
||||
: <a href="https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs"
|
||||
target="_blank">https://wiki.koozali.org/Bugzilla_Help#Reporting_Bugs</a>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= l ('bugr_PLEASE_REPORT_HERE') %>
|
||||
: <a href="https://bugs.koozali.org"
|
||||
target="_blank">https://bugs.koozali.org</a>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= l ('bugr_FOLLOWING_REPORT_MIGHT_HELP') %>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= l ('bugr_REPORT_CONTENT') %>
|
||||
<br><br>
|
||||
<ul>
|
||||
<li>
|
||||
%=l ('bugr_SME_VERSION')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_SERVER_MODE')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_PREVIOUS_SERVER_MODE')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_KERNEL_AND_ARCH')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_INSTALLED_RPMS')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_ALTERED_TEMPLATES')
|
||||
</li>
|
||||
<li>
|
||||
%=l ('bugr_ALTERED_EVENTS')
|
||||
</li> <li>
|
||||
%=l ('bugr_YUM_REPOS')
|
||||
</li>
|
||||
<br>
|
||||
<li>
|
||||
<%= l ('bugr_SME_VERSION') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_SERVER_MODE') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_PREVIOUS_SERVER_MODE') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_KERNEL_AND_ARCH') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_INSTALLED_RPMS') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_ALTERED_TEMPLATES') %>
|
||||
</li>
|
||||
<li>
|
||||
<%= l ('bugr_ALTERED_EVENTS') %>
|
||||
</li> <li>
|
||||
<%= l ('bugr_YUM_REPOS') %>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
%=l ('bugr_PRIVACY')
|
||||
</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
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
|
@@ -5,10 +5,10 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
(DBG)route: <%= $c->current_route %><br>
|
||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||
</p>
|
||||
<div>
|
||||
(DBG)route: <%= $c->current_route %><br>
|
||||
(DBG)trt: <%= $bugr_datas->{trt} %><br>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title %></h1>
|
||||
@@ -17,17 +17,25 @@
|
||||
|
||||
<% my $btn = l('bugr_Download this report'); %>
|
||||
|
||||
%= form_for 'bugreportD' => (method => 'POST') => begin
|
||||
%= submit_button "$btn", class => ""
|
||||
%= hidden_field 'trt' => $bugr_datas->{trt}
|
||||
% end
|
||||
|
||||
<form action="/smanager/bugreportD" 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>
|
||||
|
||||
|
||||
|
||||
% my $out = "================== <br />";
|
||||
% $out .= "Boot anaysis image (right click and save image to download)<br />";
|
||||
% $out .= "================== <br />";
|
||||
% $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>
|
||||
|
||||
|
@@ -5,40 +5,45 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
(DBG)route: <%= $c->current_route %><br>
|
||||
(DBG)FsS stat: <%= $clm_datas->{FilesystemScan}%> <br>
|
||||
(DBG)Quar stat: <%=$clm_datas->{Quarantine} %>
|
||||
</div>
|
||||
<pre>
|
||||
Route: <%= dumper $c->current_route %><br>
|
||||
FsS stat: <%= dumper $clm_datas->{FilesystemScan}%> <br>
|
||||
Quar stat: <%= dumper $clm_datas->{Quarantine} %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
<h1><%= $title %></h1>
|
||||
<br>
|
||||
|
||||
<%= $modul %>
|
||||
|
||||
<% my $btn = l('SAVE'); %>
|
||||
<!-- reetp This $module should be split ijto two lines -->
|
||||
<%= $modul %>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form action="/smanager/clamav" method="POST">
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-auto">
|
||||
<h6><%= l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' %>:</h6>
|
||||
<div class="col-md-2">
|
||||
<%= l 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' %>:
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
% param 'FilesystemScan' => $clm_datas->{FilesystemScan} unless param 'FilesystemScan';
|
||||
<%= select_field 'FilesystemScan' => [[ (l 'clm_DAILY') => 'daily'], [ (l 'clm_NEVER') => 'disabled'], [ (l 'clm_WEEKLY') => 'weekly']], class => "form-select" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<br>
|
||||
<div class="col-auto">
|
||||
<h6><%= l 'clm_LABEL_QUARANTINE' %>:</h6>
|
||||
<div class="col-md-2">
|
||||
<%= l 'clm_LABEL_QUARANTINE' %>:
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
% param 'Quarantine' => $clm_datas->{Quarantine} unless param 'Quarantine';
|
||||
<%= select_field 'Quarantine' => [[ (l 'ENABLED') => 'enabled'], [ (l 'DISABLED') => 'disabled']], class => "form-select" %>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<div>
|
||||
<h6><%= l 'clm_LABEL_CLAM_VERSIONS' %>:</h6>
|
||||
@@ -47,10 +52,14 @@
|
||||
<%= $clm_datas->{clam_versions} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<% my $btn = l('SAVE'); %>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -1,9 +1,16 @@
|
||||
<!-- common_css.html.ep -->
|
||||
%= stylesheet 'koozali/css/adminlte.koozali.css'
|
||||
%= stylesheet 'koozali/css/flag-icon.min.css'
|
||||
|
||||
%#= stylesheet 'css/sme-jquery-overrides.css'
|
||||
|
||||
<!-- Generic to AdminLTE -->
|
||||
%= stylesheet 'dist/css/adminlte.min.css'
|
||||
%= stylesheet 'dist/icons/font/bootstrap-icons.min.css'
|
||||
%#= stylesheet 'dist/css/overlayscrollbars.min.css'
|
||||
%= stylesheet 'dist/font/bootstrap-icons.min.css'
|
||||
|
||||
|
||||
<!-- Specific to Koozali from smanager/default -->
|
||||
%= stylesheet 'css/flag-icon.min.css'
|
||||
|
||||
<!-- Specific Koozali AdminLTE overrides -->
|
||||
%= stylesheet 'koozali/css/adminlte.koozali.css'
|
||||
|
||||
|
||||
%#= stylesheet 'dist/css/overlayscrollbars.min.css'
|
||||
%#= stylesheet 'css/sme-jquery-overrides.css'
|
@@ -1,9 +1,16 @@
|
||||
<!-- common_js.html.ep -->
|
||||
%= javascript 'dist/js/jquery.min.js'
|
||||
%= javascript 'dist/js/bootstrap.min.js'
|
||||
%= javascript 'dist/js/popper.min.js'
|
||||
%= javascript 'dist/js/adminlte.min.js'
|
||||
|
||||
%= javascript 'koozali/js/flag-by-locale.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'
|
||||
|
||||
|
@@ -5,132 +5,228 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $dat_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $dat_data %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
|
||||
<h1><%= $title %></h1><br>
|
||||
%= $modul
|
||||
<% my $btn = l('SAVE'); %>
|
||||
|
||||
%= form_for '/datetime' => (method => 'POST') => begin
|
||||
<p>
|
||||
%= hidden_field 'Old_ntpstatus' => $dat_datas->{ntpstatus};
|
||||
|
||||
% 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>
|
||||
</div>
|
||||
% } else {
|
||||
<div class="">
|
||||
%=l 'dat_NTP_CONFIGURE_DESC'
|
||||
<br><br>
|
||||
<p>
|
||||
%=l 'dat_CURRENT_SETTING'
|
||||
<b>
|
||||
%= $dat_datas->{now_string}
|
||||
</b>
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
<span class="">
|
||||
%=l 'dat_NTP_SERVER'
|
||||
</span>
|
||||
<span class="">
|
||||
%= text_field 'Ntpserver' => $dat_datas->{ntpserver}, class => ""
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
% }
|
||||
%= 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>
|
||||
% 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>
|
||||
% }
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
|
||||
% end
|
||||
|
||||
<h1><%= $title %></h1>
|
||||
<br>
|
||||
<%= $modul %>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<%= $c->l('dat_The_time_is_currently') %>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= text_field 'clock', id => 'real-time-clock', readonly => 'readonly', class => 'col-md-2' , value => $dat_data->{currentdatetime} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
% if ($dat_data->{ntpstatus} eq 'disabled') {
|
||||
<div class='datetime-set-ntp'>
|
||||
<%= l 'dat_NTP_ENABLE_DESC' %>
|
||||
</div>
|
||||
% } else {
|
||||
|
||||
% my $current_year = $dat_data->{year};
|
||||
% my $year_options = [ map { [ $_, $_ ] } ($current_year..($current_year+30)) ];
|
||||
% my $month_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (1..12) ];
|
||||
% my $hour_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..23) ];
|
||||
% my $minute_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..60) ];
|
||||
% my $second_options = [ map { [ sprintf('%02d', $_), sprintf('%02d', $_) ] } (0..60) ];
|
||||
% my $mode_options = [
|
||||
% [ $c->l('dat_ntp_server'), 'dat_ntp_server' ],
|
||||
% [ $c->l('dat_manually_set'), 'dat_manually_set' ]
|
||||
% ];
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%= $c->l('Time Configuration') %></h2>
|
||||
|
||||
|
||||
<form action="/smanager/datetimeu" method="POST">
|
||||
|
||||
<br>
|
||||
|
||||
<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>
|
||||
|
||||
% }
|
||||
|
||||
</div>
|
||||
%end
|
||||
% end
|
||||
1;
|
@@ -56,9 +56,8 @@
|
||||
<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>
|
||||
<input type="text" name="department" id="inputDirDepartment" class="form-control" aria-describedby="DirectoryDepartment" value="<%= $dir_datas->{department} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
@@ -68,9 +67,8 @@
|
||||
<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>
|
||||
<input type="text" name="company" id="inputDirCompany" class="form-control" aria-describedby="DirectoryCompany" value="<%= $dir_datas->{company} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
@@ -80,7 +78,8 @@
|
||||
<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} %>">
|
||||
<input type="text" name="street" id="inputDirStreet" class="form-control" aria-describedby="DirectoryStreet" value="<%= $dir_datas->{street} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
@@ -90,7 +89,8 @@
|
||||
<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} %>">
|
||||
<input type="text" name="city" id="inputDirCity" class="form-control" aria-describedby="DirectoryCity" value="<%= $dir_datas->{city} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
@@ -100,7 +100,8 @@
|
||||
<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} %>">
|
||||
<input type="text" name="phonenumber" id="inputDirPhoneNumber" class="form-control" aria-describedby="DirectoryPhoneNmber" value="<%= $dir_datas->{phonenumber} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
@@ -113,18 +114,16 @@
|
||||
<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" %>
|
||||
<%= select_field 'existing'=> [[ (l 'dir_LEAVE') => 'leave'], [ (l 'dir_UPDATE') => 'update' ]], class => "form-select" %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -1,76 +0,0 @@
|
||||
% layout 'AdminLTE', title => "Sme server 2 - emailaccess";
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $mai_datas
|
||||
</div>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
<form action="/smanager/emailsettingd" method="POST">
|
||||
%#= form_for '/emailsettingd' => (method => 'POST') => begin
|
||||
|
||||
<%= l 'mai_DESC_POP_ACCESS_CONTROL' %>
|
||||
|
||||
<div>
|
||||
<%=l 'mai_LABEL_POP_ACCESS_CONTROL' %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
% param 'POPAccess' => $c->get_current_pop3_access() unless param 'POPAccess';
|
||||
<%= select_field 'POPAccess' => $c->get_pop_opt() %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%=l 'mai_DESC_IMAP_ACCESS_CONTROL' %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%=l 'mai_LABEL_IMAP_ACCESS_CONTROL' %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
% param 'IMAPAccess' => $c->get_current_imap_access() unless param 'IMAPAccess';
|
||||
<%= select_field 'IMAPAccess' => $c->get_imap_opt() %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= l 'mai_DESC_WEBMAIL' %>
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<%=l 'mai_LABEL_WEBMAIL' %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
% param 'WebMail' => $c->get_current_webmail_status() unless param 'WebMail';
|
||||
<%= select_field 'WebMail' => $c->get_webmail_opt() %>
|
||||
</div>
|
||||
|
||||
% my $btn = l('SAVE');
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
%= hidden_field 'trt' => 'ACC'
|
||||
|
||||
%# end
|
||||
</form>
|
||||
|
||||
</div>
|
||||
%end
|
@@ -1,112 +0,0 @@
|
||||
% layout 'AdminLTE', title => "Sme server 2 - emaildeliver";
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
% 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,131 +0,0 @@
|
||||
% layout 'AdminLTE', title => "Sme server 2 - emailfilter";
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
<div class="card-body"
|
||||
|
||||
% 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 class="card-body">
|
||||
|
||||
% 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
|
||||
|
||||
% use constant FALSE => 0;
|
||||
% use constant TRUE => 1;
|
||||
|
||||
<!-- see ibays as an example with partials -->
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $mai_datas
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $mai_data->{trt} %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
%}
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= form_for '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>
|
||||
|
||||
<!--<hr class="" />-->
|
||||
|
||||
%= form_for 'emailsettings' => (method => 'POST') => begin
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_VIRUS_SCAN'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_virus_status(TRUE)
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_SPAM_SCAN'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_spam_status(TRUE)
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_BLOCK_EXECUTABLE_CONTENT'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_patterns_status(TRUE)
|
||||
</span>
|
||||
</p>
|
||||
|
||||
% my $btn = l('mai_DESC_STATE_FILTERING_BUTTON');
|
||||
<div class="">
|
||||
%= submit_button "$btn", class => ""
|
||||
</div>
|
||||
|
||||
%= hidden_field 'trt' => 'FIL'
|
||||
% end
|
||||
<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="" />-->
|
||||
%#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
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_UNKNOWN'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_emailunknownuser_status( TRUE )
|
||||
</span>
|
||||
</p>
|
||||
% if ($mai_data->{trt} eq "FRONT") {
|
||||
<%= include 'partials/_mai_FRONT' %>
|
||||
% }
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_DELEGATE'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_value('DelegateMailServer')
|
||||
</span>
|
||||
</p>
|
||||
% if ($mai_data->{trt} eq "ACC") {
|
||||
<%= include 'partials/_mai_ACC' %>
|
||||
% }
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'mai_LABEL_SMARTHOST'
|
||||
</span>
|
||||
<span class="">
|
||||
%= $c->get_value('SMTPSmartHost')
|
||||
</span>
|
||||
</p>
|
||||
% if ($mai_data->{trt} eq "FIL") {
|
||||
<%= include 'partials/_mai_FIL' %>
|
||||
% }
|
||||
|
||||
% if ($mai_data->{trt} eq "REC") {
|
||||
<%= include 'partials/_mai_REC' %>
|
||||
% }
|
||||
|
||||
% if ($mai_data->{trt} eq "DEL") {
|
||||
<%= include 'partials/_mai_DEL' %>
|
||||
% }
|
||||
|
||||
% my $btn = l('mai_DESC_STATE_DELIVERY_BUTTON');
|
||||
<div class="">
|
||||
%= submit_button "$btn", class => ""
|
||||
</div>
|
||||
|
||||
%= hidden_field 'trt' => 'DEL'
|
||||
% end
|
||||
|
||||
</div>
|
||||
|
||||
%end
|
@@ -12,15 +12,17 @@
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
%}
|
||||
<h1> Embedded - <%=$title %></h1>
|
||||
<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';
|
||||
% 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>
|
||||
|
||||
%end
|
||||
|
@@ -5,15 +5,15 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $iba_datas %>
|
||||
</div>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $iba_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<div class="text-danger">
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
% }
|
||||
|
@@ -13,14 +13,14 @@
|
||||
% if ( stash 'error' ) {
|
||||
<br>
|
||||
<div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
% }
|
||||
|
||||
<h3><%= $title %> </h3>
|
||||
<h3><%= $title %> </h3>
|
||||
<!-- <h3>template: initial.html.ep</h3> -->
|
||||
<!-- <H1>Initial AdminLTE</H1> -->
|
||||
|
||||
|
||||
%= $modul
|
||||
|
||||
</div>
|
||||
|
@@ -19,20 +19,18 @@
|
||||
%= content_for 'head_contrib'
|
||||
%= content_for 'refresh'
|
||||
|
||||
<!-- Specific for AdminLTE -->
|
||||
%= include 'common_js'
|
||||
%= include 'common_css'
|
||||
|
||||
<!-- Custom overrides js/css? -->
|
||||
<!-- This needs refining - do contribs add in their own stuff?? -->
|
||||
<!-- This needs refining -->
|
||||
|
||||
% if (config 'hasJquery') {
|
||||
%= include 'partials/_js_imports'
|
||||
|
||||
% }
|
||||
|
||||
% if ($c->current_route eq 'nutups') {
|
||||
%= include 'partials/_nutups_overrides'
|
||||
%# panel specific css file
|
||||
% my $controller = stash('controller');
|
||||
% if ($controller) {
|
||||
% my $css_path = "css/$controller.css";
|
||||
%# 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>
|
||||
@@ -57,7 +55,7 @@
|
||||
<!--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-->
|
||||
@@ -68,10 +66,10 @@
|
||||
<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>
|
||||
% if ( not defined $c->session->{username} ) {
|
||||
<li class="nav-item d-none d-md-block"><a href="login" class="nav-link">Login</a></li>
|
||||
<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>
|
||||
% }
|
||||
@@ -80,12 +78,12 @@
|
||||
</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>
|
||||
@@ -112,23 +110,23 @@
|
||||
<!--end::Brand Link-->
|
||||
</div>
|
||||
<!--end::Sidebar Brand-->
|
||||
|
||||
|
||||
<!--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">
|
||||
|
||||
|
||||
%= include 'partials/_sidebar_support_menu'
|
||||
|
||||
|
||||
% if ( $c->is_logged_in ) {
|
||||
%= include 'partials/_sidebar_user_menu'
|
||||
% }
|
||||
|
||||
|
||||
% if ( $c->is_admin ) {
|
||||
%= include 'partials/_sidebar_main_menu'
|
||||
% }
|
||||
|
||||
|
||||
</ul>
|
||||
<!--end::Sidebar Menu-->
|
||||
</nav>
|
||||
@@ -142,10 +140,10 @@
|
||||
<!--begin::App Main-->
|
||||
|
||||
<main class="app-main">
|
||||
|
||||
|
||||
<!-- Can add a header row here? -->
|
||||
<!-- %= include 'partials/_app_content_header' -->
|
||||
|
||||
|
||||
<!--begin::App Content-->
|
||||
<div class="app-content">
|
||||
<!--begin::Container-->
|
||||
@@ -153,16 +151,16 @@
|
||||
<!--begin::Rows-->
|
||||
<!-- Add breadcrumb here -->
|
||||
%= include 'partials/_app_content_breadcrumb'
|
||||
|
||||
|
||||
<!-- We can add extra rows in the main panel here -->
|
||||
|
||||
|
||||
<!-- %#= include 'partials/_app_content_first_row' -->
|
||||
<!-- %#= 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 -->
|
||||
@@ -171,17 +169,17 @@
|
||||
%= 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>
|
||||
<!--end::App Content-->
|
||||
|
||||
|
||||
</main>
|
||||
<!--end::App Main-->
|
||||
|
||||
@@ -208,6 +206,16 @@
|
||||
|
||||
<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>
|
||||
|
||||
</html>
|
@@ -1,74 +1,78 @@
|
||||
%#
|
||||
%# 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
|
||||
%#
|
||||
% layout 'AdminLTE', title => "Sme server 2 - Letsencrypt certificate", share_dir => './';
|
||||
%# css specific to this panel:
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
<!-- needs moving -->
|
||||
<!-- reetp needs moving - probabyl not required -->
|
||||
|
||||
%= stylesheet '/css/letsencrypt.css'
|
||||
<!-- stylesheet '/css/letsencrypt.css' -->
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $lets_data->{trt}
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $lets_data->{trt} %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
|
||||
<h1><%=$title%></h1>
|
||||
|
||||
% if ( stash('modul')) {
|
||||
%= $c->render_to_string(inline => stash('modul') );
|
||||
<br>
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => stash('modul') ); %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
%if ($c->stash('first')) {
|
||||
<br><p>
|
||||
%=$c->render_to_string(inline =>$c->l($c->stash('first')))
|
||||
</p>
|
||||
|
||||
%} elsif ($c->stash('success')) {
|
||||
<div class="">
|
||||
<h2><%=$c->l('lets_Status_Report') %></h2><p>
|
||||
%= $c->l($c->stash('success'));
|
||||
</p>
|
||||
% if ($c->stash('first')) {
|
||||
<br>
|
||||
<div>
|
||||
<%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
|
||||
</div>
|
||||
|
||||
%} elsif ($c->stash('error')) {
|
||||
<div class="">
|
||||
<h2><%=$c->l('lets_Error_Status_Report') %></h2><p>
|
||||
%= $c->l($c->stash('error'));
|
||||
</p>
|
||||
% } elsif ($c->stash('success')) {
|
||||
<div class="text-success">
|
||||
<h2><%=$c->l('lets_Status_Report') %></h2>
|
||||
<div>
|
||||
<%= $c->l($c->stash('success')); %>
|
||||
</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.
|
||||
%#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") {
|
||||
%= include 'partials/_lets_LIST'
|
||||
%}
|
||||
<%= include 'partials/_lets_LIST' %>
|
||||
% }
|
||||
|
||||
% if ($lets_data->{trt} eq "PARAMS") {
|
||||
%= include 'partials/_lets_PARAMS'
|
||||
%}
|
||||
<%= include 'partials/_lets_PARAMS' %>
|
||||
% }
|
||||
|
||||
% if ($lets_data->{trt} eq "CHECKALLDOMAINS") {
|
||||
%= include 'partials/_lets_CHECKALLDOMAINS'
|
||||
%}
|
||||
<%= include 'partials/_lets_CHECKALLDOMAINS' %>
|
||||
% }
|
||||
|
||||
% if ($lets_data->{trt} eq "CHECKALLENABLEDDOMAINS") {
|
||||
%= include 'partials/_lets_CHECKALLENABLEDDOMAINS'
|
||||
%}
|
||||
<%= include 'partials/_lets_CHECKALLENABLEDDOMAINS' %>
|
||||
% }
|
||||
|
||||
% if ($lets_data->{trt} eq "CHECKONEDOMAIN") {
|
||||
%= include 'partials/_lets_CHECKONEDOMAIN'
|
||||
%}
|
||||
|
||||
|
||||
<%= include 'partials/_lets_CHECKONEDOMAIN' %>
|
||||
% }
|
||||
|
||||
</div>
|
||||
%end
|
@@ -5,16 +5,17 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $c->stash("ret")
|
||||
%= dumper $c->param("localnetwork");
|
||||
%= dumper $c->stash("ln_datas");
|
||||
%= dumper $c->param("deletehost");
|
||||
</p>
|
||||
<div>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $c->stash("ret") %>
|
||||
<%= dumper $c->param("localnetwork") %>
|
||||
<%= dumper $c->stash("ln_datas") %>
|
||||
<%= dumper $c->param("deletehost") %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
|
||||
<h1><%= $title%></h1>
|
||||
|
||||
%= $modul
|
||||
|
||||
% if ($ln_datas->{trt} eq 'ADD') {
|
||||
@@ -30,4 +31,5 @@
|
||||
%}
|
||||
|
||||
</div>
|
||||
|
||||
%end
|
||||
|
@@ -2,26 +2,33 @@
|
||||
|
||||
% content_for 'module' => begin
|
||||
|
||||
% if ( config 'debug' ) {
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
<!-- %= dumper $c->current_route -->
|
||||
<%= dumper $c->current_route %>
|
||||
% if ( stash 'trt' ) {
|
||||
%= dumper stash 'trt'
|
||||
<%= dumper stash 'trt' %>
|
||||
% }
|
||||
</div>
|
||||
% }
|
||||
|
||||
% if ( stash 'error' ) {
|
||||
<br><div class="">
|
||||
%= $c->render_to_string(inline => stash 'error')
|
||||
</div>
|
||||
<br>
|
||||
<div class="container text-center">
|
||||
<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');
|
||||
% if ( $trt eq 'RESET' ) {
|
||||
<br><div class=""><h2>
|
||||
%= $c->render_to_string(inline => l 'use_DESC_RESET')
|
||||
</h2></div>
|
||||
<br>
|
||||
<div>
|
||||
<h2><%= $c->render_to_string(inline => l 'use_DESC_RESET') %></h2>
|
||||
</div>
|
||||
% $btn = l('use_RESET');
|
||||
% }
|
||||
|
||||
@@ -36,9 +43,11 @@
|
||||
</div>
|
||||
<br>
|
||||
<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>
|
||||
<br>
|
||||
<br>
|
||||
<h1 class="text-center">
|
||||
%=l 'use_TITLE'
|
||||
</h1>
|
||||
@@ -55,16 +64,19 @@
|
||||
</div>
|
||||
<div class="input-group-text"><span class="bi bi-person-fill"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="input-group mb-1">
|
||||
<div class="form-floating">
|
||||
<input name='Password' id="Password" type="password" class="form-control" placeholder="<%=l 'PASSWORD'%>">
|
||||
<label for="Password">Password</label>
|
||||
<input type="password" name="Password" id="password" class="form-control" placeholder="<%=l 'PASSWORD'%>" autocomplete="on">
|
||||
<label for="password">Password</label>
|
||||
</div>
|
||||
<div class="input-group-text">
|
||||
<span id="togglePassword" class="bi bi-eye"></span>
|
||||
</div>
|
||||
<div class="input-group-text"><span class="bi bi-lock-fill"></span></div>
|
||||
</div>
|
||||
|
||||
%= hidden_field 'From' => $c->tx->req->url
|
||||
%= hidden_field 'Trt' => stash 'trt'
|
||||
<%= hidden_field 'From' => $c->tx->req->url %>
|
||||
<%= hidden_field 'Trt' => stash 'trt' %>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row">
|
||||
@@ -77,14 +89,19 @@
|
||||
<!-- /.col -->
|
||||
<div class="col-4">
|
||||
<div class="d-grid gap-2">
|
||||
<button type="submit" class="btn btn-primary">Login</button>
|
||||
<button type="submit" class="btn btn-primary btn-sm">Login</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
</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>
|
||||
<!-- /.login-card-body -->
|
||||
</div>
|
||||
|
@@ -8,14 +8,14 @@
|
||||
|
||||
<div class="card-body">
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
<div>
|
||||
<strong>Debug Info:</strong>
|
||||
<pre><%= dumper $c->current_route %></pre>
|
||||
</p>
|
||||
</div>
|
||||
% }
|
||||
|
||||
|
||||
% if (stash 'error') {
|
||||
<div class="">
|
||||
<div>
|
||||
<strong>Error:</strong><br>
|
||||
<%= $c->render_to_string(inline => stash 'error') %>
|
||||
</div>
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
<h1><%= $title %></h1>
|
||||
|
||||
<div class="">
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => stash 'modul') %>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
%#
|
||||
%# 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
|
||||
%#
|
||||
% layout 'AdminLTE', title => "Sme server 2 - NutUPS configuration", share_dir => './';
|
||||
%# css specific to this panel:
|
||||
@@ -9,52 +9,58 @@
|
||||
<div class="card-body">
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $nut_data->{trt}
|
||||
</pre>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $nut_data->{trt} %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
|
||||
<h1><%=$title%></h1>
|
||||
|
||||
% if ( stash('modul')) {
|
||||
%= $c->render_to_string(inline => stash('modul') );
|
||||
<%= $c->render_to_string(inline => stash('modul') ); %>
|
||||
% }
|
||||
|
||||
%if ($c->stash('first')) {
|
||||
<br><p>
|
||||
%=$c->render_to_string(inline =>$c->l($c->stash('first')))
|
||||
</p>
|
||||
|
||||
%} elsif ($c->stash('success')) {
|
||||
<div class="">
|
||||
<h2><%=$c->l('nut_Status_Report') %></h2><p>
|
||||
%= $c->l($c->stash('success'));
|
||||
</p>
|
||||
<br>
|
||||
<div>
|
||||
<%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
%} elsif ($c->stash('error')) {
|
||||
<div class="">
|
||||
<h2><%=$c->l('nut_Error_Status_Report') %></h2><p>
|
||||
%= $c->l($c->stash('error'));
|
||||
</p>
|
||||
% } elsif ($c->stash('success')) {
|
||||
<div class="text-success">
|
||||
<h2><%=$c->l('nut_Status_Report') %></h2>
|
||||
<div>
|
||||
<%= $c->l($c->stash('success')); %>
|
||||
</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.
|
||||
%#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") {
|
||||
%= include 'partials/_nut_STATUS'
|
||||
%}
|
||||
|
||||
<%= include 'partials/_nut_STATUS' %>
|
||||
% }
|
||||
|
||||
<br>
|
||||
|
||||
% if ($nut_data->{trt} eq "CONFIG") {
|
||||
%= include 'partials/_nut_CONFIG'
|
||||
%}
|
||||
|
||||
<%= include 'partials/_nut_CONFIG' %>
|
||||
% }
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
%end
|
@@ -26,7 +26,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<br>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %> </button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||
</div>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => 'ADD' %>
|
||||
@@ -28,7 +28,7 @@
|
||||
<th class="col-sm"><%=l 'DESCRIPTION_BRIEF' %></th>
|
||||
<th class="col-sm"><%=l 'dom_CONTENT' %></th>
|
||||
<th class="col-sm"><%=l 'dom_LABEL_NAMESERVERS'%></th>
|
||||
<th class="col-sm user-valign-center" colspan="2"><%=l 'ACTION' %></th>
|
||||
<th class="col-sm text-center" colspan="2"><%=l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
% my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
|
||||
% my $actionModify = qq{
|
||||
% <a href="domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name">
|
||||
% <button type='button' class="btn btn-primary" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
@@ -60,15 +60,15 @@
|
||||
% 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" title='$remove_text' >
|
||||
% <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>";
|
||||
%# $actionRemove = "<a href='domains2?CsrfDef=TOKEN&trt=DEL&Domain=" . $domain->{Domain} . "'>" . "<button class="" title=".l('REMOVE').">".l('REMOVE')."</button>" . "</a>";
|
||||
%};
|
||||
<td class="col-auto user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="col-auto user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<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>
|
||||
% }
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-auto">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn2 %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn2 %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -4,42 +4,42 @@
|
||||
|
||||
<form action="/smanager/domains2" method="POST">
|
||||
|
||||
<div>
|
||||
<%=l 'dom_DESC_CORPORATE_DNS' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label for="inputCorpDNSPrimary" class="col-form-label"><%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY' %></label>
|
||||
<div>
|
||||
<%=l 'dom_DESC_CORPORATE_DNS' %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'Forwarder' => $dom_datas->{forwarder} unless param 'Forwarder';
|
||||
<input type="text" name="Forwarder" id="inputCorpDNSPrimary" class="form-control" aria-describedby="inputCorpDNSPrimary" value="<%= $dom_datas->{forwarder} %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<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>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label for="inputCorpDNSPrimary" class="col-form-label"><%=l 'dom_LABEL_CORPORATE_DNS_PRIMARY' %></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'Forwarder' => $dom_datas->{forwarder} unless param 'Forwarder';
|
||||
<input type="text" name="Forwarder" id="inputCorpDNSPrimary" class="form-control" aria-describedby="inputCorpDNSPrimary" value="<%= $dom_datas->{forwarder} %>">
|
||||
</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 %></button>
|
||||
<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>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => $dom_datas->{trt} %>
|
||||
|
||||
<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>
|
||||
|
||||
|
@@ -4,84 +4,84 @@
|
||||
|
||||
<form action="/smanager/domains2" method="POST">
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<h2>
|
||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||
<%=l 'dom_CREATE_TITLE' %>
|
||||
% } else {
|
||||
<%=l 'dom_MODIFY_TITLE' %>
|
||||
% $btn = l('MODIFY');
|
||||
% }
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<%=l 'DOMAIN_NAME' %>
|
||||
<div>
|
||||
<h2>
|
||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||
<%=l 'dom_CREATE_TITLE' %>
|
||||
% } else {
|
||||
<%=l 'dom_MODIFY_TITLE' %>
|
||||
% $btn = l('MODIFY');
|
||||
% }
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||
% param 'Domain' => $dom_datas->{domain} unless param 'Domain';
|
||||
<%= text_field 'Domain' %>
|
||||
% } else {
|
||||
<%= hidden_field 'Domain' => $dom_datas->{domain} %>
|
||||
<%= $dom_datas->{domain} %>
|
||||
% }
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label for="inputDomainDesc" class="col-form-label"><%=l 'DESCRIPTION_BRIEF' %></label>
|
||||
<div class="row g-3 algn-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="Domain" class="col-form-label"><%=l 'DOMAIN_NAME' %></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% if ( $dom_datas->{trt} eq "ADD" ) {
|
||||
% param 'Domain' => $dom_datas->{domain} unless param 'Domain';
|
||||
<input type="text" name="Domain" id="Domain" class="form-control" aria-describedby="inputDomain" value="<%= $dom_datas->{domain} %>">
|
||||
% } else {
|
||||
<%= hidden_field 'Domain' => $dom_datas->{domain} %>
|
||||
<%= $dom_datas->{domain} %>
|
||||
% }
|
||||
</div>
|
||||
</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>
|
||||
|
||||
<br>
|
||||
<%=l 'dom_CONTENT_FIELD_DESCRIPTION' %>
|
||||
<br><br>
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label for="inputDomainContent" class="col-form-label"><%= $c->l('dom_CONTENT') %></label>
|
||||
<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>
|
||||
<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>
|
||||
<br>
|
||||
<%=l 'dom_CONTENT_FIELD_DESCRIPTION' %>
|
||||
<br><br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label for="inputDomainNameServers" class="col-form-label"><%=l 'dom_LABEL_NAMESERVERS' %></label>
|
||||
<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>
|
||||
<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>
|
||||
<br>
|
||||
<%=l 'dom_DESC_NAMESERVERS' %>
|
||||
<br><br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<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>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => $dom_datas->{trt} %>
|
||||
|
||||
<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>
|
||||
|
||||
|
@@ -9,4 +9,4 @@
|
||||
% }
|
||||
<br>Copyright 1999-2006 Mitel Corporation<br>
|
||||
%= session 'copyRight'
|
||||
<br>Copyright (c) 2013-2024 Koozali Foundation Inc.<br>
|
||||
<br>Copyright (c) 2013-2024 Koozali Foundation Inc.<br>
|
||||
|
@@ -70,7 +70,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -59,7 +59,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -6,7 +6,7 @@
|
||||
<br>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %> </button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||
</div>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => 'ADD' %>
|
||||
@@ -24,7 +24,7 @@
|
||||
<tr>
|
||||
<th class="col-sm"><%= l 'GROUP' %></th>
|
||||
<th class="col-sm"><%= l 'DESCRIPTION' %></th>
|
||||
<th class="col-sm user-valign-center" colspan="2"><%= l 'ACTION' %></th>
|
||||
<th class="col-sm align-middle" colspan="2"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -33,29 +33,29 @@
|
||||
<td><%= $group->key %></td>
|
||||
<td><%= $group->prop('Description') %></td>
|
||||
|
||||
% my $modify_text = l('MODIFY'); # Localized text
|
||||
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
% my $group_name = $group->key; # group name extracted from the data structure
|
||||
|
||||
% my $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" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" 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="btn btn-primary" title='$remove_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
|
@@ -79,7 +79,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -22,7 +22,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<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 %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => $hos_datas->{trt} %>
|
||||
@@ -26,7 +26,7 @@
|
||||
<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="user-valign-center" colspan="2"><%= l 'ACTION' %></th>
|
||||
<th class="align-middle" colspan="2"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
%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" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
@@ -57,14 +57,14 @@
|
||||
%#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" title='$remove_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% }
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
|
||||
</tr>
|
||||
% }
|
||||
|
@@ -53,7 +53,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -77,7 +77,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -21,7 +21,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<br>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %> </button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||
</div>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => 'ADD'; %>
|
||||
@@ -36,7 +36,7 @@
|
||||
<tr>
|
||||
<th class="col-sm"><%= l 'NAME' %></th>
|
||||
<th class="col-sm"><%= l 'DESCRIPTION' %></th>
|
||||
<th class="col-sm user-valign-center" colspan="3"><%= l 'ACTION' %></th>
|
||||
<th class="col-sm align-middle" colspan="3"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
%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="btn btn-primary" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
@@ -74,7 +74,7 @@
|
||||
%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" title="$password_text - currently unset" >
|
||||
% <button type='button' class="btn btn-danger btn-sm" title="$password_text - currently unset" >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
@@ -82,7 +82,7 @@
|
||||
% } else {
|
||||
%$actionResetPw = qq{
|
||||
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name">
|
||||
% <button type='button' class="btn btn-primary" title='$password_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$password_text' >
|
||||
% $password_text
|
||||
% </button>
|
||||
% </a>
|
||||
@@ -97,15 +97,15 @@
|
||||
%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" title='$remove_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% }
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionResetPw)%></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<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>
|
||||
% }
|
||||
|
@@ -19,39 +19,37 @@
|
||||
<br>
|
||||
|
||||
|
||||
<div>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l 'PASSWORD_NEW' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<input name="newPass" id="newPass" type="password" class="form-control sme-password" placeholder="Password">
|
||||
</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>
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l 'PASSWORD_VERIFY_NEW' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<input name="newPassVerify" id="newPassVerify" type="password" class="form-control sme-password" placeholder="Password">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input name="newPassVerify" id="passVerify" type="password" class="form-control sme-password" placeholder="Password" autocomplete="on">
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<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 %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -5,7 +5,6 @@
|
||||
|
||||
<form action="/smanager/ibaysd" method="POST">
|
||||
|
||||
|
||||
<div>
|
||||
<h2><%=l 'iba_ADD_TITLE' %></h2>
|
||||
</div>
|
||||
@@ -36,7 +35,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputIbayDesc" class="col-form-label"><%= l 'DESCRIPTION' %></label>
|
||||
<label for="inputIbayDesc" class="col-form-label"><%= l 'DESCRIPTION' %></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'ibayDesc' => $iba_datas->{description} unless param 'ibayDesc';
|
||||
@@ -50,7 +49,6 @@
|
||||
<div class="col-md-2">
|
||||
<%= l 'GROUP' %>
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
% param 'group' => $iba_datas->{group} unless param 'group';
|
||||
%= select_field 'group' => $c->group_list_m(), class => "form-select"
|
||||
@@ -63,7 +61,6 @@
|
||||
<div class="col-md-2">
|
||||
<%= l 'iba_USER_ACCESS' %>
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
% param 'userAccess' => $iba_datas->{userAccess} unless param 'userAccess';
|
||||
%= select_field 'userAccess' => $c->userAccess_list_m(), class => "form-select"
|
||||
@@ -76,7 +73,6 @@
|
||||
<div class="col-md-2">
|
||||
%=l 'iba_PUBLIC_ACCESS'
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
% param 'publicAccess' => $iba_datas->{publicAccess} unless param 'publicAccess';
|
||||
%= select_field 'publicAccess' => $c->publicAccess_list_m(), class => "form-select"
|
||||
@@ -89,7 +85,6 @@
|
||||
<div class="col-md-2">
|
||||
<%=l 'iba_ALLOW_DYNAMIC_CONTENT' %>
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
% param 'CgiBin' => $iba_datas->{CgiBin} unless param 'CgiBin';
|
||||
%= select_field 'CgiBin' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select"
|
||||
@@ -102,7 +97,6 @@
|
||||
<div class="col-md-2">
|
||||
<%=l 'iba_HTTPS_Only' %>
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
% param 'SSL' => $iba_datas->{SSL} unless param 'SSL';
|
||||
%= select_field 'SSL' => [[ (l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select"
|
||||
@@ -113,7 +107,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -1,25 +1,42 @@
|
||||
<% use POSIX qw(strftime); %>
|
||||
<div id="">
|
||||
<% if (! $c->session->{PwdSet} ) { %>
|
||||
<div class=""><h5>
|
||||
Warning: you have not yet changed the default system password.</h5></div>
|
||||
<% } %>
|
||||
<% if ( $c->is_unsafe ) { %>
|
||||
<div class=""><h5>
|
||||
Warning: a reconfigure and reboot is required before proceeding! 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 class=""><h5>
|
||||
Warning: Development or debug mode enabled AND public access is offered !
|
||||
</h5></div>
|
||||
<% } %>
|
||||
% use POSIX qw(strftime);
|
||||
|
||||
<div>
|
||||
% if (! $c->session->{PwdSet} ) {
|
||||
<div>
|
||||
<h5 class="text-danger">
|
||||
Warning: you have not yet changed the default system password.
|
||||
</h5>
|
||||
</div>
|
||||
% }
|
||||
|
||||
% if ( $c->is_unsafe ) {
|
||||
<div>
|
||||
<h5 class="text-danger">
|
||||
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; %>
|
||||
<% if ( "$curdate" >= "20290531" ) { %>
|
||||
<div class=""><h5>
|
||||
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.
|
||||
Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version. 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>
|
||||
<% } %>
|
||||
|
||||
% if ( "$curdate" >= "20290531" ) {
|
||||
<div>
|
||||
<h5>
|
||||
URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE.<br>
|
||||
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>
|
@@ -53,7 +53,7 @@
|
||||
$('#menuadm').toggle({ duration: 300 });
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('.section-title').click(function() {
|
||||
var $section = $(this).parent().next('div');
|
||||
if(!$section.length){
|
||||
|
@@ -1,49 +1,68 @@
|
||||
%#
|
||||
%# 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>
|
||||
|
||||
<!-- reetp Move to JS file -->
|
||||
<!--
|
||||
<script>
|
||||
window.onload = function() {
|
||||
SelectInput();
|
||||
};
|
||||
</script>
|
||||
|
||||
-->
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $lets_data
|
||||
<%= dumper $lets_data %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
|
||||
% my $btn = l('lets_APPLY');
|
||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||
%= hidden_field 'trt' => $lets_data->{trt}
|
||||
|
||||
<!-- reetp could change this to a form -->
|
||||
|
||||
<!-- <form action="/smanager/letsencryptu" method="POST"> -->
|
||||
|
||||
%# Inputs etc in here.
|
||||
|
||||
<h1 class=""><%=l('lets_Check_all_enabled_domains')%></h1>
|
||||
|
||||
<h2 class=""><%=l('lets_Loop_through_checking_the_letsencrypt')%></h2>
|
||||
|
||||
<span class="">
|
||||
%=l('lets_Enabled_domains_check_result')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'EnabledDomainsCheck' => $lets_data->{EnabledDomainsCheck} unless param 'EnabledDomainsCheck';
|
||||
%= text_area 'EnabledDomainsCheck', cols=>40, rows=>10, Readonly=>'true'
|
||||
</span>
|
||||
<h1><%= l ('lets_Check_all_enabled_domains')%></h1>
|
||||
|
||||
<br>
|
||||
|
||||
<span class="">
|
||||
%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>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
<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>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
@@ -1,59 +1,77 @@
|
||||
%#
|
||||
%# 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>
|
||||
|
||||
<!--
|
||||
<script>
|
||||
window.onload = function() {
|
||||
SelectInput();
|
||||
};
|
||||
</script>
|
||||
|
||||
-->
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $lets_data
|
||||
</pre>
|
||||
% }
|
||||
|
||||
|
||||
% my $btn = l('lets_APPLY');
|
||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||
%= hidden_field 'trt' => $lets_data->{trt}
|
||||
|
||||
<!-- <form action="/smanager/letsencrypt" method="POST"> -->
|
||||
|
||||
%# Inputs etc in here.
|
||||
|
||||
<h1 class=""><%=l('lets_Check_just_one_domain')%></h1>
|
||||
|
||||
<h2 class=""><%=l('lets_Loop_through_and_check_the')%></h2>
|
||||
|
||||
<p><span class="">
|
||||
%=l('lets_Domains_name')
|
||||
</span>
|
||||
<span class="">
|
||||
<h1><%=l('lets_Check_just_one_domain')%></h1>
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%=l('lets_Loop_through_and_check_the')%></h2>
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<!-- Domain being checked -->
|
||||
|
||||
<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>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<span class="">
|
||||
%=l('lets_One_domain_check_result')
|
||||
</span>
|
||||
<span class="">
|
||||
|
||||
<!-- 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'
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<span class="">
|
||||
%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>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
|
||||
|
||||
% 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>
|
||||
|
@@ -1,152 +1,208 @@
|
||||
%#
|
||||
%# 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>
|
||||
|
||||
<!-- reetp Move to JS file -->
|
||||
<!--
|
||||
<script>
|
||||
window.onload = function() {
|
||||
SelectInput();
|
||||
};
|
||||
</script>
|
||||
|
||||
-->
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $lets_data
|
||||
<%= dumper $lets_data %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% my $btn = l('lets_APPLY');
|
||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||
%= hidden_field 'trt' => $lets_data->{trt}
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<!-- reetp could change this to a form -->
|
||||
|
||||
<!-- <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.
|
||||
|
||||
<div>
|
||||
|
||||
<a href='letsencryptd?trt=PARAMS' class="">
|
||||
%= l('lets_CONFIG')
|
||||
</a>
|
||||
%#= link_to l('lets_CONFIG'), 'letsencryptd?trt=PARAMS' , class=> 'link link2'
|
||||
|
||||
|
||||
<a href='letsencryptd?trt=CHECKALLDOMAINS' class="">
|
||||
%= l('lets_CHECK_ALL_DOMAINS')
|
||||
</a>
|
||||
%#= link_to l('lets_CHECK_ALL_DOMAINS'), 'letsencryptd?trt=CHECKALLDOMAINS' , class=> 'link link3'
|
||||
|
||||
|
||||
<a href='letsencryptd?trt=CHECKALLENABLEDDOMAINS' class="">
|
||||
%= l('lets_CHECK_ALL_ENABLED_DOMAINS')
|
||||
</a>
|
||||
%#= link_to l('lets_CHECK_ALL_ENABLED_DOMAINS'), 'letsencryptd?trt=CHECKALLENABLEDDOMAINS' , class=> 'link link4'
|
||||
|
||||
|
||||
%# 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>
|
||||
|
||||
|
||||
<h2 class=""><%=l('lets_For_this_Server')%></h2>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_Internal_IP')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
|
||||
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
|
||||
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_External_Interface_IP')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
|
||||
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
|
||||
|
||||
%#= 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>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_Internet_IP')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
|
||||
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
||||
|
||||
<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'
|
||||
|
||||
|
||||
<!-- </form> -->
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
<h2><%=l('lets_For_this_Server') %></h2>
|
||||
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<h2 class=""><%=l('lets_Current_certificate_details')%></h2>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_Issuer')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
|
||||
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_Expiry')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'Expiry' => $lets_data->{Expiry} unless param 'Expiry';
|
||||
%= text_field 'Expiry', size => '50', class => "" , pattern=>'.*' , placeholder=>'Expiry', Readonly=>'true'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_Not_Before')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'NotBefore' => $lets_data->{NotBefore} unless param 'NotBefore';
|
||||
%= text_field 'NotBefore', size => '50', class => "" , pattern=>'.*' , placeholder=>'NotBefore', Readonly=>'true'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<h2 class=""><%=l('lets_List_of_Domains_and_Hosts')%></h2>
|
||||
|
||||
<br />
|
||||
<table class="table table-bordered">
|
||||
<thead class="">
|
||||
<tr table-head-row>
|
||||
<th class=""><%=l('lets_Domain_name_/_HOSTNAME')%></th>
|
||||
<th class=""><%=l('lets_Brief_description')%></th>
|
||||
<th class=""><%=l('lets_Content')%></th>
|
||||
<th class=""><%=l('lets_LABEL_NAMESERVERS')%></th>
|
||||
<th class=""><%=l('lets_LABEL_POINT')%></th>
|
||||
<th class=""><%=l('lets_LABEL_LECERT')%></th>
|
||||
<th class=""><%=l('lets_IS_IN_CERT')%></th>
|
||||
<th class=""><%=l('lets_CHECK')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="">
|
||||
% my $control_data = $c->stash('DomainList');
|
||||
% foreach my $row (@$control_data) {
|
||||
<tr class="">
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Domain name / HOSTNAME'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Brief description'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-Content'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_NAMESERVERS'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_POINT'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-LABEL_LECERT'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-IS_IN_CERT'})%></td>
|
||||
<td class=""><%=$c->render_to_string(inline=>$row->{'Table1-CHECK'})%></td>
|
||||
</tr>
|
||||
%}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_Internal_IP') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'InternalIP' => $lets_data->{InternalIP} unless param 'InternalIP';
|
||||
%= text_field 'InternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternalIP', Readonly=>'true'
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_External_Interface_IP') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'ExternalIP' => $lets_data->{ExternalIP} unless param 'ExternalIP';
|
||||
%= text_field 'ExternalIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'ExternalIP', Readonly=>'true'
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_Internet_IP') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'InternetIP' => $lets_data->{InternetIP} unless param 'InternetIP';
|
||||
%= text_field 'InternetIP', size => '50', class => "" , pattern=>'.*' , placeholder=>'InternetIP', Readonly=>'true'
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<h2><%=l('lets_Current_certificate_details') %></h2>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_Issuer') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% param 'Issuer' => $lets_data->{Issuer} unless param 'Issuer';
|
||||
%= text_field 'Issuer', size => '50', class => "" , pattern=>'.*' , placeholder=>'Issuer', Readonly=>'true'
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
</div>
|
||||
|
@@ -1,130 +1,152 @@
|
||||
%#
|
||||
%# 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>
|
||||
|
||||
<!-- reetp This needs fixing -->
|
||||
<!--
|
||||
<script>
|
||||
window.onload = function() {
|
||||
SelectInput();
|
||||
};
|
||||
</script>
|
||||
|
||||
-->
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $lets_data
|
||||
<%= dumper $lets_data %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% my $btn = l('lets_APPLY');
|
||||
%= form_for "letsencryptu" => (method => 'POST') => begin
|
||||
|
||||
<form action="/smanager/letsencryptu" method="POST">
|
||||
|
||||
% param 'trt' => $lets_data->{trt} unless param 'trt';
|
||||
%= hidden_field 'trt' => $lets_data->{trt}
|
||||
%# Inputs etc in here.
|
||||
|
||||
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:')%></h2>
|
||||
|
||||
<p class="">
|
||||
%=l('lets_CONFIG_LETSENCRYPT')
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_SERVICE_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
%# my @status_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']];
|
||||
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
|
||||
%# param 'status' => $lets_data->{status} unless param 'status';
|
||||
%= select_field 'status' => @status_options, class => ""
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_HOOKSCRIPT_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
|
||||
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
|
||||
%= select_field 'hookScript' => @hookScript_options, class => ""
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_HOSTOVERRIDE_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
% my @hostOverride_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
|
||||
% param 'hostOverride' => $lets_data->{hostOverride} unless param 'hostOverride';
|
||||
%= select_field 'hostOverride' => @hostOverride_options, class => ""
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_ACCEPT_TERMS_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
% my @ACCEPT_TERMS_options = [['Disabled' => 'disabled'], ['Yes' => 'yes']];
|
||||
% param 'ACCEPT_TERMS' => $lets_data->{ACCEPT_TERMS} unless param 'ACCEPT_TERMS';
|
||||
%= select_field 'ACCEPT_TERMS' => @ACCEPT_TERMS_options, class => ""
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
<h2 class=""><%=l('lets_Manage_letsencrypt-config_settings:') %></h2>
|
||||
|
||||
<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>
|
||||
<span class="">
|
||||
%=l('lets_KEYSIZE_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
% my @keysize_options = [['2048' => '2048'], ['3072' => '3072'], ['4096' => '4096']];
|
||||
% param 'keysize' => $lets_data->{keysize} unless param 'keysize';
|
||||
%= select_field 'keysize' => @keysize_options, class => ""
|
||||
<div>
|
||||
<%= l ('lets_CONFIG_LETSENCRYPT') %>
|
||||
</div>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_SERVICE_STATUS') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled'], ['TEST' => 'test']], $lets_data->{status});
|
||||
%= select_field 'status' => @status_options, class => "form-select"
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('lets_CONFIGUREMODE_STATUS')
|
||||
</span>
|
||||
<span class="">
|
||||
% my @configure_options = [['ALL' => 'all'], ['Domains' => 'domains'], ['HOSTS' => 'hosts'], ['NONE' => 'none']];
|
||||
% param 'configure' => $lets_data->{configure} unless param 'configure';
|
||||
%= select_field 'configure' => @configure_options, class => ""
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l ('lets_HOOKSCRIPT_STATUS') %>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
% my @hookScript_options = [['Disabled' => 'disabled'], ['Enabled' => 'enabled']];
|
||||
% param 'hookScript' => $lets_data->{hookScript} unless param 'hookScript';
|
||||
%= select_field 'hookScript' => @hookScript_options, class => "form-select"
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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="">
|
||||
%= submit_button l('lets_Save'), class => ""
|
||||
</span>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= 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.
|
||||
%end
|
||||
<br>
|
||||
|
||||
|
||||
<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>
|
||||
|
@@ -1,76 +1,97 @@
|
||||
<div>
|
||||
|
||||
% my $retref= $c->stash("ret");
|
||||
% my %ret;
|
||||
% unless (length($retref)) {%ret = (ret=>"");}
|
||||
% else {%ret = %$retref;}
|
||||
|
||||
% my @vars = split(",",$ret{vars});
|
||||
% my $var1 = @vars[0];
|
||||
% my $var2 = @vars[1];
|
||||
% my $var3 = @vars[2];
|
||||
% my $var4 = @vars[3];
|
||||
% my $var5 = @vars[4];
|
||||
% my $var6 = @vars[5];
|
||||
% my $retref = $c->stash("ret");
|
||||
% my %ret = $retref ? %$retref : (ret => "");
|
||||
% my @vars = split(/,/, $ret{vars} // '');
|
||||
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||
|
||||
%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>
|
||||
% if ($c->app->config->{debug}) {
|
||||
<br>
|
||||
<pre>
|
||||
<%= dumper { ret_data => \%ret } %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
%= form_for '/localnetworksb' => (method => 'POST') => begin
|
||||
<h2>
|
||||
%=l "ln_ADD_TITLE"
|
||||
</h2>
|
||||
<p>
|
||||
%= $c->render_to_string(inline => l('ln_ADD_DESC'));
|
||||
</p>
|
||||
<br>
|
||||
<span class="">
|
||||
%=l "NETWORK"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'networkAddress'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "ln_SUBNET_MASK"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'networkMask'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "ROUTER"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'networkRouter'
|
||||
</span>
|
||||
<br><br>
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
%end
|
||||
|
||||
% if ($ret{ret} eq "") {
|
||||
<div>
|
||||
<%= l "ln_FIRSTPAGE_DESC" %>
|
||||
</div>
|
||||
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
<div>
|
||||
<!-- <h2> Operation Status Report</h2> -->
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% } else {
|
||||
<div class="text-danger">
|
||||
<!-- <h2> Operation Status Report - Error</h2> -->
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<br>
|
||||
|
||||
% my $network_db = esmith::NetworksDB::UTF8->open() || die "Couldn't open NetworksDB db";
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<div>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $c->stash("ret") %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<form action="/smanager/localnetworksb" method="POST">
|
||||
<div>
|
||||
<h2><%=l "ln_ADD_TITLE" %></h2>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<%= $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>
|
||||
|
||||
|
@@ -4,62 +4,82 @@
|
||||
% my $deletehosts = $ln_datas->{deletehosts};
|
||||
% my $subnet = $ln_datas->{subnet};
|
||||
% my $router = $ln_datas->{router};
|
||||
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $c->stash("ret")
|
||||
%= dumper %$ln_datas
|
||||
%= dumper $deletehosts
|
||||
</p>
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $c->stash("ret") %>
|
||||
<%= dumper %$ln_datas %>
|
||||
<%= dumper $deletehosts %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
%= form_for '/localnetworkse' => (method => 'POST') => begin
|
||||
<h2>
|
||||
%=l "ln_REMOVE_TITLE"
|
||||
</h2>
|
||||
<p>
|
||||
%=l "ln_REMOVE_DESC"
|
||||
</p>
|
||||
<form action="/smanager/localnetworkse" method="POST">
|
||||
|
||||
<div>
|
||||
<h2><%= l "ln_REMOVE_TITLE" %></h2>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= l "ln_REMOVE_DESC" %>
|
||||
</div>
|
||||
|
||||
<br><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 disabled type="text" name="networkAddress" id="inputNetwork" class="form-control" aria-describedby="inputNetwork" value="<%= $localnetwork %>" >
|
||||
</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 disabled type="text" name="networkMask" id="inputNetworkMask" class="form-control" aria-describedby="inputNetworkMask" value="<%= $subnet %>" >
|
||||
</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 disabled type="text" name="networkRouter" id="inputNetworkRouter" class="form-control" aria-describedby="inputNetworkRouter" value="<%= $router %>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
% if ($deletehosts) {
|
||||
<br>
|
||||
<span class="">
|
||||
%=l "NETWORK"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$localnetwork
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "ln_SUBNET_MASK"
|
||||
</span>
|
||||
<span class="">
|
||||
%= $subnet
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "ROUTER"
|
||||
</span>
|
||||
<span class="">
|
||||
%= $router
|
||||
</span>
|
||||
<br><br>
|
||||
% if($deletehosts) {
|
||||
|
||||
<div>
|
||||
<%= $c->l("ln_REMOVE_HOSTS_DESC") %>
|
||||
</div>
|
||||
<br>
|
||||
%=$c->l("ln_REMOVE_HOSTS_DESC")
|
||||
<br>
|
||||
<span class="">
|
||||
%= $c->l("ln_REMOVE_HOSTS_LABEL")
|
||||
</span>
|
||||
<span class="">
|
||||
%=check_box deletehost=>1, checked=>1
|
||||
</span>
|
||||
<div class="text-danger align-bottom">
|
||||
<%= $c->l("ln_REMOVE_HOSTS_LABEL") %>  <input type="checkbox" name="deletehost">
|
||||
</div>
|
||||
<br><br>
|
||||
%}
|
||||
%= hidden_field localnetwork=>$localnetwork
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
%end
|
||||
% }
|
||||
|
||||
<%= 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>
|
||||
|
@@ -1,108 +1,96 @@
|
||||
<div>
|
||||
% my $btn = l('ln_LOCALNETWORK_ADD');
|
||||
%= form_for '/localnetworksa' => (method => 'POST') => begin
|
||||
|
||||
% my $retref= $c->stash("ret");
|
||||
% my %ret;
|
||||
% unless (length($retref)) {%ret = (ret=>"");}
|
||||
% else {%ret = %$retref;}
|
||||
<form action="/smanager/localnetworksa" method="POST">
|
||||
|
||||
% 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>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="">
|
||||
%=l 'NETWORK'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'ln_SUBNET_MASK'
|
||||
</th>
|
||||
|
||||
<th class="">
|
||||
%=l 'ln_NUMBER_OF_HOSTS'
|
||||
</th>
|
||||
% my $retref = $c->stash("ret");
|
||||
% my %ret = $retref ? %$retref : (ret => "");
|
||||
% my @vars = split(/,/, $ret{vars} // '');
|
||||
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||
|
||||
<th class="">
|
||||
%=l 'ROUTER'
|
||||
</th>
|
||||
% if ($c->app->config->{debug}) {
|
||||
<br>
|
||||
<pre>
|
||||
<%= dumper { ret_data => \%ret } %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
<th class="">
|
||||
%=l 'ACTION'
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
% foreach my $localnetwork (@$localnetworks )
|
||||
% {
|
||||
% my ($num_hosts) = esmith::util::computeHostRange( $localnetwork->key, $localnetwork->prop('Mask') );
|
||||
% my $removable = $localnetwork->prop('Removable') || "yes";
|
||||
% my $system = $localnetwork->prop('SystemLocalNetwork') || "no";
|
||||
% if ( $system eq "yes" ) { $removable = "no"; }
|
||||
% if ($ret{ret} eq "") {
|
||||
<%= l "ln_FIRSTPAGE_DESC" %>
|
||||
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
<h2> Operation Status Report</h2>
|
||||
<br>
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% } else {
|
||||
<h2> Operation Status Report - Error</h2>
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<h2> Operation Status Report - Error</h2>
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<br><br>
|
||||
|
||||
% my $btn = l('ln_LOCALNETWORK_ADD');
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
% my $numlocalnetworks = @$localnetworks;
|
||||
% if ($numlocalnetworks == 0) {
|
||||
<%= l 'ln_LOCAL_NETWORK_NONE' %>
|
||||
% } else {
|
||||
<br>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
%= t td => (class => "") => $localnetwork->key
|
||||
%= t td => (class => "") => $localnetwork->prop('Mask')
|
||||
%= t td => (class => "") => $num_hosts
|
||||
%= t td => (class => "") => $localnetwork->prop('Router')
|
||||
%my $actionRemove = ' ';
|
||||
%if ($removable eq "yes") {
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $local_network_entry = $localnetwork->key;
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%$actionRemove = qq{
|
||||
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
|
||||
% <button type='button' class="" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% }
|
||||
<td class=""><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<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>
|
||||
% }
|
||||
</tbody>
|
||||
</table>
|
||||
%= hidden_field 'trt' => $ln_datas->{trt}
|
||||
%}
|
||||
</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>
|
||||
|
@@ -1,3 +1,5 @@
|
||||
|
||||
<!-- Not used -->
|
||||
<div class="login-page bg-body-secondary app-loaded">
|
||||
<!-- /.login-logo -->
|
||||
<br>
|
||||
@@ -38,7 +40,7 @@
|
||||
<!-- /.col -->
|
||||
<div class="col-4">
|
||||
<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>
|
||||
<!-- /.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
|
||||
|
||||
% content_for 'end' => begin
|
||||
<div id="" class="">
|
||||
content_end
|
||||
<div>
|
||||
content_end
|
||||
</div>
|
||||
% end
|
||||
|
||||
<div id="">
|
||||
<div>
|
||||
<p> < %= $title % ></p><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>
|
||||
|
||||
<p>
|
||||
%= link_to Welcome => '/'
|
||||
</p>
|
||||
|
@@ -1,163 +1,232 @@
|
||||
%#
|
||||
%# 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>
|
||||
<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}
|
||||
|
||||
<form action="/smanager/nutupsu" method="POST">
|
||||
|
||||
%# Inputs etc in here.
|
||||
|
||||
<h2 class=""><%=l('nut_Manage_Nutups-config_settings:')%></h2>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_Nut_status')
|
||||
</span>
|
||||
<span class="">
|
||||
<!-- 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 => "", 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>
|
||||
% 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>
|
||||
|
||||
<div class="">
|
||||
<h2 class=""><%=l('nut_if_Net_Client')%></h2>
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_SlaveUPS_UPSNAME@IP')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
|
||||
%= text_field 'SlaveUPS_Name', size => '50', class => "" , pattern=>'.*' , placeholder=>'upsname@IP'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_SlaveUPS_Password')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'SlaveUPS_Password' => $nut_data->{SlaveUPS_Password} unless param 'SlaveUPS_Password';
|
||||
%=password_field 'SlaveUPS_Password', class => ""
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
` <h2 class=""><%=l('nut_if_genericups')%></h2>
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_UPS_Generic_Type')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'UPS_gen_Type' => $nut_data->{UPS_gen_Type} unless param 'UPS_gen_Type';
|
||||
%= text_field 'UPS_gen_Type', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Type'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_UPS_Generic_Manufacturer')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'UPS_gen_Mfr' => $nut_data->{UPS_gen_Mfr} unless param 'UPS_gen_Mfr';
|
||||
%= text_field 'UPS_gen_Mfr', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Mfr'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l('nut_UPS_Generic_Model')
|
||||
</span>
|
||||
<span class="">
|
||||
% param 'UPS_gen_Model' => $nut_data->{UPS_gen_Model} unless param 'UPS_gen_Model';
|
||||
%= text_field 'UPS_gen_Model', size => '50', class => "" , pattern=>'.*' , placeholder=>'UPS_gen_Model'
|
||||
<br>
|
||||
</span>
|
||||
</p>
|
||||
` </div>
|
||||
|
||||
<span class="">
|
||||
%= submit_button l('nut_Save'), class => ""
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
<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>
|
||||
|
||||
</div>
|
@@ -1,44 +1,47 @@
|
||||
%#
|
||||
%# 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>
|
||||
|
||||
<!--
|
||||
<script>
|
||||
window.onload = function() {
|
||||
SelectInput();
|
||||
SelectInput();
|
||||
};
|
||||
|
||||
</script>
|
||||
-->
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
%= dumper $nut_data
|
||||
<%= dumper $nut_data %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
|
||||
% my $btn = l('nut_APPLY');
|
||||
%= form_for "nutupsu" => (method => 'POST') => begin
|
||||
|
||||
<form action="/smanager/nutupsu" method="POST">
|
||||
% param 'trt' => $nut_data->{trt} unless param 'trt';
|
||||
%= hidden_field 'trt' => $nut_data->{trt}
|
||||
<%= hidden_field 'trt' => $nut_data->{trt} %>
|
||||
|
||||
%# Inputs etc in here.
|
||||
|
||||
<div class="">
|
||||
|
||||
|
||||
<a href='nutupsd?trt=CONFIG' class="">
|
||||
%= l('nut_Configure_NutUPS')
|
||||
</a>
|
||||
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
|
||||
|
||||
|
||||
<div>
|
||||
<a href='nutupsd?trt=CONFIG' class = "btn btn-sm btn-primary">
|
||||
<%= l ('nut_Configure_NutUPS') %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<h2 class=""><%=l('nut_Status_of_the_controlled_UPS')%></h2>
|
||||
|
||||
<p class="">
|
||||
%=l('nut_Descriptive_paragraph')
|
||||
</p>
|
||||
|
||||
<!--
|
||||
<br>
|
||||
|
||||
<h2><%= l ('nut_Status_of_the_controlled_UPS')%></h2>
|
||||
|
||||
<div >
|
||||
<%= l ('nut_Descriptive_paragraph') %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!--
|
||||
<span class="">
|
||||
%=l('nut_Status_(from_upsc)')
|
||||
</span>
|
||||
@@ -47,10 +50,11 @@
|
||||
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
|
||||
</span>
|
||||
<br>
|
||||
-->
|
||||
|
||||
%= include 'partials/_nut_UPS_STATUS'
|
||||
|
||||
-->
|
||||
|
||||
<%= include 'partials/_nut_UPS_STATUS' %>
|
||||
|
||||
%# Probably finally by a submit.
|
||||
%end
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
@@ -1,45 +1,105 @@
|
||||
<h1>UPS Status</h1>
|
||||
%= stylesheet '/css/nut_ups-status-page.css'
|
||||
<h2>UPS Status</h2>
|
||||
|
||||
<div class="container-md">
|
||||
<div>
|
||||
<h2>Device Information</h2>
|
||||
<table class="table table-bordered">
|
||||
<tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr>
|
||||
<tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr>
|
||||
<tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
|
||||
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Battery Status</h2>
|
||||
<table class="table table-bordered">
|
||||
<tr><td>Charge:</td><td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td></tr>
|
||||
<tr><td>Runtime:</td><td><%= sprintf("%.2f", $nut_data->{'ups_data'}->{'battery.runtime'} / 60) %> minutes</td></tr>
|
||||
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'battery.voltage'} %>V</td></tr>
|
||||
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'battery.type'} %></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Input Power</h2>
|
||||
<table class="table table-bordered">
|
||||
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr>
|
||||
<tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr>
|
||||
<tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr>
|
||||
<tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr>
|
||||
<tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>UPS Status</h2>
|
||||
<table class="table table-bordered">
|
||||
<tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr>
|
||||
<tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr>
|
||||
<tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr>
|
||||
<tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr>
|
||||
<tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<h2>Device Information</h2>
|
||||
<table class="table table-bordered nutTable">
|
||||
<tr>
|
||||
<td>Manufacturer:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Model:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'device.model'} %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Serial:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Type:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'device.type'} %></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<h2>Battery Status</h2>
|
||||
<table class="table table-bordered nutTable">
|
||||
<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>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<h2>Input Power</h2>
|
||||
<table class="table table-bordered nutTable">
|
||||
<tr>
|
||||
<td>Voltage:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nominal Voltage:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sensitivity:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Transfer High:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Transfer Low:</td>
|
||||
<td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<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>
|
@@ -1,95 +1,122 @@
|
||||
<div>
|
||||
|
||||
% my $retref= $c->stash("ret");
|
||||
% my %ret;
|
||||
% unless (length($retref)) {%ret = (ret=>"");}
|
||||
% else {%ret = %$retref;}
|
||||
|
||||
% my @vars = split(",",$ret{vars});
|
||||
% my $var1 = @vars[0];
|
||||
% my $var2 = @vars[1];
|
||||
% my $var3 = @vars[2];
|
||||
% my $var4 = @vars[3];
|
||||
% my $var5 = @vars[4];
|
||||
% my $var6 = @vars[5];
|
||||
% my $retref = $c->stash("ret");
|
||||
% my %ret = $retref ? %$retref : (ret => "");
|
||||
% my @vars = split(/,/, $ret{vars} // '');
|
||||
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||
|
||||
<br>
|
||||
%if ($ret{'ret'} eq "") {
|
||||
|
||||
%} elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
<div class="">
|
||||
<!--<h2> Operation Status Report</h2>-->
|
||||
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
|
||||
</div>
|
||||
%} else {
|
||||
<div class="">
|
||||
<!--<h2> Operation Status Report - Error</h2>-->
|
||||
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
|
||||
</div>
|
||||
%}
|
||||
<br />
|
||||
% my $btn = l('ADD');
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $c->stash("ret")
|
||||
</p>
|
||||
% }
|
||||
|
||||
%= form_for '/portforwardingb' => (method => 'POST') => begin
|
||||
<h2>
|
||||
%=l "pf_CREATE_RULE"
|
||||
</h2>
|
||||
<p>
|
||||
%=l "pf_SUMMARY_ADD_DESC"
|
||||
</p><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_PROTOCOL"
|
||||
</span>
|
||||
<span class="">
|
||||
%=select_field 'proto'=>["TCP","UDP"]
|
||||
</span><br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_SOURCE_PORT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'sport'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_DESTINATION_PORT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'dport'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_DESTINATION_HOST"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'dhost'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_ALLOW_HOSTS"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'allow'
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_RULE_COMMENT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=text_field 'cmmnt'
|
||||
</span>
|
||||
<br><br>
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
|
||||
%end
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $c->stash("ret") %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
% if ($ret{'ret'} eq "") {
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION')); %>
|
||||
</div>
|
||||
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
<div>
|
||||
<!--<h2> Operation Status Report</h2>-->
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% } else {
|
||||
<div class="text-danger">
|
||||
<!--<h2> Operation Status Report - Error</h2>-->
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<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>
|
@@ -1,73 +1,98 @@
|
||||
<div>
|
||||
|
||||
% my $btn = l('REMOVE');
|
||||
% my $proto = $pf_datas->{proto};
|
||||
% my $sport = $pf_datas->{sport};
|
||||
% my $dport = $pf_datas->{dport};
|
||||
% my $dhost = $pf_datas->{dhost};
|
||||
% my $cmmnt = $pf_datas->{cmmnt};
|
||||
% my $allow = $pf_datas->{allow};
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $c->stash("ret")
|
||||
%= dumper %$pf_datas
|
||||
</p>
|
||||
% }
|
||||
|
||||
%= form_for '/portforwardinge' => (method => 'POST') => begin
|
||||
<br>
|
||||
%= l "pf_SUMMARY_REMOVE_DESC"
|
||||
</p><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_PROTOCOL"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$proto
|
||||
</span><br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_SOURCE_PORT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$sport
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_DESTINATION_HOST"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$dport
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_LABEL_DESTINATION_PORT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$dhost
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_RULE_COMMENT"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$cmmnt
|
||||
</span>
|
||||
<br><br>
|
||||
<span class="">
|
||||
%=l "pf_ALLOW_HOSTS"
|
||||
</span>
|
||||
<span class="">
|
||||
%=$allow
|
||||
</span>
|
||||
<br><br>
|
||||
%#}
|
||||
%= hidden_field sport=>$sport
|
||||
%= hidden_field proto=>$proto
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
|
||||
%end
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $c->stash("ret") %>
|
||||
<%= dumper %$pf_datas %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
<form action="/smanager/portforwardinge" method="POST">
|
||||
|
||||
<br>
|
||||
<div>
|
||||
<%= l 'pf_SUMMARY_REMOVE_DESC' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<th class="col-md-4"> </th>
|
||||
<th class="col-md-4"> </th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr >
|
||||
<td>
|
||||
<%= l 'pf_LABEL_PROTOCOL' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $proto %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= l 'pf_LABEL_SOURCE_PORT' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $sport %>
|
||||
</td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= l 'pf_LABEL_DESTINATION_HOST' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $dport %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= l 'pf_LABEL_DESTINATION_PORT' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $dhost %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= l 'pf_RULE_COMMENT' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $cmmnt %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= l 'pf_ALLOW_HOSTS' %>
|
||||
</td>
|
||||
<td>
|
||||
<%= $allow %>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
|
||||
<%= hidden_field sport=>$sport %>
|
||||
<%= hidden_field proto=>$proto %>
|
||||
|
||||
% my $btn = l('REMOVE');
|
||||
|
||||
<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>
|
||||
|
@@ -1,120 +1,111 @@
|
||||
<div>
|
||||
% my $btn = l('pf_CREATE_RULE');
|
||||
%= form_for '/portforwardinga' => (method => 'POST') => begin
|
||||
|
||||
% my $retref= $c->stash("ret");
|
||||
% my %ret;
|
||||
% unless (length($retref)) {%ret = (ret=>"");}
|
||||
% else {%ret = %$retref;}
|
||||
|
||||
% my $retref = $c->stash("ret");
|
||||
% my %ret = $retref ? %$retref : (ret => "");
|
||||
% my @vars = split(/,/, $ret{vars} // '');
|
||||
% my ($var1, $var2, $var3, $var4, $var5, $var6, $var7) = @vars;
|
||||
|
||||
% my $numtcpforwards = @$tcpforwards;
|
||||
% my $numudpforwards = @$udpforwards;
|
||||
|
||||
% my @vars = split(",",$ret{vars});
|
||||
% my $var1 = @vars[0];
|
||||
% my $var2 = @vars[1];
|
||||
% my $var3 = @vars[2];
|
||||
% my $var4 = @vars[3];
|
||||
% my $var5 = @vars[4];
|
||||
% my $var6 = @vars[5];
|
||||
% if ($c->app->config->{debug}) {
|
||||
<pre>
|
||||
<%= dumper { ret_data => \%ret } %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
%if ($ret{ret} eq "") {
|
||||
%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION'));
|
||||
%} elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
<br>
|
||||
<div class="">
|
||||
<!--<h2> Operation Status Report</h2>-->
|
||||
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
|
||||
% if ($ret{ret} eq "") {
|
||||
<div>
|
||||
<%= $c->render_to_string(inline => l('pf_FIRST_PAGE_DESCRIPTION')); %>
|
||||
</div>
|
||||
%} else {
|
||||
<br>
|
||||
<div class="">
|
||||
<!--<h2> Operation Status Report - Error</h2>-->
|
||||
%= $c->l($ret{ret},$var1,$var2,$var3,$var4,$var5,$var6);
|
||||
</div>
|
||||
%}
|
||||
% } elsif (index($ret{ret},"SUCCESS") != -1) {
|
||||
|
||||
<div>
|
||||
<h2> Operation Status Report</h2>
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% } else {
|
||||
<br>
|
||||
<div class="text-danger">
|
||||
<h2> Operation Status Report - Error</h2>
|
||||
<%= $c->render_to_string(inline => l($ret{ret}, @vars[0..6])) %>
|
||||
</div>
|
||||
% }
|
||||
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
|
||||
<form action="/smanager/portforwardinga" method="POST">
|
||||
|
||||
% end
|
||||
|
||||
% if ($empty){
|
||||
% my $btn = l('pf_CREATE_RULE');
|
||||
|
||||
<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>
|
||||
|
||||
% if ($empty) {
|
||||
<br>
|
||||
%=l 'pf_NO_FORWARDS'
|
||||
% } else {
|
||||
<%= l 'pf_NO_FORWARDS' %>
|
||||
% } else {
|
||||
<br>
|
||||
%=l 'pf_SHOW_FORWARDS'
|
||||
<br><br />
|
||||
<%= l 'pf_SHOW_FORWARDS' %>
|
||||
<br><br>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="">
|
||||
%=l 'pf_LABEL_PROTOCOL'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'pf_LABEL_SOURCE_PORT'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'pf_LABEL_DESTINATION_HOST'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'pf_LABEL_DESTINATION_PORT'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'pf_ALLOW_HOSTS'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'pf_RULE_COMMENT'
|
||||
</th>
|
||||
<th class="" '>
|
||||
%=l 'ACTION'
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
% my %forwards = ();
|
||||
% $forwards{TCP} = $tcpforwards;
|
||||
% $forwards{UDP} = $udpforwards;
|
||||
|
||||
% foreach my $proto (sort keys %forwards) {
|
||||
|
||||
% if (@{ $forwards{$proto} }) {
|
||||
% foreach my $entry (@{ $forwards{$proto} }) {
|
||||
<thead>
|
||||
<tr>
|
||||
% my $sport = $entry->key;
|
||||
% my $dhost = $entry->prop('DestHost');
|
||||
% my $dport = $entry->prop('DestPort') || '';
|
||||
% my $cmmnt = $entry->prop('Comment') || '';
|
||||
% my $allow = $entry->prop('AllowHosts') || '';
|
||||
%= t td => (class => "") => $proto
|
||||
%= t td => (class => "") => $sport
|
||||
%= t td => (class => "") => $dhost
|
||||
%= t td => (class => "") => $dport
|
||||
%= t td => (class => "") => $allow
|
||||
%= t td => (class => "") => $cmmnt
|
||||
<td class="">
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $actionRemove = qq{
|
||||
% <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto">
|
||||
% <button type='button' class="" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
<th><%= l 'pf_LABEL_PROTOCOL' %></th>
|
||||
<th><%= l 'pf_LABEL_SOURCE_PORT' %></th>
|
||||
<th><%= l 'pf_LABEL_DESTINATION_HOST' %></th>
|
||||
<th><%= l 'pf_LABEL_DESTINATION_PORT' %></th>
|
||||
<th><%= l 'pf_ALLOW_HOSTS' %></th>
|
||||
<th><%= l 'pf_RULE_COMMENT' %></th>
|
||||
<th class="text-center"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
% }
|
||||
% }
|
||||
%}
|
||||
%}
|
||||
</tbody>
|
||||
</table>
|
||||
%= hidden_field 'trt' => $pf_datas->{trt}
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
% my %forwards = ();
|
||||
% $forwards{TCP} = $tcpforwards;
|
||||
% $forwards{UDP} = $udpforwards;
|
||||
|
||||
% foreach my $proto (sort keys %forwards) {
|
||||
|
||||
% if (@{ $forwards{$proto} }) {
|
||||
% foreach my $entry (@{ $forwards{$proto} }) {
|
||||
<tr class="align-middle">
|
||||
% my $sport = $entry->key;
|
||||
% my $dhost = $entry->prop('DestHost');
|
||||
% my $dport = $entry->prop('DestPort') || '';
|
||||
% my $cmmnt = $entry->prop('Comment') || '';
|
||||
% my $allow = $entry->prop('AllowHosts') || '';
|
||||
<td><%= $proto %></td>
|
||||
<td><%= $sport %></td>
|
||||
<td><%= $dhost %></td>
|
||||
<td><%= $dport %></td>
|
||||
<td><%= $allow %></td>
|
||||
<td><%= $cmmnt %></td>
|
||||
% my $remove_text = l('REMOVE'); # Localized text
|
||||
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
% my $actionRemove = qq{
|
||||
% <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto">
|
||||
% <button type='button' class="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' => $pf_datas->{trt} %>
|
||||
|
||||
</div>
|
||||
|
@@ -1,51 +1,61 @@
|
||||
<div>
|
||||
|
||||
% my $btn = l('ADD');
|
||||
<h2><%=l 'prt_CREATE_NEW_PRINTER' %></h2>
|
||||
|
||||
%= form_for '/printers2' => (method => 'POST') => begin
|
||||
<p>
|
||||
<h2>
|
||||
%=l 'prt_CREATE_NEW_PRINTER'
|
||||
</h2>
|
||||
<br>
|
||||
%=l 'prt_CREATE_NEW_DESC'
|
||||
</p>
|
||||
<br>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'prt_PRINTER_NAME', class => ""
|
||||
</span>
|
||||
<span class="">
|
||||
%= text_field 'Name', class => ""
|
||||
</span>
|
||||
</p>
|
||||
<form action="/smanager/printers2" method="POST">
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'DESCRIPTION_BRIEF', class => ""
|
||||
</span>
|
||||
<span class="">
|
||||
%= text_field 'Description', class => ""
|
||||
</span>
|
||||
</p>
|
||||
<br>
|
||||
|
||||
<p>
|
||||
<span class="">
|
||||
%=l 'LOCATION', class => ""
|
||||
</span>
|
||||
<span class="">
|
||||
%= select_field 'Location' => $c->printerLocation_list(), class => ""
|
||||
</span>
|
||||
</p>
|
||||
<div>
|
||||
<%= l 'prt_CREATE_NEW_DESC' %>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<br><br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
<br>
|
||||
|
||||
%= hidden_field 'trt' => $prt_datas->{trt}
|
||||
|
||||
% end
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<label for="inputPrinterName" class="col-form-label"><%= l 'prt_PRINTER_NAME' %></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" name="Name" id="inputPrinterName" class="form-control" aria-describedby="Printer Name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<label for="inputPrinterDesc" class="col-form-label"><%= l 'DESCRIPTION_BRIEF' %></label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" name="Description" id="inputPrinterDesc" class="form-control" aria-describedby="Printer Description">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-1">
|
||||
<%= l 'LOCATION'%>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<%= select_field 'Location' => $c->printerLocation_list(), class => "form-select" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<%= hidden_field 'trt' => $prt_datas->{trt} %>
|
||||
|
||||
% 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>
|
||||
|
@@ -1,30 +1,38 @@
|
||||
<div>
|
||||
% my $btn = l('REMOVE');
|
||||
%= form_for '/printers2' => (method => 'POST') => begin
|
||||
<p>
|
||||
<h2>
|
||||
%=l 'prt_REMOVE_PRINTER'
|
||||
</h2>
|
||||
<br><br>
|
||||
|
||||
<%=l 'prt_ABOUT_TO_REMOVE'%> <%=$prt_datas->{printer}%>
|
||||
(<%=$prt_datas->{description}%>)
|
||||
<h2><%= l 'prt_REMOVE_PRINTER' %></h2>
|
||||
|
||||
<form action="/smanager/printers2" method="POST">
|
||||
|
||||
<br>
|
||||
|
||||
%=l 'prt_SPOOL_FILE_WARNING'
|
||||
<div>
|
||||
<%= l 'prt_ABOUT_TO_REMOVE'%> <%=$prt_datas->{printer}%> (<%=$prt_datas->{description}%>)
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
%=l 'prt_ARE_YOU_SURE'
|
||||
</p>
|
||||
<div class="text-danger">
|
||||
<%= l 'prt_SPOOL_FILE_WARNING' %>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
|
||||
<div>
|
||||
<%= l 'prt_ARE_YOU_SURE' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
%= hidden_field 'trt' => $prt_datas->{trt}
|
||||
%= hidden_field 'printer' => $prt_datas->{printer}
|
||||
|
||||
% end
|
||||
% my $btn = l('REMOVE');
|
||||
|
||||
<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>
|
||||
|
@@ -1,82 +1,72 @@
|
||||
<div>
|
||||
|
||||
% my $btn = l('prt_INITIAL_BTN');
|
||||
|
||||
%= form_for '/printers' => (method => 'POST') => begin
|
||||
|
||||
%= hidden_field 'trt' => 'ADD'
|
||||
|
||||
<p>
|
||||
<br>
|
||||
%= submit_button "$btn", class => ""
|
||||
</p>
|
||||
% end
|
||||
|
||||
<p>
|
||||
<h2>
|
||||
%=l 'prt_CURRENT_LIST'
|
||||
</h2>
|
||||
<form action="/smanager/printers" method="POST">
|
||||
|
||||
% my $btn = l('prt_INITIAL_BTN');
|
||||
<%= hidden_field 'trt' => '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>
|
||||
|
||||
<br>
|
||||
|
||||
<h2><%= l 'prt_CURRENT_LIST' %></h2>
|
||||
<br><br>
|
||||
% my $numPrinters = @$printerDrivers;
|
||||
% if ($numPrinters == 0){
|
||||
%=l 'prt_NO_PRINTERS'
|
||||
% } else {
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="">
|
||||
%=l 'NAME'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'DESCRIPTION'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'LOCATION'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'prt_REMOTE_ADDRESS'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'prt_REMOTE_NAME'
|
||||
</th>
|
||||
<th class="">
|
||||
%=l 'ACTION'
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
% foreach my $printer (@$printerDrivers)
|
||||
% {
|
||||
% my $address = ($printer->prop('Location') eq 'remote')
|
||||
% ? $printer->prop('Address') : 'N/A';
|
||||
% my $remoteName = ($printer->prop('Location') eq 'remote')
|
||||
% ? $printer->prop('RemoteName') : 'N/A';
|
||||
% $remoteName = 'raw' unless ($remoteName);
|
||||
<tr>
|
||||
%= t td => (class => "") => $printer->key
|
||||
%= t td => (class => "") => $printer->prop('Description')
|
||||
%= t td => (class => "") => $printer->prop('Location')
|
||||
%= t td => (class => "") => $address
|
||||
%= t td => (class => "") => $remoteName
|
||||
<td class="">
|
||||
%my $remove_text = l('REMOVE'); # Localized text
|
||||
%my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
%my $printer_name = $printer->key;
|
||||
%my $actionRemove = qq{
|
||||
% <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name">
|
||||
% <button type='button' class="" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
</table>
|
||||
<%} %>
|
||||
</p>
|
||||
|
||||
% my $numPrinters = @$printerDrivers;
|
||||
% if ($numPrinters == 0){
|
||||
<%= l 'prt_NO_PRINTERS' %>
|
||||
% } else {
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= l 'NAME' %></th>
|
||||
<th><%= l 'DESCRIPTION' %></th>
|
||||
<th><%= l 'LOCATION' %></th>
|
||||
<th><%= l 'prt_REMOTE_ADDRESS' %></th>
|
||||
<th><%= l 'prt_REMOTE_NAME' %></th>
|
||||
<th><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
% foreach my $printer (@$printerDrivers) {
|
||||
% my $address = ($printer->prop('Location') eq 'remote')
|
||||
% ? $printer->prop('Address') : 'N/A';
|
||||
% my $remoteName = ($printer->prop('Location') eq 'remote')
|
||||
% ? $printer->prop('RemoteName') : 'N/A';
|
||||
% $remoteName = 'raw' unless ($remoteName);
|
||||
|
||||
<tr class="align-middle">
|
||||
<td><%= $printer->key %></td>
|
||||
<td><%= $printer->prop('Description') %></td>
|
||||
<td><%= $printer->prop('Location') %></td>
|
||||
<td><%= $address %></td>
|
||||
<td><%= $remoteName %></td>
|
||||
<td>
|
||||
% my $remove_text = l('REMOVE'); # Localized text
|
||||
% my $csrf_token = "TOKEN"; # CSRF token for security
|
||||
% my $printer_name = $printer->key;
|
||||
% my $actionRemove = qq{
|
||||
% <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name">
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
% };
|
||||
<%= $c->render_to_string(inline => $actionRemove) %>
|
||||
</td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
</table>
|
||||
% }
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
@@ -17,7 +17,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
<input type="text" name="pseudonymDesc" id="inputPseudonymDesc" class="form-control" aria-describedby="PseudonymDesc" >
|
||||
<input type="text" name="pseudonymDesc" id="inputPseudonymDesc" class="form-control" aria-describedby="Pseudonym Description" >
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<br><br>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -2,13 +2,11 @@
|
||||
|
||||
% my $btn = l('pse_CLICK_TO_CREATE');
|
||||
|
||||
|
||||
|
||||
<form action="/smanager/pseudonyms" method="POST">
|
||||
<%= $c->render_to_string(inline => l('pse_DESCRIPTION')); %>
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
<%= hidden_field 'trt' => 'ADD' %>
|
||||
@@ -24,9 +22,9 @@
|
||||
<table class="table table-bordered user-table-max-width">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-sm"><%= l 'pse_PSEUDONYM' %></th>
|
||||
<th class="col-sm"><%= l 'pse_USER_OR_GROUP' %></th>
|
||||
<th class="col-sm user-valign-center" colspan="2"><%= l 'ACTION' %></th>
|
||||
<th class="col-sm"><%= l 'pse_PSEUDONYM' %></th>
|
||||
<th class="col-sm"><%= l 'pse_USER_OR_GROUP' %></th>
|
||||
<th class="col-sm align-middle" colspan="2"><%= l 'ACTION' %></th>
|
||||
<!-- <th class="" style="display: normal;"></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -55,11 +53,11 @@
|
||||
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
|
||||
%$actionModify = qq{
|
||||
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=UPD&pseudonym=$pseudonyms_entry_name">
|
||||
% <button type='button' class="btn btn-primary" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% };
|
||||
% }
|
||||
|
||||
% if ($removable eq 'yes') {
|
||||
@@ -68,15 +66,15 @@
|
||||
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
|
||||
%$actionRemove = qq{
|
||||
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=DEL&pseudonym=$pseudonyms_entry_name">
|
||||
% <button type='button' class="btn btn-primary" title='$remove_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
% };
|
||||
% }
|
||||
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
|
||||
</tr>
|
||||
% }
|
||||
|
@@ -62,7 +62,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -4,13 +4,24 @@
|
||||
|
||||
<%= $modul %>
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
<pre>
|
||||
<%= dumper $c->current_route %>
|
||||
<%= dumper $userAccounts %>
|
||||
</pre>
|
||||
% }
|
||||
|
||||
<h2><%= l 'quo_CURRENT_USAGE_AND_SETTINGS' %></h2>
|
||||
|
||||
<br>
|
||||
|
||||
% my $numUsers = @$userAccounts;
|
||||
|
||||
|
||||
% if ($numUsers == 0){
|
||||
<%= l 'ACCOUNT_USER_NONE' %>
|
||||
<div>
|
||||
<%= l 'ACCOUNT_USER_NONE' %>
|
||||
</div>
|
||||
% } else {
|
||||
|
||||
% my $limit = l('quo_LIMIT_WITH_GRACE_MB'); $limit =~ s#(graceX)#<br>$1#;
|
||||
@@ -25,21 +36,28 @@
|
||||
<th class="col-sm"><%= $limit %></th>
|
||||
<th class="col-sm"><%= $absolute %></th>
|
||||
<th class="col-sm"><%= $current %></th>
|
||||
<th class="col-sm user-valign-center"><%= l 'ACTION' %></th>
|
||||
<th class="col-sm align-middle"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
% foreach my $user (@$userAccounts) {
|
||||
% my $uid = getpwnam($user->key);
|
||||
% unless ($uid) {
|
||||
% warn($self->localise('COULD_NOT_GET_UID'),$user->key);
|
||||
% next;
|
||||
% }
|
||||
% my $name = $user->prop("FirstName")." ".$user->prop("LastName");
|
||||
% my $dev = Quota::getqcarg('/home/e-smith/files');
|
||||
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
|
||||
|
||||
% my $uid = getpwnam($user->key);
|
||||
|
||||
% if (config->{debug} == 1) {
|
||||
UID <%= l 'quo_COULD_NOT_GET_UID' %> <%= dumper $user->key %><br>
|
||||
% }
|
||||
|
||||
<br>
|
||||
% unless ($uid) {
|
||||
% warn (l 'quo_COULD_NOT_GET_UID', $user->key);
|
||||
% next;
|
||||
% }
|
||||
% my $name = $user->prop("FirstName")." ".$user->prop("LastName");
|
||||
% my $dev = Quota::getqcarg('/home/e-smith/files');
|
||||
% my ($bc, $bs, $bh, $bt, $ic, $is, $ih, $it) = Quota::query($dev, $uid);
|
||||
|
||||
<tr>
|
||||
<td><%= $user->key %></td>
|
||||
@@ -53,13 +71,13 @@
|
||||
% my $quota_user_name = $user->key; # quotas_entry name extracted from the data structure
|
||||
% my $actionModify = qq{
|
||||
% <a href="quotad?CsrfDef=$csrf_token&trt=UPD&user=$quota_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
% </a>
|
||||
%};
|
||||
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="align-middle"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
|
@@ -85,7 +85,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -2,8 +2,8 @@
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= l 'rvw_NETWORKING_PARAMS' %></th>
|
||||
<th> </th>
|
||||
<th class="col-md-2"><%= l 'rvw_NETWORKING_PARAMS' %></th>
|
||||
<th class="col-auto"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -11,19 +11,19 @@
|
||||
<td><%= l 'rvw_SERVER_MODE' %></td>
|
||||
<td><%= $rvw_datas->{servermode} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_LOCAL_IP_ADDRESS_SUBNET_MASK' %></td>
|
||||
<td><%= $rvw_datas->{localip} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
% if ( $rvw_datas->{publicip} ) {
|
||||
<tr>
|
||||
<td><%=l 'rvw_INTERNET_VISIBLE_ADDRESS' %></td>
|
||||
<td><%= $rvw_datas->{publicip} %></td>
|
||||
</tr>
|
||||
</tr>
|
||||
% }
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_GATEWAY'%></td>
|
||||
<td>
|
||||
@@ -31,24 +31,24 @@
|
||||
<%= $rvw_datas->{serveronly} %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>Local Networks (not translated?)</td>
|
||||
<td><%= $c->render_to_string( inline => $rvw_datas->{addlocalnetworks} );%> </td>
|
||||
<tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_DHCP_SERVER' %></td>
|
||||
<td><%= $rvw_datas->{dhcpserver} %></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= l 'rvw_SERVER_NAMES' %></th>
|
||||
<th> </th>
|
||||
<th class="col-md-2"><%= l 'rvw_SERVER_NAMES' %></th>
|
||||
<th class="col-auto"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -56,34 +56,34 @@
|
||||
<td><%= l 'rvw_DNS_SERVER' %></td>
|
||||
<td><%= $rvw_datas->{dnsserver} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_WEB_SERVER' %></td>
|
||||
<td><%= $rvw_datas->{webserver} %></tr>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_PROXY_SERVER' %></td>
|
||||
<td><%= $rvw_datas->{proxyserver} %></tr>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_FTP_SERVER' %></td>
|
||||
<td><%= $rvw_datas->{ftpserver} %></tr>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS' %></td>
|
||||
<td><%= $rvw_datas->{smtpserver} %></tr>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= l 'rvw_DOMAIN_INFORMATION' %></th>
|
||||
<th> </th>
|
||||
<th class="col-md-2"><%= l 'rvw_DOMAIN_INFORMATION' %></th>
|
||||
<th class="col-auto"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -91,7 +91,7 @@
|
||||
<td><%= l 'rvw_PRIMARY_DOMAIN' %></td>
|
||||
<td><%= $rvw_datas->{domainname} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_VIRTUAL_DOMAINS' %></td>
|
||||
<td><%= $rvw_datas->{virtualdomains} %></td>
|
||||
@@ -100,22 +100,22 @@
|
||||
<td><%= l 'rvw_PRIMARY_WEB_SITE' %></td>
|
||||
<td><%= $rvw_datas->{primarywebsite} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_SERVER_MANAGER' %></td>
|
||||
<td><%= $rvw_datas->{servermanager} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_USER_PASSWORD_PANEL' %></td>
|
||||
<td><%= $rvw_datas->{usermanager} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= l 'rvw_EMAIL_ADDRESSES' %></td>
|
||||
<td><%= $rvw_datas->{emailaddresses} %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
@@ -19,7 +19,7 @@
|
||||
<li class="nav-header">ADMINISTRATION</li>
|
||||
|
||||
% my $cc = 100;
|
||||
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
|
||||
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
|
||||
% <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
|
||||
|
||||
% # Retrieve the icon based on the value of $h
|
||||
@@ -33,10 +33,10 @@
|
||||
<i class="nav-arrow bi bi-chevron-right"></i>
|
||||
</a>
|
||||
<ul class="nav nav-treeview">
|
||||
|
||||
|
||||
% my ($classNew, $target, $href) = '';
|
||||
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
|
||||
% next if ($_->{'MENUCAT'} ne 'A' ); # menu Admin
|
||||
% next if ($_->{'MENUCAT'} ne 'A' ); # menu Admin
|
||||
% if ( $_->{'FILENAME'} =~ m/^2\// ) {
|
||||
% $target = '_self';
|
||||
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
|
||||
@@ -45,7 +45,7 @@
|
||||
% $target = 'main';
|
||||
% my $host = $c->req->url->to_abs->host;
|
||||
% $href = "/smanager/legacypanel?url=https://$host/server-manager" . $_->{'FILENAME'};
|
||||
%
|
||||
%
|
||||
% }
|
||||
|
||||
<li class="nav-item">
|
||||
@@ -54,12 +54,12 @@
|
||||
<%= $_->{'DESCRIPTION'} %>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- End trying tree view menus -->
|
||||
% $cc++;
|
||||
% }
|
||||
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
% }
|
||||
|
@@ -12,18 +12,18 @@
|
||||
<li class="nav-header">USER</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href='#' id="" class="nav-link">
|
||||
<a href='#' class="nav-link">
|
||||
<i class="nav-icon bi bi-person-fill"></i>Current User: <%= session 'username' %>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
% my $cc = 300;
|
||||
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
|
||||
% foreach my $h (sort { ($nav{$a}{'WEIGHT'}/$nav{$a}{'COUNT'})
|
||||
% <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
|
||||
|
||||
% my ($classNew, $target, $href) = '';
|
||||
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
|
||||
% next if ($_->{'MENUCAT'} ne 'U' ); # menu User
|
||||
% next if ($_->{'MENUCAT'} ne 'U' ); # menu User
|
||||
% if ( $_->{'FILENAME'} =~ m/^2\// ) {
|
||||
% $target = '_self';
|
||||
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
|
||||
|
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
<button type="submit" class="btn btn-primary">Theme</button>
|
||||
<button type="submit" class="btn btn-primary btn-sm">Theme</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@@ -40,7 +40,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-danger"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<form action="/smanager/useraccounts" method="POST">
|
||||
<br>
|
||||
<div>
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %> </button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr class="">
|
||||
<th><%=l 'ACCOUNT' %></th>
|
||||
<th><%=l 'USER_NAME' %></th>
|
||||
<th><%=l 'usr_VPN_CLIENT_ACCESS' %></th>
|
||||
<th><%=l 'usr_FORWARDING_ADDRESS' %></th>
|
||||
<th class="user-valign-center" colspan="5"><%= l 'ACTION' %></th>
|
||||
<tr>
|
||||
<th><%= l 'ACCOUNT' %></th>
|
||||
<th><%= l 'USER_NAME' %></th>
|
||||
<th><%= l 'usr_VPN_CLIENT_ACCESS' %></th>
|
||||
<th><%= l 'usr_FORWARDING_ADDRESS' %></th>
|
||||
<th class="text-center text-center" colspan="5"><%= l 'ACTION' %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -54,7 +54,7 @@
|
||||
% my ($actionModify, $actionLock, $actionResetPw, $actionRemove,$actionroundcube) = ' ';
|
||||
% my $thisdomain = $c->req->url->to_abs->host;
|
||||
|
||||
<tr>
|
||||
<tr class="align-middle">
|
||||
<td><%= $username %></td>
|
||||
<td><%= $first %> <%=$last %></td>
|
||||
<td><%= $vpnaccess %></td>
|
||||
@@ -63,14 +63,14 @@
|
||||
% if ($useraccounts_user_name eq 'admin') {
|
||||
%$actionModify = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$modify_text'>
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text'>
|
||||
% $modify_text
|
||||
% </button>
|
||||
%</a>
|
||||
%};
|
||||
%$actionResetPw = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWS&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$password_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$password_text' >
|
||||
% $password_text
|
||||
% </button>
|
||||
%</a>
|
||||
@@ -78,7 +78,7 @@
|
||||
% } else {
|
||||
%$actionModify = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPD&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$modify_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
|
||||
% $modify_text
|
||||
% </button>
|
||||
%</a>
|
||||
@@ -93,14 +93,14 @@
|
||||
<!-- Sets BOTH columns - possibly leave out Reset Password here?-->
|
||||
%$actionLock = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-danger" title="$password_text - currently unset">
|
||||
% <button type='button' class="btn btn-danger btn-sm" title="$password_text - currently unset">
|
||||
% Unlock
|
||||
% </button>
|
||||
%</a>
|
||||
%};
|
||||
%$actionResetPw = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title="$password_text - currently unset">
|
||||
% <button type='button' class="btn btn-primary btn-sm" title="$password_text - currently unset">
|
||||
% $password_text
|
||||
% </button>
|
||||
%</a>
|
||||
@@ -109,14 +109,14 @@
|
||||
% } elsif ($useraccounts_user_name ne 'admin') {
|
||||
%$actionLock = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=LCK&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$lock_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$lock_text' >
|
||||
% $lock_text
|
||||
% </button>
|
||||
%</a>
|
||||
%};
|
||||
%$actionResetPw = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$password_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$password_text' >
|
||||
% $password_text
|
||||
% </button>
|
||||
%</a>
|
||||
@@ -126,7 +126,7 @@
|
||||
% if ( $removable eq 'yes' ) {
|
||||
%$actionRemove = qq{
|
||||
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=DEL&user=$useraccounts_user_name">
|
||||
% <button type='button' class="btn btn-primary" title='$remove_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
|
||||
% $remove_text
|
||||
% </button>
|
||||
%</a>
|
||||
@@ -136,17 +136,17 @@
|
||||
<!-- If webmail disabled??? -->
|
||||
% $actionroundcube = qq{
|
||||
%<a href="roundcubepanel?CsrfDef=$csrf_token&url=https://$thisdomain/roundcube?_user=$useraccounts_user_name&height=600px">
|
||||
% <button type='button' class="btn btn-primary" title='$roundcube_text' >
|
||||
% <button type='button' class="btn btn-primary btn-sm" title='$roundcube_text' >
|
||||
% $roundcube_text
|
||||
% </button>
|
||||
%</a>
|
||||
%};
|
||||
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionResetPw) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionLock) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionroundcube) %></td>
|
||||
<td class="text-center"><%= $c->render_to_string(inline => $actionModify) %></td>
|
||||
<td class="text-center"><%= $c->render_to_string(inline => $actionResetPw) %></td>
|
||||
<td class="text-center"><%= $c->render_to_string(inline => $actionLock) %></td>
|
||||
<td class="text-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
|
||||
<td class="text-center"><%= $c->render_to_string(inline => $actionroundcube) %></td>
|
||||
</tr>
|
||||
% }
|
||||
</tbody>
|
||||
|
@@ -42,7 +42,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -43,31 +43,31 @@
|
||||
<%= l 'usr_RESET_DESC2' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= l 'PASSWORD_NEW' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<br><br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<input name="newPass" id="newPass" type="password" class="form-control sme-password" placeholder="Password">
|
||||
<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>
|
||||
<%= l 'PASSWORD_VERIFY_NEW' %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<input name="newPassVerify" id="newPassVerify" type="password" class="form-control sme-password" placeholder="Password">
|
||||
<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>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -64,7 +64,7 @@
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -1,20 +1,20 @@
|
||||
|
||||
<div class="container-sm">
|
||||
<div>
|
||||
<br>
|
||||
<h2><%= l 'usr_P2_TITLE' %></h2>
|
||||
<br>
|
||||
<%= $c->render_to_string(inline => l ('usr_CREATE_MODIFY_DESC')) %>
|
||||
<br><br>
|
||||
|
||||
% my $btn = l('ADD');
|
||||
|
||||
% my $btn = l('ADD');
|
||||
|
||||
<form action="/smanager/useraccountsd" method="POST">
|
||||
%#= form_for '/useraccountsd' => (method => 'POST') => begin
|
||||
|
||||
|
||||
% if ( $usr_datas->{trt} eq 'ADD' ) {
|
||||
|
||||
|
||||
% param 'user' => $usr_datas->{user} unless param 'user';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputAccountName" class="col-form-label"><%= l 'usr_ACCOUNT_NAME' %></label>
|
||||
@@ -28,7 +28,7 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
% } else {
|
||||
<!-- If not user set Button Save not Add -->
|
||||
% $btn = l('SAVE');
|
||||
@@ -40,12 +40,12 @@
|
||||
<div class="col-auto">
|
||||
<input disabled type="text" id="disabledTextInput" class="form-control" placeholder="<%= $usr_datas->{user} %>">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
% }
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputFirstName" class="col-form-label"><%= l 'usr_FIRSTNAME' %></label>
|
||||
@@ -60,9 +60,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
% param 'LastName' => $usr_datas->{lastname} unless param 'LastName';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputLastNAme" class="col-form-label"><%= l 'usr_LASTNAME' %></label>
|
||||
@@ -77,10 +77,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
% param 'Dept' => $usr_datas->{dept} unless param 'Dept';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputDepartment" class="col-form-label"><%= l 'usr_DEPARTMENT' %></label>
|
||||
@@ -95,10 +95,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
% param 'Company' => $usr_datas->{company} unless param 'Company';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputCompany" class="col-form-label"><%= l 'usr_COMPANY' %></label>
|
||||
@@ -113,10 +113,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
% param 'Street' => $usr_datas->{street} unless param 'Street';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputStreet" class="col-form-label"><%= l 'usr_STREET_ADDRESS' %></label>
|
||||
@@ -131,9 +131,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
% param 'City' => $usr_datas->{city} unless param 'City';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputCity" class="col-form-label"><%= l 'usr_CITY' %></label>
|
||||
@@ -148,9 +148,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
% param 'Phone' => $usr_datas->{phone} unless param 'Phone';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputPhone" class="col-form-label"><%= l 'usr_PHONE_NUMBER' %></label>
|
||||
@@ -165,9 +165,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
% param 'EmailForward' => $usr_datas->{emailforward} unless param 'EmailForward';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputEmailDelivery" class="col-form-label"><%= l 'usr_EMAIL_DELIVERY' %></label>
|
||||
@@ -177,9 +177,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
% param 'ForwardAddress' => $usr_datas->{forwardaddress} unless param 'ForwardAddress';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputEmail" class="col-form-label"><%= l 'usr_FORWARDING_ADDRESS' %></label>
|
||||
@@ -194,10 +194,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
% param 'VPNClientAccess' => $usr_datas->{vpnclientaccess} unless param 'VPNClientAccess';
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<label for="inputVPNClientAccess" class="col-form-label"><%= l 'usr_VPN_CLIENT_ACCESS' %></label>
|
||||
@@ -207,10 +207,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
<!-- fix from here -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Begin if ipsec needs fixing -->
|
||||
% if ( $usr_datas->{trt} eq 'UPD' and $c->ipsec_for_acct eq 'OK' ) {
|
||||
% my $btn2 = $c->l('DOWNLOAD');
|
||||
@@ -222,22 +222,22 @@
|
||||
% end
|
||||
% }
|
||||
<!-- End if ipsec -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Groups begin -->
|
||||
<div>
|
||||
% my @groups = @{$c->get_groups()};
|
||||
|
||||
|
||||
%#= dumper @groups
|
||||
|
||||
|
||||
% if ( @groups ) {
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
%=l 'usr_GROUP_MEMBERSHIPS'
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
<table class="table table-bordered user-table-max-wdith">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -247,7 +247,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
% foreach my $g ( @groups) {
|
||||
% my $user = $usr_datas->{user};
|
||||
% my $groupname = $g->key();
|
||||
@@ -256,7 +256,7 @@
|
||||
% if ( $user and $c->is_user_in_group($user, $groupname) ) {
|
||||
% $checked = 'checked';
|
||||
% }
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
% if ( $checked eq 'checked' ) {
|
||||
@@ -269,26 +269,26 @@
|
||||
<td><%= $description %></td>
|
||||
</tr>
|
||||
% }
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
% }
|
||||
<!-- Groups End -->
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row g-3 align-items-center">
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-primary"><%= $btn %></button>
|
||||
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
%= hidden_field 'trt' => $usr_datas->{trt}
|
||||
|
||||
|
||||
% if ( $usr_datas->{trt} eq 'UPD' ) {
|
||||
%= hidden_field 'user' => $usr_datas->{user}
|
||||
% }
|
||||
|
||||
|
||||
</form>
|
||||
%#end
|
||||
</div>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user