A Home alert renders at the top of the My Holiday section. It is can be a card with a border, title with icon and text. This has an accent color and icon based on it's style, with an option to have these custom set. Optionally you can have it as a banner style with a background image and white title (or transparent black gradient). An alert box can have an optional intent to cross link too content within the app, or link out of the app externally (eg to F&B system, or other bookings). If an alert is set to banner style, it must include an intent else will not render in the app (as will do nothing when clicked)
//Guest Alert example with no button
{
"title": "High winds",
"copy": "We have had an amber weather warning for high winds expected until Thursday",
"style": "alert",
"sites": [
"park-one",
"park-two"
]
}
//Owners Only Banner
{
"title": "5% off at the bar",
"style": "banner",
"banner": "https://your-wordpress-install.com/wp-content/uploads/2022/10/park-bar.jpeg?v=1684756244",
"linkIntent": "offer",
"linkID": 134,
"isOwnersOnly": true,
"sites": [
"park-one"
]
}
//All properties
{
"title": "High winds",
"copy": "We have had an amber weather warning for high winds expected until Thursday",
"style": "alert",
"banner": "https://your-wordpress-install.com/wp-content/uploads/2022/10/park-bar.jpeg?v=1684756244",
"linkIntent": "offer",
"linkTitle": "Book Now",
"linkUrl": "https://your-booking-engine.com/start-booking",
"linkSlug": "menu-item-slug",
"linkID": 134,
"isOwnersOnly": true,
"signedInOnly": false,
"onHolidayOnly": false,
"sites": [
"park-one"
]
}Type : String - Required
Title is rendered either at the top of the alert box card in the stlye's defined color, or if the style is set to banner then will be white on top of a black gradient at the bottom of the banner image
Type : Home Alert Style - Optional
Style of the alert box. If set to banner then an intent must be set, and the copy property will be ignored.
Type : Rich Text / Multiline String - Optional
For alert box cards this is the main copy rendered. This is ignored if the style is set to banner.
Type : Image Url String - Optional
If style is set to banner, then this is required. This is the image which is displayed as the banner. Other styles ignore this property even if set.
Type : Home Alert Intent - Optional
This is optional for alert cards, but required if the style is set to banner. If this is set then the alert box will add a call to action button, or behaviour as expected when the banner is clicked.
Type : String - Optional
The title of the call to action button. This is ignored if the style is set to banner, or there is no intent set.
Type : Url String - Optional
External url required if the intent is set to 'link', or the QikServe embed url if intent is set to 'qikserve' - ignored by all other intents
Type : String - Optional
Slug of place menu item if the intent is set to 'menu' - ignored by all other intents
Type : Integer - Optional
ID of record to navigate to if the intent is set to 'place', 'offer' or 'qikserve' - ignored by all other intents
Type : Color String - Optional
Custom color used by the border and title of the alert box if style is set to 'custom' - ignored by all other styles
Type : Image Url String - Optional
Custom icon used beside title of the alert box if style is set to 'custom' - ignored by all other styles. This should be a small transparent png - 100-75px recommended
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in with a valid holiday booking, AND is between their arrival and departure date (inclusive) - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in with a valid holiday booking - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in as a home owner - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Array of String - Required
Only required for multi site installs - can be disregarded for single park systems. This should be a list of valid groupsite keys which this alert box should be available for. If this array is missing or empty then the alert box will not render for any user.
As we connect to different systems using a range of different languages, we can interpret several things as a true. Generally speaking holidaymaker will use a standard true/false JSON boolean, however we also read a lower case string and checked if they are "1", "true", "yes", or "on" to then create the positive boolean. Unless explicitly noted, all booleans are defaulted as false if the node doesn't exist.
{
"optionOne": true,
"optionTwo": false,
"allTheseAreValidTrues" : [
1, "1", true, "true", "on", "yes"
]
}A string value which should be a valid 24bit hexadecimal string. For example "#FF0000" for red. This is parsed by the app surfaces and defaults to a brand color if invalid.
{
"color": "#FF00FF"
}This is string definition to set a home alert's behaviour when the optional link is clicked. The options available are :
• "none" - No button (default)
• "link" - Navigate to external link
• "menu" - Navigate to places section filtering by a menu item
• "place" - Navigate to places section and view a specific place record
• "offers" - Navigate to offers section
• "offer" - Navigate to offers section and view a specific offer record
• "whatson" - Navigate to what's on section
• "homesales" - Navigate to holiday home sales section
• "routes" - Navigate to routes section
• "faqs" - Navigate to FAQs / Holiday Information section
• "qikserve" - Load chosen QikServe link within the app
{
"linkIntent": "offer",
"linkID": 134,
}This is string definition to style a home alert. The options available are :
• "standard" - Info icon in branded color (default)
• "alert" - Warning/caution icon in red
• "custom" - Can set own icon/color
• "banner" - Renders as landscape image banner with title on top
{
"style": "alert"
}Our app surfaces talk to an image engine on our infrastructure to process and resize images for different smart phone screen densities. Because of this the size of images are less relevant as they are delivered at optimum sizes anyway. However due to processing power and speed we do recommend that image urls are all 3000 pixels or below. The app surfaces will never need an image this large, so it gives you the option of still having a large quality image, but can be loaded in the apps and our infrastructure efficiently. We support both png, jpeg, and webp images. You can optionally include a '?v=' version integer so this can be used for versioning. If you do include this you can ensure images are reprocessed if the source image is changed on your servers.
{
"imgUrl": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-large-image-3000x2100.jpg?v=1691481892",
"image": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-smaller-image.png"
}Standard JSON Integer - 0 is commonly considered to be a default value, unless it is an valid ID when -1 is used. For sort priorities 99 is used as the default.
{
"key1": 9,
"key2": 42,
"arrayOfInts": [
2,
3,
5,
8
]
}Acts the same as the standard String type, however If text is assumed to include line breaks then we use a place holder of #BREAK#. These will then be replaced by the relevant line breaks depending on the language, and device that is rendering the text. This is commonly used in entity copy, and addresses. Rich text should not include HTML or other markup. There should always be a contextual consideration as well - for example if you copy includes a html anchor link to 'Read More' - then simply removing the markup will then leave the text 'Read More' which will be a redundant, none clickable piece of text within the app surfaces.
{
"textWithBullets": "This paragraph will now have two line breaks, and then a list of bullets#BREAK##BREAK#• Bullet 1#BREAK#• Bullet 2#BREAK#• Bullet 3",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB"
}Standard JSON String - Often will have certain characters escaped depending what system is writing the JSON packet, however our parser only requires to have double quotes (") escaped. UTF-8 encoding is our standard, but others may be accepted if required. If line breaks are required in the text then the Rich Text / Multiline String type is used instead.
{
"key1": "A string value",
"key2": "Another string with an some \"quotes\" that need escaping",
"arrayOfStrings": [
"Item one as a string",
"Item two as a string",
"Item three as a string",
]
}A Url is sent the same as a string. If our system knows this is a url it will check if it starts with http or https - Note that navigating from both iOS and Android should use https.
{
"bookingUrl" : "https://portal.managebooking.pmssystem"
}Added qikserve option
The "covid" style has been removed and future apps will default this to "alert"
Added banner image and signed in/on holiday availability booleans