Compare commits

...

6 Commits

Author SHA1 Message Date
John Crisp
6fc7fd819f Add missing files 2025-07-07 17:26:28 +02:00
John Crisp
f571879414 Tidy Nut UPS more and general formatting 2025-07-07 17:24:24 +02:00
John Crisp
5b7e0a4d94 More tweaks to NUT panels 2025-07-06 17:52:41 +02:00
John Crisp
142c05fbd7 11.0.0-44.sme Tidy up Nut Panels 2025-07-06 17:25:17 +02:00
John Crisp
305e7b75d2 Update email templates, mai_data, button sizes, numerous tweaks 2025-07-06 13:37:49 +02:00
John Crisp
b5b7645ebc add email setting partials 2025-07-06 13:35:27 +02:00
103 changed files with 818 additions and 1056 deletions

View File

@@ -110,7 +110,11 @@ html {
} */ } */
.user-table-max-width {
.user-table-max-wdith {
max-width: 50%; max-width: 50%;
} }
.nutTable tr td:nth-child(1){
width:30%;
}

File diff suppressed because one or more lines are too long

View File

@@ -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>

View File

@@ -1,18 +0,0 @@
document.addEventListener('DOMContentLoaded', function() {
var select = document.getElementById('time_mode_select');
var ntpSection = document.getElementById('ntp_section');
var manualSection = document.getElementById('manual_section');
function toggleSections() {
if (select.value === 'dat_manually_set') {
ntpSection.style.display = 'none';
manualSection.style.display = 'block';
} else {
ntpSection.style.display = 'block';
manualSection.style.display = 'none';
}
}
select.addEventListener('change', toggleSections);
toggleSections(); // Set initial state
});

View File

@@ -1,302 +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.languages && navigator.languages.length
? navigator.languages[0]
: navigator.language;
//alert(`User Locale: ${userLocale}`); // Alert the detected locale
//console.log(navigator.languages); // Log language to console
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();
});

View File

@@ -1,32 +0,0 @@
$(document).ready(function() {
function toggleUPSClasses() {
var selectedOption = $('#Nutmode_select').val();
var upsModelValue = $('#UPS_Model_select').val().toLowerCase(); // Get the current value from UPS_Model
$('.masterups').toggle(selectedOption === 'netserver' || selectedOption === 'standalone'); // Show/Hide masterups based on Net Server or Standalone
$('.secondaryups').toggle(selectedOption === 'netserver' ); // Show/Hide Secondary logins for net server
$('.slaveups').toggle(selectedOption === 'netclient'); // Show/Hide slaveups based on Net Client
$('.generics').toggle(selectedOption !== 'netclient' && upsModelValue === 'genericups' );
// Enable/Disable inputs based on the selected option
$('.masterups input').prop('disabled', !(selectedOption === 'netserver' || selectedOption === 'standalone'));
$('.slaveups input').prop('disabled', selectedOption !== 'netclient');
$('.generics 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();
});

View File

@@ -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;
}
});
});

View File

@@ -96,7 +96,7 @@
% my $btn = l('bac_UPDATE_CONF'); % my $btn = l('bac_UPDATE_CONF');
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('bac_UPDATE_CONF')%>"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('bac_UPDATE_CONF')%>"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -40,7 +40,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -65,7 +65,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('NEXT')%>"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('NEXT')%>"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -259,7 +259,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('NEXT')%>"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('NEXT')%>"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -58,7 +58,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -44,7 +44,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -67,7 +67,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -65,7 +65,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l('bac_RESTORE_FROM_TAPE')%>"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -38,7 +38,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -70,7 +70,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -40,7 +40,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -93,7 +93,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -81,7 +81,7 @@
<form action="/smanager/bugreport" method="POST"> <form action="/smanager/bugreport" method="POST">
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => $bugr_datas->{trt} %> <%= hidden_field 'trt' => $bugr_datas->{trt} %>

View File

@@ -20,7 +20,7 @@
<form action="/smanager/bugreportD" method="POST"> <form action="/smanager/bugreportD" method="POST">
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => $bugr_datas->{trt} %> <%= hidden_field 'trt' => $bugr_datas->{trt} %>

View File

@@ -59,7 +59,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -1,9 +1,16 @@
<!-- common_css.html.ep --> <!-- 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/css/adminlte.min.css'
%= stylesheet 'dist/font/bootstrap-icons.min.css' %= stylesheet 'dist/font/bootstrap-icons.min.css'
%#= stylesheet 'dist/css/overlayscrollbars.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'

View File

@@ -1,11 +1,16 @@
<!-- common_js.html.ep --> <!-- 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/datetime.js' <!-- Specific to AdminLTE -->
%= javascript 'koozali/js/nutups.js' %= javascript 'dist/js/adminlte.min.js'
%= javascript 'koozali/js/flag-by-locale.js' %= javascript 'dist/js/bootstrap.min.js'
<!-- Generic JS -->
%= javascript 'dist/js/jquery.min.js'
%= javascript 'dist/js/popper.min.js'
<!-- Specific to Koozali from smanager/default -->
%= javascript 'js/flag-by-locale.js'
<!-- Specific to Koozali AdminLTE -->
%= javascript 'koozali/js/sme-password.js' %= javascript 'koozali/js/sme-password.js'

View File

@@ -31,6 +31,19 @@
<br> <br>
<%= $modul %> <%= $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') { % if ($dat_data->{ntpstatus} eq 'disabled') {
<div class='datetime-set-ntp'> <div class='datetime-set-ntp'>
@@ -49,7 +62,7 @@
% [ $c->l('dat_manually_set'), 'dat_manually_set' ] % [ $c->l('dat_manually_set'), 'dat_manually_set' ]
% ]; % ];
<br><br> <br>
<h2><%= $c->l('Time Configuration') %></h2> <h2><%= $c->l('Time Configuration') %></h2>
@@ -59,7 +72,7 @@
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-2">
<%= label_for time_mode => $c->l('Time Setting Mode:') %> <%= label_for time_mode => $c->l('Time Setting Mode:') %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
@@ -68,9 +81,7 @@
</div> </div>
</div> </div>
<br> <br><br>
<div id='ntp_section'> <div id='ntp_section'>
<div> <div>
@@ -80,13 +91,18 @@
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-2">
<label for="inputNTPServerURL" class="col-form-label"><%=$c->l('dat_NTP_Server_URL') %></label> <label for="inputNTPServerURL" class="col-form-label"><%=$c->l('dat_NTP_Server_URL') %></label>
</div> </div>
<div class="col-auto"> <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})$'; % 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'; % 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} %>"> <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> </div>
</div> </div>
@@ -142,7 +158,7 @@
</div> </div>
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
@@ -155,7 +171,7 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'hour' => ($dat_data->{hour}) unless param 'hour'; % param 'hour' => ($dat_data->{hour}) unless param 'hour';
%= select_field hour => ($hour_options, id => 'hour'), required => 'required', class=> "form-select" <%= select_field hour => ($hour_options, id => 'hour'), required => 'required', class=> "form-select" %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
@@ -163,7 +179,7 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'minute' => ($dat_data->{minute}) unless param 'minute'; % param 'minute' => ($dat_data->{minute}) unless param 'minute';
%= select_field minute => ($minute_options, id => 'minute'), required => 'required', class=> "form-select", inputmode => 'numeric' <%= 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' %#= 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>
@@ -173,44 +189,41 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'second' => ($dat_data->{second}) unless param 'second'; % param 'second' => ($dat_data->{second}) unless param 'second';
%= select_field minute => ($second_options, id => 'minute'), required => 'required', class=> "form-select" , inputmode => 'numeric' <%= select_field minute => ($second_options, id => 'minute'), required => 'required', class=> "form-select" , inputmode => 'numeric' %>
</div> </div>
</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> <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="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-2">
<%= l 'dat_TZ' %> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div>
<div class="col-auto">
% param 'Timezone' => $c->getTimezone() unless param 'Timezone';
<%= select_field 'Timezone' => $c->getZone_list(), class => "form-select" %>
</div> </div>
</div> </div>
</div> </form>
<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 %></button>
</div>
</div>
</form>
% } % }

View File

