@decoloop/planner v1.2.4
Releases
1.2.4
- fix only hidden articles on validation
1.2.3
- add custom translations for 'datepicker'
- 'datepicker' validations
- hide summaries in 'all steps'
1.2.2
- add submit validation for 'all steps' modus
- fix to change an address
1.2.1
- Fix hidden articles
1.2.0
- new flow to show all steps at once.
- new option to apply selected quantity to all active articles (shared articles)
- new option to show calendar (datepicker)
- new way to visualize customer step (grid)
- improved styling
Activity logging
Inline custom events like 'activity' are not supported in HTML. JavaScript event listeners are needed to handle the 'activity' event.
<decoloop-planner id="widget"/>
<script>
document
.getElementById("widget")
.addEventListener("activity", e => { console.log(e.detail) });
</script>
button name="dlpButtonLoader" id="widget-button">[text]</button>
<script>
document
.getElementById("widget-button")
.addEventListener("activity", e => { console.log(e.detail) });
</script>
Example logging object
{
"details": {
"skillCode": "OTHER.MEASURE.PIECES",
"active": true
},
"hasErrors": false,
"errors": [],
"kind": 0,
"action": "toggle"
}
Parameter | Type | Description |
---|---|---|
kind | int | Widget step |
action | string | Action within the step |
details | object or null | based on action |
hasErrors | boolean | true when the errors list has values |
errors | string[] | list of errors |
Widget step: Articles
Kind = 0
Action: toggle
{
"details": {
"skillCode": "OTHER.MEASURE.PIECES",
"active": true
},
"hasErrors": false,
"errors": [],
"kind": 0,
"action": "toggle"
}
Parameter | Type | Description |
---|---|---|
skillCode | string | selected article |
active | boolean | selected or deselected |
Action: change
{
"details": {
"skillCode": "OTHER.MEASURE.PIECES",
"quantity": "5"
},
"kind": 0,
"hasErrors": false,
"errors": [],
"action": "change"
}
Parameter | Type | Description |
---|---|---|
skillCode | string | selected article |
quantity | int | selected quantity |
Action: submit
{
"details": {
"articles": [
{
"code": "OTHER.MEASURE.PIECES",
"quantity": 5
}
]
},
"kind": 0,
"hasErrors": false,
"errors": [],
"action": "submit"
}
Parameter | Type | Description |
---|---|---|
articles | object[] | list of selected articles |
articles[].code | string | code |
articles[].quantity | int | quantity |
Possible errors that can occur:
- error.session.session_expired
- error.articles.articles_requires_at_least_1_item
- error.articles.article_invalid
- error.employees.no_valid_skills"
Widget step: Address
Kind = 1
Action: autocomplete
- Works only on dutch addresses.
- Non-blocking action, full address fields are visible in case of invalid address
{
"details": {
"request": {
"streetNumber": "51",
"zip": "8011CA"
},
"response": {
"address": {
"streetName": "Westerlaan",
"streetNumber": "51",
"addition": null,
"zipCode": "8011CA",
"cityName": "Zwolle",
"country_ISO3166_1_2": "NL",
},
"isValid": true
}
},
"kind": 1,
"hasErrors": false,
"errors": [],
"action": "autocomplete"
}
Parameter | Type | Description |
---|---|---|
request | object | inserted address info |
request.streetNumber | string | streetNumber |
request.zip | string | zip |
response | object or null | received info |
response.address.isValid | boolean | if address can be found |
response.address | object or null | address info, null when isValid is false |
response.address.streetName | string | street name |
response.address.streetNumber | string | street number |
response.address.addition | string | addition |
response.address.zipCode | string | zip |
response.address.cityName | string | city |
response.address.country_ISO3166_1_2 | string | country code |
Possible errors that can occur:
- error.session.session_expired
- error.address.address_invalid
Action: branch
{
"details": {
"licenseeId": 999
},
"kind": 1,
"hasErrors": false,
"errors": [],
"action": "branch"
}
Parameter | Type | Description |
---|---|---|
licenseeId | int | branch id |
Action: submit
{
"details": {
"request": {
"streetNumber": "51",
"zip": "8011",
"streetName": "Westerlaan",
"city": "Zwolle",
"licenseeId": null
},
"response": {
"streetName": "Westerlaan",
"streetNumber": "51",
"addition": null,
"zipCode": "8011 CA",
"cityName": "Zwolle",
"country_ISO3166_1_2": "nl"
}
},
"kind": 1,
"hasErrors": false,
"errors": [],
"action": "submit"
}
Parameter | Type | Description |
---|---|---|
request | object | inserted address info |
request.streetNumber | string | street number |
request.streetName | string | street name |
request.zip | string | zip |
request.city | string | city |
request.licenseeId | int or null | branch id |
response | object or null | received info |
response.streetName | string | street name |
response.streetNumber | string | street number |
response.addition | string | addition |
response.zipCode | string | zip |
response.cityName | string | city |
response.country_ISO3166_1_2 | string | country code |
Possible errors that can occur:
- error.session.session_expired
- error.address.address_invalid
- error.address.address_difference_detection
- error.address.address_difference_detection.zip
- error.address.address_difference_detection.street_name
- error.address.address_difference_detection.street_number
- error.address.address_difference_detection.city
- error.worklocation.none_in_area
- error.worklocation.none_in_max_distance
Widget step: Schedule
Kind = 3
Action: set_time
{
"details": {
"time": "2022-12-28T12:00:00Z"
},
"kind": 2,
"hasErrors": false,
"errors": [],
"action": "set_time"
}
Parameter | Type | Description |
---|---|---|
time | DateTime | selected date and time |
Action: next_range
{
"details": null,
"kind": 2,
"hasErrors": false,
"errors": [],
"action": "next_range"
}
Action: previous_range
{
"details": null,
"kind": 2,
"hasErrors": false,
"errors": [],
"action": "previous_range"
}
Action: submit
{
"details": {
"firstName": "John",
"middleName": "",
"lastName": "Doe",
"emailAddress": "johndoe@decoloop.com",
"phoneNumber": "0612345678",
"mobilePhoneNumber": "",
"languageAbbreviation": "nl",
"remark": "Extra info"
},
"kind": 3,
"hasErrors": false,
"errors": [],
"action": "submit"
}
Parameter | Type | Description |
---|---|---|
firstName | string | |
middleName | string | |
lastName | string | |
emailAddress | string | |
phoneNumber | string | |
mobilePhoneNumber | string | |
languageAbbreviation | string | |
remark | string |
Widget step: Confirm
Kind = 4
Action: submit
{
"details": {
"reference": "1010.00125"
},
"kind": 4,
"hasErrors": false,
"errors": [],
"action": "submit"
}
Parameter | Type | Description |
---|---|---|
reference | string | received reference number |
Possible errors that can occur:
- error.session_expired
- error.dateslot.invalid_timeslot
- error.unknown.unknown
Generic action: previous
Available in each step
{
"details": null,
"kind": 1,
"hasErrors": false,
"errors": [],
"action": "previous"
}
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago