Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Weblate
2025-11-19 13:40:13 +00:00
4 changed files with 32 additions and 32 deletions

View File

@@ -246,7 +246,7 @@
document.addEventListener('DOMContentLoaded', function() {
var isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
var modKey = isMac ? 'Cmd' : 'Ctrl';
document.getElementById('filterTipText').textContent = '<?= __("Hold"); ?> ' + modKey + ' <?= __("and click to select multiple options"); ?>';
document.getElementById('filterTipText').innerHTML = '<?= __("Hold"); ?> ' + modKey + ' <?= __("and click to select multiple options"); ?>';
});
</script>
<div class="row">

View File

@@ -85,8 +85,8 @@
<!-- Second Layer - Password Reset Modal -->
<script>
var lang_admin_email_settings_incorrect = "<?= __("Email settings are incorrect."); ?>";
var lang_admin_password_reset_processed = "<?= __("Password-reset email sent successfully to user. You can close this dialog now."); ?>";
var lang_admin_email_settings_incorrect = "<?= __("Email settings are incorrect."); ?>";
var lang_admin_password_reset_processed = "<?= __("Password-reset email sent successfully to user. You can close this dialog now."); ?>";
var lang_admin_password_reset_failed = "<?= __("Password-reset email could not be sent to user. Are the email settings in global options configured correctly?"); ?>";
</script>
<div class="modal fade bg-black bg-opacity-50" id="passwordResetModal" tabindex="-1" aria-labelledby="passwordResetLabel" data-bs-backdrop="static">
@@ -123,7 +123,7 @@
<!-- Second Layer - Convert to Clubstation Modal -->
<?php if ($this->config->item('special_callsign')) { ?>
<script>
var lang_account_conversion_processed = "<?= __("The account was successfully converted. You can now close this dialog."); ?>";
var lang_account_conversion_processed = "<?= __("The account was successfully converted. You can now close this dialog."); ?>";
var lang_account_conversion_failed = "<?= __("The account could not be converted. An error has occurred."); ?>";
</script>
<div class="modal fade bg-black bg-opacity-50" id="userConvertModal" tabindex="-1" aria-labelledby="userConvertLabel" data-bs-backdrop="static" data-bs-keyboard="false">
@@ -168,4 +168,4 @@
</div>
</div>
</div>
<?php } ?>
<?php } ?>

View File

