Streamline referring page handling

This commit is contained in:
Björn Fromme
2018-10-09 07:36:21 +02:00
parent 9e5cac1a45
commit bb2b0e102b
6 changed files with 31 additions and 17 deletions
@@ -20,7 +20,7 @@
methods: {
storeReferringPage () {
if (this.referringPage.url && this.referringPage.label) {
this.$session.set('referringPage', { url: this.referringPage.url, label: this.referringPage.label })
this.$session.set('referringPage', this.referringPage)
}
}
}
@@ -41,7 +41,11 @@
resultData: {},
resultMeta: null,
filterSettings: defaultFilterSettings,
filterOptions: defaultFilterOptions
filterOptions: defaultFilterOptions,
referringPage: {
url: this.referringPageUrl,
label: 'zurück zum Suchergebnis'
}
}
},
props: {
@@ -55,7 +59,7 @@
},
referringPageUrl: {
type: String,
default: ''
default: null
},
argumentPrefix: {
type: String,
@@ -2,7 +2,7 @@
<div class="teaserbox teaserbox--landscape teaserbox--searchresult searchresult-item">
<div class="teaserbox__image">
<img class="teaserbox__flag" :src="item.country.flag" :alt="item.country.name"/>
<referrer-link :href="item.detailPageUri" :referring-page="{ url: referringPageUrl, label: 'zurück zum Suchergebnis' }"
<referrer-link :href="item.detailPageUri" :referring-page="referringPage"
rel="nofollow" title="Details &amp; Buchen">
<picture class="searchresult-item__image">
<source media="(max-width: 768px)" :srcset="item.hotel.images.resized.s[0].url + ' 220w'"/>
@@ -45,7 +45,7 @@
<div class="teaserbox__aside__top">
<span class="searchresult-item__label">{{ item.dates.length > 1 ? 'Zeitraum' : 'Termin' }}</span>
<span class="searchresult-item__daterange">{{ dateRange }}</span>
<referrer-link :href="item.detailPageUri" :referring-page="{ url: referringPageUrl, label: 'zurück zum Suchergebnis' }"
<referrer-link :href="item.detailPageUri" :referring-page="referringPage"
rel="nofollow" title="Details &amp; Buchen" v-if="item.dates.length && !item.daytrip">
<span class="searchresult-item__daterange">
<i class="fa fa-arrow-circle-right"></i> {{ item.dates.length }} Termin{{ item.dates.length > 1 ? 'e' : '' }}
@@ -56,7 +56,7 @@
</div>
<div class="teaserbox__aside__bottom">
<span class="searchresult-item__price">ab {{ item.minPrice }} </span>
<referrer-link :href="item.detailPageUri" :referring-page="{ url: referringPageUrl, label: 'zurück zum Suchergebnis' }"
<referrer-link :href="item.detailPageUri" :referring-page="referringPage"
class="button button--full searchresult-item__button" rel="nofollow" title="Details &amp; Buchen">
Details &amp; Buchen
</referrer-link>
@@ -92,9 +92,14 @@
return [];
}
},
referringPageUrl: {
type: String,
default: null
referringPage: {
type: Object,
default () {
return {
url: null,
label: null
}
}
}
},
computed: {
@@ -8,6 +8,7 @@
:key="item.key"
:item="item"
:section="section"
:referring-page="referringPage"
:watchlist="watchlist"></search-result-item>
</div>
</template>
@@ -38,22 +39,26 @@
type: String,
required: true
},
referringPageUid: {
type: Number,
required: true
},
watchlist: {
type: Array,
default () {
return [];
}
},
referringPageUrl: {
type: String,
default: null
}
},
data () {
return {
teasers: {},
total: 0,
loading: false
loading: false,
referringPage: {
url: this.referringPageUrl,
label: 'zurück zur Merkliste'
}
}
},
methods: {
@@ -65,7 +70,6 @@
}
let query = {};
query['tx_epproducts_ajax[watchlistUids]'] = this.watchlist;
query['tx_epproducts_ajax[referringPageUid]'] = this.referringPageUid;
this.loading = true;
$.post(this.watchlistUri, query, (json) => {
this.teasers = json.data;
@@ -303,7 +303,7 @@
:key="item.key"
:item="item"
:section="section"
:referring-page-url="referringPageUrl"
:referring-page="referringPage"
:watchlist="watchlist"></search-result-item>
</div>
</template>
@@ -6,8 +6,9 @@
<f:section name="Main">
<watchlist :watchlist="watchlist" :referring-page-uid="{referringPageUid}"
<watchlist :watchlist="watchlist"
loader-uri="{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif')}"
referring-page-url="{f:uri.typolink(parameter: referringPageUid)}"
watchlist-uri="{ep:uri.ajax(action: 'list', controller: 'AjaxWatchlist', pageUid: settings.defaultAjaxUid)}"></watchlist>
</f:section>