<%= title %>

Edit content displayed on Contact Us page

View Contact Us Page
The contact hero currently renders at about 1496x544px on desktop. Recommended minimum upload: 1920x700px.
<% if (data.hero?.backgroundImage) { %> <% let heroImgSrc=data.hero.backgroundImage; if (heroImgSrc && !heroImgSrc.startsWith('http://') && !heroImgSrc.startsWith('https://')) { heroImgSrc=heroImgSrc.startsWith('/') ? heroImgSrc : '/' + heroImgSrc; } %> Background image preview <% } else { %>
Image preview
<% } %>
Keep the hero title short so the centered breadcrumb stays balanced on tablet and mobile.
Contact Cards
<% if (data.contactCards && data.contactCards.length> 0) { %> <% data.contactCards.forEach((card, index)=> { %> <% const iconSource=card.iconSource || (card.iconType && card.iconType.startsWith('/uploads/') ? 'image' : 'fontawesome' ); const isImageIcon=iconSource==='image' ; const faIconValue=!isImageIcon ? (card.iconType || '' ) : '' ; const imageIconValue=isImageIcon ? (card.iconType || '' ) : '' ; %>
Recommended maximum: 40 characters.
data-index="<%= index %>" onchange="handleIconSourceChange(this)"> data-index="<%= index %>" onchange="handleIconSourceChange(this)">
Choose a Font Awesome icon from the list
<% if (faIconValue) { %> <% } %>
<% if (imageIconValue) { %> Icon preview <% } else { %> <% } %> Custom icons render at about 28x28px inside a 64x64 circle. Use SVG or a square PNG/WebP at 64x64px or 128x128px.
Each line is shown inside a compact contact card. Keep it to 1-3 short lines.
<% }); %> <% } %>
Map Settings
Enter a full address. This text is used for map lookup and should stay concise.
Paste the Google Maps embed URL from Share -> Embed a map.
<% if (data.map?.embedUrl) { %>
Location: <%= data.map?.markerTitle || data.map?.location || 'Location' %>
<% } else if (data.map?.location && data.map?.coordinates?.lat && data.map?.coordinates?.lng) { %> <% var lat=data.map.coordinates.lat; var lng=data.map.coordinates.lng; var zoom=data.map.zoom || 15; var markerTitle=data.map.markerTitle || data.map.location; var zoomDelta={ 10: 0.1, 11: 0.05, 12: 0.025, 13: 0.0125, 14: 0.006, 15: 0.003, 16: 0.0015, 17: 0.00075, 18: 0.000375 }; var delta=zoomDelta[zoom] || 0.003; var latDelta=delta; var lngDelta=delta * 1.5; %>
📍 <%= markerTitle %>
<% } else { %> Enter location above to see map preview <% } %>
Form Settings
Legacy label. Keep it short if you still use it in future templates.
Recommended maximum: 24 characters.
The form heading spans the full form width. Recommended maximum: 48 characters.
This line is centered under the form heading. Recommended maximum: 160 characters.

Form Fields
<% if (data.form?.fields && data.form.fields.length> 0) { %> <% data.form.fields.forEach((field, index)=> { %>
Keep field labels short for the stacked mobile form.
>
Internal programme reference only. Recommended maximum: 48 characters.
<% }); %> <% } %>
Recent Submissions
<% if (locals.submissions && submissions.length> 0) { %> <% submissions.forEach(submission=> { %> <% }); %> <% } else { %> <% } %>
Date Name Email Phone Message Status Action
<%= new Date(submission.createdAt).toLocaleDateString() %> <%= new Date(submission.createdAt).toLocaleTimeString([], {hour: '2-digit' , minute:'2-digit'}) %> <%= submission.name %> <%= submission.email %> <%= submission.phone || '-' %>
<%= submission.message %>
<% let statusClass='bg-secondary' ; if(submission.status==='pending' ) statusClass='bg-warning text-dark' ; if(submission.status==='read' ) statusClass='bg-info text-dark' ; if(submission.status==='replied' ) statusClass='bg-success' ; if(submission.status==='archived' ) statusClass='bg-secondary' ; %> <%= submission.status %>
No submissions found
Showing last 50 submissions