Merge branch 'feature/no-repost-warning' into develop

This commit is contained in:
Björn Fromme
2019-09-08 13:13:16 +02:00
21 changed files with 173 additions and 189 deletions
+3 -14
View File
@@ -128,22 +128,11 @@ routeEnhancers:
- 41
routes:
-
routePath: /ergebnis
routePath: '/ergebnis/{filter_settings}'
_controller: 'Search::searchresult'
defaultController: 'Search::searchresult'
StaticResultsPlugin:
type: Extbase
extension: EpProducts
plugin: staticresult
limitToPages:
- 1757
routes:
-
routePath: '/{filter_settings}'
_controller: 'Search::staticresult'
_arguments:
filter_settings: encodedFilterSettings
defaultController: 'Search::staticresult'
filter_settings: filterSettings
defaultController: 'Search::searchresult'
requirements:
filter_settings: '[A-Z\d%\-]+'
ResellerPlugin:
@@ -173,7 +173,6 @@ class ProductController extends ActionController
$this->view->assignMultiple([
'hotels' => $hotels,
'product' => $product,
'currentPageUid' => $GLOBALS['TSFE']->id,
'linkHotel' => true,
]);
}
@@ -27,6 +27,7 @@ namespace EP\EpProducts\Controller;
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use EP\EpEvents\Domain\Model\Search;
use EP\EpProducts\Domain\Model\FilterSettings;
use EP\EpProducts\Domain\Model\SearchParams;
use EP\EpProducts\Service\FilterService;
@@ -36,7 +37,6 @@ use TYPO3\CMS\Core\Log\LogManager;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
use TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException;
class SearchController extends ActionController
{
@@ -82,7 +82,7 @@ class SearchController extends ActionController
public function searchbarAction()
{
$fixed = (bool) $this->settings['fixed'];
$fixed = (bool)$this->settings['fixed'];
$searchParams = new SearchParams($GLOBALS['TSFE']->id);
$this->view->assignMultiple([
'filterSettings' => $this->defaultFilterSettings,
@@ -102,24 +102,46 @@ class SearchController extends ActionController
]);
}
public function initializeSearchresultAction()
public function initializeProcessSearchAction()
{
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
$this->processSearchParamsArgument($forcedConceptUids);
}
/**
* @param SearchParams $searchParams
* @throws StopActionException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
*/
public function processSearchAction(SearchParams $searchParams)
{
$filterSettings = FilterSettings::fromSearchParams($searchParams);
$redirectUri = $this->uriBuilder
->reset()
->setCreateAbsoluteUri(true)
->uriFor(
'searchresult',
['filterSettings' => FilterSettingsEncoder::encode($filterSettings)],
null,
null,
'searchresult'
);
$this->redirectToUri($redirectUri);
}
public function initializeSearchresultAction()
{
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
$this->processFilterSettingsArgument($forcedConceptUids);
}
/**
* @param \EP\EpProducts\Domain\Model\SearchParams $searchParams
* @param \EP\EpProducts\Domain\Model\FilterSettings $filterSettings
*/
public function searchresultAction(SearchParams $searchParams = null, FilterSettings $filterSettings = null)
public function searchresultAction(FilterSettings $filterSettings)
{
if ($searchParams !== null) {
$this->logSearch($searchParams);
$filterSettings = FilterSettings::fromSearchParams($searchParams);
}
$this->view->assignMultiple([
'detailPageUid' => $this->settings['detailPageUid'],
'referringPageUid' => $this->settings['defaultSearchPageUid'],
@@ -127,20 +149,6 @@ class SearchController extends ActionController
]);
}
/**
* @param string $encodedFilterSettings
* @throws StopActionException
*/
public function staticresultAction($encodedFilterSettings)
{
$this->forward(
'searchresult',
null,
null,
['filterSettings' => $encodedFilterSettings]
);
}
/**
* @param SearchParams $searchParams
*/
@@ -42,7 +42,7 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
use DbConnectionTrait;
const PREFIX_PATH_SEGMENT = 'reiseauswahl';
const SEARCH_RESULT_URI = '/skireisen/auswahl/';
const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
const REDIRECT_RESPONSE_CODE = 302;
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
@@ -17,12 +17,6 @@ call_user_func(function () {
'Suchergebnis'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'EP.EpProducts',
'staticresult',
'statisches Suchergebnis'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'EP.EpProducts',
'product_detail',
@@ -20,8 +20,6 @@ plugin.tx_epproducts {
snowReportStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Default search page UID
defaultSearchPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Default static search page UID
defaultStaticSearchPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Default product detail page UID
defaultDetailPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Exclude products with concept UIDs from search result (CSV)
@@ -27,7 +27,6 @@ plugin.tx_epproducts {
destinationsStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
defaultStaticSearchPageUid = {$plugin.tx_epproducts.settings.defaultStaticSearchPageUid}
defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}
excludedConceptUids = {$plugin.tx_epproducts.settings.excludedConceptUids}
excludedRegionUids = {$plugin.tx_epproducts.settings.excludedRegionUids}
@@ -50,21 +50,10 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T
'EP.' . $_EXTKEY,
'searchresult',
[
'Search' => 'searchresult',
'Search' => 'searchresult,processSearch',
],
[
'Search' => 'searchresult',
]
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.' . $_EXTKEY,
'staticresult',
[
'Search' => 'staticresult',
],
[
'Search' => 'staticresult',
'Search' => 'searchresult,processSearch',
]
);
@@ -30,8 +30,8 @@ import ContactForm from './components/ContactForm.vue'
import WatchlistToggle from './components/WatchlistToggle.vue'
import Watchlist from './components/Watchlist.vue'
import HotelList from './components/HotelList.vue'
import ReferrerLink from './components/ReferrerLink.vue'
import FacebookPixel from './components/FacebookPixel.vue'
import BackLink from './components/BackLink.vue'
// Define global constants
const $window = $(window);
@@ -64,7 +64,7 @@ new Vue({
WatchlistToggle,
Watchlist,
HotelList,
ReferrerLink,
BackLink,
MyEp: () => import('./myep/components/App.vue'),
FacebookPixel
},
@@ -0,0 +1,31 @@
<template>
<div class="ep-backlink" v-if="referringUrl" v-cloak>
<a :href="referringUrl" class="button button--small">{{ label }}</a>
</div>
</template>
<script>
export default {
name: 'BackLink',
data () {
return {
referringUrl: null,
}
},
computed: {
label () {
if (this.referringUrl.match(/suche/)) {
return 'zurück zum Suchergebnis'
}
return 'zurück'
}
},
mounted () {
const urlParams = new URLSearchParams(location.search);
if (urlParams.has('ref')) {
this.referringUrl = urlParams.get('ref');
}
}
}
</script>
@@ -1,13 +1,11 @@
<script>
import WatchlistToggle from './WatchlistToggle.vue'
import ReferrerLink from './ReferrerLink.vue'
import defaultFilterSettings from '../_filtersettings'
export default {
components: {
WatchlistToggle,
ReferrerLink
WatchlistToggle
},
props: {
referringPageUrl: {
@@ -14,6 +14,7 @@
import FacebookPixel from './FacebookPixel.vue'
import WatchlistToggle from './WatchlistToggle.vue'
import OsmMap from './OsmMap.vue'
import BackLink from "./BackLink.vue";
import dayjs from 'dayjs'
import 'dayjs/locale/de'
@@ -29,7 +30,8 @@
Calendar,
FacebookPixel,
WatchlistToggle,
OsmMap
OsmMap,
BackLink
},
data () {
return {
@@ -1,28 +0,0 @@
<template>
<a @click="storeReferringPage()">
<slot></slot>
</a>
</template>
<script>
export default {
props: {
referringPage: {
type: Object,
default () {
return {
url: null,
label: null
}
}
}
},
methods: {
storeReferringPage () {
if (this.referringPage.url && this.referringPage.label) {
sessionStorage.setItem('referringPage', JSON.stringify(this.referringPage))
}
}
}
}
</script>
@@ -204,14 +204,11 @@
},
updateFilterSettings (settings) {
this.filterSettings = { ...this.filterSettings, ...settings };
sessionStorage.setItem('filterSettings', JSON.stringify(this.filterSettings));
}
},
created () {
if (!$.isEmptyObject(this.initialFilterSettings)) {
this.updateFilterSettings(this.initialFilterSettings)
} else if (sessionStorage.getItem('filterSettings')) {
this.updateFilterSettings(JSON.parse(sessionStorage.getItem('filterSettings')))
}
},
mounted () {
@@ -2,17 +2,16 @@
<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="referringPage"
rel="nofollow" title="Details &amp; Buchen">
<a :href="getUrl()" rel="nofollow" title="Details &amp; Buchen">
<picture class="searchresult-item__image">
<source media="(max-width: 768px)" :data-srcset="item.hotel.images.resized.s[0].url + ' 220w'"/>
<source media="(max-width: 1200px)" :data-srcset="item.hotel.images.resized.l[0].url + ' 280w'"/>
<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: 768px)" :data-srcset="item.hotel.images.resized.s[0].url + ' 220w'"/>
<img class="scale lazyload" :data-src="item.hotel.images.resized.s[0].url"
:title="item.hotel.images.resized.s[0].title"
:alt="item.hotel.images.resized.s[0].alt">
</picture>
</referrer-link>
</a>
<div class="concept-badge" :id="section.concept.code"
:class=" 'concept-badge--' + section.concept.code">{{ section.concept.name }}</div>
</div>
@@ -45,21 +44,21 @@
<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="referringPage"
rel="nofollow" title="Details &amp; Buchen" v-if="item.dates.length && !item.daytrip">
<a :href="getUrl()" 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' : '' }}
</span>
</referrer-link>
</a>
<hr>
<span class="searchresult-item__label">{{ item.daytrip ? 'Tageweise buchbar' : nightsOptions }}</span>
</div>
<div class="teaserbox__aside__bottom">
<span class="searchresult-item__price">ab {{ item.minPrice }} </span>
<referrer-link :href="item.detailPageUri" :referring-page="referringPage"
class="button button--full searchresult-item__button" rel="nofollow" title="Details &amp; Buchen">
<a :href="getUrl()" class="button button--full searchresult-item__button"
rel="nofollow" title="Details &amp; Buchen">
Details &amp; Buchen
</referrer-link>
</a>
</div>
</div>
<watchlist-toggle :uid="item.key" class="teaserbox-watchlist"></watchlist-toggle>
@@ -70,12 +69,10 @@
import dayjs from 'dayjs'
import 'dayjs/locale/de'
import WatchlistToggle from './WatchlistToggle.vue'
import ReferrerLink from './ReferrerLink.vue'
export default {
components: {
WatchlistToggle,
ReferrerLink
WatchlistToggle
},
props: {
item: {
@@ -85,15 +82,11 @@
section: {
type: Object,
required: true
},
referringPage: {
type: Object,
default () {
return {
url: null,
label: null
}
}
}
},
methods: {
getUrl () {
return this.item.detailPageUri + '?ref=' + window.location.pathname;
}
},
computed: {
@@ -10,10 +10,13 @@
<img class="teaserbox__flag"
src="{item.country.flag}"
alt="{item.country.name}"/>
<referrer-link href="{f:uri.action(pageUid: detailPage, action: 'detail', controller: 'Product', arguments: '{product: product.uid, hotel: item.hotel.uid}')}"
:referring-page="{ url: referringPageUrl, label: 'zurück' }" rel="nofollow">
<f:link.action action="detail" controller="Product"
pageUid="{detailPage}"
arguments="{product: product.uid, hotel: item.hotel.uid}"
additionalParams="{ref: '{f:uri.page()}'}"
>
<f:render section="Image" arguments="{_all}"/>
</referrer-link>
</f:link.action>
<f:if condition="{product.concept.code}">
<div class="concept-badge concept-badge--{product.concept.code}">{product.concept.name}</div>
</f:if>
@@ -70,32 +73,46 @@
<span class="searchresult-item__label">{f:if(condition: '{item.dates -> f:count()} > 1', then: 'Zeitraum', else: 'Termin')}</span>
<span class="searchresult-item__daterange">{ep:dateRange(dateFrom: item.minDateStart, dateTo: item.maxDateEnd, includeLabel: 0)}</span>
<f:if condition="{item.dates -> f:count()} > 1">
<referrer-link href="{f:uri.action(pageUid: detailPage, action: 'detail', controller: 'Product', arguments: '{product: product.uid, hotel: item.hotel.uid}')}"
:referring-page="{ url: referringPageUrl, label: 'zurück' }" rel="nofollow">
<f:link.action action="detail" controller="Product"
pageUid="{detailPage}"
arguments="{product: product.uid, hotel: item.hotel.uid}"
additionalParams="{ref: '{f:uri.page()}'}"
additionalAttributes="{rel: 'nofollow'}"
>
<span class="searchresult-item__daterange">
<i class="fa fa-arrow-circle-right"></i> {item.dates -> f:count()} Termin{f:if(condition: '{item.dates -> f:count()} > 1', then: 'e')}
</span>
</referrer-link>
</f:link.action>
</f:if>
<hr>
<span class="searchresult-item__label">{ep:nightsOptions(options: item.nights)}</span>
</div>
<div class="teaserbox__aside__bottom">
<span class="searchresult-item__price">ab {item.minPrice} €</span>
<referrer-link href="{f:uri.action(pageUid: detailPage, action: 'detail', controller: 'Product', arguments: '{product: product.uid, hotel: item.hotel.uid}')}"
:referring-page="{ url: referringPageUrl, label: 'zurück' }"
class="button button--full searchresult-item__button" rel="nofollow">
<f:link.action action="detail" controller="Product"
pageUid="{detailPage}"
arguments="{product: product.uid, hotel: item.hotel.uid}"
additionalParams="{ref: '{f:uri.page()}'}"
additionalAttributes="{rel: 'nofollow'}"
class="button button--full searchresult-item__button"
>
Details &amp; Buchen
</referrer-link>
</f:link.action>
</div>
</f:then>
<f:else>
<div class="teaserbox__aside__top">&nbsp;</div>
<div class="teaserbox__aside__bottom">
<span class="searchresult-item__price">ausgebucht</span>
<referrer-link href="{f:uri.action(pageUid: detailPage, action: 'detail', controller: 'Product', arguments: '{product: product.uid, hotel: item.hotel.uid}')}"
:referring-page="{ url: referringPageUrl, label: 'zurück' }"
class="button button--full searchresult-item__button" rel="nofollow">Details</referrer-link>
<f:link.action action="detail" controller="Product"
pageUid="{detailPage}"
arguments="{product: product.uid, hotel: item.hotel.uid}"
additionalParams="{ref: '{f:uri.page()}'}"
additionalAttributes="{rel: 'nofollow'}"
class="button button--full searchresult-item__button"
>
Details
</f:link.action>
</div>
</f:else>
</f:if>
@@ -109,15 +126,15 @@
<f:then>
<f:alias map="{image: item.hotel.images.original.0}">
<picture class="searchresult-item__image">
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '220', height: '130c-100'
)} 220w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
image: image, width: '280', height: '220c-100'
)} 280w"/>
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
image: image, width: '260', height: '200c-100'
)} 260w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
image: image, width: '280', height: '220c-100'
)} 280w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '220', height: '130c-100'
)} 220w"/>
<img class="scale lazyload" data-src="{f:uri.image(
image: image, width: '260', height: '200c-100'
)}" title="{image.title}" alt="{image.alternative}">
@@ -126,18 +143,18 @@
</f:then>
<f:else>
<picture class="searchresult-item__image">
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '220', height: '130c-100'
)} 220w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '280', height: '220c-100'
)} 280w"/>
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '260', height: '200c-100'
)} 260w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '280', height: '220c-100'
)} 280w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '220', height: '130c-100'
)} 220w"/>
<img class="scale lazyload" data-src="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '260', height: '200c-100'
@@ -60,8 +60,6 @@
</f:link.typolink>
</f:if>
</div>
<div class="ep-backlink" v-if="referringPage" v-cloak>
<a :href="referringPage.url" class="button button--small">{{ referringPage.label }}</a>
</div>
<back-link></back-link>
{v:render.template(file: 'EXT:ep_theme/Resources/Private/Partials/Breadcrumb.html')}
</div>
@@ -1,21 +1,21 @@
<f:if condition="{image.uid}">
<f:then>
<picture>
<source media="(max-width: 512px)" data-srcset="{f:uri.image(
image: image, width: '350', height: '175c-100'
)} 350w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '500', height: '250c-100'
)} 500w"/>
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
image: image, width: '360', height: '200c-100'
)} 360w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '160c-100'
)} 320w"/>
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
image: image, width: '370', height: '220c-100'
)} 370w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '160c-100'
)} 320w"/>
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
image: image, width: '360', height: '200c-100'
)} 360w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '500', height: '250c-100'
)} 500w"/>
<source media="(max-width: 512px)" data-srcset="{f:uri.image(
image: image, width: '350', height: '175c-100'
)} 350w"/>
<img class="scale lazyload" data-src="{f:uri.image(
image: image, width: '500', height: '250c-100'
)}" title="{image.title}" alt="{image.alternative}">
@@ -23,26 +23,26 @@
</f:then>
<f:else>
<picture>
<source media="(max-width: 512px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '350', height: '175c-100'
)} 320w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '500', height: '250c-100'
)} 500w"/>
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '360', height: '200c-100'
)} 360w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '320', height: '160c-100'
)} 420w"/>
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '370', height: '220c-100'
)} 370w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '320', height: '160c-100'
)} 420w"/>
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '360', height: '200c-100'
)} 360w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '500', height: '250c-100'
)} 500w"/>
<source media="(max-width: 512px)" data-srcset="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '350', height: '175c-100'
)} 320w"/>
<img class="scale lazyload" data-src="{f:uri.image(
src: 'EXT:ep_theme/Resources/Public/images/header-winter.jpg',
width: '500', height: '250c-100'
@@ -1,17 +1,17 @@
<f:if condition="{image}">
<f:then>
<picture class="product-teaser__image">
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '140c-100'
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '200c-100'
)} 320w"/>
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
image: image, width: '260', height: '220c-100'
)} 260w"/>
<source media="(max-width: 1200px)" data-srcset="{f:uri.image(
image: image, width: '220', height: '130c-100'
)} 220w"/>
<source media="(min-width: 1201px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '200c-100'
<source media="(max-width: 991px)" data-srcset="{f:uri.image(
image: image, width: '260', height: '220c-100'
)} 260w"/>
<source media="(max-width: 768px)" data-srcset="{f:uri.image(
image: image, width: '320', height: '140c-100'
)} 320w"/>
<img class="scale lazyload" data-src="{f:uri.image(
image: image, width: '260', height: '160c-100'
@@ -17,7 +17,7 @@
inline-template>
<div class="container searchbar affix{f:if(condition: fixed, else: '-top')}"{f:if(condition: fixed, else: ' data-spy="affix" data-offset-top="650" data-offset-bottom="200"')}>
<div class="container">
<f:form action="searchresult" controller="Search" method="post" name="searchParams"
<f:form action="processSearch" controller="Search" method="post" name="searchParams"
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
pageUid="{settings.defaultSearchPageUid}" additionalAttributes="{ref: 'form'}">
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
@@ -16,7 +16,7 @@
:date-presets='{settings.datePickerPresets -> v:format.json.encode()}'
inline-template>
<div class="container">
<f:form action="searchresult" controller="Search" method="post" name="searchParams"
<f:form action="processSearch" controller="Search" method="post" name="searchParams"
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
pageUid="{settings.defaultSearchPageUid}" class="form-horizontal">
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>