New Color logo rsph clear

2020 MESA Virtual Conference

January 2021 — SA Instrumentation & Control*

2020 brought about a lot of uncertainty, anxiety, fear, broken economies, and a complete halt to what we have come to know as ‘life’… I wonder why? Jokes aside, COVID-19 has left devastation and destruction in its wake, normally words we use to describe natural disasters, but this virus has firmly cemented itself into that category. I’m pretty sure the organising team over at MESA Africa were scratching their heads trying to get a Yes or No to go ahead and plan this two-day virtual conference. Many of us would probably have thrown in the towel as this is a historically attend-in-person event, and going digital must have complicated matters. I mean, you have to get a platform to host several people, share video, audio and slides (live), interact via chatbox, ensure the connection from where you are recording is on near-5G grade latency and reliability …

*Republished with kind permission of SA Instrumentation & Control.

Stay up to date.

Sign up our newsletter for latest article and news.
document.addEventListener("DOMContentLoaded", function () { // 1. Select all MetForm elements on the page const forms = document.querySelectorAll(".metform-form-content"); forms.forEach(function (form) { form.addEventListener("submit", function (event) { // 2. Find the email input field inside this specific form const emailInput = form.querySelector('input[type="email"]'); if (!emailInput) return; const emailValue = emailInput.value.trim().toLowerCase(); // 3. Define the list of forbidden free email domains const blockedDomains = ["gmail.com", "hotmail.com", "outlook.com", "live.com", "yahoo.com"]; // 4. Extract the domain from the entered email address const emailParts = emailValue.split("@"); if (emailParts.length !== 2) return; const emailDomain = emailParts[1]; // RESTORED: Targets the domain string after the @ // 5. Check if the domain is in our blocked list if (blockedDomains.includes(emailDomain)) { // Prevent the form from submitting to MetForm's servers event.preventDefault(); event.stopPropagation(); // 6. Handle error messaging removeExistingError(form); showErrorMessage(emailInput, "Please use a business email address. Free email providers (Gmail, Hotmail, etc.) are not allowed."); } else { removeExistingError(form); } }, true); // Use capturing phase to intercept MetForm's submit handler early }); // Helper function to inject a clean error message below the input field function showErrorMessage(inputElement, message) { inputElement.style.borderColor = "#ff4d4d"; const errorDiv = document.createElement("div"); errorDiv.className = "metform-custom-error"; errorDiv.innerText = message; errorDiv.style.color = "#ff4d4d"; errorDiv.style.fontSize = "13px"; errorDiv.style.marginTop = "5px"; errorDiv.style.fontWeight = "500"; inputElement.parentNode.appendChild(errorDiv); } // Helper function to clear previous error messages on retry function removeExistingError(formElement) { const existingError = formElement.querySelector(".metform-custom-error"); if (existingError) { existingError.remove(); } const emailInput = formElement.querySelector('input[type="email"]'); if (emailInput) { emailInput.style.borderColor = ""; } } });