WIP Debootstrapify
This commit is contained in:
+25
-15
@@ -1,8 +1,8 @@
|
||||
import axios from 'axios'
|
||||
|
||||
export default uris => ({
|
||||
uris,
|
||||
show: 'dates',
|
||||
export default props => ({
|
||||
uris: props.uris,
|
||||
show: props.hotelOnTop ? 'hotel' : 'dates',
|
||||
tableMode: 'dates',
|
||||
datesRows: [],
|
||||
pricesRows: [],
|
||||
@@ -16,20 +16,30 @@ export default uris => ({
|
||||
altLabel: null,
|
||||
altProductLink: null,
|
||||
loading: false,
|
||||
loaded: false,
|
||||
addBus: false,
|
||||
discountBus: false,
|
||||
showAll: false,
|
||||
init() {
|
||||
// Load dates instantly when initial view is dates
|
||||
if ('dates' === this.show) {
|
||||
this.loadDates()
|
||||
}
|
||||
// Scroll to top when switching table mode
|
||||
this.$watch('tableMode', () => {
|
||||
this.$el.scrollIntoView({ block: 'start', behavior: 'smooth' })
|
||||
})
|
||||
// Load dates (once) when switching to dates view
|
||||
this.$watch('show', () => {
|
||||
if ('dates' === this.show && false === this.loaded) {
|
||||
this.loadDates()
|
||||
}
|
||||
})
|
||||
},
|
||||
loadDates() {
|
||||
this.loading = true
|
||||
axios({
|
||||
url: this.uris.dates,
|
||||
}).then(response => {
|
||||
axios.get(this.uris.dates)
|
||||
.then(response => {
|
||||
const json = response.data
|
||||
if (json.dates.length === 1) {
|
||||
this.singleDate = true
|
||||
@@ -49,18 +59,17 @@ export default uris => ({
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
this.loaded = true
|
||||
})
|
||||
},
|
||||
loadPrices(dateUid) {
|
||||
this.loading = true
|
||||
const data = new FormData()
|
||||
data.set('tx_epproducts_ajax[date]', dateUid)
|
||||
data.set('tx_epproducts_ajax[paCode]', this.$store.appconfig.paCode)
|
||||
axios({
|
||||
url: this.uris.pricetable,
|
||||
method: 'POST',
|
||||
data
|
||||
}).then(response => {
|
||||
const data = new URLSearchParams({
|
||||
'tx_epproducts_ajax[date]': dateUid,
|
||||
'tx_epproducts_ajax[paCode]': this.$store.appconfig.paCode,
|
||||
})
|
||||
axios.post(this.uris.pricetable, data)
|
||||
.then(response => {
|
||||
const json = response.data
|
||||
this.pricesRows = json.prices
|
||||
this.servicesIncluded = json.servicesIncluded
|
||||
@@ -74,7 +83,8 @@ export default uris => ({
|
||||
calculatePrice(minPrice, busPrice, discount) {
|
||||
if (this.addBus) {
|
||||
return minPrice + busPrice
|
||||
} else if (this.discountBus) {
|
||||
}
|
||||
if (this.discountBus) {
|
||||
return minPrice + discount
|
||||
}
|
||||
return minPrice
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
.tiles {
|
||||
@apply container lg:max-w-screen-2xl;
|
||||
}
|
||||
|
||||
.tiles__grid {
|
||||
@apply grid grid-cols-1 lg:grid-cols-12 lg:grid-rows-3 lg:grid-flow-col gap-4 lg:gap-1;
|
||||
@apply lg:h-128;
|
||||
@apply bg-white;
|
||||
}
|
||||
|
||||
.tiles__tile {
|
||||
@apply bg-cover bg-center h-32 lg:h-auto;
|
||||
}
|
||||
|
||||
.tiles__link {
|
||||
@apply relative w-full h-full flex items-center justify-center;
|
||||
@apply leading-none text-white hover:text-white text-2xl font-bold uppercase text-shadow break-normal;
|
||||
|
||||
&:before {
|
||||
@apply block absolute top-0 left-0 inset-0 w-full h-full z-20;
|
||||
@apply border-0 border-white;
|
||||
@apply transition-all;
|
||||
content: "";
|
||||
}
|
||||
|
||||
&:hover:before {
|
||||
@apply mt-4 ml-4;
|
||||
@apply border-2;
|
||||
width: calc(100% - theme('spacing.8'));
|
||||
height: calc(100% - theme('spacing.8'));
|
||||
}
|
||||
|
||||
&:after {
|
||||
@apply block absolute top-0 left-0 inset-0 w-full h-full z-10;
|
||||
@apply transition-all;
|
||||
content:"";
|
||||
}
|
||||
|
||||
&:hover:after {
|
||||
@apply sbw:bg-sbw-overlay-secondary;
|
||||
}
|
||||
}
|
||||
|
||||
.tiles__label {
|
||||
@apply block relative z-20;
|
||||
@apply text-center;
|
||||
}
|
||||
@@ -91,9 +91,15 @@
|
||||
@import "components/forms";
|
||||
@import "components/contact-bar";
|
||||
@import "components/misc";
|
||||
@import "components/tiles";
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
@responsive {
|
||||
.max-w-screen-2xl {
|
||||
max-width: 1440px;
|
||||
}
|
||||
}
|
||||
.has-validation-error input {
|
||||
@apply text-red-500 border-red-500;
|
||||
}
|
||||
@@ -113,4 +119,7 @@
|
||||
.-translate-xy-1\/2 {
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
.text-shadow {
|
||||
text-shadow: 0 2px 2px theme('colors.gray.400');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,22 +3,16 @@
|
||||
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 176">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#3C8DCF;}
|
||||
.st2{fill:#F9C700;}
|
||||
</style>
|
||||
<rect class="st0" width="1440" height="176"/>
|
||||
<polygon class="st1" points="0,176 0,153.4 263,105.4 551,127.7 1216,82.6 1359.2,137.5 1440,146.8 1440,176 "/>
|
||||
<polygon class="st2" points="263,105.4 0,124.5 0,176 "/>
|
||||
<polygon class="st2" points="1216,82.6 1366,149.5 1440,146.8 1440,112.8 1373,121.3 "/>
|
||||
<div class="bg-winter">
|
||||
<svg class="hidden md:block transform -translate-y-2" viewBox="0 0 1440 79" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0,58.3L119,17.7L701.7,52L1072.3,0L1440,32.3L1440,79L0,79L0,58.3Z" style="fill:rgb(60,141,207);fill-rule:nonzero;"/>
|
||||
<path d="M119,17.7L0,25.8L0,58.3L119,17.7Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1072.3,0L701.7,52L572,44.4L1072.3,0Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1440,32.3L1323.7,22.1L1440,2L1440,32.3Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M0,0L0,25.8L119,17.7L572,44.4L1072.3,0L1323.7,22.1L1440,2L1440,0L0,0Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</svg>
|
||||
<div class="container-fluid">
|
||||
<div>
|
||||
<div>
|
||||
<div class="container" data-rte-content>
|
||||
<div class="col-md-6">
|
||||
<div class="container grid grid-cols-2 gap-8" data-rte-content>
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<f:if condition="{image}">
|
||||
<f:then>
|
||||
<img class="lazyload" data-src="{f:uri.image(image: image, width: '400', height: '400c')}"
|
||||
@@ -34,7 +28,7 @@
|
||||
</div>
|
||||
<div><a class="call-btn" href="tel:{settings.phoneNumber -> v:format.pregReplace(pattern: '/[\-\s]/', replacement: '')}" rel="nofollow"><i class="fa fa-phone" aria-hidden="true"></i></a></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<span class="headline headline--secondary headline--disturber headline--light">{data.subheadline}</span>
|
||||
<div class="headline headline--secondary headline--disturber headline--light">{data.headline}</div>
|
||||
{data.text -> f:format.html()}
|
||||
@@ -56,7 +50,5 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
|
||||
|
||||
<svg viewBox="0 0 1440 62" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0,62L0,51.142L146.761,0L309.429,36.327L462.293,27.296L642.868,0L1104.86,42.923L1288.64,9.944L1368.37,37.139L1440,18.975L1440,62L0,62Z" style="fill:#3d8ccb;fill-rule:nonzero;"/>
|
||||
<path d="M-0.6,31.5L0,62L146.7,0.9L-0.6,31.5Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M309.3,36.7L642.6,0.9L464.5,36.7L309.3,36.7Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1288.1,10.7L1371,31.5L1439.4,19.6L1368.6,45.6L1288.1,10.7Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<div class="bg-winter">
|
||||
<svg class="hidden md:block transform -translate-y-2" viewBox="0 0 1440 79" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M119,17.7L0,25.8L0,58.3L119,17.7Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1072.3,0L701.7,52L572,44.4L1072.3,0Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1440,32.3L1323.7,22.1L1440,2L1440,32.3Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M0,0L0,25.8L119,17.7L572,44.4L1072.3,0L1323.7,22.1L1440,2L1440,0L0,0Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</svg>
|
||||
<div class="bg-winter -mt-1 -mb-1">
|
||||
<div class="max-w-screen-lg mx-auto" data-rte-content>
|
||||
<div class="md:flex md:items-start py-4">
|
||||
<div class="px-16 pb-4 md:px-4 md:pb-0 md:w-1/6">
|
||||
@@ -40,11 +40,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<svg viewBox="0 0 1440 56" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0,0L0,45.882L205.2,22.941L545.8,51.592L1090.6,25.846L1372.7,56L1440,28.05L1440,0" style="fill:#3d8ccb;fill-rule:nonzero;"/>
|
||||
<path d="M205.2,22.9L545.8,55.9L1090.6,25.8L545.8,45L205.2,22.9Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1372.7,55.9L1440,14.9L1440,55.9L1372.7,55.9Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<svg class="hidden md:block transform translate-y-2" viewBox="0 0 1440 79" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1321,61.3L1440,53.2L1440,20.7L1321,61.3Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M367.7,79L738.3,27L868,34.6L367.7,79Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M0,46.7L116.3,56.9L0,77L0,46.7Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1440,79L1440,53.2L1321,61.3L868,34.6L367.7,79L116.3,56.9L0,77L0,79L1440,79Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<div id="ep-main-carousel" class="navbar-carousel carousel slide">
|
||||
<div class="item{f:if(condition: iteration.isFirst, then: ' active')}">
|
||||
<div class="container stoerer">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-3 col-lg-2 col-lg-offset-2">
|
||||
<div class="grid col-span-12 gap-4">
|
||||
<div class="col-span-12 md:col-span-3 lg:col-span-2 lg:col-start-2">
|
||||
<div>{settings.eventDateDayFrom -> f:format.raw()}<br>-<br>{settings.eventDateDayTo -> f:format.raw()}</div>
|
||||
<div>{settings.eventDateMonth -> f:format.raw()}</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-4 col-lg-3">{settings.eventHeroClaim -> f:format.raw()}</div>
|
||||
<div class="col-xs-6 col-md-3 col-lg-2">{settings.eventHeroDescription -> f:format.raw()}</div>
|
||||
<div class="col-span-6 md:col-span-4 lg:col-span-3">{settings.eventHeroClaim -> f:format.raw()}</div>
|
||||
<div class="col-span-6 md:col-span-3 lg:col-span-2">{settings.eventHeroDescription -> f:format.raw()}</div>
|
||||
</div>
|
||||
</div>
|
||||
{slides -> v:iterator.first() -> v:variable.set(name: 'slide')}
|
||||
|
||||
@@ -14,9 +14,11 @@
|
||||
<symbol id="icon-airplane" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8"></path></symbol>
|
||||
<symbol id="icon-search" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></symbol>
|
||||
<symbol id="icon-close" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></symbol>
|
||||
<symbol id="icon-check" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></symbol>
|
||||
<symbol id="icon-heart" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path></symbol>
|
||||
<symbol id="icon-calendar" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></symbol>
|
||||
<symbol id="icon-phone" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path></symbol>
|
||||
<symbol id="icon-email" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></symbol>
|
||||
<symbol id="icon-tag" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"></path></symbol>
|
||||
<symbol id="icon-bed" fill="currentColor" stroke="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!-- Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"/></symbol>
|
||||
<symbol id="icon-bus" fill="currentColor" stroke="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></symbol>
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
@@ -5,64 +5,68 @@
|
||||
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
|
||||
|
||||
<f:section name="Content">
|
||||
<div class="ep-weiche-wrapper">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="ep-weiche">
|
||||
<div>
|
||||
<div class="ep-tile-bottom">
|
||||
<div class="ep-tile-right">
|
||||
<div class="ep-tile-right">
|
||||
<div class="tiles">
|
||||
<div class="tiles__grid">
|
||||
<f:if condition="{images.0}">
|
||||
<div class="ep-tile ep-tile-bottom" style="background-image:url('{f:uri.image(image: images.0)}');">
|
||||
<f:link.typolink parameter="{images.0.link}" title="{images.0.title -> f:format.raw()}">
|
||||
<div class="tiles__tile lg:col-span-2 lg:row-span-1"
|
||||
style="background-image:url('{f:uri.image(image: images.0)}');">
|
||||
<f:link.typolink parameter="{images.0.link}"
|
||||
title="{images.0.title -> f:format.raw()}"
|
||||
class="tiles__link">
|
||||
<span class="tiles__label">
|
||||
{images.0.title -> f:format.raw()}
|
||||
</span>
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
<f:if condition="{images.1}">
|
||||
<div class="ep-tile" style="background-image:url('{f:uri.image(image: images.1)}');">
|
||||
<f:link.typolink parameter="{images.1.link}" title="{images.1.title -> f:format.raw()}">
|
||||
<div class="tiles__tile lg:col-span-2 lg:row-span-1"
|
||||
style="background-image:url('{f:uri.image(image: images.1)}');">
|
||||
<f:link.typolink parameter="{images.1.link}"
|
||||
title="{images.1.title -> f:format.raw()}"
|
||||
class="tiles__link">
|
||||
<span class="tiles__label">
|
||||
{images.1.title -> f:format.raw()}
|
||||
</span>
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
<f:if condition="{images.2}">
|
||||
<div class="ep-tile" style="background-image:url('{f:uri.image(image: images.2)}');">
|
||||
<f:link.typolink parameter="{images.2.link}" title="{images.2.title -> f:format.raw()}">
|
||||
{images.2.title -> f:format.raw()}
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
<f:if condition="{images.3}">
|
||||
<div class="ep-tile" style="background-image:url('{f:uri.image(image: images.3)}');">
|
||||
<f:link.typolink parameter="{images.3.link}" title="{images.3.title -> f:format.raw()}">
|
||||
{images.3.title -> f:format.raw()}
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
<div>
|
||||
<f:if condition="{images.4}">
|
||||
<div class="ep-tile ep-tile-right" style="background-image:url('{f:uri.image(image: images.4)}');">
|
||||
<f:link.typolink parameter="{images.4.link}" title="{images.4.title -> f:format.raw()}">
|
||||
<div class="tiles__tile lg:col-span-12 lg:row-span-1"
|
||||
style="background-image:url('{f:uri.image(image: images.4)}');">
|
||||
<f:link.typolink parameter="{images.4.link}"
|
||||
title="{images.4.title -> f:format.raw()}"
|
||||
class="tiles__link">
|
||||
<span class="tiles__label">
|
||||
{images.4.title -> f:format.raw()}
|
||||
</span>
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
<f:if condition="{images.5}">
|
||||
<div class="ep-tile" style="background-image:url('{f:uri.image(image: images.5)}');">
|
||||
<f:link.typolink parameter="{images.5.link}" title="{images.5.title -> f:format.raw()}">
|
||||
{images.5.title -> f:format.raw()}
|
||||
<f:if condition="{images.2}">
|
||||
<div class="tiles__tile lg:col-span-4 lg:row-span-2"
|
||||
style="background-image:url('{f:uri.image(image: images.2)}');">
|
||||
<f:link.typolink parameter="{images.2.link}"
|
||||
title="{images.2.title -> f:format.raw()}"
|
||||
class="tiles__link">
|
||||
<span class="tiles__label">
|
||||
{images.2.title -> f:format.raw()}
|
||||
</span>
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</f:if>
|
||||
<f:if condition="{images.3}">
|
||||
<div class="tiles__tile lg:col-span-6 lg:row-span-2"
|
||||
style="background-image:url('{f:uri.image(image: images.3)}');">
|
||||
<f:link.typolink parameter="{images.3.link}"
|
||||
title="{images.3.title -> f:format.raw()}"
|
||||
class="tiles__link">
|
||||
<span class="tiles__label">
|
||||
{images.3.title -> f:format.raw()}
|
||||
</span>
|
||||
</f:link.typolink>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
+7
-7
@@ -4,17 +4,17 @@
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
|
||||
|
||||
<f:section name="Content">
|
||||
<div class="partnerlogos container">
|
||||
<div class="container">
|
||||
<f:render partial="Header/Header" arguments="{header: data.header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
|
||||
<div class="partnerlogos__primary row">
|
||||
<div class="grid grid-cols-4 gap-8">
|
||||
<f:for each="{files -> v:iterator.slice(start: 0, length: 4)}" as="image">
|
||||
<f:render section="Image" arguments="{image: image, cssClasses: 'col-xs-6 col-lg-3'}"/>
|
||||
<f:render section="Image" arguments="{image: image, cssClasses: 'col-span-2 lg:col-span-3'}"/>
|
||||
</f:for>
|
||||
</div>
|
||||
<f:if condition="{files -> f:count()} > 4">
|
||||
<div class="partnerlogos__secondary row">
|
||||
<div class="grid grid-cols-12 gap-4">
|
||||
<f:for each="{files -> v:iterator.slice(start: 4)}" as="image">
|
||||
<f:render section="Image" arguments="{image: image, cssClasses: 'col-xs-6 col-md-3 col-lg-2'}"/>
|
||||
<f:render section="Image" arguments="{image: image, cssClasses: 'col-span-6 col-span-3 col-span-2'}"/>
|
||||
</f:for>
|
||||
</div>
|
||||
</f:if>
|
||||
@@ -22,9 +22,9 @@
|
||||
</f:section>
|
||||
|
||||
<f:section name="Image">
|
||||
<div class="partnerlogo {cssClasses}">
|
||||
<div class="{cssClasses}">
|
||||
<f:link.typolink parameter="{image.link}">
|
||||
<img class="lazyload img-responsive partnerlogo__image"
|
||||
<img class="block w-full h-auto lazyload"
|
||||
data-src="{f:uri.image(image: image, width: '400c', height: '400')}"
|
||||
alt="{image.alternative}" title="{image.title}">
|
||||
</f:link.typolink>
|
||||
|
||||
+30
-22
@@ -1,41 +1,49 @@
|
||||
<html data-namespace-typo3-fluid="true" lang="en"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
|
||||
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
|
||||
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<div class="container-fluid ep-disturber ep-weekly-deal">
|
||||
<div>
|
||||
<div>
|
||||
<div class="col-md-4 left-content">
|
||||
<div>
|
||||
<span class="headline headline--secondary headline--disturber headline--disturber-large">SchneEPchen</span>
|
||||
<div class="bg-winter">
|
||||
<svg viewBox="0 0 1440 80" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0,-166.6L0,56.5L157.2,2L320.6,43.4L469.4,32.9L643.4,0.4L1104.4,50L1288.1,12.6L1364.5,47.5L1440,23.9L1440,-166.6L0,-166.6Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
<path d="M157.2,2L0,40.1L0.4,80L157.2,2Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M1288.1,12.6L1365.4,35.3L1440,23.9L1367,56.5L1288.1,12.6Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M320.6,43.4L643.4,0.4L470.2,43.4L320.6,43.4Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
</svg>
|
||||
<div class="container grid grid-cols-3 gap-8 py-8">
|
||||
<div class="col-span-3 md:col-span-1 left-content">
|
||||
<span class="headline headline--secondary headline--disturber headline--disturber-large">
|
||||
SchneEPchen
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-span-3 md:col-span-2 right-content">
|
||||
<div class="w-full md:w-1/4 text-white">
|
||||
<div class="uppercase text-2xl font-bold mb-2">
|
||||
Angebot
|
||||
</div>
|
||||
<div class="col-md-8 right-content">
|
||||
<div class="row">
|
||||
<div class="col-md-3 ">
|
||||
<div class="back">
|
||||
<div>
|
||||
<div class="teaser-title">Angebot</div>
|
||||
<div class="content" data-rte-content>
|
||||
<span class="headline headline--4">{data.header}</span>
|
||||
<hr>
|
||||
<span class="headline headline--4 text-white mb-2 pb-2 border-b-2 border-white">
|
||||
{data.header}
|
||||
</span>
|
||||
<div class="mb-4" data-rte-content>
|
||||
{data.bodytext -> f:format.nl2br()}
|
||||
</div>
|
||||
</div>
|
||||
<f:if condition="{data.header_link}">
|
||||
<a class="btn btn-warning" href="{f:uri.typolink(parameter: data.header_link)}" title="{product.name}">Details</a>
|
||||
<a class="btn btn-warning"
|
||||
href="{f:uri.typolink(parameter: data.header_link)}"
|
||||
title="{product.name}">
|
||||
Details
|
||||
</a>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<svg viewBox="0 0 1440 110" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1440.4,162L1440,105.8L1017.4,29.4L701.1,45.6L467,51.3L210.1,29.4L0.4,13.9L0.4,162L1440.4,162Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
<path d="M1017.4,29.4L680.8,23.7L467,51.3L694.6,51.3L1017.4,29.4Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
<path d="M210.1,29.4L0.4,3.4L0.4,23.7L210.1,29.4Z" style="fill:rgb(249,199,0);fill-rule:nonzero;"/>
|
||||
</svg>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
<html data-namespace-typo3-fluid="true" lang="en"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
|
||||
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
|
||||
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
|
||||
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
|
||||
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<article>
|
||||
<f:render partial="Product/HeaderDetail" arguments="{_all}"/>
|
||||
<div class="container" id="detail" x-data='productDetail({
|
||||
<f:format.raw>
|
||||
dates: "{ep:uri.ajax(action: 'dates', controller: 'AjaxDate', arguments: '{product: product, hotel: hotel}', format: 'json', pageUid: settings.defaultAjaxUid)}",
|
||||
pricetable: "{ep:uri.ajax(action: 'pricetable', controller: 'AjaxTable', arguments: '{product: product, hotel: hotel}', format: 'html', pageUid: settings.defaultAjaxUid)}",
|
||||
travelAlert: "{f:uri.typolink(parameter: settings.travelAlertPageUid)}"
|
||||
</f:format.raw>
|
||||
<div class="container"
|
||||
id="detail"
|
||||
x-data='productDetail({
|
||||
uris: {
|
||||
dates: "<ep:uri.ajax action="dates" controller="AjaxDate" arguments="{product: product, hotel: hotel}" format="json" pageUid="{settings.defaultAjaxUid}"/>",
|
||||
pricetable: "<ep:uri.ajax action="pricetable" controller="AjaxTable" arguments="{product: product, hotel: hotel}" format="html" pageUid="{settings.defaultAjaxUid}"/>",
|
||||
travelAlert: "<f:uri.typolink parameter="{settings.travelAlertPageUid}"/>"
|
||||
},
|
||||
hotelOnTop: <f:if condition="{settings.hotelOnTop}"><f:then>true</f:then><f:else>false</f:else></f:if>
|
||||
})'>
|
||||
<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">
|
||||
@@ -33,6 +35,18 @@
|
||||
x-on:click.prevent="show = 'dates'">Termine/Preise</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{settings.hotelOnTop}">
|
||||
<f:then>
|
||||
<button class="button button--light col-span-1 md:col-span-2"
|
||||
x-bind:class="{ 'button--active': show === 'dates'}"
|
||||
x-on:click.prevent="show = 'dates'">Termine/Preise</button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<button class="button button--light col-span-1 md:col-span-2"
|
||||
x-bind:class="{ 'button--active': show === 'hotel'}"
|
||||
x-on:click.prevent="show = 'hotel'">Unterkunft</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<button class="button button--light col-span-1 md:col-span-2"
|
||||
x-bind:class="{ 'button--active': show === 'region'}"
|
||||
x-on:click.prevent="show = 'region'">Gebiet</button>
|
||||
@@ -74,13 +88,17 @@
|
||||
<div id="main" class="w-full lg:w-2/3">
|
||||
<div class="lg:pr-4">
|
||||
<!-- Loader -->
|
||||
<div x-show="loading" class="flex items-center space-x-2 mb-8">
|
||||
<div x-show="loading"
|
||||
x-cloak
|
||||
class="flex items-center space-x-2 mb-8">
|
||||
<f:image class="block w-4 h-4" src="EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif" alt="Loading"/>
|
||||
<span>Loading...</span>
|
||||
</div>
|
||||
<!-- /Loader -->
|
||||
<!-- Dates -->
|
||||
<div x-show="show === 'dates' && !loading" x-transition.opacity>
|
||||
<div x-show="show === 'dates' && !loading"
|
||||
x-transition.opacity
|
||||
x-cloak>
|
||||
<f:if condition="{isProductWithExcludedConcept}">
|
||||
<f:if condition="{product.region.season} == 'w'">
|
||||
<div class="alert alert-info">
|
||||
@@ -104,34 +122,36 @@
|
||||
<f:render section="PriceTable" arguments="{_all}"/>
|
||||
</div>
|
||||
<f:if condition="{isProductWithNoInfoConcept}">
|
||||
<f:else>
|
||||
<template x-if="!available">
|
||||
<f:render partial="NotBookable" arguments="{_all}"/>
|
||||
</template>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<!-- /Dates -->
|
||||
<div x-show="show === 'dates' || show === 'prices'">
|
||||
<div x-show="show === 'dates' || show === 'prices'" x-cloak>
|
||||
<f:render partial="Product/Details" arguments="{_all}"/>
|
||||
</div>
|
||||
<!-- Hotel -->
|
||||
<div x-show="show === 'hotel'" x-transition.opacity>
|
||||
<div x-show="show === 'hotel'" x-transition.opacity x-cloak>
|
||||
<f:render partial="Hotel/Details" arguments="{hotel: hotel, bars: 1, showNonBookableHint: 0}"/>
|
||||
</div>
|
||||
<!-- /Hotel -->
|
||||
<!-- City -->
|
||||
<div x-show="show === 'city'" x-transition.opacity>
|
||||
<div x-show="show === 'city'" x-transition.opacity x-cloak>
|
||||
<f:render partial="City/Details" arguments="{city: product.city, bars: 1}"/>
|
||||
</div>
|
||||
<!-- /City -->
|
||||
<!-- Region -->
|
||||
<div x-show="show === 'region'" x-transition.opacity>
|
||||
<div x-show="show === 'region'" x-transition.opacity x-cloak>
|
||||
<f:render partial="Region/Details" arguments="{region: product.region, bars: 1}"/>
|
||||
</div>
|
||||
<!-- /Region -->
|
||||
<!-- Journey -->
|
||||
<div x-show="show === 'journey'" x-transition.opacity>
|
||||
<div x-show="show === 'journey'" x-transition.opacity x-cloak>
|
||||
<f:render partial="Journey/Details" arguments="{journey: product.journey, bars: 1}"/>
|
||||
</div>
|
||||
<!-- /Journey -->
|
||||
@@ -189,7 +209,8 @@
|
||||
</f:section>
|
||||
|
||||
<f:section name="DatesTable">
|
||||
<div x-show="bookable">
|
||||
<div x-show="bookable"
|
||||
x-cloak>
|
||||
<div class="headerbar">
|
||||
Buchungsoptionen {hotel.name}
|
||||
</div>
|
||||
@@ -258,16 +279,30 @@
|
||||
</div>
|
||||
<button class="button button--light button--small hidden md:block"
|
||||
x-on:click.prevent="$store.show.modal = 'services-' + row.dateUid"
|
||||
data-microtip-position="top" aria-label="Alle Inklusivleistungen anzeigen" role="tooltip">Leistungen</button>
|
||||
data-microtip-position="top" aria-label="Alle Inklusivleistungen anzeigen" role="tooltip">
|
||||
Leistungen
|
||||
</button>
|
||||
<a href="#" x-on:click.prevent="$store.show.modal = 'services-' + row.dateUid"
|
||||
class="md:hidden"><i class="fa fa-info-circle"></i></a>
|
||||
class="md:hidden">
|
||||
<svg class="w-4 h-4">
|
||||
<use href="#icon-info-circle"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-2 py-1 hidden sm:table-cell">
|
||||
<button x-show="row.available || row.isHideBookingButton" class="button button--small" x-on:click="loadPrices(row.dateUid)">Details</button>
|
||||
<a x-show="row.available && !row.isHideBookingButton" x-bind:href="row.bookingUrl" target="_blank" class="button button--small button--action">Buchen</a>
|
||||
<a x-show="row.isHideBookingButton" x-bind:href="uris.travelAlertUrl" class="button button--small button--mute">Reisen-Alert</a>
|
||||
<span x-show="!row.available && !row.isHideBookingButton" class="label label-default">ausgebucht</span>
|
||||
<button x-show="row.available || row.isHideBookingButton" class="button button--small" x-on:click.prevent="loadPrices(row.dateUid)">
|
||||
Details
|
||||
</button>
|
||||
<a x-show="row.available && !row.isHideBookingButton" x-bind:href="row.bookingUrl" target="_blank" class="button button--small button--action">
|
||||
Buchen
|
||||
</a>
|
||||
<a x-show="row.isHideBookingButton" x-bind:href="uris.travelAlertUrl" class="button button--small button--mute">
|
||||
Reisen-Alert
|
||||
</a>
|
||||
<span x-show="!row.available && !row.isHideBookingButton" class="label label-default">
|
||||
ausgebucht
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
@@ -327,10 +362,9 @@
|
||||
</f:section>
|
||||
|
||||
<f:section name="PriceTable">
|
||||
<div>
|
||||
<div class="row headerbar">
|
||||
<div class="col-xs-6">Buchungsoptionen</div>
|
||||
<div class="col-xs-6 text-right" x-text="dateRange"></div>
|
||||
<div class="headerbar flex items-center justify-between">
|
||||
<span>Buchungsoptionen</span>
|
||||
<span x-text="dateRange"></span>
|
||||
</div>
|
||||
<f:render section="PriceToggle"/>
|
||||
<div class="w-full max-w-full overflow-x-scroll mb-4">
|
||||
@@ -446,23 +480,21 @@
|
||||
</button>
|
||||
</p>
|
||||
</template>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="headerbar">
|
||||
Inklusivleistungen
|
||||
</div>
|
||||
<div class="ep-box">
|
||||
<ul class="list-unstyled">
|
||||
<div class="bg-gray-200 p-4 mb-8">
|
||||
<ul class="list-none m-0 p-0">
|
||||
<template x-for="service in servicesIncluded">
|
||||
<li>
|
||||
<span class="glyphicon glyphicon-ok" aria-hidden="true"></span> <span x-text="service"></span>
|
||||
<li class="flex items-center space-x-2">
|
||||
<svg class="w-6 h-6 text-ep-primary">
|
||||
<use href="#icon-check"></use>
|
||||
</svg>
|
||||
<span x-text="service"></span>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="PriceToggle">
|
||||
@@ -509,8 +541,8 @@
|
||||
</f:format.raw>
|
||||
})'>
|
||||
<div class="headerbar" x-text="headerLabel"></div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="grid grid-cols-2 gap-8">
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<div class="date-select">
|
||||
<div class="date-select__picker">
|
||||
<div class="daterange__panel">
|
||||
@@ -519,7 +551,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<table class="table table-striped pricetable" x-show="availableRooms.length">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -539,7 +571,9 @@
|
||||
<a href="#" data-toggle="modal"
|
||||
data-target="'#services' + index"
|
||||
data-microtip-position="top" aria-label="Inklusivleistungen zeigen" role="tooltip">
|
||||
<i class="fa fa-info-circle"></i>
|
||||
<svg class="w-4 h-4">
|
||||
<use href="#icon-info-circle"></use>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="modal fade" id="'services' + index" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
@@ -600,7 +634,7 @@
|
||||
<div x-data='calendar({
|
||||
<f:format.raw>
|
||||
url: "{ep:uri.ajax(action: 'range', controller: 'AjaxCalendar', extensionName: 'epproducts', pageUid: settings.defaultAjaxUid, format: 'html')}",
|
||||
hotel: {hotel.uid}
|
||||
hotel: {product.calendarHotel.uid}
|
||||
</f:format.raw>
|
||||
})'>
|
||||
<select class="w-full border-gray-400 focus:border-gray-400"
|
||||
|
||||
@@ -5,30 +5,13 @@
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<article>
|
||||
<f:render partial="Product/HeaderDetail" arguments="{_all}"/>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<f:render partial="Product/HeaderDetail" arguments="{_all}"/>
|
||||
<f:render partial="Header/Header" arguments="{layout: 8, subheader: product.name, header: product.headline}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{product.teaserLong -> f:format.html()}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="headerbar">
|
||||
Wähle deine Unterkunft
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<f:if condition="{hotels}">
|
||||
<f:then>
|
||||
<f:for each="{hotels}" as="item">
|
||||
@@ -48,9 +31,6 @@
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
|
||||
<f:section name="Main">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<h1>Datenexport <em>{productData.name}</em></h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-group" role="tablist" id="accordion">
|
||||
<f:render section="CollapsibleSimple" arguments="{id: 1, label: 'Facts', facts: productData.facts.fact}"/>
|
||||
<f:render section="CollapsibleSimple" arguments="{id: 2, label: 'Konzept', name: productData.concept.name, description: productData.concept.description}"/>
|
||||
@@ -34,12 +30,8 @@
|
||||
</f:for>
|
||||
<f:render section="CollapsibleImages" arguments="{id: 13, label: 'Allgemeine Bilder/Video', images: productData.images.image, video: productData.video}"/>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<f:link.action action="list" arguments="{reseller: reseller}">zurück</f:link.action>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="CollapsibleSimple">
|
||||
@@ -247,19 +239,14 @@
|
||||
</div>
|
||||
<div class="hidden" x-bind="container">
|
||||
<div class="panel-body">
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Name</label>
|
||||
<div class="well">{city.name}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Beschreibung</label>
|
||||
<div class="well">{city.description -> f:format.html()}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Facts</label>
|
||||
<div class="well">{city.facts.fact -> v:iterator.implode(glue: '<br>')}</div>
|
||||
@@ -267,7 +254,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="CollapsibleRegion">
|
||||
@@ -281,37 +267,28 @@
|
||||
</div>
|
||||
<div class="hidden" x-bind="container">
|
||||
<div class="panel-body">
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Name</label>
|
||||
<div class="well">{region.name -> f:format.html()}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Beschreibung</label>
|
||||
<div class="well">{region.description -> f:format.html()} {region.descriptionExtended -> f:format.html()}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Skipass</label>
|
||||
<div class="well">{region.skipass -> f:format.html()}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label">News</label>
|
||||
<div class="well">{region.news -> f:format.html()}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div class="grid grid-cols-3 gap-8">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Facts</label>
|
||||
<div class="well">{region.facts.fact -> v:iterator.implode(glue: '<br>')}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Pisten</label>
|
||||
<div class="well">{region.piste}</div>
|
||||
@@ -321,7 +298,6 @@
|
||||
<div class="well">{region.height}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Lifte</label>
|
||||
<div class="well">{region.lifts}</div>
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
|
||||
<f:section name="Main">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<f:if condition="{reseller}">
|
||||
<h1>{reseller.name}</h1>
|
||||
<h2>Gesamtexport XML</h2>
|
||||
@@ -30,8 +28,6 @@
|
||||
</ul>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<div id="searchbox" class="searchbox hidden-lg" x-show="$store.show.searchBox" x-transition x-cloak x-data='searchBar({
|
||||
<div class="searchbox hidden-lg" x-show="$store.show.searchBox" x-transition x-data='searchBar({
|
||||
<f:format.raw>
|
||||
uri: "{ep:uri.ajax(controller: "AjaxSearchbar", action: "update", pageUid: settings.defaultAjaxUid)}",
|
||||
initialSearchParams: {searchParams -> f:format.json()},
|
||||
@@ -25,8 +25,6 @@
|
||||
<f:form.hidden property="pax" additionalAttributes="{x-model: 'searchParams.pax'}"/>
|
||||
<f:form.hidden property="conceptUid" additionalAttributes="{x-model: 'searchParams.conceptUid'}"/>
|
||||
<f:form.hidden property="pageUid" additionalAttributes="{x-model: 'searchParams.pageUid'}"/>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label>Früheste Anreise</label>
|
||||
<input
|
||||
@@ -36,7 +34,7 @@
|
||||
x-bind:max="filterOptions.dateTo"
|
||||
x-on:change="load()"
|
||||
x-bind:disabled="loading"
|
||||
class="form-control"
|
||||
class="border-gray-400 focus:border-gray-800"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -48,13 +46,9 @@
|
||||
x-bind:max="filterOptions.dateTo"
|
||||
x-on:change="load()"
|
||||
x-bind:disabled="loading"
|
||||
class="form-control"
|
||||
class="border-gray-400 focus:border-gray-800"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label>Personen</label>
|
||||
<input
|
||||
@@ -64,27 +58,13 @@
|
||||
x-model="searchParams.pax"
|
||||
x-on:change="load()"
|
||||
x-bind:disabled="loading"
|
||||
class="form-control"
|
||||
class="border-gray-400 focus:border-gray-800"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-warning">Suchen <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span></button>
|
||||
<button type="submit" class="searchbox__link">Detailsuche</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<f:section name="Main">
|
||||
<div class="container">
|
||||
<f:for each="{members -> v:iterator.chunk(count: 4)}" as="group">
|
||||
<div class="row">
|
||||
<div class="grid grid-cols-4 gap-8 mb-8">
|
||||
<f:for each="{group}" as="member">
|
||||
<f:render section="Member" arguments="{member: member}"/>
|
||||
</f:for>
|
||||
@@ -19,7 +19,7 @@
|
||||
</f:section>
|
||||
|
||||
<f:section name="Member">
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="col-span-4 sm:col-span-2 md:col-span-1">
|
||||
<a href="{f:uri.action(
|
||||
pageUid: settings.teamShowPID,
|
||||
action: 'show',
|
||||
@@ -27,19 +27,27 @@
|
||||
pluginName: 'teammembers',
|
||||
arguments: '{member: member}'
|
||||
)}">
|
||||
<div class="ep-employee">
|
||||
<div>
|
||||
<f:if condition="{member.image}">
|
||||
<f:then>
|
||||
<img data-src="{f:uri.image(image: member.image, width: '400', height: '400c')}"
|
||||
class="lazyload" title="{member.name}" alt="{member.name}">
|
||||
class="rounded-full block w-full h-auto lazyload"
|
||||
title="{member.name}"
|
||||
alt="{member.name}">
|
||||
</f:then>
|
||||
<f:else>
|
||||
<img src="https://placehold.it/400x400" alt="{member.name}">
|
||||
<img class="rounded-full block w-full h-auto lazyload"
|
||||
src="https://placehold.it/400x400"
|
||||
title="{member.name}"
|
||||
alt="{member.name}">
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<div>{member.name}<br><span>{member.tasks -> f:format.nl2br()}</span></div>
|
||||
<div class="text-center text-gray-800">
|
||||
<span class="block mb-2">
|
||||
{member.name}
|
||||
</span>
|
||||
<span class="block">
|
||||
{member.tasks -> f:format.nl2br()}
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -7,60 +7,55 @@
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="Main">
|
||||
<f:render section="Header" arguments="{_all}"/>
|
||||
|
||||
<div class="container ep-employee-detail">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="ep-employee">
|
||||
<div>
|
||||
<div class="container">
|
||||
<f:render partial="Header/Header" arguments="{header: header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
|
||||
<div class="grid grid-cols-3 gap-8">
|
||||
<div class="col-span-3 md:col-span-1">
|
||||
<f:if condition="{member.image}">
|
||||
<f:then>
|
||||
<f:image src="{member.image.uid}" treatIdAsReference="1" crop="{member.image.crop}" width="400" height="400c" title="{member.name}" alt="{member.name}"/>
|
||||
<f:image class="rounded-full" image="{member.image}" width="400" height="400c" title="{member.name}" alt="{member.name}"/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<img src="https://placehold.it/400x400" alt="{member.name}">
|
||||
<img class="rounded-full" src="https://placehold.it/400x400" alt="{member.name}">
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<span class="headline headline--secondary">{member.name}<br><span>{member.tasks}</span></span>
|
||||
<div class="col-span-3 md:col-span-2">
|
||||
<span class="headline headline--secondary">
|
||||
{member.name}<br><span>{member.tasks}</span>
|
||||
</span>
|
||||
{member.description -> f:format.html()}
|
||||
<f:if condition="{member.email}">
|
||||
<p><f:link.email email="{member.email}"><i class="fa fa-envelope"></i> {member.email}</f:link.email></p>
|
||||
<p>
|
||||
<f:link.email class="flex items-center space-x-2" email="{member.email}">
|
||||
<svg class="w-6 h-6 text-ep-primary">
|
||||
<use href="#icon-email"></use>
|
||||
</svg>
|
||||
<span>{member.email}</span>
|
||||
</f:link.email>
|
||||
</p>
|
||||
</f:if>
|
||||
<f:if condition="{member.phone}">
|
||||
<p><a href="tel:{member.phone -> v:format.pregReplace(pattern: '/[\-\s]/', replacement: '')}" rel="nofollow"><i class="fa fa-phone"></i> {member.phone}</a></p>
|
||||
<p>
|
||||
<a class="flex items-center space-x-2" href="tel:{member.phone -> v:format.pregReplace(pattern: '/[\-\s]/', replacement: '')}" rel="nofollow">
|
||||
<svg class="w-6 h-6 text-ep-primary">
|
||||
<use href="#icon-phone"></use>
|
||||
</svg>
|
||||
<span>{member.phone}</span>
|
||||
</a>
|
||||
</p>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-4">
|
||||
<a href="{f:uri.action(
|
||||
pageUid: settings.teamListPID,
|
||||
pageUid: settings.teamListPid,
|
||||
action: 'list',
|
||||
extensionName: 'epproducts',
|
||||
pluginName: 'teammembers'
|
||||
)}" class="button button-danger">zurück</a>
|
||||
)}" class="button button-danger">
|
||||
zurück
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Header">
|
||||
<f:if condition="{header}">
|
||||
<ep:container data="{data}">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<f:render partial="Header/Header" arguments="{header: header, subheader: data.subheader, layout: data.header_layout, link: data.header_link, default: settings.defaultHeaderType}" />
|
||||
</div>
|
||||
</div>
|
||||
</ep:container>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
|
||||
+2
-1
@@ -65,6 +65,7 @@ module.exports = {
|
||||
'primary-dark': '#f0bc44',
|
||||
'primary-10': tinycolor('#f0bc44').setAlpha(0.1).toRgbString(),
|
||||
'primary-80': tinycolor('#f0bc44').setAlpha(0.8).toRgbString(),
|
||||
'overlay-secondary': tinycolor('#c20000').setAlpha(0.55).toRgbString(),
|
||||
},
|
||||
'snz': {
|
||||
'primary': '#82C3C6',
|
||||
@@ -80,7 +81,6 @@ module.exports = {
|
||||
},
|
||||
},
|
||||
height: {
|
||||
'96': '20rem',
|
||||
'128': '32rem',
|
||||
},
|
||||
inset: {
|
||||
@@ -88,6 +88,7 @@ module.exports = {
|
||||
'1/2': '50%',
|
||||
},
|
||||
zIndex: {
|
||||
'-10': '-10',
|
||||
'100': 100,
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user