in reference-architectures/cloud_deploy_flow/WebsiteDemo/public/script.js [4:52]
function updateMessages() {
fetch('/messages')
.then((response) => response.json())
.then((data) => {
const subscriptionMap = {
'build_notifications_subscription': 'build_notifications_subscription',
'deploy-commands-subscription': 'deploy-commands-subscription',
'clouddeploy-operations-subscription':
'clouddeploy-operations-subscription',
'clouddeploy-approvals-subscription':
'clouddeploy-approvals-subscription',
};
// Loop through each subscription and update its content
for (const subscriptionName in subscriptionMap) {
const messages = data[subscriptionName] || [];
const messageContainer = document.getElementById(
subscriptionMap[subscriptionName],
);
// Only update if there are new messages
if (
!lastMessageData[subscriptionName] ||
lastMessageData[subscriptionName].length !== messages.length
) {
messageContainer.innerHTML = ''; // Clear previous messages
// Add new messages with pretty-printed JSON
messages.forEach((message) => {
const messageDiv = document.createElement('div');
messageDiv.className = 'message';
messageDiv.textContent = JSON.stringify(
{
id: message.id,
data: message.data,
attributes: message.attributes,
},
null,
2,
); // Prettify JSON with indentation
messageContainer.appendChild(messageDiv);
});
}
}
// Save the latest message data to compare on the next refresh
lastMessageData = data;
});
}