Code cleanup, small fixes

This commit is contained in:
Björn Fromme
2021-12-22 15:18:19 +01:00
parent f33e7eee47
commit f91f9f8306
8 changed files with 30 additions and 22 deletions
@@ -148,8 +148,8 @@ class ProductController extends ActionController
} }
// Use first hotel which should be the only one at this point // Use first hotel which should be the only one at this point
if ($product->getHotels()->count() > 0) { if ($product->getHotels()->count() > 0) {
$hotels = $product->getHotels()->toArray(); $product->getHotels()->rewind();
$hotel = reset($hotels); $hotel = $product->getHotels()->current();
} }
} }
@@ -766,11 +766,14 @@ class Product extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements
*/ */
public function getTeaserImage() public function getTeaserImage()
{ {
if ($this->teaserImages->count() === 0) { $teaserImages = $this->teaserImages;
$teaserImages->rewind();
if ($teaserImages->count() === 0) {
return null; return null;
} }
return reset($this->teaserImages->toArray()); return $teaserImages->current();
} }
/** /**
@@ -807,12 +810,13 @@ class Product extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements
public function getHeaderImage() public function getHeaderImage()
{ {
$headerImages = $this->getHeaderImages(); $headerImages = $this->getHeaderImages();
$headerImages->rewind();
if ($headerImages->count() === 0) { if ($headerImages->count() === 0) {
return null; return null;
} }
return reset($headerImages->toArray()); return $headerImages->current();
} }
/** /**
@@ -175,6 +175,7 @@ return [
'label' => 'Saison', 'label' => 'Saison',
'config' => [ 'config' => [
'type' => 'select', 'type' => 'select',
'renderType' => 'selectSingle',
'items' => [ 'items' => [
[ 'Winter', 'w' ], [ 'Winter', 'w' ],
[ 'Sommer', 's' ], [ 'Sommer', 's' ],
@@ -529,10 +529,10 @@ return [
'label' => 'Gebiet für Schneehöhen', 'label' => 'Gebiet für Schneehöhen',
'config' => [ 'config' => [
'type' => 'select', 'type' => 'select',
'renderType' => 'selectSingle',
'items' => [ 'items' => [
['Keine Zuordnung', 0] ['Keine Zuordnung', 0]
], ],
'renderType' => 'selectSingle',
'foreign_table' => 'tx_epproducts_domain_model_snowreport', 'foreign_table' => 'tx_epproducts_domain_model_snowreport',
'foreign_table_where' => 'ORDER BY tx_epproducts_domain_model_snowreport.region_name', 'foreign_table_where' => 'ORDER BY tx_epproducts_domain_model_snowreport.region_name',
'minitems' => 0, 'minitems' => 0,
@@ -18,7 +18,7 @@ export default class extends Controller {
loading: Boolean, loading: Boolean,
loaded: Boolean, loaded: Boolean,
mode: String, mode: String,
daytrip: Boolean, disableTables: Boolean,
} }
initialize() { initialize() {
@@ -27,7 +27,7 @@ export default class extends Controller {
} }
connect() { connect() {
if (false === this.daytripValue) { if (false === this.disableTablesValue) {
this.loadDates() this.loadDates()
} }
} }
@@ -49,7 +49,7 @@ export default class extends Controller {
loadDates() { loadDates() {
this.modeValue = 'dates' this.modeValue = 'dates'
if (true === this.loadedValue) { if (true === this.loadedValue || true === this.disableTablesValue) {
return return
} }
this.loadingValue = true this.loadingValue = true
@@ -3,6 +3,9 @@
@tailwind utilities; @tailwind utilities;
@layer base { @layer base {
body {
padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
@import "base/fonts"; @import "base/fonts";
@import "base/typography"; @import "base/typography";
@import "base/images"; @import "base/images";
@@ -26,7 +26,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6"> <svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-ski"></use> <use href="#icon-ski"></use>
</svg> </svg>
<span class="text-sm md:text-base"> <span class="text-sm md:text-base whitespace-nowrap">
{region.length} {region.length}
</span> </span>
</div> </div>
@@ -35,7 +35,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6"> <svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-mountain"></use> <use href="#icon-mountain"></use>
</svg> </svg>
<span class="text-sm md:text-base"> <span class="text-sm md:text-base whitespace-nowrap">
{region.height} {region.height}
</span> </span>
</div> </div>
@@ -45,7 +45,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6"> <svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-lift"></use> <use href="#icon-lift"></use>
</svg> </svg>
<span class="text-sm md:text-base"> <span class="text-sm md:text-base whitespace-nowrap">
{region.lifts} {region.lifts}
</span> </span>
</div> </div>
@@ -14,7 +14,7 @@
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-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-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-travel-alert-uri-value="{f:uri.typolink(parameter: settings.travelAlertPageUid)}"
data-product-details-daytrip-value="{product.daytrip -> f:format.json()}"> data-product-details-disable-tables-value="{f:if(condition: hotel.groupsPriceConfigs, then: 'true', else: 'false')}">
<f:render partial="Header/Header" arguments="{layout: 8, subheader: '{product.region.name} / {product.name}', header: product.headline}"/> <f:render partial="Header/Header" arguments="{layout: 8, subheader: '{product.region.name} / {product.name}', header: product.headline}"/>
<div class="flex flex-col lg:flex-row-reverse lg:items-start" <div class="flex flex-col lg:flex-row-reverse lg:items-start"
data-controller="tabs" data-controller="tabs"
@@ -38,14 +38,14 @@
data-action="tabs#select" data-action="tabs#select"
data-tabs-target="button" data-tabs-target="button"
data-tab="hotel" data-tab="hotel"
class="col-span-2 py-2 uppercase bg-ep-primary-dark"> class="py-2 uppercase bg-ep-primary-dark">
Unterkunft Unterkunft
</button> </button>
<button type="button" <button type="button"
data-action="tabs#select" data-action="tabs#select"
data-tabs-target="button" data-tabs-target="button"
data-tab="dates" data-tab="dates"
class="py-2 uppercase bg-ep-primary-dark"> class="col-span-2 py-2 uppercase bg-ep-primary-dark">
Termine/Preise Termine/Preise
</button> </button>
</f:then> </f:then>
@@ -125,15 +125,15 @@
data-tab="dates"> data-tab="dates">
<f:if condition="{isProductWithExcludedConcept}"> <f:if condition="{isProductWithExcludedConcept}">
<f:if condition="{product.region.season} == 'w'"> <f:if condition="{product.region.season} == 'w'">
<div class="alert alert-info"> <div class="bg-ep-primary-light text-white p-4">
<p> <p class="mb-2">
<strong>Gruppenrabatt bis zu 100€ möglich</strong> <strong>Gruppenrabatt bis zu 100€ möglich</strong>
</p> </p>
<p> <p>
Für Gruppen bis 15 Personen könnt ihr <f:link.typolink parameter="31">hier direkt buchen</f:link.typolink>. Für Gruppen bis 15 Personen könnt ihr <f:link.typolink parameter="31" class="underline">hier direkt buchen</f:link.typolink>.
Für Gruppen ab 16 Personen erstellen wir euch ein konkretes Angebot zu günstigen Für Gruppen ab 16 Personen erstellen wir euch ein konkretes Angebot zu günstigen
Gruppenkonditionen zu dieser Reise. Anfrage via Tel. 0221 - 272 276 18 oder mit einer Gruppenkonditionen zu dieser Reise. Anfrage via Tel. 0221 - 272 276 18 oder mit einer
<f:link.typolink parameter="{settings.defaultContactFormPageUid}">Kurzanfrage</f:link.typolink>! <f:link.typolink class="underline" parameter="{settings.defaultContactFormPageUid}">Kurzanfrage</f:link.typolink>!
</p> </p>
</div> </div>
</f:if> </f:if>