diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/AjaxTableController.php b/public/typo3conf/ext/ep_products/Classes/Controller/AjaxTableController.php index 6665352b..fd4cb8d8 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/AjaxTableController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/AjaxTableController.php @@ -36,6 +36,7 @@ use EP\EpProducts\Service\DateService; use EP\EpProducts\Service\FilterService; use EP\EpProducts\Service\ResellerDataService; use EP\EpProducts\Traits\RequestArgumentTypeConversionTrait; +use League\Period\Period; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -313,11 +314,19 @@ class AjaxTableController extends ActionController */ public function daytripRoomsAction(Hotel $hotel, Product $product, $dateFrom, $dateTo) { - $template = $this->settings['bpnBookingUrlTemplateCode']; - $rooms = $this - ->contingentDataService - ->getAvailableRooms($dateFrom, $dateTo, $hotel, $product, $template); + $period = new Period($dateFrom, $dateTo); + $nights = $period->getDateInterval()->format('%a'); + if (2 > $nights) { + $rooms = []; + } else { + $template = $this->settings['bpnBookingUrlTemplateCode']; + $rooms = $this + ->contingentDataService + ->getAvailableRooms($dateFrom, $dateTo, $hotel, $product, $template); + } + + $this->view->assign('nights', $nights); $this->view->assign('rooms', $rooms); } diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/daytrip_controller.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/daytrip_controller.js index 867ac3fe..bc3bdd00 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/daytrip_controller.js +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/daytrip_controller.js @@ -5,7 +5,6 @@ import { useFetch } from '../mixins/use_fetch' export default class extends Controller { static targets = [ - 'headerLabel', 'container', 'loadingIndicator', 'message', @@ -35,6 +34,7 @@ export default class extends Controller { this.loadingValue = true this.dateFromValue = e.detail.from this.dateToValue = e.detail.to + this.containerTarget.innerHTML = '' let data = new FormData() data.set('tx_epproducts_ajax[hotel]', this.hotelUidValue) data.set('tx_epproducts_ajax[product]', this.productUidValue) diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/AjaxTable/DaytripRooms.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/AjaxTable/DaytripRooms.html index 390acdaa..03290f1b 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/AjaxTable/DaytripRooms.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/AjaxTable/DaytripRooms.html @@ -5,46 +5,67 @@ - + + +

+ Bitte mindestens 2 Nächte auswählen. +

+
+ + + +
+ > + + +
- - - - + + + + - - + - - -
ZimmerartPreisinkl. + Zimmerart + + Preis + + inkl. + +
+
{row.label} + ab {row.priceForSelection} € + - + + Buchen diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html index af9db24a..b2dabdb4 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html @@ -10,12 +10,17 @@
+ data-controller="product-details" data-action="tabs:selected->product-details#switchView" data-product-details-datestable-uri-value="{ep:uri.ajax(action: 'datestable', controller: 'AjaxTable', arguments: '{product: product, hotel: hotel}', format: 'html', pageUid: settings.defaultAjaxUid)}" data-product-details-pricetable-uri-value="{ep:uri.ajax(action: 'pricetable', controller: 'AjaxTable', arguments: '{product: product, hotel: hotel}', format: 'html', pageUid: settings.defaultAjaxUid)}" data-product-details-travel-alert-uri-value="{f:uri.typolink(parameter: settings.travelAlertPageUid)}" - data-product-details-disable-tables-value="{f:if(condition: hotel.groupsPriceConfigs, then: 'true', else: 'false')}"> + data-product-details-disable-tables-value="{f:if(condition: hotel.groupsPriceConfigs, then: 'true', else: 'false')}" + + + >
-
-
-
-
-
-
- -
+
+ Buchungsoptionen {product.name} +
+
+
+
+
+
-
+