How to use it
The elina smart widget can be implemented and customised by the customer or the agency managing the customer website.
-
Upload the following files on your site:
elina-smart-element.zip
{link to elina-smart-element.css}: absolute path of the file;
{link to elina-smart-element.js}: absolute path of the file;
{booking engine url}: absolute URL of the booking engine;
so, for instance:
<link rel="stylesheet" href="https://www.yourwebsite.com/css/elina-smart-element.css">
<script>
var elinaGlobalConst = {
elinaBEurl: "https://yourwebsite-bookings.elinapms.com/services/",
elinaServicesUrl: "https://yourwebsite-services.elinapms.com/",
}
</script>
<div id="elina-smart-element"></div>
<script src="https://www.yourwebsite.com/js/elina-smart-element.js"></script>
This should be enough to display a generic element. See customisations options below.
Customisation options
The settings below need to be implemented as properties of var elinaGlobalConst
object.
Only elinaBEurl is required on var elinaGlobalConst
.
Datepicker options
Most of the options are the direct transpositions of the ones that can be found here: Airbnb React Date Picker - Github .
Please check there if the meaning of them is not clear.
Name |
Type |
Description |
---|---|---|
elinaBEurl |
string (default: "https://currentdev-bookings.elinapms.com/elina/") |
It’s the main URL of elina booking engine. |
elinaServicesUrl |
string (default: "https://currentdev-services.elinapms.com/") |
It’s the URL of elina services. This is important to have for fetching elina areas and elina person classifications. |
isProd |
bool (default: true) |
use false if you receive a CORS error when checking for availability of a single property. This usually happens when you work locally. |
startDate |
moment object (default: null) |
if the date picker should display already a start date |
endDate |
moment object (default: null) |
if the date picker should display already an end date |
focusedInput |
PropTypes.oneOf([START_DATE, END_DATE]) or null |
|
displayFormat |
string (default: “DD/MM/YYYY“) |
|
culture |
string (default: “en-GB“) |
culture setting, e.g. en-GB for UK customers |
isRTL |
bool (default: false) |
|
renderMonthText |
string (default: null) |
|
renderDayContents |
string (default: null) |
|
unavailableDays |
array<string> (default: null) |
option to block of unavaialble days from the datepicker |
minimumNights |
int (default: null) |
Minimum number of nights pre-set |
minDate |
moment object (default: null) |
if timezone is a concern, today’s date can be passed here with locale of the elina system. |
maxDate |
moment object (default: null) |
if timezone is a concern, today’s date can be passed here with locale of the elina system. |
orientation |
string (default: “horizontal“) |
displays the calendar in portrait or landscape mode |
Dictionary options
Name |
Default (all strings) |
Description |
---|---|---|
datepickerText |
“Choose your dates“ |
OPtion to change label on datepicker |
startDatePlaceholderText |
“Start date“ |
Option to change label for arrival date |
endDatePlaceholderText |
“End date“ |
Option to change label for departure date |
submitButtonText |
“Submit“ |
Option to change label of submit button |
guestText |
“Guests“ |
Option to change label for number of guests field |
promoCodeText |
“Promo code“ |
Option to change label for promotion code field |
zoneText |
“Area“ |
Option to change label for elina property Area |
propertyTypeText |
“Type“ |
Option to change label for elina property type |
loadingPanelText |
“Loading…“ |
Option to change text for loading splash screen |
dropdownAll |
"- All -" |
First dropdown item on Areas selection |
bookNowFor |
"Book now from £{0}" |
It will display on the submit button after a price has been fetched for the specified availability (requires: fetchAndDisplayElinaPrice true) |
elina Customisation stuff
The following code snippet shows parameters that can be added to the widget code to customise its functionality.
elinaDateFormat: "MM/DD/YYYY",
maxCapacity: 10,
defaultGuestNumber: 2,
promoCodeVisible: true,
zone: null,
propertyType: null,
fetchElinaAvailability: true,
fetchElinaZones: true,
fetchElinaPersonClassification: true
fetchAndDisplayElinaPrice: false
isSmartBe: true
displayPersonClassificationAsGroup: false
Parameter |
Type |
Description |
---|---|---|
elinaDateFormat |
Date |
The date format arrival and departure dates are being displayed |
maxCapacity |
integer |
maximum number of guests to select in the drop down |
defaultGuestNumber |
integer |
default number of guest |
promoCodeVisible |
boolean |
to display the promo code option set to “True” |
zone |
integer (default value is NULL) |
area id - to be used for mapping when widget is used on property landing page |
propertyType |
integer (default value is NULL) |
property type id - to be used for mapping when widget is used on property landing page |
fetchElinaAvailability |
boolean |
will show real time availability on the calendar for a specific zone and type combination. This only works when using the zone and type mapping for property landing pages |
fetchElinaZones |
boolean |
creates a drop down list of areas from the elina system |
fetchElinaPersonClassification |
boolean |
adds the option to select number of different guest types, e.g. adults, children etc. |
fetchAndDisplayElinaPrice |
boolean (default: false) |
this will display the price from elina of the specified accommodation |
isSmartBE |
boolean (default: true) |
if true, it will redirect the users to step 3 of the booking engine. If not, it will go straitght to step 4 (last page before booking confirmation) |
displayPersonClassificationAsGroup |
boolean (default: false) |
requires Bootstrap.min.js to be installed |
Layout
The following parameters can be used to customise the code and layout of the widget.
formOrientation: "horizontal",
submitButtonCssClass: "btn btn-primary mx-sm-3 mb-2",
formGroupClass: "form-group mx-sm-3 mb-2",
formControlClass: "form-control",
guestPersonClassificationGroupButton: "btn btn-default dropdown-toggle"