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 and Claude Opus 5.5
739a4c49f7
fix: write cachetool temp script to shared typo3temp
...
PHP workers with a stale realpath cache still resolve the current symlink
to the previous release and returned 404 for the script placed in the new
one.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-18 18:21:06 +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
5bb4b6254a
chore: update http client config
2026-10-08 11:40:57 +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
7839b97e63
chore: add a PhpStorm HTTP client suite for the chatbot content feed
2026-10-08 09:41:27 +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
eb096bd8b5
chore: update project dependencies
2026-09-22 15:49:34 +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
6ff308015a
chore: optimize deployer config
2026-09-15 11:38:56 +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
fromme
f745c7b683
chore: exclude temp dir from repository
2026-09-15 11:08:49 +02:00
fromme
9b3550ec40
feat: migrate to native lazy loading of images
2026-09-12 12:08:09 +02:00
fromme
d9943619f6
chore: cleanup
2026-09-12 12:04:52 +02:00
fromme
e33b57c9f1
feat: disable chatbot in page footer
2026-09-12 12:04:33 +02:00
fromme
dc594efee1
chore: remove obsolete vue component
2026-09-12 11:52:46 +02:00
fromme
432d8da350
chore: update redis config
2026-09-12 11:31:29 +02:00
fromme
5b338eeab6
chore: align redis config with prod
2026-09-12 11:27:08 +02:00
fromme
05ceae5100
fix: simplify generated captchas to improve ux
2026-09-12 11:22:49 +02:00
fromme
f005272242
chore: align php version with prod
2026-09-10 13:51:37 +02:00
fromme
7d856d1031
chore: align mariadb version with prod
2026-09-10 13:50:26 +02:00
fromme
f9e94231a7
chore: update project dependencies
2026-09-10 12:54:35 +02:00
fromme
0a3e8f59cb
fix: repair broken backend search and improve copy traceability
2026-09-10 12:52:55 +02:00
fromme
a01d1ba0c5
chore: drop dead description column from product table
2026-09-10 11:50:38 +02:00
fromme
6828e49663
fix: declare importer-written date columns as passthrough
2026-09-10 11:50:38 +02:00
fromme
46001a02ed
fix: add TCA default 0 to relation selects for MySQL strict mode
2026-09-10 10:17:10 +02:00
fromme
5e39e39b90
chore: finalize deployer config to new target host
2026-09-10 09:01:22 +02:00
fromme
8dad782603
feat: integrate with redis for improved performance
2026-09-08 18:27:00 +02:00
fromme
0e6a65dfa0
feat: integrate with bunny.net cdn for images
2026-09-05 10:47:00 +02:00
fromme
8f421da599
fix: prevent empty buttons in link panel content element
2026-09-03 15:51:38 +02:00
fromme
39fb85744d
feat: replace secondary theme color for snowbreak subsite
2026-09-03 15:43:49 +02:00
fromme
07b42c9334
feat: import buspro xml files from remote sftp source
2026-09-03 10:02:36 +02:00
fromme
e27b376285
chore: adjust deployer config for new Hetzner host
2026-09-03 08:18:46 +02:00
fromme
20e56aab1f
feat: disable page header and breadcrumb in concept detail plugin
2026-09-01 11:45:07 +02:00
fromme
d7219ec341
feat: remove date constraints from price calendar
2026-08-26 13:33:10 +02:00
fromme
0bdc6c873b
feat: explicit icon label map for accommodation booking api
2026-08-20 14:43:09 +02:00
fromme
b502127e2e
fix: correct order of flushing caches during deployment
2026-08-20 12:12:18 +02:00
fromme
baf7b5d94a
feat: improved caching of api-backed content
2026-08-20 12:11:58 +02:00
fromme
87e6857bff
chore: refactor and cleanup template
2026-08-19 17:50:41 +02:00
fromme
47de6027c8
fix: hide groups price calendar on winter products
2026-08-19 17:34:27 +02:00
fromme
3178eee8a0
feat: remove obsolete buttons/links from product detail page
2026-08-19 17:03:29 +02:00
fromme
229c675e4d
feat: remove obsolete plugins for hotel groups prices
2026-08-19 14:53:22 +02:00
fromme
22072b4a25
feat: remove obsolete fields from backend form for hotel groups prices
2026-08-17 15:21:01 +02:00
fromme
d809d747b7
chore: update frontend tooling
2026-08-17 08:40:41 +02:00
fromme
9fc490fabf
fix: use currency value provided by api response for the calendar
2026-08-17 08:40:41 +02:00
fromme
5396ab941b
feat: replace button labels
2026-08-17 08:40:41 +02:00
fromme
e8154ebba1
fix: remove exstraneous border below tables
2026-08-17 08:40:41 +02:00
fromme
b19d09ef64
feat: replace secondary theme color for snowbreak subsite
2026-08-17 08:32:46 +02:00
fromme
8578f7fca4
feat: update theme colors for snowbreak subsite
2026-08-13 11:58:42 +02:00
fromme
843b963195
chore: replace logo files with optimized versions
2026-08-13 11:37:08 +02:00
fromme
61b5e1a2d3
fix: provide required typoscript to content element
2026-08-13 11:12:40 +02:00