Merge branch 'release/2019.12-08'
This commit is contained in:
@@ -29,6 +29,7 @@ namespace EP\EpProducts\Controller;
|
|||||||
|
|
||||||
use EP\EpProducts\Domain\Model\FilterSettings;
|
use EP\EpProducts\Domain\Model\FilterSettings;
|
||||||
use EP\EpProducts\Service\FilterService;
|
use EP\EpProducts\Service\FilterService;
|
||||||
|
use EP\EpProducts\Service\FilterSettingsEncoder;
|
||||||
use EP\EpProducts\Service\SearchResultUrlService;
|
use EP\EpProducts\Service\SearchResultUrlService;
|
||||||
use EP\EpProducts\Service\SearchResultService;
|
use EP\EpProducts\Service\SearchResultService;
|
||||||
use EP\EpProducts\Traits\RequestArgumentTypeConversionTrait;
|
use EP\EpProducts\Traits\RequestArgumentTypeConversionTrait;
|
||||||
@@ -122,9 +123,24 @@ class AjaxSearchController extends ActionController
|
|||||||
|
|
||||||
$this->searchResultUrlService->process($searchResult, $options);
|
$this->searchResultUrlService->process($searchResult, $options);
|
||||||
|
|
||||||
|
$encodedFilterSettings = FilterSettingsEncoder::encode($filterSettings);
|
||||||
|
$referringPageUri = $this
|
||||||
|
->uriBuilder
|
||||||
|
->reset()
|
||||||
|
->setTargetPageUid($this->settings['defaultSearchPageUid'])
|
||||||
|
->uriFor(
|
||||||
|
'searchresult',
|
||||||
|
['filterSettings' => $encodedFilterSettings],
|
||||||
|
'Search',
|
||||||
|
null,
|
||||||
|
'searchresult'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
return json_encode([
|
return json_encode([
|
||||||
'data' => $searchResult->getData(),
|
'data' => $searchResult->getData(),
|
||||||
'filterOptions' => $filterOptions,
|
'filterOptions' => $filterOptions,
|
||||||
|
'referringPageUri' => $referringPageUri,
|
||||||
'meta' => [
|
'meta' => [
|
||||||
'organic' => $organic,
|
'organic' => $organic,
|
||||||
'total' => $searchResult->getTotal(),
|
'total' => $searchResult->getTotal(),
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T
|
|||||||
'Pricetable' => 'event',
|
'Pricetable' => 'event',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'Pricetable' => 'event',
|
'Pricetable' => '',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
+5
-11
@@ -42,11 +42,8 @@
|
|||||||
resultData: {},
|
resultData: {},
|
||||||
resultMeta: null,
|
resultMeta: null,
|
||||||
filterSettings: defaultFilterSettings,
|
filterSettings: defaultFilterSettings,
|
||||||
filterOptions: defaultFilterOptions,
|
referringPageUri: null,
|
||||||
referringPage: {
|
filterOptions: defaultFilterOptions
|
||||||
url: this.referringPageUrl,
|
|
||||||
label: 'zurück zum Suchergebnis'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@@ -58,10 +55,6 @@
|
|||||||
type: Object,
|
type: Object,
|
||||||
default: null
|
default: null
|
||||||
},
|
},
|
||||||
referringPageUrl: {
|
|
||||||
type: String,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
argumentPrefix: {
|
argumentPrefix: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
@@ -127,13 +120,14 @@
|
|||||||
url: this.resultsUri,
|
url: this.resultsUri,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: $.param(query)
|
data: $.param(query)
|
||||||
}).then((response) => {
|
}).then(response => {
|
||||||
this.resultData = response.data.data;
|
this.resultData = response.data.data;
|
||||||
this.filterOptions = response.data.filterOptions;
|
this.filterOptions = response.data.filterOptions;
|
||||||
|
this.referringPageUri = response.data.referringPageUri;
|
||||||
this.resultMeta = response.data.meta;
|
this.resultMeta = response.data.meta;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
EventBus.$emit('ajaxContentLoaded');
|
EventBus.$emit('ajaxContentLoaded');
|
||||||
}).catch(() => {
|
}).finally(() => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
+13
-7
@@ -2,7 +2,7 @@
|
|||||||
<div class="teaserbox teaserbox--landscape teaserbox--searchresult searchresult-item">
|
<div class="teaserbox teaserbox--landscape teaserbox--searchresult searchresult-item">
|
||||||
<div class="teaserbox__image">
|
<div class="teaserbox__image">
|
||||||
<img class="teaserbox__flag" :src="item.country.flag" :alt="item.country.name"/>
|
<img class="teaserbox__flag" :src="item.country.flag" :alt="item.country.name"/>
|
||||||
<a :href="getUrl()" rel="nofollow" title="Details & Buchen">
|
<a :href="url" rel="nofollow" title="Details & Buchen">
|
||||||
<picture class="searchresult-item__image">
|
<picture class="searchresult-item__image">
|
||||||
<source media="(min-width: 1201px)" :data-srcset="item.hotel.images.resized.m[0].url + ' 260w'"/>
|
<source media="(min-width: 1201px)" :data-srcset="item.hotel.images.resized.m[0].url + ' 260w'"/>
|
||||||
<source media="(max-width: 1200px)" :data-srcset="item.hotel.images.resized.l[0].url + ' 280w'"/>
|
<source media="(max-width: 1200px)" :data-srcset="item.hotel.images.resized.l[0].url + ' 280w'"/>
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
<div class="teaserbox__aside__top">
|
<div class="teaserbox__aside__top">
|
||||||
<span class="searchresult-item__label">{{ item.dates.length > 1 ? 'Zeitraum' : 'Termin' }}</span>
|
<span class="searchresult-item__label">{{ item.dates.length > 1 ? 'Zeitraum' : 'Termin' }}</span>
|
||||||
<span class="searchresult-item__daterange">{{ dateRange }}</span>
|
<span class="searchresult-item__daterange">{{ dateRange }}</span>
|
||||||
<a :href="getUrl()" rel="nofollow" title="Details & Buchen"
|
<a :href="url" rel="nofollow" title="Details & Buchen"
|
||||||
v-if="item.dates.length && !item.daytrip">
|
v-if="item.dates.length && !item.daytrip">
|
||||||
<span class="searchresult-item__daterange">
|
<span class="searchresult-item__daterange">
|
||||||
<i class="fa fa-arrow-circle-right"></i> {{ item.dates.length }} Termin{{ item.dates.length > 1 ? 'e' : '' }}
|
<i class="fa fa-arrow-circle-right"></i> {{ item.dates.length }} Termin{{ item.dates.length > 1 ? 'e' : '' }}
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="teaserbox__aside__bottom">
|
<div class="teaserbox__aside__bottom">
|
||||||
<span class="searchresult-item__price">ab {{ item.minPrice }} €</span>
|
<span class="searchresult-item__price">ab {{ item.minPrice }} €</span>
|
||||||
<a :href="getUrl()" class="button button--full searchresult-item__button"
|
<a :href="url" class="button button--full searchresult-item__button"
|
||||||
rel="nofollow" title="Details & Buchen">
|
rel="nofollow" title="Details & Buchen">
|
||||||
Details & Buchen
|
Details & Buchen
|
||||||
</a>
|
</a>
|
||||||
@@ -82,14 +82,20 @@
|
|||||||
section: {
|
section: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
referringPageUri: {
|
||||||
getUrl () {
|
type: String,
|
||||||
return this.item.detailPageUri + '?ref=' + window.location.pathname;
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
url () {
|
||||||
|
let url = this.item.detailPageUri;
|
||||||
|
if (this.referringPageUri) {
|
||||||
|
url += '?ref=' + this.referringPageUri;
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
},
|
||||||
nightsOptions () {
|
nightsOptions () {
|
||||||
const nights = this.item.nights;
|
const nights = this.item.nights;
|
||||||
if (nights === null) {
|
if (nights === null) {
|
||||||
|
|||||||
@@ -302,7 +302,8 @@
|
|||||||
:key="item.key"
|
:key="item.key"
|
||||||
:item="item"
|
:item="item"
|
||||||
:section="section"
|
:section="section"
|
||||||
:referring-page="referringPage"></search-result-item>
|
:referring-page-uri="referringPageUri"
|
||||||
|
></search-result-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user