Merge branch 'release/2020.03-03'
This commit is contained in:
@@ -102,12 +102,15 @@ class DateService implements SingletonInterface
|
|||||||
$filterSettings = $this->filterService->getDefaultFilterSettings();
|
$filterSettings = $this->filterService->getDefaultFilterSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$nonBookableDateUids = $this->productRepository->getNonBookableDateUids($product);
|
||||||
|
|
||||||
return $this->preprocessPriceTable([
|
return $this->preprocessPriceTable([
|
||||||
'priceTableData' => $this->productRepository->getPricetable($product, $hotel, $filterSettings, $date),
|
'priceTableData' => $this->productRepository->getPricetable($product, $hotel, $filterSettings, $date),
|
||||||
'template' => $template,
|
'template' => $template,
|
||||||
'paCode' => $paCode,
|
'paCode' => $paCode,
|
||||||
'isDayTrip' => $product->isDaytrip(),
|
'isDayTrip' => $product->isDaytrip(),
|
||||||
'isHideBookingButton' => $product->getHideBookingButton(),
|
'isHideBookingButton' => $product->getHideBookingButton(),
|
||||||
|
'nonBookableDateUids' => $nonBookableDateUids,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,7 +274,7 @@ class DateService implements SingletonInterface
|
|||||||
public function preprocessPriceTable(array $options)
|
public function preprocessPriceTable(array $options)
|
||||||
{
|
{
|
||||||
$resolver = new OptionsResolver();
|
$resolver = new OptionsResolver();
|
||||||
$resolver->setDefined(['paCode', 'isDayTrip', 'isHideBookingButton']);
|
$resolver->setDefined(['paCode', 'isDayTrip', 'isHideBookingButton', 'nonBookableDateUids']);
|
||||||
$resolver->setRequired(['priceTableData', 'template']);
|
$resolver->setRequired(['priceTableData', 'template']);
|
||||||
$resolver->setDefault('isDayTrip', false);
|
$resolver->setDefault('isDayTrip', false);
|
||||||
$resolver->setDefault('isHideBookingButton', false);
|
$resolver->setDefault('isHideBookingButton', false);
|
||||||
@@ -282,10 +285,12 @@ class DateService implements SingletonInterface
|
|||||||
$template = $resolvedOptions['template'];
|
$template = $resolvedOptions['template'];
|
||||||
$paCode = $resolvedOptions['paCode'];
|
$paCode = $resolvedOptions['paCode'];
|
||||||
$isDayTrip = $resolvedOptions['isDayTrip'];
|
$isDayTrip = $resolvedOptions['isDayTrip'];
|
||||||
$isHideBookingButton = $resolvedOptions['isHideBookingButton'];
|
$nonBookableDateUids = $resolvedOptions['nonBookableDateUids'];
|
||||||
|
|
||||||
foreach ($priceTableData as $row)
|
foreach ($priceTableData as $row)
|
||||||
{
|
{
|
||||||
|
$isHideBookingButton = $resolvedOptions['isHideBookingButton'] || in_array($row['dateUid'], $nonBookableDateUids, false);
|
||||||
|
|
||||||
$dateStart = new \DateTime($row['dateStart']);
|
$dateStart = new \DateTime($row['dateStart']);
|
||||||
$dateEnd = new \DateTime($row['dateEnd']);
|
$dateEnd = new \DateTime($row['dateEnd']);
|
||||||
$bookingUrl = BookingUrlUtility::generateUrl([
|
$bookingUrl = BookingUrlUtility::generateUrl([
|
||||||
|
|||||||
+1
-1
@@ -837,7 +837,7 @@ return [
|
|||||||
'label' => 'Nicht buchbare Termine',
|
'label' => 'Nicht buchbare Termine',
|
||||||
'config' => [
|
'config' => [
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'renderType' => 'selectSingleBox',
|
'renderType' => 'selectMultipleSideBySide',
|
||||||
'foreign_table' => 'tx_epproducts_domain_model_date',
|
'foreign_table' => 'tx_epproducts_domain_model_date',
|
||||||
'foreign_table_where' => 'AND tx_epproducts_domain_model_date.product=###THIS_UID### ORDER BY tx_epproducts_domain_model_date.date_start',
|
'foreign_table_where' => 'AND tx_epproducts_domain_model_date.product=###THIS_UID### ORDER BY tx_epproducts_domain_model_date.date_start',
|
||||||
'MM' => 'tx_epproducts_product_date_mm',
|
'MM' => 'tx_epproducts_product_date_mm',
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ plugin.tx_epproducts {
|
|||||||
googleMapsApiKey = {$plugin.tx_eptheme.settings.googleMapsApiKey}
|
googleMapsApiKey = {$plugin.tx_eptheme.settings.googleMapsApiKey}
|
||||||
resellerExportPageUid = {$plugin.tx_epproducts.settings.resellerExportPageUid}
|
resellerExportPageUid = {$plugin.tx_epproducts.settings.resellerExportPageUid}
|
||||||
ratingPageUid = {$plugin.tx_eptheme.settings.ratingPageUid}
|
ratingPageUid = {$plugin.tx_eptheme.settings.ratingPageUid}
|
||||||
|
travelAlertPageUid = {$plugin.tx_eptheme.settings.travelAlertPageUid}
|
||||||
searchPageHeaderImage = {$plugin.tx_eptheme.settings.searchPageHeaderImage}
|
searchPageHeaderImage = {$plugin.tx_eptheme.settings.searchPageHeaderImage}
|
||||||
bpnBookingUrlTemplateCode = {$plugin.tx_eptheme.settings.bpnBookingUrlTemplateCode}
|
bpnBookingUrlTemplateCode = {$plugin.tx_eptheme.settings.bpnBookingUrlTemplateCode}
|
||||||
groupsPricePopupPageUid = {$plugin.tx_eptheme.settings.groupsPricePopupPageUid}
|
groupsPricePopupPageUid = {$plugin.tx_eptheme.settings.groupsPricePopupPageUid}
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ plugin.tx_eptheme {
|
|||||||
bookingLinksPid =
|
bookingLinksPid =
|
||||||
# cat=eptheme/200/330; type=string; label=Groups price popup page UID
|
# cat=eptheme/200/330; type=string; label=Groups price popup page UID
|
||||||
groupsPricePopupPageUid =
|
groupsPricePopupPageUid =
|
||||||
|
# cat=eptheme/200/340; type=string; label='Reisen Alert' page UID
|
||||||
|
travelAlertPageUid =
|
||||||
|
|
||||||
# cat=eptheme/400/100; type=string; label=Phone number general
|
# cat=eptheme/400/100; type=string; label=Phone number general
|
||||||
phoneNumber = 0221 - 272 276 0
|
phoneNumber = 0221 - 272 276 0
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ plugin.tx_eptheme {
|
|||||||
englishPageUid = {$plugin.tx_eptheme.settings.englishPageUid}
|
englishPageUid = {$plugin.tx_eptheme.settings.englishPageUid}
|
||||||
germanPageUid = {$plugin.tx_eptheme.settings.germanPageUid}
|
germanPageUid = {$plugin.tx_eptheme.settings.germanPageUid}
|
||||||
conceptsPageUid = {$plugin.tx_eptheme.settings.conceptsPageUid}
|
conceptsPageUid = {$plugin.tx_eptheme.settings.conceptsPageUid}
|
||||||
|
travelAlertPageUid = {$plugin.tx_eptheme.settings.travelAlertPageUid}
|
||||||
myEpPageUid = {$plugin.tx_eptheme.settings.myEpPageUid}
|
myEpPageUid = {$plugin.tx_eptheme.settings.myEpPageUid}
|
||||||
myEpApiEndpointUrl = {$plugin.tx_eptheme.settings.myEpApiEndpointUrl}
|
myEpApiEndpointUrl = {$plugin.tx_eptheme.settings.myEpApiEndpointUrl}
|
||||||
myEpApiToken = {$plugin.tx_eptheme.settings.myEpApiToken}
|
myEpApiToken = {$plugin.tx_eptheme.settings.myEpApiToken}
|
||||||
|
|||||||
@@ -73,6 +73,7 @@
|
|||||||
<td class="dates-table__cell dates-table__cell--buttons hidden-xs">
|
<td class="dates-table__cell dates-table__cell--buttons hidden-xs">
|
||||||
<button v-if="row.available || row.isHideBookingButton" class="button button--small" @click="loadPriceTable(row.dateUid)">Details</button>
|
<button v-if="row.available || row.isHideBookingButton" class="button button--small" @click="loadPriceTable(row.dateUid)">Details</button>
|
||||||
<a :href="row.bookingUrl" target="_blank" v-if="row.available && !row.isHideBookingButton" class="button button--small button--action">Buchen</a>
|
<a :href="row.bookingUrl" target="_blank" v-if="row.available && !row.isHideBookingButton" class="button button--small button--action">Buchen</a>
|
||||||
|
<a :href="travelAlertUrl" v-if="row.isHideBookingButton" class="button button--small button--mute">Reisen-Alert</a>
|
||||||
<span v-if="!row.available && !row.isHideBookingButton" class="label label-default">ausgebucht</span>
|
<span v-if="!row.available && !row.isHideBookingButton" class="label label-default">ausgebucht</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -143,6 +144,10 @@
|
|||||||
showHeader: {
|
showHeader: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
},
|
||||||
|
travelAlertUrl: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
|||||||
@@ -77,6 +77,8 @@
|
|||||||
<td class="hidden-xs hidden-md">
|
<td class="hidden-xs hidden-md">
|
||||||
<a class="button button--small button--action" v-if="row.roomAvailable && !row.isHideBookingButton"
|
<a class="button button--small button--action" v-if="row.roomAvailable && !row.isHideBookingButton"
|
||||||
:href="row.bookingUrl" target="_blank">Buchen</a>
|
:href="row.bookingUrl" target="_blank">Buchen</a>
|
||||||
|
<a class="button button--small button--mute" v-if="row.isHideBookingButton"
|
||||||
|
:href="travelAlertUrl">Reisen-Alert</a>
|
||||||
<span v-if="!row.roomAvailable && !row.isHideBookingButton" class="label label-default">ausgebucht</span>
|
<span v-if="!row.roomAvailable && !row.isHideBookingButton" class="label label-default">ausgebucht</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -132,8 +134,12 @@
|
|||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
showHeader: {
|
showHeader: {
|
||||||
typoe: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
},
|
||||||
|
travelAlertUrl: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
|||||||
@@ -78,6 +78,11 @@
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&--mute {
|
||||||
|
background-color: $color-grey-dark;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
.button-group &:not(:last-of-type) {
|
.button-group &:not(:last-of-type) {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,6 +159,7 @@
|
|||||||
:alt-label="altLabel"
|
:alt-label="altLabel"
|
||||||
hotel-name="{hotel.name}"
|
hotel-name="{hotel.name}"
|
||||||
:bookable="bookable"
|
:bookable="bookable"
|
||||||
|
travel-alert-url="{f:uri.typolink(parameter: settings.travelAlertPageUid)}"
|
||||||
></dates-table>
|
></dates-table>
|
||||||
</template>
|
</template>
|
||||||
<f:if condition="{isProductWithNoInfoConcept}">
|
<f:if condition="{isProductWithNoInfoConcept}">
|
||||||
@@ -175,8 +176,12 @@
|
|||||||
<!-- /Dates -->
|
<!-- /Dates -->
|
||||||
<!-- Prices -->
|
<!-- Prices -->
|
||||||
<div v-cloak v-show="!loading && priceTableShow">
|
<div v-cloak v-show="!loading && priceTableShow">
|
||||||
<price-table :price-table-rows="priceTableRows" :services-included="servicesIncluded"
|
<price-table :price-table-rows="priceTableRows"
|
||||||
:date-label="dateLabel" :single-date="singleDate"></price-table>
|
:services-included="servicesIncluded"
|
||||||
|
:date-label="dateLabel"
|
||||||
|
:single-date="singleDate"
|
||||||
|
travel-alert-url="{f:uri.typolink(parameter: settings.travelAlertPageUid)}"
|
||||||
|
></price-table>
|
||||||
<f:alias map="{currentPageUid: 1}">
|
<f:alias map="{currentPageUid: 1}">
|
||||||
<f:render partial="Product/Details" arguments="{_all}"/>
|
<f:render partial="Product/Details" arguments="{_all}"/>
|
||||||
</f:alias>
|
</f:alias>
|
||||||
|
|||||||
Reference in New Issue
Block a user