@@ -123,7 +123,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -1,4 +1,4 @@
% layout 'AdminLTE', title => "Sme server 2 - emailsettings"; % layout 'AdminLTE', title => "Sme server 2 - E-Mail";
% content_for 'module' => begin % content_for 'module' => begin
@@ -12,7 +12,7 @@
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
<%= dumper $c->current_route %> <%= dumper $c->current_route %>
<= dumper $mai_datas %> <%= dumper $mai_data->{trt} %>
</pre> </pre>
% } % }
@@ -27,202 +27,31 @@
<br> <br>
<form action="/smanager/emailsettings" method="POST"> %#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'
<div class="row g-3 align-items-center"> % if ($mai_data->{trt} eq "FRONT") {
<div class="col-md-2"> <%= include 'partials/_mai_FRONT' %>
<%= 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"> % if ($mai_data->{trt} eq "ACC") {
<div class="col-md-2"> <%= include 'partials/_mai_ACC' %>
<%= 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"> % if ($mai_data->{trt} eq "FIL") {
<div class="col-md-2"> <%= include 'partials/_mai_FIL' %>
<%= l 'mai_LABEL_WEBMAIL' %> % }
</div>
<div class="col-auto">
<%= $c->get_current_webmail_status( TRUE ) %>
</div>
</div>
<br> % if ($mai_data->{trt} eq "REC") {
<%= include 'partials/_mai_REC' %>
% }
% my $btn = l('mai_DESC_STATE_ACCESS_BUTTON'); % if ($mai_data->{trt} eq "DEL") {
<%= hidden_field 'trt' => 'ACC' %> <%= include 'partials/_mai_DEL' %>
% }
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
</form>
<br><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>
% my $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 %></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_datas->{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>
% my $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 %></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>
% my $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 %></button>
</div>
</div>
<br>
</form>
</div> </div>
%end %end

View File

@@ -12,15 +12,17 @@
% if ( stash 'error' ) { % if ( stash 'error' ) {
<br> <br>
<div class=""> <div class="">
%= $c->render_to_string(inline => stash 'error') %= $c->render_to_string(inline => stash 'error')
</div> </div>
%} %}
<h1> Embedded - <%=$title %></h1> <h1> Embedded - <%=$title %></h1>
<br> <br>
<p>If the legacy panel does not appear, then you may not be logged into the original Server manager.<br />You can log in by clicking <a href="/server-manager" target='_blank'>here</a>. Or by clicking on the "Legacy SM" button at the top of the window.</p> <div>If the legacy panel does not appear, then you may not be logged into the original Server manager.<br />You can log in by clicking <a href="/server-manager" target='_blank'>here</a>. Or by clicking on the "Legacy SM" button at the top of the window.</div>
% my $height = $c->stash('height') | '600px'; % my $height = $c->stash('height') | '600px';
% if ($height !~ /px$/) { $height = $height.'px';} % if ($height !~ /px$/) { $height = $height.'px';}
<object id="" class="" data="<%=$c->stash('modul') %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
<object class="" data="<%=$c->stash('modul') %>" style="width:99%;height:<%= $height %>;" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div> </div>
%end %end

View File

@@ -19,20 +19,18 @@
%= content_for 'head_contrib' %= content_for 'head_contrib'
%= content_for 'refresh' %= content_for 'refresh'
<!-- Specific for AdminLTE -->
%= include 'common_js' %= include 'common_js'
%= include 'common_css' %= include 'common_css'
<!-- Custom overrides js/css? --> %# panel specific css file
<!-- This needs refining - do contribs add in their own stuff?? --> % my $controller = stash('controller');
<!-- This needs refining --> % if ($controller) {
% my $css_path = "css/$controller.css";
% if (config 'hasJquery') { %# Use the url_for helper to generate the correct static file URL
%= include 'partials/_js_imports' % if (app->static->file($css_path)) {
<link rel="stylesheet" href="<%= url_for("/$css_path") %>">
% } % }
% if ($c->current_route eq 'nutups') {
%= include 'partials/_nutups_overrides'
% } % }
</head> </head>
@@ -208,6 +206,16 @@
<div id="adminlte-version"></div> <div id="adminlte-version"></div>
%# Specific panel js code
% $controller = stash('controller');
% if ($controller) {
% my $js_path = "js/$controller.js";
%# Use the url_for helper to generate the correct static file URL
% if (app->static->file($js_path)) {
<script src="<%= url_for("/$js_path") %>"></script>
% }
% }
</body> </body>
</html> </html>

View File

@@ -89,7 +89,7 @@
<!-- /.col --> <!-- /.col -->
<div class="col-4"> <div class="col-4">
<div class="d-grid gap-2"> <div class="d-grid gap-2">
<button type="submit" class="btn btn-primary">Login</button> <button type="submit" class="btn btn-primary btn-sm">Login</button>
</div> </div>
</div> </div>
<!-- /.col --> <!-- /.col -->

View File

@@ -10,8 +10,8 @@
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $c->current_route <%= dumper $c->current_route %>
%= dumper $nut_data->{trt} <%= dumper $nut_data->{trt} %>
</pre> </pre>
% } % }
@@ -22,28 +22,26 @@
% } % }
%if ($c->stash('first')) { %if ($c->stash('first')) {
<br><p> <br>
<div>
<%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %> <%=$c->render_to_string(inline =>$c->l($c->stash('first'))) %>
</p> </div>
%} elsif ($c->stash('success')) { % } elsif ($c->stash('success')) {
<div class="text-success"> <div class="text-success">
<h2><%=$c->l('nut_Status_Report') %></h2> <h2><%=$c->l('nut_Status_Report') %></h2>
<div> <div>
<%= $c->l($c->stash('success')); %> <%= $c->l($c->stash('success')); %>
</div> </div>
</div> </div>
<br> % } elsif ($c->stash('error')) {
%} elsif ($c->stash('error')) {
<div class="text-danger"> <div class="text-danger">
<h2><%=$c->l('nut_Error_Status_Report') %></h2> <h2><%=$c->l('nut_Error_Status_Report') %></h2>
<div> <div>
<%= $c->l($c->stash('error')); %> <%= $c->l($c->stash('error')); %>
</div> </div>
</div> </div>
<br> % }
%}
%#Routing to partials according to trt parameter. %#Routing to partials according to trt parameter.
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement' %#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
@@ -52,14 +50,15 @@
% if ($nut_data->{trt} eq "STATUS") { % if ($nut_data->{trt} eq "STATUS") {
<%= include 'partials/_nut_STATUS' %> <%= include 'partials/_nut_STATUS' %>
%} % }
<br> <br>
% if ($nut_data->{trt} eq "CONFIG") { % if ($nut_data->{trt} eq "CONFIG") {
<%= include 'partials/_nut_CONFIG' %> <%= include 'partials/_nut_CONFIG' %>
%} % }
<br>
</div> </div>

View File

