@recras/online-booking-js 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npmpublish.yml +6 -6
- package/README.md +1 -1
- package/changelog.md +6 -0
- package/dist/onlinebooking.js +36 -12
- package/dist/onlinebooking.min.js +1 -1
- package/error_messages.patch +2409 -0
- package/package.json +13 -13
- package/src/booking.js +3 -2
- package/src/contactForm.js +17 -8
- package/src/dateHelper.js +8 -0
- package/src/vouchers.js +1 -1
- package/test/js-unit/recrasBookingSpec.js +0 -10
- package/test/js-unit/recrasDateHelperSpec.js +9 -0
|
@@ -8,10 +8,10 @@ jobs:
|
|
|
8
8
|
build:
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@
|
|
12
|
-
- uses: actions/setup-node@
|
|
11
|
+
- uses: actions/checkout@v3
|
|
12
|
+
- uses: actions/setup-node@v3
|
|
13
13
|
with:
|
|
14
|
-
node-version:
|
|
14
|
+
node-version: 16
|
|
15
15
|
- run: npm ci
|
|
16
16
|
- run: npm test
|
|
17
17
|
|
|
@@ -19,10 +19,10 @@ jobs:
|
|
|
19
19
|
needs: build
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
23
|
-
- uses: actions/setup-node@
|
|
22
|
+
- uses: actions/checkout@v3
|
|
23
|
+
- uses: actions/setup-node@v3
|
|
24
24
|
with:
|
|
25
|
-
node-version:
|
|
25
|
+
node-version: 16
|
|
26
26
|
registry-url: https://registry.npmjs.org/
|
|
27
27
|
- run: npm ci
|
|
28
28
|
- run: npm run build
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[](https://travis-ci.org/Recras/online-booking-js)
|
|
2
2
|
|
|
3
3
|
# Recras JS Integration Library
|
|
4
|
-
Version: 2.0.
|
|
4
|
+
Version: 2.0.4
|
|
5
5
|
|
|
6
6
|
JS library for easy online booking, contact form, and voucher integration
|
|
7
7
|
|
package/changelog.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.4 (2022-10-07)
|
|
4
|
+
* Contact form/Voucher sales no longer shows error messages inline, but after the form
|
|
5
|
+
|
|
6
|
+
## 2.0.3 (2022-07-21)
|
|
7
|
+
* Fix entering DD-MM-YYYY dates by hand
|
|
8
|
+
|
|
3
9
|
## 2.0.2 (2022-06-29)
|
|
4
10
|
* No changes from 2.0.1 - previous version on NPM contained wrong compiled version
|
|
5
11
|
|
package/dist/onlinebooking.js
CHANGED
|
@@ -20,7 +20,7 @@ function _objectEntries(obj) {
|
|
|
20
20
|
|
|
21
21
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
22
|
|
|
23
|
-
function _extends() { _extends = Object.assign
|
|
23
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
24
24
|
|
|
25
25
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
26
26
|
|
|
@@ -50,7 +50,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
50
50
|
|
|
51
51
|
/*******************************
|
|
52
52
|
* Recras integration library *
|
|
53
|
-
* v 2.0.
|
|
53
|
+
* v 2.0.4 *
|
|
54
54
|
*******************************/
|
|
55
55
|
var RecrasBooking = /*#__PURE__*/function () {
|
|
56
56
|
function RecrasBooking() {
|
|
@@ -1473,7 +1473,7 @@ var RecrasBooking = /*#__PURE__*/function () {
|
|
|
1473
1473
|
key: "addDateTimeSelectionHtml",
|
|
1474
1474
|
value: function addDateTimeSelectionHtml() {
|
|
1475
1475
|
var today = RecrasDateHelper.datePartOnly(new Date());
|
|
1476
|
-
var html = "<form class=\"recras-datetime\">\n <label for=\"recras-onlinebooking-date\">\n ".concat(this.languageHelper.translate('DATE'), "\n </label>\n <input type=\"text\" id=\"recras-onlinebooking-date\" class=\"recras-onlinebooking-date\" min=\"").concat(today, "\" disabled
|
|
1476
|
+
var html = "<form class=\"recras-datetime\">\n <label for=\"recras-onlinebooking-date\">\n ".concat(this.languageHelper.translate('DATE'), "\n </label>\n <input type=\"text\" id=\"recras-onlinebooking-date\" class=\"recras-onlinebooking-date\" min=\"").concat(today, "\" disabled autocomplete=\"off\">\n <label for=\"recras-onlinebooking-time\">\n ").concat(this.languageHelper.translate('TIME'), "\n </label>\n <select id=\"recras-onlinebooking-time\" class=\"recras-onlinebooking-time\" disabled autocomplete=\"off\"></select>\n </form>");
|
|
1477
1477
|
this.appendHtml(html);
|
|
1478
1478
|
}
|
|
1479
1479
|
}, {
|
|
@@ -1520,7 +1520,8 @@ var RecrasBooking = /*#__PURE__*/function () {
|
|
|
1520
1520
|
},
|
|
1521
1521
|
onSelect: function onSelect(date) {
|
|
1522
1522
|
return _this24.calendarOnDateSelect(date, pack.id);
|
|
1523
|
-
}
|
|
1523
|
+
},
|
|
1524
|
+
parse: RecrasDateHelper.parseMDY
|
|
1524
1525
|
});
|
|
1525
1526
|
|
|
1526
1527
|
this.datePicker = new Pikaday(pikadayOptions);
|
|
@@ -2513,7 +2514,8 @@ var RecrasContactForm = /*#__PURE__*/function () {
|
|
|
2513
2514
|
var pikadayOptions = _extends(RecrasCalendarHelper.defaultOptions(), {
|
|
2514
2515
|
field: _this38.findElement('[data-identifier="boeking.datum"]'),
|
|
2515
2516
|
i18n: RecrasCalendarHelper.i18n(_this38.languageHelper),
|
|
2516
|
-
numberOfMonths: 1
|
|
2517
|
+
numberOfMonths: 1,
|
|
2518
|
+
parse: RecrasDateHelper.parseMDY
|
|
2517
2519
|
});
|
|
2518
2520
|
|
|
2519
2521
|
new Pikaday(pikadayOptions);
|
|
@@ -2548,27 +2550,40 @@ var RecrasContactForm = /*#__PURE__*/function () {
|
|
|
2548
2550
|
element.parentNode.insertAdjacentHTML('afterend', "<div class=\"booking-error\">".concat(errorMsg, "</div>"));
|
|
2549
2551
|
}
|
|
2550
2552
|
}, {
|
|
2551
|
-
key: "
|
|
2552
|
-
value: function
|
|
2553
|
+
key: "showErrors",
|
|
2554
|
+
value: function showErrors() {
|
|
2555
|
+
var errors = [];
|
|
2556
|
+
|
|
2553
2557
|
for (var _i20 = 0, _this$getEmptyRequire2 = this.getEmptyRequiredFields(); _i20 < _this$getEmptyRequire2.length; _i20++) {
|
|
2554
2558
|
var el = _this$getEmptyRequire2[_i20];
|
|
2555
2559
|
var labelEl = el.parentNode.querySelector('label');
|
|
2556
2560
|
var requiredText = this.languageHelper.translate('CONTACT_FORM_FIELD_REQUIRED', {
|
|
2557
2561
|
FIELD_NAME: labelEl.innerText
|
|
2558
2562
|
});
|
|
2559
|
-
|
|
2563
|
+
errors.push(requiredText);
|
|
2560
2564
|
}
|
|
2561
2565
|
|
|
2562
2566
|
for (var _i22 = 0, _this$getInvalidField2 = this.getInvalidFields(); _i22 < _this$getInvalidField2.length; _i22++) {
|
|
2563
2567
|
var _el = _this$getInvalidField2[_i22];
|
|
2564
2568
|
|
|
2565
|
-
var
|
|
2569
|
+
var parentEl = _el.closest('div');
|
|
2570
|
+
|
|
2571
|
+
if (parentEl.classList.contains('radioGroup')) {
|
|
2572
|
+
parentEl = parentEl.parentNode.closest('div');
|
|
2573
|
+
}
|
|
2566
2574
|
|
|
2575
|
+
var _labelEl = parentEl.querySelector('label');
|
|
2576
|
+
|
|
2577
|
+
console.log(_labelEl, parentEl.querySelectorAll('label'));
|
|
2567
2578
|
var invalidText = this.languageHelper.translate('CONTACT_FORM_FIELD_INVALID', {
|
|
2568
2579
|
FIELD_NAME: _labelEl.innerText
|
|
2569
2580
|
});
|
|
2570
|
-
|
|
2581
|
+
errors.push(invalidText);
|
|
2571
2582
|
}
|
|
2583
|
+
|
|
2584
|
+
errors = _toConsumableArray(new Set(errors)); // Only unique text
|
|
2585
|
+
|
|
2586
|
+
this.findElement('button[type="submit"]').insertAdjacentHTML('afterend', "<div class=\"booking-error\"><ul><li>".concat(errors.join('<li>'), "</ul></div>"));
|
|
2572
2587
|
}
|
|
2573
2588
|
}, {
|
|
2574
2589
|
key: "showLabel",
|
|
@@ -2599,7 +2614,7 @@ var RecrasContactForm = /*#__PURE__*/function () {
|
|
|
2599
2614
|
submitButton.parentNode.insertAdjacentHTML('beforeend', "<div class=\"booking-error\">".concat(this.languageHelper.translate('ERR_CONTACT_FORM_EMPTY'), "</div>"));
|
|
2600
2615
|
return false;
|
|
2601
2616
|
} else if (this.hasEmptyRequiredFields() || !this.isValid()) {
|
|
2602
|
-
this.
|
|
2617
|
+
this.showErrors();
|
|
2603
2618
|
return false;
|
|
2604
2619
|
}
|
|
2605
2620
|
|
|
@@ -2749,6 +2764,15 @@ var RecrasDateHelper = /*#__PURE__*/function () {
|
|
|
2749
2764
|
|
|
2750
2765
|
return date;
|
|
2751
2766
|
}
|
|
2767
|
+
}, {
|
|
2768
|
+
key: "parseMDY",
|
|
2769
|
+
value: function parseMDY(dateStr) {
|
|
2770
|
+
var parts = dateStr.split('-');
|
|
2771
|
+
var day = parseInt(parts[0], 10);
|
|
2772
|
+
var month = parseInt(parts[1], 10) - 1;
|
|
2773
|
+
var year = parseInt(parts[2], 10);
|
|
2774
|
+
return new Date(year, month, day);
|
|
2775
|
+
}
|
|
2752
2776
|
}, {
|
|
2753
2777
|
key: "setTimeForDate",
|
|
2754
2778
|
value: function setTimeForDate(date, timeStr) {
|
|
@@ -3813,7 +3837,7 @@ var RecrasVoucher = /*#__PURE__*/function () {
|
|
|
3813
3837
|
this.contactForm.removeErrors();
|
|
3814
3838
|
|
|
3815
3839
|
if (this.contactForm.hasEmptyRequiredFields() || !this.contactForm.isValid() || !this.contactForm.checkRequiredCheckboxes()) {
|
|
3816
|
-
this.contactForm.
|
|
3840
|
+
this.contactForm.showErrors();
|
|
3817
3841
|
shouldDisable = true;
|
|
3818
3842
|
}
|
|
3819
3843
|
|