I am trying to build a popup in an ArcGIS Online map that displays fire district contact information using Arcade and HTML. My Arcade script successfully retrieves and formats the data, but I want to link it to the HTML table for a cleaner, structured display. Is this possible?
Arcade
// Debugging: Trim whitespace and standardize case for comparison
var fireDistValue = Upper(Trim($feature.FireDist));
// Define contact information for Fire
var Contact1 = {
name: "xyzxy xyzxy",
phone: "xyz-xyz-xyzx",
email: "xyz@xyzxyz.xyz",
address: "xyz xyzxyzxy, xyzxyz, xy xyzxy"
};
var Contact2 = {
name: "xyzxy xyzxy",
phone: "xyz-xyz-xyzx",
email: "xyz@xyzxyz.xyz",
address: "xyz xyzxyzxy, xyzxyz, xy xyzxy"
};
// Function to format contact details
function formatContact(contact) {
return "Contact: " + contact.name +
"\nPhone: " + contact.phone +
"\nEmail: " + contact.email +
"\nAddress: " + contact.address;
}
// Initialize result string
var result = "Fire District: " + fireDistValue + "\n\n";
// Check the fire district and append the appropriate contact info
if (fireDistValue == "FIRE") {
result += formatContact(Contact1) + "\n\n" + formatContact(Contact2);
} else {
result += "No contact information available for this Fire District.";
}
// Return the result
return result;
html
table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<th style="border: 1px solid #ddd; padding: 8px;">Fire District</th>
<th style="border: 1px solid #ddd; padding: 8px;">Contact Name</th>
<th style="border: 1px solid #ddd; padding: 8px;">Phone</th>
<th style="border: 1px solid #ddd; padding: 8px;">Email</th>
<th style="border: 1px solid #ddd; padding: 8px;">Address</th>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">${FireDist}</td>
<td style="border: 1px solid #ddd; padding: 8px;">${ContactName1}</td>
<td style="border: 1px solid #ddd; padding: 8px;">${Phone1}</td>
<td style="border: 1px solid #ddd; padding: 8px;">${Email1}</td>
<td style="border: 1px solid #ddd; padding: 8px;">${Address1}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">${ContactName2}</td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">${Email2}</td>
<td style="border: 1px solid #ddd; padding: 8px;">${Address2}</td>
</tr>
</tbody>
</table>