@@ -26,7 +26,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -7,7 +7,7 @@
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %> </button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => 'ADD' %> <%= hidden_field 'trt' => 'ADD' %>
@@ -47,7 +47,7 @@
% my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure % my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
% my $actionModify = qq{ % my $actionModify = qq{
% <a href="domains2?CsrfDef=$csrf_token&trt=UPD&Domain=$domain_name"> % <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 % $modify_text
% </button> % </button>
% </a> % </a>
@@ -60,7 +60,7 @@
% my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure % my $domain_name = $domain->{Domain}; # Domain name extracted from the data structure
% $actionRemove = qq{ % $actionRemove = qq{
% <a href="domains2?CsrfDef=$csrf_token&trt=DEL&Domain=$domain_name"> % <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 % $remove_text
% </button> % </button>
% </a> % </a>
@@ -112,7 +112,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-auto"> <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>
</div> </div>

View File

@@ -36,7 +36,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => $dom_datas->{trt} %> <%= hidden_field 'trt' => $dom_datas->{trt} %>

View File

@@ -78,7 +78,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => $dom_datas->{trt} %> <%= hidden_field 'trt' => $dom_datas->{trt} %>

View File

@@ -70,7 +70,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -59,7 +59,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -6,7 +6,7 @@
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %> </button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => 'ADD' %> <%= hidden_field 'trt' => 'ADD' %>
@@ -39,7 +39,7 @@
% my $modify_text = l('MODIFY'); # Localized text % my $modify_text = l('MODIFY'); # Localized text
% my $actionModify = qq{ % my $actionModify = qq{
% <a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name"> % <a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name">
% <button type='button' class="btn btn-primary" title='$modify_text' > % <button type='button' class="btn btn-primary btn-sm" title='$modify_text' >
% $modify_text % $modify_text
% </button> % </button>
% </a> % </a>
@@ -48,7 +48,7 @@
% my $remove_text = l('REMOVE'); # Localized text % my $remove_text = l('REMOVE'); # Localized text
% my $actionRemove = qq{ % my $actionRemove = qq{
% <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name"> % <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
% <button type='button' class="btn btn-primary" title='$remove_text' > % <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -79,7 +79,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -22,7 +22,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
<form action="/smanager/hostentriesd" method="POST"> <form action="/smanager/hostentriesd" method="POST">
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => $hos_datas->{trt} %> <%= hidden_field 'trt' => $hos_datas->{trt} %>
@@ -47,7 +47,7 @@
%my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure %my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
%$actionModify = qq{ %$actionModify = qq{
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=UPD&Hostname=$hostentries_name"> % <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 % $modify_text
% </button> % </button>
% </a> % </a>
@@ -57,7 +57,7 @@
%#my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure %#my $hostentries_name = $_->{'HostName'}; # hostentries name extracted from the data structure
%$actionRemove = qq{ %$actionRemove = qq{
% <a href="hostentriesd?CsrfDef=$csrf_token&trt=DEL&Hostname=$hostentries_name"> % <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 % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -53,7 +53,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -77,7 +77,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -21,7 +21,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -20,7 +20,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -7,7 +7,7 @@
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %> </button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => 'ADD'; %> <%= hidden_field 'trt' => 'ADD'; %>
@@ -60,7 +60,7 @@
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure %my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
%$actionModify = qq{ %$actionModify = qq{
% <a href="ibaysd?CsrfDef=$csrf_token&trt=UPD&ibay=$ibays_entry_name"> % <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 % $modify_text
% </button> % </button>
% </a> % </a>
@@ -74,7 +74,7 @@
%if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) { %if ($ibay->prop('PasswordSet') ne 'yes' && $needPassword) {
%$actionResetPw = qq{ %$actionResetPw = qq{
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name"> % <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 % $password_text
% </button> % </button>
% </a> % </a>
@@ -82,7 +82,7 @@
% } else { % } else {
%$actionResetPw = qq{ %$actionResetPw = qq{
% <a href="ibaysd?CsrfDef=$csrf_token&trt=PWD&ibay=$ibays_entry_name"> % <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 % $password_text
% </button> % </button>
% </a> % </a>
@@ -97,7 +97,7 @@
%my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure %my $ibays_entry_name = $ibay->key; # ibays_entry name extracted from the data structure
%$actionRemove = qq{ %$actionRemove = qq{
% <a href="ibaysd?CsrfDef=$csrf_token&trt=DEL&ibay=$ibays_entry_name"> % <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 % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -49,7 +49,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -107,7 +107,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -1,25 +1,42 @@
<% use POSIX qw(strftime); %> % use POSIX qw(strftime);
<div id="">
<% if (! $c->session->{PwdSet} ) { %> <div>
<div class=""><h5> % if (! $c->session->{PwdSet} ) {
Warning: you have not yet changed the default system password.</h5></div> <div>
<% } %> <h5 class="text-danger">
<% if ( $c->is_unsafe ) { %> Warning: you have not yet changed the default system password.
<div class=""><h5> </h5>
Warning: a reconfigure and reboot is required before proceeding! Failure to do so now </div>
may leave your system in an unknown state!</h5></div> % }
<% } %>
<% if ( $c->session->{Access} eq 'public' && ((config->{debug} ne '0') || (config->{mode} ne 'production')) ) { %> % if ( $c->is_unsafe ) {
<div class=""><h5> <div>
Warning: Development or debug mode enabled AND public access is offered ! <h5 class="text-danger">
</h5></div> Warning: a reconfigure and reboot is required before proceeding!<br>
<% } %> Failure to do so now may leave your system in an unknown state!
</h5>
</div>
% }
% if ( $c->session->{Access} eq 'public' && ((config->{debug} ne '0') || (config->{mode} ne 'production')) ) {
<div>
<h5 class="text-danger">
Warning: Development or debug mode enabled AND public access is offered !
</h5>
</div>
% }
<% my $curdate = strftime '%Y%m%d', localtime; %> <% my $curdate = strftime '%Y%m%d', localtime; %>
<% if ( "$curdate" >= "20290531" ) { %>
<div class=""><h5> % if ( "$curdate" >= "20290531" ) {
URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE. NO support will be offered for any issue found with this installed version. <div>
Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version. Failure to upgrade may lead to the compromise of this server. <h5>
<br>Please, consult <a href="https://wiki.koozali.org/SME_Server:Download" target="_blank">https://wiki.koozali.org/SME_Server:Download</a> to get the latest version URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE.<br>
</h5></div> NO support will be offered for any issue found with this installed version.<br>
<% } %> Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version.<br>
Failure to upgrade may lead to the compromise of this server.<br>
Please, consult <a href="https://wiki.koozali.org/SME_Server:Download" target="_blank">https://wiki.koozali.org/SME_Server:Download</a> to get the latest version
</h5>
</div>
% }
</div> </div>

View File

@@ -53,7 +53,7 @@
$('#menuadm').toggle({ duration: 300 }); $('#menuadm').toggle({ duration: 300 });
}); });
$('.section-title').click(function() { $('.section-title').click(function() {
var $section = $(this).parent().next('div'); var $section = $(this).parent().next('div');
if(!$section.length){ if(!$section.length){

View File

@@ -56,7 +56,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<a href='letsencryptd' class="btn btn-primary btn-sm" role="button"><%= $back_text %></a> <a href='letsencryptd' class="btn btn-primary btn-sm btn-sm" role="button"><%= $back_text %></a>
</div> </div>
</div> </div>

View File

@@ -67,7 +67,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<a href='letsencryptd' class="btn btn-primary btn-sm" role="button"><%= $back_text %></a> <a href='letsencryptd' class="btn btn-primary btn-sm btn-sm" role="button"><%= $back_text %></a>
</div> </div>
</div> </div>

View File

@@ -144,7 +144,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -87,7 +87,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -76,7 +76,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -39,7 +39,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
@@ -78,7 +78,7 @@
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%$actionRemove = qq{ %$actionRemove = qq{
% <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry"> % <a href="localnetworksd?CsrfDef=$csrf_token&trt=DEL&localnetwork=$local_network_entry">
% <button type='button' class="btn btn-primary" title='$remove_text' > % <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -1,3 +1,5 @@
<!-- Not used -->
<div class="login-page bg-body-secondary app-loaded"> <div class="login-page bg-body-secondary app-loaded">
<!-- /.login-logo --> <!-- /.login-logo -->
<br> <br>
@@ -38,7 +40,7 @@
<!-- /.col --> <!-- /.col -->
<div class="col-4"> <div class="col-4">
<div class="d-grid gap-2"> <div class="d-grid gap-2">
<button type="submit" class="btn btn-primary">Sign In</button> <button type="submit" class="btn btn-primary btn-sm">Sign In</button>
</div> </div>
</div> </div>
<!-- /.col --> <!-- /.col -->

View File

@@ -1,13 +1,13 @@
% layout 'AdminLTE', title => "Sme server 2 - emailaccess"; %# layout 'AdminLTE', title => "Sme server 2 - emailaccess";
% content_for 'module' => begin %# content_for 'module' => begin
<div class="card-body"> <!-- <div class="card-body"> -->
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $c->current_route <%= dumper $c->current_route %>
%= dumper $mai_datas <%= dumper $mai_data %>
</pre> </pre>
% } % }
@@ -18,11 +18,12 @@
</div> </div>
% } % }
<h1><%= $title%></h1> <!-- <h1><%#= $title%></h1> -->
<h2><%= $c->l('mai_DESC_STATE_ACCESS_BUTTON') %></h2>
<br> <br>
<form action="/smanager/emailsettingd" method="POST"> <form action="/smanager/emailsettingsu" method="POST">
<div> <div>
<%= l 'mai_DESC_POP_ACCESS_CONTROL' %> <%= l 'mai_DESC_POP_ACCESS_CONTROL' %>
@@ -83,7 +84,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
@@ -92,4 +93,5 @@
<br> <br>
</div> </div>
%end
%#end

View File

@@ -1,13 +1,13 @@
% layout 'AdminLTE', title => "Sme server 2 - emaildeliver"; %# layout 'AdminLTE', title => "Sme server 2 - emaildeliver";
% content_for 'module' => begin %# content_for 'module' => begin
<div class="card-body"> <!-- <div class="card-body"> -->
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
<%= dumper $c->current_route %> <%= dumper $c->current_route %>
<%= dumper $mai_datas %> <%= dumper $mai_data %>
</pre> </pre>
% } % }
@@ -19,11 +19,12 @@
</div> </div>
% } % }
<h1><%= $title %></h1> <!-- <h1><%#= $title%></h1> -->
<h2><%= $c->l('mai_DESC_STATE_DELIVERY_BUTTON') %></h2>
<br> <br>
<form action="/smanager/emailsettingd" method="POST"> <form action="/smanager/emailsettingsu" method="POST">
<h2><%= l 'mai_TITLE_UNKNOWN' %></h2> <h2><%= l 'mai_TITLE_UNKNOWN' %></h2>
@@ -40,7 +41,7 @@
<%= l 'mai_LABEL_UNKNOWN' %> <%= l 'mai_LABEL_UNKNOWN' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'EmailUnknownUser' => $mai_datas->{emailunknownuser} unless param 'EmailUnknownUser'; % param 'EmailUnknownUser' => $mai_data->{emailunknownuser} unless param 'EmailUnknownUser';
<%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => "form-select" %> <%= select_field 'EmailUnknownUser' => $c->get_emailunknownuser_opt(), class => "form-select" %>
</div> </div>
</div> </div>
@@ -58,14 +59,14 @@
<br> <br>
% param 'DelegateMailServer' => $mai_datas->{delegatemailserver} unless param 'DelegateMailServer'; % param 'DelegateMailServer' => $mai_data->{delegatemailserver} unless param 'DelegateMailServer';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputDelegateMailServer" class="col-form-label"><%= l 'mai_LABEL_DELEGATE' %></label> <label for="inputDelegateMailServer" class="col-form-label"><%= l 'mai_LABEL_DELEGATE' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="DelegateMailServer" id="inputDelegateMailServer" class="form-control" aria-describedby="DelegateMailServer" value="<%= $mai_datas->{delegatemailserver} %>"> <input type="text" name="DelegateMailServer" id="inputDelegateMailServer" class="form-control" aria-describedby="DelegateMailServer" value="<%= $mai_data->{delegatemailserver} %>">
</div> </div>
</div> </div>
@@ -82,20 +83,20 @@
<br> <br>
% param 'SMTPSmartHost' => $mai_datas->{smtpsmarthost} unless param 'SMTPSmartHost'; % param 'SMTPSmartHost' => $mai_data->{smtpsmarthost} unless param 'SMTPSmartHost';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputSMTPSmartHost" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST' %></label> <label for="inputSMTPSmartHost" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="SMTPSmartHost" id="inputSMTPSmartHost" class="form-control" aria-describedby="SMTPSmartHost" value="<%= $mai_datas->{smtpsmarthost} %>"> <input type="text" name="SMTPSmartHost" id="inputSMTPSmartHost" class="form-control" aria-describedby="SMTPSmartHost" value="<%= $mai_data->{smtpsmarthost} %>">
</div> </div>
</div> </div>
<br> <br>
% param 'SMTPAUTHPROXY_status' => $mai_datas->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status'; % param 'SMTPAUTHPROXY_status' => $mai_data->{smtpauthproxystatus} unless param 'SMTPAUTHPROXY_status';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@@ -108,27 +109,27 @@
<br> <br>
% param 'SMTPAUTHPROXY_Userid' => $mai_datas->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid'; % param 'SMTPAUTHPROXY_Userid' => $mai_data->{smtpauthproxyuserid} unless param 'SMTPAUTHPROXY_Userid';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputSMTPAuthproxy" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID' %></label> <label for="inputSMTPAuthproxy" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_USERID' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="SMTPAUTHPROXY_Userid" id="inputSMTPAuthproxy" class="form-control" aria-describedby="SMTPAuthproxy" value="<%= $mai_datas->{smtpauthproxyuserid} %>"> <input type="text" name="SMTPAUTHPROXY_Userid" id="inputSMTPAuthproxy" class="form-control" aria-describedby="SMTPAuthproxy" value="<%= $mai_data->{smtpauthproxyuserid} %>">
</div> </div>
</div> </div>
<br> <br>
% param 'SMTPAUTHPROXY_Passwd' => $mai_datas->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd'; % param 'SMTPAUTHPROXY_Passwd' => $mai_data->{smtpauthproxypassword} unless param 'SMTPAUTHPROXY_Passwd';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="password" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD' %></label> <label for="password" class="col-form-label"><%= l 'mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="password" name="SMTPAUTHPROXY_Passwd" id="password" class="form-control" aria-describedby="SMTPAuthProxyPassword" value="<%= $mai_datas->{smtpauthproxypassword} %>"> <input type="password" name="SMTPAUTHPROXY_Passwd" id="password" class="form-control" aria-describedby="SMTPAuthProxyPassword" value="<%= $mai_data->{smtpauthproxypassword} %>">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<span id="togglePassword" class="bi bi-eye"></span> <span id="togglePassword" class="bi bi-eye"></span>
@@ -142,10 +143,11 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
%end
%#end

View File

@@ -1,13 +1,13 @@
% layout 'AdminLTE', title => "Sme server 2 - emailfilter"; %# layout 'AdminLTE', title => "Sme server 2 - emailfilter";
% content_for 'module' => begin %# content_for 'module' => begin
<div class="card-body"> <!-- <div class="card-body"> -->
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
<%= dumper $c->current_route %> <%= dumper $c->current_route %>
<%= dumper $mai_datas %> <%= dumper $mai_data %>
</pre> </pre>
% } % }
@@ -18,11 +18,12 @@
</div> </div>
% } % }
<h1><%= $title%></h1> <!-- <h1><%#= $title%></h1> -->
<h2><%= $c->l('mai_DESC_STATE_FILTERING_BUTTON') %></h2>
<br> <br>
<form action="/smanager/emailsettingd" method="POST"> <form action="/smanager/emailsettingsu" method="POST">
<div> <div>
<%= l 'mai_DESC_VIRUS_SCAN' %> <%= l 'mai_DESC_VIRUS_SCAN' %>
@@ -35,7 +36,7 @@
<%= l 'mai_LABEL_VIRUS_SCAN' %> <%= l 'mai_LABEL_VIRUS_SCAN' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'VirusStatus' => $mai_datas->{virusstatus} unless param 'VirusStatus'; % param 'VirusStatus' => $mai_data->{virusstatus} unless param 'VirusStatus';
<%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %> <%= select_field 'VirusStatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
</div> </div>
</div> </div>
@@ -53,7 +54,7 @@
<%= l 'mai_LABEL_SPAM_SCAN' %> <%= l 'mai_LABEL_SPAM_SCAN' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'Spamstatus' => $mai_datas->{spamstatus} unless param 'Spamstatus'; % param 'Spamstatus' => $mai_data->{spamstatus} unless param 'Spamstatus';
<%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %> <%= select_field 'Spamstatus' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
</div> </div>
</div> </div>
@@ -65,7 +66,7 @@
<%= l 'mai_LABEL_SPAM_SENSITIVITY' %> <%= l 'mai_LABEL_SPAM_SENSITIVITY' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'SpamSensitivity' => $mai_datas->{spamsensitivity} unless param 'SpamSensitivity'; % param 'SpamSensitivity' => $mai_data->{spamsensitivity} unless param 'SpamSensitivity';
<%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => "form-select" %> <%= select_field 'SpamSensitivity' => $c->get_spam_sensitivity_opt(), class => "form-select" %>
</div> </div>
</div> </div>
@@ -77,7 +78,7 @@
<%= l 'mai_LABEL_SPAM_TAGLEVEL' %> <%= l 'mai_LABEL_SPAM_TAGLEVEL' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'SpamTagLevel' => $mai_datas->{spamtaglevel} unless param 'SpamTagLevel'; % param 'SpamTagLevel' => $mai_data->{spamtaglevel} unless param 'SpamTagLevel';
<%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => "form-select" %> <%= select_field 'SpamTagLevel' => $c->get_spam_level_options(), class => "form-select" %>
</div> </div>
</div> </div>
@@ -89,7 +90,7 @@
<%= l 'mai_LABEL_SPAM_REJECTLEVEL' %> <%= l 'mai_LABEL_SPAM_REJECTLEVEL' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'SpamRejectLevel' => $mai_datas->{spamrejectlevel} unless param 'SpamRejectLevel'; % param 'SpamRejectLevel' => $mai_data->{spamrejectlevel} unless param 'SpamRejectLevel';
<%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => "form-select" %> <%= select_field 'SpamRejectLevel' => $c->get_spam_level_options(), class => "form-select" %>
</div> </div>
</div> </div>
@@ -101,7 +102,7 @@
<%= l 'mai_LABEL_SORTSPAM' %> <%= l 'mai_LABEL_SORTSPAM' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'SpamSortSpam' => $mai_datas->{spamsortspam} unless param 'SpamSortSpam'; % param 'SpamSortSpam' => $mai_data->{spamsortspam} unless param 'SpamSortSpam';
<%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %> <%= select_field 'SpamSortSpam' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
</div> </div>
</div> </div>
@@ -119,14 +120,14 @@
<%= l 'mai_LABEL_SPAM_SUBJECTTAG' %> <%= l 'mai_LABEL_SPAM_SUBJECTTAG' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'SpamSubjectTag' => $mai_datas->{spamsubjecttag} unless param 'SpamSubjectTag'; % param 'SpamSubjectTag' => $mai_data->{spamsubjecttag} unless param 'SpamSubjectTag';
<%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %> <%= select_field 'SpamSubjectTag' => [[(l 'DISABLED') => 'disabled'], [ (l 'ENABLED') => 'enabled']], class => "form-select" %>
</div> </div>
</div> </div>
<br> <br>
% param 'SpamSubject' => $mai_datas->{spamsubject} unless param 'SpamSubject'; % param 'SpamSubject' => $mai_data->{spamsubject} unless param 'SpamSubject';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
@@ -134,7 +135,7 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<!-- text_field 'Soft' --> <!-- text_field 'Soft' -->
<input type="text" name="SpamSubject" id="inputSpamSubjectTag" class="form-control" aria-describedby="SpamSubjectTag" value="<%= $mai_datas->{spamsubject} %>"> <input type="text" name="SpamSubject" id="inputSpamSubjectTag" class="form-control" aria-describedby="SpamSubjectTag" value="<%= $mai_data->{spamsubject} %>">
</div> </div>
</div> </div>
@@ -165,11 +166,12 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
%end
%#end

View File

@@ -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>

View File

@@ -1,16 +1,16 @@
% layout 'AdminLTE', title => "Sme server 2 - emailreceive"; %# layout 'AdminLTE', title => "Sme server 2 - emailreceive";
% content_for 'module' => begin %# content_for 'module' => begin
% use constant FALSE => 0; %# use constant FALSE => 0;
% use constant TRUE => 1; %# use constant TRUE => 1;
<div class="card-body"> <!-- <div class="card-body"> -->
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
<<%= dumper $c->current_route %> <<%= dumper $c->current_route %>
<<%= dumper $mai_datas %> <<%= dumper $mai_data %>
<<%= dumper $c->param('SMTPAuth') %> <<%= dumper $c->param('SMTPAuth') %>
</pre> </pre>
% } % }
@@ -22,30 +22,26 @@
</div> </div>
% } % }
<h1><%= $title %></h1> <!--<h1><%#= $title %></h1> -->
<h2><%= $c->l('mai_DESC_STATE_RECEPTION_BUTTON') %></h2>
<br> <br>
<form action="/smanager/emailsettingd" method="POST"> <form action="/smanager/emailsettingsu" method="POST">
<div> <div>
<%= l 'mai_DESC_MODE' %> <%= l 'mai_DESC_MODE' %>
</div> </div>
<br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<%= l 'mai_LABEL_MODE' %> <%= l 'mai_LABEL_MODE' %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
% param 'FetchmailMethod' => $mai_datas->{fetchmailmethod} unless param 'FetchmailMethod'; % param 'FetchmailMethod' => $mai_data->{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 =>"form-select" %> <%= select_field 'FetchmailMethod' => $c->get_retrieval_opt(), class =>"form-select" %>
</div> </div>
</div> </div>
@@ -72,7 +68,6 @@
<br> <br>
<div> <div>
<%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send." %> <%= l "SMTPS port (465) will require implicit SSL/TLS then authenticate to send." %>
</div> </div>
@@ -86,8 +81,6 @@
<br> <br>
% my $smtp_mesg=l('SMTP port %u allow client to authenticate:'); % my $smtp_mesg=l('SMTP port %u allow client to authenticate:');
% param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth'; % param 'SMTPAuth' => $c->get_current_smtp_auth( FALSE ) unless param 'SMTPAuth';
@@ -96,15 +89,6 @@
<%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); %> <%= sprintf($smtp_mesg,$c->get_db_prop('qpsmtpd','TCPPort',25)); %>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<!--
<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 => "form-select" %> <%= select_field 'SMTPAuth' => $c->get_smtp_auth_opt(), class => "form-select" %>
</div> </div>
</div> </div>
@@ -158,14 +142,14 @@
<br> <br>
% param 'SecondaryMailServer' => $mai_datas->{secondarymailserver} unless param 'SecondaryMailServer'; % param 'SecondaryMailServer' => $mai_data->{secondarymailserver} unless param 'SecondaryMailServer';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputSecondaryMailServer" class="col-form-label"><%= l 'mai_LABEL_SECONDARY' %></label> <label for="inputSecondaryMailServer" class="col-form-label"><%= l 'mai_LABEL_SECONDARY' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="SecondaryMailServer" id="inputSecondaryMailServer" class="form-control" aria-describedby="SecondaryMailServer" value="<%= $mai_datas->{secondarymailserver} %>"> <input type="text" name="SecondaryMailServer" id="inputSecondaryMailServer" class="form-control" aria-describedby="SecondaryMailServer" value="<%= $mai_data->{secondarymailserver} %>">
</div> </div>
</div> </div>
@@ -175,7 +159,7 @@
<%= l 'mai_DESC_FETCH_PERIOD' %> <%= l 'mai_DESC_FETCH_PERIOD' %>
</div> </div>
% param 'FreqOffice' => $mai_datas->{freqoffice} unless param 'FreqOffice'; % param 'FreqOffice' => $mai_data->{freqoffice} unless param 'FreqOffice';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@@ -188,7 +172,7 @@
<br> <br>
% param 'FreqOutside' => $mai_datas->{freqoutside} unless param 'FreqOutside'; % param 'FreqOutside' => $mai_data->{freqoutside} unless param 'FreqOutside';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@@ -201,7 +185,7 @@
<br> <br>
% param 'FreqWeekend' => $mai_datas->{freqweekend} unless param 'FreqWeekend'; % param 'FreqWeekend' => $mai_data->{freqweekend} unless param 'FreqWeekend';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@@ -214,27 +198,27 @@
<br> <br>
% param 'SecondaryMailAccount' => $mai_datas->{secondarymailaccount} unless param 'SecondaryMailAccount'; % param 'SecondaryMailAccount' => $mai_data->{secondarymailaccount} unless param 'SecondaryMailAccount';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputSecondaryMailAccount" class="col-form-label"><%= l 'mai_LABEL_POP_ACCOUNT' %></label> <label for="inputSecondaryMailAccount" class="col-form-label"><%= l 'mai_LABEL_POP_ACCOUNT' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="SecondaryMailAccount" id="inputSecondaryMailAccount" class="form-control" aria-describedby="SecondaryMailAccount" value="<%= $mai_datas->{secondarymailaccount} %>"> <input type="text" name="SecondaryMailAccount" id="inputSecondaryMailAccount" class="form-control" aria-describedby="SecondaryMailAccount" value="<%= $mai_data->{secondarymailaccount} %>">
</div> </div>
</div> </div>
<br> <br>
% param 'SecondaryMailPassword' => $mai_datas->{secondarymailpassword} unless param 'SecondaryMailPassword'; % param 'SecondaryMailPassword' => $mai_data->{secondarymailpassword} unless param 'SecondaryMailPassword';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="password" class="col-form-label"><%= l 'mai_LABEL_POP_PASS' %></label> <label for="password" class="col-form-label"><%= l 'mai_LABEL_POP_PASS' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="password" name="SecondaryMailPassword" id="password" class="form-control" aria-describedby="SecondaryMailPassword" value="<%= $mai_datas->{secondarymailpassword} %>"> <input type="password" name="SecondaryMailPassword" id="password" class="form-control" aria-describedby="SecondaryMailPassword" value="<%= $mai_data->{secondarymailpassword} %>">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<span id="togglePassword" class="bi bi-eye"></span> <span id="togglePassword" class="bi bi-eye"></span>
@@ -244,7 +228,7 @@
<br> <br>
% param 'SpecifyHeader' => $mai_datas->{specifyheader} unless param 'SpecifyHeader'; % param 'SpecifyHeader' => $mai_data->{specifyheader} unless param 'SpecifyHeader';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
@@ -257,30 +241,32 @@
<br> <br>
% param 'SecondaryMailEnvelope' => $mai_datas->{secondarymailenvelope} unless param 'SecondaryMailEnvelope'; % param 'SecondaryMailEnvelope' => $mai_data->{secondarymailenvelope} unless param 'SecondaryMailEnvelope';
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputSecondaryMailEnvelope" class="col-form-label"><%= l 'mai_LABEL_SORT_HEADER' %></label> <label for="inputSecondaryMailEnvelope" class="col-form-label"><%= l 'mai_LABEL_SORT_HEADER' %></label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" name="SecondaryMailEnvelope" id="inputSecondaryEnvelope" class="form-control" aria-describedby="SecondaryMailEnvelope" value="<%= $mai_datas->{secondarymailenvelope} %>"> <input type="text" name="SecondaryMailEnvelope" id="inputSecondaryEnvelope" class="form-control" aria-describedby="SecondaryMailEnvelope" value="<%= $mai_data->{secondarymailenvelope} %>">
</div> </div>
</div> </div>
<br> <br>
% my $btn = l('SAVE'); % my $btn = l('SAVE');
% param 'trt' => $mai_data->{trt} unless param 'trt';
<%= hidden_field 'trt' => 'REC' %> <%= hidden_field 'trt' => 'REC' %>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
%end
%#end

View File

@@ -22,20 +22,22 @@
% end % end
% content_for 'end' => begin % content_for 'end' => begin
<div id="" class=""> <div>
content_end content_end
</div> </div>
% end % end
<div id=""> <div>
<p> < %= $title % ></p><br> <p> < %= $title % ></p><br>
<%= $modul %><br> <%= $modul %><br>
Et eu humo modo paratus quadrum turpis validus. Abico appellatio augue qui refero valetudo vereor. Augue diam eu genitus ille letalis nobis typicus veniam. Et eu humo modo paratus quadrum turpis validus. Abico appellatio augue qui refero valetudo vereor. Augue diam eu genitus ille letalis nobis typicus veniam.
Dignissim dolus loquor lucidus probo proprius tation torqueo. Abluo luptatum quidem. Acsi aliquip eu ex iaceo natu populus quae scisco si. Dignissim dolus loquor lucidus probo proprius tation torqueo. Abluo luptatum quidem. Acsi aliquip eu ex iaceo natu populus quae scisco si.
Aliquam autem blandit decet in jus loquor quidne saluto te. Eu meus voco wisi. Abico defui euismod huic jumentum lobortis mos vulpes. Causa eros feugiat hendrerit illum luctus nimis quidem valetudo. Elit ex obruo tation usitas vero. Abigo dolus hendrerit huic iriure jumentum letalis lobortis melior nulla. Blandit causa immitto iriure metuo nutus pagus ut voco. Aliquam autem blandit decet in jus loquor quidne saluto te. Eu meus voco wisi. Abico defui euismod huic jumentum lobortis mos vulpes. Causa eros feugiat hendrerit illum luctus nimis quidem valetudo. Elit ex obruo tation usitas vero. Abigo dolus hendrerit huic iriure jumentum letalis lobortis melior nulla. Blandit causa immitto iriure metuo nutus pagus ut voco.
<br> <br>
<p> <p>
%= link_to Welcome => '/' %= link_to Welcome => '/'
</p> </p>

View File

@@ -3,16 +3,9 @@
%# %#
<div> <div>
<!-- reetp This needs fixing -->
<!--
<script>
window.onload = function() {
SelectInput();
};
</script>
-->
% if (config->{debug} == 0) {
% if (config->{debug} == 1) {
<pre> <pre>
%= dumper $nut_data %= dumper $nut_data
</pre> </pre>
@@ -38,7 +31,7 @@
%# param 'status' => $nut_data->{status} unless param 'status'; %# param 'status' => $nut_data->{status} unless param 'status';
% my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status}); % my @status_options = selected_field([['Disabled' => 'disabled'], ['Enabled' => 'enabled']], $nut_data->{status});
<%= select_field 'status' => @status_options, class => "form-select" %> <%= select_field 'status' => @status_options, class => "form-select", id => 'status_select' %>
</div> </div>
</div> </div>
@@ -51,139 +44,172 @@
<div class="col-auto"> <div class="col-auto">
% my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']]; % my @Nutmode_options = [['Standalone' => 'standalone'], ['Net Server' => 'netserver'], ['Net Client ' => 'netclient']];
% param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode'; % param 'Nutmode' => $nut_data->{Nutmode} unless param 'Nutmode';
<%= select_field 'Nutmode' => @Nutmode_options, class => "form-select" %> <%= select_field 'Nutmode' => @Nutmode_options, class => "input form-select", id => "Nutmode_select" %>
</div> </div>
</div> </div>
<br><br> <br><br>
<h2><%=l('nut_if_Net_Server')%></h2> <div class="masterups">
<div class="secondaryups">
<br> <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 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>
<div class="col-auto">
% param 'MasterUPS_Name' => $nut_data->{MasterUPS_Name} unless param 'MasterUPS_Name'; <br>
<input type="text" name="MasterUPS_Name" pattern=".*" size="50" id="inputMasterUPSName" class="form-control" aria-describedby="Master UPS Name" placeholder="ups@localhost" value="<%= $nut_data->{MasterUPS_Name} %>" >
<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> </div>
<br> <div class="slaveups">
<div class="row g-3 align-items-center"> <h2><%=l('nut_if_Net_Client')%></h2>
<div class="col-md-1">
<label for="MasterUPSPassword" class="col-form-label"><%= l ('nut_MasterUPS_Password') %></label>
</div>
<div class="col-auto">
% param 'MasterUPS_Password' => $nut_data->{MasterUPS_Password} unless param 'MasterUPS_Password';
<input type="password" name="MasterUPS_Password" id="MasterUPSPassword" class="form-control" aria-describedby="Master UPS Password" value="<%= $nut_data->{MasterUPS_Password} %>">
</div>
<!-- reetp fix toggle password -->
<!-- <div class="col-auto">
<span id="togglePassword" class="bi bi-eye"></span>
</div>
-->
</div>
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<%= l ('nut_UPS_Model') %> <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> </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"
</div>
</div>
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<label for="inputUPSDevice" class="col-form-label"><%= l ('nut_UPS_Device') %></label> <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> </div>
<div class="col-auto">
% param 'UPS_Device' => $nut_data->{UPS_Device} unless param 'UPS_Device'; <br>
<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 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>
</div> </div>
<br><br> <br><br>
<h2><%=l('nut_if_Net_Client')%></h2> <div class="generics">
<br> <h2><%=l('nut_if_genericups')%></h2>
<div class="row g-3 align-items-center"> <br><br>
<div class="col-md-1">
<label for="inputSlaveUPSDevice" class="col-form-label"><%= l ('nut_SlaveUPS_UPSNAME@IP') %></label> <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> </div>
<div class="col-auto">
% param 'SlaveUPS_Name' => $nut_data->{SlaveUPS_Name} unless param 'SlaveUPS_Name';
<input type="text" name="SlaveUPS_Name" pattern=".*" size="50" id="inputSlaveUPSDevice" class="form-control" aria-describedby="Slave UPS Name" placeholder="upsname@IP" value="<%= $nut_data->{SlaveUPS_Name} %>" >
</div>
</div>
<br> <br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<label for="SlaveUPSPassword" class="col-form-label"><%= l ('nut_SlaveUPS_Password') %></label> <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> </div>
<div class="col-auto">
% param 'SlaveUPS_Pass' => $nut_data->{SlaveUPS_Pass} unless param 'SlaveUPS_Pass';
<input type="password" name="SlaveUPS_Pass" id="SlaveUPSPassword" class="form-control" aria-describedby="Slave UPS Password" value="<%= $nut_data->{SlaveUPS_Pass} %>">
</div>
<!-- reetp fix toggle password -->
<!-- <div class="col-auto">
<span id="togglePassword" class="bi bi-eye"></span>
</div>
-->
</div>
<br><br> <br>
<h2><%=l('nut_if_genericups')%></h2> <div class="row g-3 align-items-center">
<div class="col-md-1">
<br> <label for="inputUPSModel" class="col-form-label"><%= l ('nut_UPS_Generic_Model') %></label>
</div>
<div class="row g-3 align-items-center"> <div class="col-auto">
<div class="col-md-1"> % param 'UPS_gen_Model' => $nut_data->{UPS_gen_Model} unless param 'UPS_gen_Model';
<label for="inputUPSGenericType" class="col-form-label"><%= l ('nut_UPS_Generic_Type') %></label> <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>
<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> <br>
@@ -195,12 +221,12 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
%# Probably finally by a submit.
</form> </form>
<br> <br>
</div> </div>

View File

@@ -3,37 +3,35 @@
%# %#
<div> <div>
<!-- <!--
<script> <script>
window.onload = function() { window.onload = function() {
SelectInput(); SelectInput();
}; };
</script> </script>
--> -->
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<pre> <pre>
%= dumper $nut_data <%= dumper $nut_data %>
</pre> </pre>
% } % }
% my $btn = l('nut_APPLY'); % my $btn = l('nut_APPLY');
%= form_for "nutupsu" => (method => 'POST') => begin
<form action="/smanager/nutupsu" method="POST">
% param 'trt' => $nut_data->{trt} unless param 'trt'; % param 'trt' => $nut_data->{trt} unless param 'trt';
%= hidden_field 'trt' => $nut_data->{trt} <%= hidden_field 'trt' => $nut_data->{trt} %>
%# Inputs etc in here. %# Inputs etc in here.
<div class=""> <div>
<a href='nutupsd?trt=CONFIG' class = "btn btn-sm btn-primary">
<%= l ('nut_Configure_NutUPS') %>
<a href='nutupsd?trt=CONFIG' class=""> </a>
%= l('nut_Configure_NutUPS')
</a>
%#= link_to l('nut_Configure_NutUPS'), 'nutupsd?trt=CONFIG' , class=> 'link link1'
</div> </div>
<br>
<h2><%= l ('nut_Status_of_the_controlled_UPS')%></h2> <h2><%= l ('nut_Status_of_the_controlled_UPS')%></h2>
@@ -41,7 +39,9 @@
<%= l ('nut_Descriptive_paragraph') %> <%= l ('nut_Descriptive_paragraph') %>
</div> </div>
<!-- <br>
<!--
<span class=""> <span class="">
%=l('nut_Status_(from_upsc)') %=l('nut_Status_(from_upsc)')
</span> </span>
@@ -50,10 +50,11 @@
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true' %= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
</span> </span>
<br> <br>
--> -->
%= include 'partials/_nut_UPS_STATUS' <%= include 'partials/_nut_UPS_STATUS' %>
%# Probably finally by a submit. %# Probably finally by a submit.
%end </form>
</div> </div>

View File

@@ -1,11 +1,9 @@
<h1>UPS Status</h1> <h2>UPS Status</h2>
%= stylesheet '/css/nut_ups-status-page.css'
<div class="container-md"> <div class="container-md">
<div> <div>
<h2>Device Information</h2> <h2>Device Information</h2>
<table class="table table-bordered"> <table class="table table-bordered nutTable">
<tr> <tr>
<td>Manufacturer:</td> <td>Manufacturer:</td>
<td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td> <td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td>
@@ -29,7 +27,7 @@
<div> <div>
<h2>Battery Status</h2> <h2>Battery Status</h2>
<table class="table table-bordered"> <table class="table table-bordered nutTable">
<tr> <tr>
<td>Charge:</td> <td>Charge:</td>
<td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td> <td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td>
@@ -53,7 +51,7 @@
<div> <div>
<h2>Input Power</h2> <h2>Input Power</h2>
<table class="table table-bordered"> <table class="table table-bordered nutTable">
<tr> <tr>
<td>Voltage:</td> <td>Voltage:</td>
<td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td> <td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td>
@@ -81,7 +79,7 @@
<div> <div>
<h2>UPS Status</h2> <h2>UPS Status</h2>
<table class="table table-bordered"> <table class="table table-bordered nutTable">
<tr> <tr>
<td>Status:</td> <td>Status:</td>
<td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td> <td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td>

View File

@@ -114,7 +114,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -90,7 +90,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -40,7 +40,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
@@ -92,7 +92,7 @@
% my $csrf_token = "TOKEN"; # CSRF token for security % my $csrf_token = "TOKEN"; # CSRF token for security
% my $actionRemove = qq{ % my $actionRemove = qq{
% <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto"> % <a href="portforwardingd?CsrfDef=$csrf_token&trt=DEL&sport=$sport&proto=$proto">
% <button type='button' class="btn btn-primary" title='$remove_text' > % <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -53,7 +53,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -30,7 +30,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -9,7 +9,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>
@@ -54,7 +54,7 @@
% my $printer_name = $printer->key; % my $printer_name = $printer->key;
% my $actionRemove = qq{ % my $actionRemove = qq{
% <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name"> % <a href="printers2?CsrfDef=$csrf_token&trt=DEL&&printer=$printer_name">
% <button type='button' class="btn btn-primary" title='$remove_text' > % <button type='button' class="btn btn-primary btn-sm" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -37,7 +37,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -14,7 +14,7 @@
<br><br> <br><br>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -6,7 +6,7 @@
<%= $c->render_to_string(inline => l('pse_DESCRIPTION')); %> <%= $c->render_to_string(inline => l('pse_DESCRIPTION')); %>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
<%= hidden_field 'trt' => 'ADD' %> <%= hidden_field 'trt' => 'ADD' %>
@@ -53,7 +53,7 @@
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure %my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
%$actionModify = qq{ %$actionModify = qq{
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=UPD&pseudonym=$pseudonyms_entry_name"> % <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 % $modify_text
% </button> % </button>
% </a> % </a>
@@ -66,7 +66,7 @@
%my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure %my $pseudonyms_entry_name = $pseudonym->key; # pseudonyms_entry name extracted from the data structure
%$actionRemove = qq{ %$actionRemove = qq{
% <a href="pseudonyms2?CsrfDef=$csrf_token&trt=DEL&pseudonym=$pseudonyms_entry_name"> % <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 % $remove_text
% </button> % </button>
% </a> % </a>

View File

@@ -62,7 +62,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -71,7 +71,7 @@
% my $quota_user_name = $user->key; # quotas_entry name extracted from the data structure % my $quota_user_name = $user->key; # quotas_entry name extracted from the data structure
% my $actionModify = qq{ % my $actionModify = qq{
% <a href="quotad?CsrfDef=$csrf_token&trt=UPD&user=$quota_user_name"> % <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 % $modify_text
% </button> % </button>
% </a> % </a>

View File

@@ -85,7 +85,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -12,18 +12,18 @@
<li class="nav-header">USER</li> <li class="nav-header">USER</li>
<li class="nav-item"> <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' %> <i class="nav-icon bi bi-person-fill"></i>Current User: <%= session 'username' %>
</a> </a>
</li> </li>
% my $cc = 300; % 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) { % <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
% my ($classNew, $target, $href) = ''; % my ($classNew, $target, $href) = '';
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) { % 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\// ) { % if ( $_->{'FILENAME'} =~ m/^2\// ) {
% $target = '_self'; % $target = '_self';
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||; % (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;

View File

@@ -31,7 +31,7 @@
</div> </div>
<div class="col-auto"> <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>
</div> </div>
</form> </form>

View File

@@ -40,7 +40,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-danger"><%= $btn %></button> <button type="submit" class="btn btn-danger btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
<form action="/smanager/useraccounts" method="POST"> <form action="/smanager/useraccounts" method="POST">
<br> <br>
<div> <div>
<button type="submit" class="btn btn-primary"><%= $btn %> </button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %> </button>
</div> </div>
</form> </form>
@@ -63,14 +63,14 @@
% if ($useraccounts_user_name eq 'admin') { % if ($useraccounts_user_name eq 'admin') {
%$actionModify = qq{ %$actionModify = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name"> %<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 % $modify_text
% </button> % </button>
%</a> %</a>
%}; %};
%$actionResetPw = qq{ %$actionResetPw = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWS&user=$useraccounts_user_name"> %<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 % $password_text
% </button> % </button>
%</a> %</a>
@@ -78,7 +78,7 @@
% } else { % } else {
%$actionModify = qq{ %$actionModify = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPD&user=$useraccounts_user_name"> %<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 % $modify_text
% </button> % </button>
%</a> %</a>
@@ -93,14 +93,14 @@
<!-- Sets BOTH columns - possibly leave out Reset Password here?--> <!-- Sets BOTH columns - possibly leave out Reset Password here?-->
%$actionLock = qq{ %$actionLock = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name"> %<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 % Unlock
% </button> % </button>
%</a> %</a>
%}; %};
%$actionResetPw = qq{ %$actionResetPw = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name"> %<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 % $password_text
% </button> % </button>
%</a> %</a>
@@ -109,14 +109,14 @@
% } elsif ($useraccounts_user_name ne 'admin') { % } elsif ($useraccounts_user_name ne 'admin') {
%$actionLock = qq{ %$actionLock = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=LCK&user=$useraccounts_user_name"> %<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 % $lock_text
% </button> % </button>
%</a> %</a>
%}; %};
%$actionResetPw = qq{ %$actionResetPw = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=PWD&user=$useraccounts_user_name"> %<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 % $password_text
% </button> % </button>
%</a> %</a>
@@ -126,7 +126,7 @@
% if ( $removable eq 'yes' ) { % if ( $removable eq 'yes' ) {
%$actionRemove = qq{ %$actionRemove = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=DEL&user=$useraccounts_user_name"> %<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 % $remove_text
% </button> % </button>
%</a> %</a>
@@ -136,7 +136,7 @@
<!-- If webmail disabled??? --> <!-- If webmail disabled??? -->
% $actionroundcube = qq{ % $actionroundcube = qq{
%<a href="roundcubepanel?CsrfDef=$csrf_token&url=https://$thisdomain/roundcube?_user=$useraccounts_user_name&height=600px"> %<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 % $roundcube_text
% </button> % </button>
%</a> %</a>

View File

@@ -42,7 +42,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -75,7 +75,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -64,7 +64,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -279,7 +279,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -105,7 +105,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= l 'SAVE' %></button> <button type="submit" class="btn btn-primary btn-sm"><%= l 'SAVE' %></button>
</div> </div>
</div> </div>

View File

@@ -66,7 +66,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -2,10 +2,6 @@
% content_for 'module' => begin % content_for 'module' => begin
<!-- should be moved -->
%= javascript '/js/qmailanalog.js'
<div class="card-body"> <div class="card-body">
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
@@ -60,7 +56,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -40,7 +40,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -277,7 +277,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -40,14 +40,14 @@
% if (!($url =~ /https:/)) { % if (!($url =~ /https:/)) {
% $url = 'https://' . $url; % $url = 'https://' . $url;
%} % }
<div class="container-fluid"> <div class="container-fluid">
<a href="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>"> <a href="<%= "https://".$thisdomain."/" %>roundcube?_user=<%= $username %>">
<button class="" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %> <button class="" width=20em title="<%= l('Full Window') %>"><%= l('Full Window') %>
</button> </button>
</a> </a>
<object id="" data="<%=$url %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object> <object data="<%=$url %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>
</div> </div>
</div> </div>
@@ -59,7 +59,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -106,7 +106,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -101,7 +101,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -25,7 +25,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -4,69 +4,73 @@
<div class="card-body"> <div class="card-body">
<p>Index on line - Welcome page <div>Index on line - Welcome page<br></div>
<br>
</p>
<p>
Cogo diam enim ibidem paulatim pertineo velit. Comis patria pertineo secundum. Aliquip laoreet quibus zelus. Gravis incassum interdico iustum lucidus neo os paratus. Autem causa haero pneum similis sudo vindico. Iusto molior neque oppeto. Ideo minim nibh refoveo veniam vereor virtus. Appellatio pala scisco.
Caecus esse exputo ideo laoreet valde. Appellatio feugiat haero jus lucidus tum valetudo vulputate. Amet illum imputo volutpat. Acsi adipiscing brevitas facilisi illum laoreet lobortis lucidus sagaciter uxor. Defui dolor hos luptatum quadrum saluto verto vicis wisi. <div>
Cogo diam enim ibidem paulatim pertineo velit. Comis patria pertineo secundum. Aliquip laoreet quibus zelus. Gravis incassum interdico iustum lucidus neo os paratus. Autem causa haero pneum similis sudo vindico. Iusto molior neque oppeto. Ideo minim nibh refoveo veniam vereor virtus. Appellatio pala scisco.
Acsi ideo pagus ymo. Ea jugis lobortis nimis utrum veniam vereor. Aliquip amet autem gilvus hos iaceo loquor natu pagus refoveo. Adipiscing laoreet probo tation tum vero. Enim minim ymo. Dolore imputo iusto iustum lobortis meus molior vulputate. Dolor immitto iustum jumentum olim pagus saluto uxor zelus. Capto commodo eu euismod. Duis ille nunc premo quidem tamen ulciscor wisi. Caecus esse exputo ideo laoreet valde. Appellatio feugiat haero jus lucidus tum valetudo vulputate. Amet illum imputo volutpat. Acsi adipiscing brevitas facilisi illum laoreet lobortis lucidus sagaciter uxor. Defui dolor hos luptatum quadrum saluto verto vicis wisi.
Abdo abico damnum dolor et facilisi incassum melior populus saepius. Commodo conventio ex exputo pagus quae valetudo. Eligo jumentum lobortis suscipit tamen torqueo validus venio voco. Letalis molior tego tincidunt tum. Bene iriure melior natu obruo os te voco. Ea oppeto refoveo tum. Consectetuer dolus ut. Acsi ideo pagus ymo. Ea jugis lobortis nimis utrum veniam vereor. Aliquip amet autem gilvus hos iaceo loquor natu pagus refoveo. Adipiscing laoreet probo tation tum vero. Enim minim ymo. Dolore imputo iusto iustum lobortis meus molior vulputate. Dolor immitto iustum jumentum olim pagus saluto uxor zelus. Capto commodo eu euismod. Duis ille nunc premo quidem tamen ulciscor wisi.
Abdo abico damnum dolor et facilisi incassum melior populus saepius. Commodo conventio ex exputo pagus quae valetudo. Eligo jumentum lobortis suscipit tamen torqueo validus venio voco. Letalis molior tego tincidunt tum. Bene iriure melior natu obruo os te voco. Ea oppeto refoveo tum. Consectetuer dolus ut.
Abdo abigo aptent commoveo inhibeo molior nibh plaga pneum zelus. Conventio genitus neo nulla patria pneum saluto velit voco. Abigo defui dolore humo nulla nunc. Autem commodo erat gemino nisl olim pecus ratis tego. Fere luctus nunc sit. Bene humo imputo paulatim suscipit. Aliquam diam dolor feugiat gravis imputo lucidus modo nulla obruo. Ea macto melior neo qui ratis velit.
</div>
<%= l ('MESS_TEST','toto') %>
<div>
<%= link_to Initial => '/' %>
</div>
<div>
<%= link_to Manual => '/manual' %>
</div>
<div>
<%= link_to Welcome => '/welcome' %>
<a href="<%= url_for 'index' %>">Accueil</a>
</div>
% use SrvMngr::Navigation2;
% my %nav = %{SrvMngr::navigation2->getNavigation( $c->languages() )};
Abdo abigo aptent commoveo inhibeo molior nibh plaga pneum zelus. Conventio genitus neo nulla patria pneum saluto velit voco. Abigo defui dolore humo nulla nunc. Autem commodo erat gemino nisl olim pecus ratis tego. Fere luctus nunc sit. Bene humo imputo paulatim suscipit. Aliquam diam dolor feugiat gravis imputo lucidus modo nulla obruo. Ea macto melior neo qui ratis velit.
</p>
%= l ('MESS_TEST','toto')
<p>
%= link_to Initial => '/'
</p>
<p>
%= link_to Manual => '/manual'
</p>
<p>
%= link_to Welcome => '/welcome'
<a href="<%= url_for 'index' %>">Accueil</a -->.
</p>
% use SrvMngr::Navigation2;
% my %nav = %{SrvMngr::navigation2->getNavigation( $c->languages() )};
<!-- % = dumper %nav --> <!-- % = dumper %nav -->
<div> <div>
% 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) { % <=> ($nav{$b}{'WEIGHT'}/$nav{$b}{'COUNT'}) } keys %nav) {
</div> </div>
<div> <div>
%= $h
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) { <%= $h %>
% my ($target, $classNew) = ( $_->{'FILENAME'} =~ m/^2\// ) ?
% ('_self',' accent') :
% ('main','') ;
% my $href = '/server-manager' . $_->{'FILENAME'};
<div class=""><a class="" target='
%= $target
' onclick=\"swapClasses('sme
%= $c
')\" id="" href='
%= $href
'>
%= $_->{'DESCRIPTION'}
</a>
</div>
% $c++;
% }
% } % foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
% my ($target, $classNew) = ( $_->{'FILENAME'} =~ m/^2\// ) ?
% ('_self',' accent') :
% ('main','') ;
% my $href = '/server-manager' . $_->{'FILENAME'};
<div class=""><a class="" target='
%= $target
' onclick=\"swapClasses('sme
%= $c
')\" href='
%= $href
'>
%= $_->{'DESCRIPTION'}
</a>
</div>
% $c++;
% }
% }
</div> </div>
</div> </div>
% end % end

View File

@@ -92,7 +92,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-1"> <div class="col-md-1">
<button type="submit" class="btn btn-primary"><%= $btn %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div> </div>
</div> </div>

View File

@@ -44,7 +44,7 @@
<%= hidden_field 'trt' => 'UPDT' %> <%= hidden_field 'trt' => 'UPDT' %>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnInUp %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnInUp %></button>
</div> </div>
</div> </div>
</form> </form>
@@ -57,7 +57,7 @@
<%= hidden_field 'trt' => 'INST' %> <%= hidden_field 'trt' => 'INST' %>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnInAv %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnInAv %></button>
</div> </div>
</div> </div>
</form> </form>
@@ -70,7 +70,7 @@
<%= hidden_field 'trt' => 'REMO' %> <%= hidden_field 'trt' => 'REMO' %>
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnInRm %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnInRm %></button>
</div> </div>
</div> </div>
@@ -135,7 +135,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnConfig %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnConfig %></button>
</div> </div>
</div> </div>

View File

@@ -149,7 +149,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnSave %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnSave %></button>
</div> </div>
</div> </div>

View File

@@ -72,7 +72,7 @@
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-sm btn-primary"><%= $btnSave %></button> <button type="submit" class="btn btn-primary btn-sm"><%= $btnSave %></button>
</div> </div>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More