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
if ($product->getHotels()->count() > 0) {
$hotels = $product->getHotels()->toArray();
$hotel = reset($hotels);
$product->getHotels()->rewind();
$hotel = $product->getHotels()->current();
}
}
@@ -766,11 +766,14 @@ class Product extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements
*/
public function getTeaserImage()
{
if ($this->teaserImages->count() === 0) {
$teaserImages = $this->teaserImages;
$teaserImages->rewind();
if ($teaserImages->count() === 0) {
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()
{
$headerImages = $this->getHeaderImages();
$headerImages->rewind();
if ($headerImages->count() === 0) {
return null;
}
return reset($headerImages->toArray());
return $headerImages->current();
}
/**
@@ -175,6 +175,7 @@ return [
'label' => 'Saison',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[ 'Winter', 'w' ],
[ 'Sommer', 's' ],
@@ -23,10 +23,10 @@ return [
],
'types' => [
'1' => [
'showitem' => '--palette--;;top, name_internal, --palette--;;name, --palette--;;destinations,
'showitem' => '--palette--;;top, name_internal, --palette--;;name, --palette--;;destinations,
--palette--;;livedata, teaser, keywords, facts, officetip,--palette--;Auszeichnung;award,
--div--;Texte, ski_area, ski_area_extended, ski_pass, description, news,
--div--;Daten, --palette--;;dimensions,
--div--;Texte, ski_area, ski_area_extended, ski_pass, description, news,
--div--;Daten, --palette--;;dimensions,
--div--;Bilder/Dateien, teaser_images, header_images, images, region_maps',
],
],
@@ -529,10 +529,10 @@ return [
'label' => 'Gebiet für Schneehöhen',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['Keine Zuordnung', 0]
],
'renderType' => 'selectSingle',
'foreign_table' => 'tx_epproducts_domain_model_snowreport',
'foreign_table_where' => 'ORDER BY tx_epproducts_domain_model_snowreport.region_name',
'minitems' => 0,
@@ -18,7 +18,7 @@ export default class extends Controller {
loading: Boolean,
loaded: Boolean,
mode: String,
daytrip: Boolean,
disableTables: Boolean,
}
initialize() {
@@ -27,7 +27,7 @@ export default class extends Controller {
}
connect() {
if (false === this.daytripValue) {
if (false === this.disableTablesValue) {
this.loadDates()
}
}
@@ -49,7 +49,7 @@ export default class extends Controller {
loadDates() {
this.modeValue = 'dates'
if (true === this.loadedValue) {
if (true === this.loadedValue || true === this.disableTablesValue) {
return
}
this.loadingValue = true
@@ -3,6 +3,9 @@
@tailwind utilities;
@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/typography";
@import "base/images";
@@ -26,7 +26,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-ski"></use>
</svg>
<span class="text-sm md:text-base">
<span class="text-sm md:text-base whitespace-nowrap">
{region.length}
</span>
</div>
@@ -35,7 +35,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-mountain"></use>
</svg>
<span class="text-sm md:text-base">
<span class="text-sm md:text-base whitespace-nowrap">
{region.height}
</span>
</div>
@@ -45,7 +45,7 @@
<svg class="w-4 h-4 md:w-6 md:h-6">
<use href="#icon-lift"></use>
</svg>
<span class="text-sm md:text-base">
<span class="text-sm md:text-base whitespace-nowrap">
{region.lifts}
</span>
</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-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-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}"/>
<div class="flex flex-col lg:flex-row-reverse lg:items-start"
data-controller="tabs"
@@ -38,14 +38,14 @@
data-action="tabs#select"
data-tabs-target="button"
data-tab="hotel"
class="col-span-2 py-2 uppercase bg-ep-primary-dark">
class="py-2 uppercase bg-ep-primary-dark">
Unterkunft
</button>
<button type="button"
data-action="tabs#select"
data-tabs-target="button"
data-tab="dates"
class="py-2 uppercase bg-ep-primary-dark">
class="col-span-2 py-2 uppercase bg-ep-primary-dark">
Termine/Preise
</button>
</f:then>
@@ -125,15 +125,15 @@
data-tab="dates">
<f:if condition="{isProductWithExcludedConcept}">
<f:if condition="{product.region.season} == 'w'">
<div class="alert alert-info">
<p>
<div class="bg-ep-primary-light text-white p-4">
<p class="mb-2">
<strong>Gruppenrabatt bis zu 100€ möglich</strong>
</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
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>
</div>
</f:if>