fromme
11f46d0acf
fix: use utf8mb4 for the database connection and new tables
2026-10-20 11:48:10 +02:00
fromme
4279669aa3
fix: add TCA default 0 to relation selects in TCA overrides for MySQL strict mode
2026-10-20 10:16:40 +02:00
fromme
aa3d81102e
chore: re-activate chatbot in page footer
2026-10-19 09:12:37 +02:00
fromme
88e0488b49
fix: adopt text orientation in page footer on mobile screens
2026-10-18 18:13:39 +02:00
fromme
f57671b4d4
fix: single column in footer menu on mobile screens
2026-10-18 18:11:13 +02:00
fromme
313fb151bc
fix: add missing customer code pattern
2026-10-13 17:09:06 +02:00
fromme
6350742084
feat: show pickups table below bus section on product detail pages
2026-10-13 16:10:23 +02:00
fromme
ef7d81fe99
feat: remove the feature flag for the pickups table on product detail pages
2026-10-13 14:26:22 +02:00
fromme
0477589a7a
feat: fall back to the travel code for dates without a customer selection
2026-10-13 14:26:17 +02:00
fromme
38962845d3
chore: cleanup htaccess
2026-10-08 17:34:15 +02:00
fromme
c7f43ad02c
feat: add a feature flag for the pickups table on product detail pages
2026-10-08 17:22:21 +02:00
fromme
1111c180f8
feat: hide pickups of group travel dates on product detail pages
2026-10-08 17:20:31 +02:00
fromme
69f9b42757
feat: flag group travel dates from the BusPro customer selection
2026-10-08 16:09:43 +02:00
fromme
32b70f9b70
feat: require the CMS API key on /api/hotel and /api/product
2026-10-08 11:37:57 +02:00
fromme
416ac5c13d
feat: add a kill switch for the chatbot content feed
2026-10-08 09:36:16 +02:00
fromme
992ec19c33
feat: add the key-protected content-only page type for the chatbot feed
2026-10-08 09:36:12 +02:00
fromme
57b09624f4
feat: serve chatbot content records at /api/content/records
2026-10-08 09:36:06 +02:00
fromme
81724c818b
feat: serve the chatbot content manifest at /api/content/manifest
2026-10-08 09:36:01 +02:00
fromme
b4a9156df6
feat: add the API key check and settings for the chatbot content feed
2026-10-08 09:35:55 +02:00
fromme
41d188a8cc
feat: display pickups data on product detail page
...
addresses #869cgn2fm
2026-10-07 17:01:13 +02:00
fromme
c6ab02305b
fix: load captcha image in Chrome on initial page load
2026-10-05 12:01:21 +02:00
fromme
306c6b809f
feat: show hotel icons on hotel and product detail pages
...
addresses #86965w970
2026-10-01 14:17:28 +02:00
fromme
4095c4a068
fix: stop malformed captcha requests from poisoning the page cache
2026-09-30 15:24:50 +02:00
fromme
b41aeb7a25
fix: carry pickup times as local clock readings, not instants
2026-09-30 14:57:46 +02:00
fromme
c2dc88b8ab
fix: match API whitespace handling and skip matchcodes of hidden hotels
2026-09-30 14:57:39 +02:00
fromme
27832d6548
fix: stop truncating imported prices to whole euros
2026-09-30 14:57:20 +02:00
fromme
b510299032
feat: import products from the MyE&P export API
2026-09-30 14:57:13 +02:00
fromme
1b6f480bee
feat: read the BusPro XML export through XmlProductReader
2026-09-30 14:57:07 +02:00
fromme
b9851943d0
fix: key imported services by BusPro id and match selection groups by id
2026-09-30 14:56:50 +02:00
fromme
d338529afc
chore: cleanup .htaccess
2026-09-26 10:05:12 +02:00
fromme
e3099bac5f
feat: preconnect to the CDN host
2026-09-26 09:53:58 +02:00
fromme
322a59b31c
feat: offer brotli for the assets the webhost now serves itself
2026-09-26 09:40:11 +02:00
fromme
e96dd0f06d
fix: resolve leaflet marker images through webpack
2026-09-26 09:35:58 +02:00
fromme
f10d784a5c
fix: serve theme assets from the production host, keep images on the CDN
2026-09-25 17:35:07 +02:00
fromme
b5d0c484c0
fix: add missing template for date fields
2026-09-25 14:49:39 +02:00
fromme
d8bb376424
fix: send form date values as YYYY-MM-DD strings to epteam api
2026-09-25 14:46:44 +02:00
fromme
38d575cbe9
fix: point the application form finisher at epteam
2026-09-23 09:26:12 +02:00
fromme
f9e8704046
fix: datepicker obscured by logo in header searchbar
2026-09-23 09:24:25 +02:00
fromme
49547ecda3
fix: reuse the MyEP api connection instead of a client per call
2026-09-22 16:49:44 +02:00
fromme
b3541b21fb
feat: modernize fe tooling and drop weight
2026-09-22 15:29:34 +02:00
fromme
93ed5c6962
fix: harden encoded filter settings against malformed and stale input
2026-09-22 14:49:04 +02:00
fromme
942724fdd1
feat: derive room type from occupancy instead of a mapping table
2026-09-22 14:47:04 +02:00
fromme and Claude Opus 5
e52f7dcff8
feat: post application forms to MyEP with label-keyed extra values
...
Forms built in the backend form editor use generated element identifiers
(text-1, multicheckbox-2, ...) that carry no meaning and cannot be renamed
without breaking the other finishers configured on the form. ApplicationApiFinisher
therefore sends two halves: a small mapped core (firstName, lastName, email, ...)
that a developer configures per form and MyEP can rely on, plus every remaining
submitted value keyed by the element label for a human to read.
Each submission also carries where it came from: the form identifier and its
editor-given name, plus the uid and canonical URL of the page it was submitted
from - the same definition is embedded on several pages, so the page is what
distinguishes them. The URL is generated through the site router in the visitor's
language, like AddReferrerFinisher does it.
Labels come from the form definition rather than TranslationService, so the keys
do not shift with the site language. Values are normalized for JSON: dates to
Y-m-d, uploads to the file name, multi-value elements to a list, empty values
dropped, unsupported objects skipped with a log warning.
Like BpnApiFinisher the request failure is only logged, so a MyEP outage never
costs the application mail.
The endpoint (POST applications) does not exist in MyEP yet; the contract handed
over to that team lives in .ddev/plans/MYEP-APPLICATION-ENDPOINT.md. Until it is
built the finisher is registered but attached to no form.
Co-Authored-By: Claude Opus 5 <[email protected] >
2026-09-22 13:42:07 +02:00
fromme
30e531497d
fix: default Geoapify base url to Europe
2026-09-22 10:54:41 +02:00
fromme
2cb37e760a
fix: serve svg sprite locally for same-origin restrictions
2026-09-22 10:35:58 +02:00
fromme
3ff3251419
feat: integrate with Geaoapify for maps tiles
2026-09-22 10:25:20 +02:00
fromme
abcd39107b
fix: serve css/js via cdn
2026-09-22 09:32:15 +02:00
fromme
599e3c7ee2
fix: accept 409 from the MyEP contact form endpoint
2026-09-22 08:29:58 +02:00
fromme
6e0479bf22
fix: reduce timeout values for snowreport import
2026-09-15 11:28:14 +02:00
fromme
fb8fddf669
fix: make snowreport import type-safe and drop wget shell-out
2026-09-15 11:14:33 +02:00