@@ -369,14 +369,14 @@ $(function() {
let originalText = $option.data('original-text');
if (!originalText) {
originalText = $option.text();
originalText = $option.html();
$option.data('original-text', originalText);
}
if ($option.is(':selected')) {
$option.text('☑ ' + originalText);
$option.html('☑ ' + originalText);
} else {
$option.text('☐ ' + originalText);
$option.html('☐ ' + originalText);
}
});
}
@@ -461,7 +461,7 @@ $(function() {
retrieve: true,
language: {
url: getDataTablesLanguageUrl(),
"emptyTable": "<i class='fas fa-spinner fa-spin'></i> Loading spots...",
"emptyTable": "<i class='fas fa-spinner fa-spin'></i> " + lang_bandmap_loading_spots,
"zeroRecords": lang_bandmap_no_spots_found
},
'columnDefs': [
@@ -535,13 +535,13 @@ $(function() {
let callsignHtml = rowData[5]; // Callsign is column 6 (0-indexed = 5)
let tempDiv = $('<div>').html(callsignHtml);
let call = tempDiv.find('a').text().trim();
let call = tempDiv.find('a').html().trim();
if (!call) return;
let qrg = parseFloat(rowData[2]) * 1000000; // Frequency in MHz, convert to Hz
let modeHtml = rowData[3]; // Mode is column 4 (0-indexed = 3)
let modeDiv = $('<div>').html(modeHtml);
let mode = modeDiv.text().trim(); // Extract clean mode text from HTML
let mode = modeDiv.html().trim(); // Extract clean mode text from HTML
// Ctrl+click: Only tune radio, don't prepare logging form
if (e.ctrlKey || e.metaKey) {
@@ -657,17 +657,17 @@ $(function() {
loadingMessage += '...';
}
$('#statusMessage').text(loadingMessage).attr('title', '');
$('#statusMessage').html(loadingMessage).attr('title', '');
$('#statusFilterInfo').remove();
$('#refreshIcon').removeClass('fa-hourglass-half').addClass('fa-spinner fa-spin');
$('#refreshTimer').text('');
$('#refreshTimer').html('');
return;
}
if (lastFetchParams.timestamp === null) {
$('#statusMessage').text('');
$('#statusMessage').html('');
$('#statusFilterInfo').remove();
$('#refreshTimer').text('');
$('#refreshTimer').html('');
return;
}
@@ -709,7 +709,7 @@ $(function() {
fetchTooltipLines.push(`${lang_bandmap_fetched_at}: ${h}:${m}:${s}Z`);
}
$('#statusMessage').text(statusMessage).attr('title', fetchTooltipLines.join('\n'));
$('#statusMessage').html(statusMessage).attr('title', fetchTooltipLines.join('\n'));
// Add info icon if filters are active (with separate tooltip for active filters)
$('#statusFilterInfo').remove();
@@ -720,10 +720,10 @@ $(function() {
if (isFetching) {
$('#refreshIcon').removeClass('fa-hourglass-half').addClass('fa-spinner fa-spin');
$('#refreshTimer').text(lang_bandmap_fetching);
$('#refreshTimer').html(lang_bandmap_fetching);
} else {
$('#refreshIcon').removeClass('fa-spinner fa-spin').addClass('fa-hourglass-half');
$('#refreshTimer').text(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
$('#refreshTimer').html(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
}
} function getDisplayedSpotCount() {
var table = get_dtable();
@@ -758,7 +758,7 @@ $(function() {
} else {
if (!isFetchInProgress && lastFetchParams.timestamp !== null) {
$('#refreshIcon').removeClass('fa-spinner fa-spin').addClass('fa-hourglass-half');
$('#refreshTimer').text(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
$('#refreshTimer').html(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
}
}
}, 1000);
@@ -1087,7 +1087,7 @@ $(function() {
// Submode column: show submode if available
let submode = (single.submode && single.submode !== '') ? single.submode : '';
data[0].push(submode); // Callsign column: wrap in QRZ link with color coding
let qrzLink = '<a href="https://www.qrz.com/db/' + single.spotted + '" target="_blank" onclick="event.stopPropagation();" data-bs-toggle="tooltip" title="Click to view ' + single.spotted + ' on QRZ.com">' + single.spotted + '</a>';
let qrzLink = '<a href="https://www.qrz.com/db/' + single.spotted + '" target="_blank" onclick="event.stopPropagation();" data-bs-toggle="tooltip" title="' + lang_bandmap_click_view_qrz_callsign.replace('%s', single.spotted) + '">' + single.spotted + '</a>';
wked_info = ((wked_info != '' ? '<span class="' + wked_info + '">' : '') + qrzLink + (wked_info != '' ? '</span>' : ''));
var spotted = wked_info;
data[0].push(spotted);
@@ -1304,7 +1304,7 @@ $(function() {
let actualDisplayedCount = table.rows({search: 'applied'}).count();
updateStatusBar(cachedSpotData.length, actualDisplayedCount, getServerFilterText(), getClientFilterText(), false, false);
$('#refreshIcon').removeClass('fa-spinner fa-spin').addClass('fa-hourglass-half');
$('#refreshTimer').text(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
$('#refreshTimer').html(lang_bandmap_next_update + ' ' + refreshCountdown + 's');
}
// Update DX Map only if visible (don't waste resources)
@@ -1331,9 +1331,9 @@ $(function() {
// Clear all badges when no data
if (fetchedBand) {
// Set all to "-" when in single band fetch mode but no data
$('.band-count-badge, .mode-count-badge').text('-');
$('.band-count-badge, .mode-count-badge').html('-');
} else {
$('.band-count-badge, .mode-count-badge').text('0');
$('.band-count-badge, .mode-count-badge').html('0');
}
return;
}
@@ -1496,7 +1496,7 @@ $(function() {
$('#toggle' + band + 'Filter').append(' <span class="badge bg-dark band-count-badge">' + displayText + '</span>');
domCache.badges[selector] = $('#toggle' + band + 'Filter .band-count-badge');
} else {
$badge.text(displayText);
$badge.html(displayText);
}
});
@@ -1510,7 +1510,7 @@ $(function() {
$('#toggle' + group + 'Filter').append(' <span class="badge bg-dark band-count-badge">' + displayText + '</span>');
domCache.badges[selector] = $('#toggle' + group + 'Filter .band-count-badge');
} else {
$badge.text(displayText);
$badge.html(displayText);
}
}); // Update mode button badges
['Cw', 'Digi', 'Phone'].forEach(mode => {
@@ -1521,7 +1521,7 @@ $(function() {
$('#toggle' + mode + 'Filter').append(' <span class="badge bg-dark mode-count-badge">' + count + '</span>');
domCache.badges[selector] = $('#toggle' + mode + 'Filter .mode-count-badge');
} else {
$badge.text(count);
$badge.html(count);
}
});
@@ -1596,7 +1596,7 @@ $(function() {
$('#' + filter.id).append(' <span class="badge bg-dark quick-filter-count-badge">' + filter.count + '</span>');
} else {
// Update existing badge
$badge.text(filter.count);
$badge.html(filter.count);
}
});
}
@@ -3485,7 +3485,7 @@ $(function() {
const spotTime = parseInt($(this).attr('data-spot-time'));
if (spotTime) {
const ageMinutes = Math.floor((now - spotTime) / 60000);
$(this).text(ageMinutes);
$(this).html(ageMinutes);
}
});
}
@@ -3776,7 +3776,7 @@ $(function() {
// Find row with matching callsign
const row = table.rows().nodes().toArray().find(node => {
const callsignCell = $(node).find('td:eq(4)').text();
const callsignCell = $(node).find('td:eq(4)').html();
return callsignCell.includes(callsign);
});

View File

@@ -83,17 +83,17 @@ function convert_user(user_id, convert_to) {
},
success: function(result) {
if (result) {
$('#user_converted_message').show().text(lang_account_conversion_processed).addClass('alert-success');
$('#user_converted_message').show().html(lang_account_conversion_processed).addClass('alert-success');
$('#convert_user_btn').removeClass('running btn-danger').addClass('btn-secondary');
$('#user_converted').show().addClass('fa-check text-success');
} else {
$('#user_converted_message').show().text(lang_account_conversion_failed).addClass('alert-danger');
$('#user_converted_message').show().html(lang_account_conversion_failed).addClass('alert-danger');
$('#convert_user_btn').prop('disabled', false).removeClass('running');
$('#user_converted').show().addClass('fa-times text-danger');
}
},
error: function() {
$('#user_converted_message').show().text(lang_account_conversion_failed).addClass('alert-danger');
$('#user_converted_message').show().html(lang_account_conversion_failed).addClass('alert-danger');
$('#convert_user_btn').prop('disabled', false).removeClass('running');
$('#user_converted').show().addClass('fa-times text-danger');
}