diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js
index f26abfd31..c7b9eadb1 100644
--- a/assets/js/sections/qso.js
+++ b/assets/js/sections/qso.js
@@ -10,6 +10,19 @@ function normalizeFieldValue(value) {
return String(value ?? "").trim();
}
+function escapeNoticeValue(value) {
+ return String(value || '').replace(/[&<>"']/g, function(char) {
+ var escapes = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": '''
+ };
+ return escapes[char] || char;
+ });
+}
+
function showQsoNotice(message, alertType) {
var safeType = alertType || 'info';
var $container = $('#notice-alerts-container');
@@ -605,9 +618,14 @@ var favs={};
success: function(response) {
if (response && response.status === 'ok') {
var savedCallsign = normalizeFieldValue($('#callsign').val()).toUpperCase();
+ var savedBand = normalizeFieldValue($('#band').val());
var saveMessage = (response && response.message) ? response.message : 'QSO Added';
- if (savedCallsign) {
- saveMessage += ': ' + savedCallsign + '';
+ if (savedCallsign && savedBand) {
+ saveMessage += ': ' + escapeNoticeValue(savedCallsign) + ' on ' + escapeNoticeValue(savedBand) + '';
+ } else if (savedCallsign) {
+ saveMessage += ': ' + escapeNoticeValue(savedCallsign) + '';
+ } else if (savedBand) {
+ saveMessage += ': on ' + escapeNoticeValue(savedBand) + '';
}
var qsoFormElement = document.getElementById('qso_input');