a73f14fa7f
When kiosk consent is completed, the staff-facing customer Details page now updates the SMS badge instantly via SignalR — no page refresh needed. Added customerId to the NewInAppNotification SignalR payload so the KioskConsent handler can match the current URL and swap the badge in place. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
2.0 KiB
JavaScript
50 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
async function pushSmsConsent(customerId) {
|
|
const tok = document.querySelector('input[name="__RequestVerificationToken"]')?.value ?? '';
|
|
try {
|
|
const res = await fetch(`/Kiosk/PushSmsConsent?customerId=${customerId}`, {
|
|
method: 'POST',
|
|
headers: { 'RequestVerificationToken': tok }
|
|
});
|
|
const data = await res.json();
|
|
if (data.success) {
|
|
toastr.success('Consent form sent to the kiosk tablet — hand it to the customer.', 'Sent to Kiosk');
|
|
document.getElementById('btnGetSmsConsent')?.classList.add('d-none');
|
|
document.getElementById('btnCancelSmsConsent')?.classList.remove('d-none');
|
|
} else {
|
|
toastr.warning(data.message || 'Could not send consent to kiosk.');
|
|
}
|
|
} catch {
|
|
toastr.error('An error occurred. Please try again.');
|
|
}
|
|
}
|
|
|
|
async function cancelSmsConsent() {
|
|
const tok = document.querySelector('input[name="__RequestVerificationToken"]')?.value ?? '';
|
|
try {
|
|
const res = await fetch('/Kiosk/CancelSmsConsent', {
|
|
method: 'POST',
|
|
headers: { 'RequestVerificationToken': tok }
|
|
});
|
|
const data = await res.json();
|
|
if (data.success) {
|
|
toastr.info('Consent request cancelled — kiosk is free.');
|
|
document.getElementById('btnCancelSmsConsent')?.classList.add('d-none');
|
|
document.getElementById('btnGetSmsConsent')?.classList.remove('d-none');
|
|
}
|
|
} catch {
|
|
toastr.error('An error occurred. Please try again.');
|
|
}
|
|
}
|
|
|
|
window.updateCustomerSmsStatus = function () {
|
|
const section = document.getElementById('sms-status-section');
|
|
if (!section) return;
|
|
const today = new Date().toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' });
|
|
section.innerHTML = `<span class="badge bg-success bg-opacity-10 text-success border border-success border-opacity-25"
|
|
title="Consented ${today}">
|
|
<i class="bi bi-chat-fill me-1"></i>SMS on
|
|
</span>`;
|
|
};
|