This commit is contained in:
Kevin Adametz 2019-02-06 15:11:58 +01:00
parent 98bd71c760
commit 8b2ec705c9
83 changed files with 3467 additions and 1214 deletions

View file

@ -20,20 +20,10 @@
<link rel="apple-touch-icon" href="/bundles/app/images/apple-icon.png" />
<link rel="apple-touch-icon" sizes="72x72" href="/bundles/app/images/apple-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="/bundles/app/images/apple-icon-114x114.png" />
<link rel="stylesheet" href="{{ asset('css/my-custom.css?v') }}{{ get_file_last_time('css/my-custom.css') }}">
<link rel="stylesheet" href="{{ asset('css/my-custom.css?v') }}{{ get_file_last_time('css/my-custom.css') }}">
{% block stylesheets %}
{% stylesheets
'bundles/app/css/bootstrap-3.3.7.css'
filter='cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% stylesheets
'bundles/app/css/custom.css'
filter='cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% stylesheets
'bundles/app/css/daterangepicker.css'
filter='cssrewrite'
@ -48,7 +38,10 @@
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<script src="{{ asset('/bundles/app/js/jquery-3.1.1.js') }}"></script>
<script src="{{ asset('js/custom-min.js?v') }}{{ get_file_last_time('js/custom-min.js') }}"></script>
<script src="{{ asset('js/fewoBooking-min.js?v') }}{{ get_file_last_time('js/fewoBooking-min.js') }}"></script>
</head>
<body>
@ -116,19 +109,7 @@
{#TODO ausmisten und im gleichen zuge das CSS für den Datepicker einfügen#}
{% block javascripts %}
{% javascripts
'@AppBundle/Resources/public/js/jquery-ui-1.12.1.js'
'@AppBundle/Resources/public/js/bootstrap-3.3.7.js'
'@AppBundle/Resources/public/js/jquery.prettyPhoto-3.1.6.js'
'@AppBundle/Resources/public/js/parallax.js'
'@AppBundle/Resources/public/js/owl.carousel-2.2.0.js'
'@AppBundle/Resources/public/js/bootstrap-select-1.12.0.js'
'@AppBundle/Resources/public/vendor/daterangepicker/moment.min.js'
'@AppBundle/Resources/public/vendor/daterangepicker/daterangepicker.js'
'@AppBundle/Resources/public/js/custom.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock javascripts %}
</body>

View file

@ -34,24 +34,14 @@
{% endblock %}
{% endblock %}
<!-- Favicons -->
<link rel="apple-touch-icon" sizes="57x57" href="/images/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/images/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/images/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/images/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/images/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/images/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/images/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/images/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
{% block canonical_tag %}
{% if canonical_url is not defined and page is defined %}
@ -110,7 +100,7 @@
{% block header2 %}
<section class="section fullscreen background lozad" data-background-image="/bundles/app/images/travel/header-top-image3.jpg" style="background-image:url({{ asset('images/placeholder-image.png') }});">
<div class="container">
<div class="container-fluid">
<div class="row">
<div class="col-md-12 col-xs-12">
<div class="home-message text-center small">
@ -133,7 +123,7 @@
{# #TODO additional section classes if not home #}
<section class="section clearfix">
<div class="container">
<div class="container-fluid">
<div class="row">
<div id="fullwidth" class="col-sm-12">
@ -157,7 +147,7 @@
offers_sidebar_widget_block: block('offers_sidebar_widget') ?? null,
feedbacks_sidebar_widget_block: block('feedbacks_sidebar_widget') ?? null,
} %}
<div id="content" class="col-md-9 col-sm-8 col-xs-12">
<div id="content" class="col-md-9 col-sm-12 col-xs-12">
{% block body %}{% endblock %}
</div><!-- end col -->
</div><!-- end row -->
@ -170,8 +160,12 @@
{% include 'default/components/footer.html.twig' %}
</div><!-- end wrapper -->
<a class="js-go-to u-go-to-v1 animated" href="#!" data-type="fixed" data-offset-top="400" data-show-effect="zoomIn" data-hide-effect="zoomOut" data-position='{"bottom": 15, "right": 15 }'>
<i class="icon-up-open-big"></i>
</a>
</div><!-- end wrapper -->
<!-- default modal -->
{% embed 'default/components/embed/modal.html.twig' with {id: 'default'} %}{% endembed %}

View file

@ -15,7 +15,7 @@
{{ form_row(form.file, {label: 'Bild'}) }}
{% else %}
<div>
<img src="{{ asset('uploads/images/' ~ image_file_name) }}" alt="{{ image.description }}" style="width:456px;height:151px;" >
<img src="{{ asset('uploads/images/' ~ image_file_name) }}" alt="{{ image.description }}" style="height:250px;" >
</div>
{% endif %}
{{ form_row(form.fileName, {label: 'Name'}) }}

View file

@ -35,7 +35,7 @@
{% for image in lodgingGroup.images %}
{% if image.comp == 'pre' %}
<tr>
<td><img src="{{ asset('uploads/images/' ~ image.file) }}" alt="{{ image.description }}" style="width:228px;height:75px;" ></td>
<td><img src="{{ asset('uploads/images/' ~ image.file) }}" alt="{{ image.description }}" style="height:80px;" ></td>
<td>{{ image.pos }}</td>
<td>{{ image.fileName }}</td>
<td>{{ image.description }}</td>
@ -85,7 +85,7 @@
{% for image in lodgingGroup.images %}
{% if image.comp == 'post' %}
<tr>
<td><img src="{{ asset('uploads/images/' ~ image.file) }}" alt="{{ image.description }}" style="width:228px;height:75px;" ></td>
<td><img src="{{ asset('uploads/images/' ~ image.file) }}" alt="{{ image.description }}" style="height:80px;" ></td>
<td>{{ image.pos }}</td>
<td>{{ image.fileName }}</td>
<td>{{ image.description }}</td>

View file

@ -6,6 +6,7 @@
<div class="row" style="">
{% endif %}
<div class="col-xs-12 col-sm-6">
<table class="table calendar-table">
<thead>
@ -66,8 +67,10 @@
</tbody>
</table>
</div>
{% if counter%2 == 0 %}
{% if counter%2 == 0 or calendar|length ==counter %}
</div>
{% endif %}
{% endfor %}

View file

@ -1,16 +1,54 @@
{% if(isPossible) %}
<table class="st-booking-table">
<tbody>
<tr>
<td class="st-position-price-col">
+ {{ total_price_per_night|number_format(2) }}
Datum:
</td>
<td class="st-position-name-col">
({{ fewo_booking_request.numberDays }} {{ fewo_booking_request.numberDays < 2 ? 'Nacht' : 'Nächte' }} x {{ fewo_price.perNight|number_format(2) }} €)
{{ fewo_booking_request.fromDate|date }} - {{ fewo_booking_request.toDate|date }}
</td>
</tr>
<tr>
<td colspan="2"><hr style="margin-top: 0; margin-bottom: 0"></td>
</tr>
{% for season, values in priceResult.season %}
<tr>
<td class="st-position-price-col">
Saison:
</td>
<td class="st-position-name-col">
{{ season }}
</td>
</tr>
<tr>
<td class="st-position-price-col">
Mindestbelegung:
</td>
<td class="st-position-name-col">
{{ values.minimumStay }} {{ values.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
</td>
</tr>
<tr>
<td class="st-position-price-col">
+ {{ values.price|number_format(2) }}
</td>
<td class="st-position-name-col">
{{ values.numberDays }} {{ values.numberDays < 2 ? 'Nacht' : 'Nächte' }} x {{ values.perNight|number_format(2) }}
</td>
</tr>
<tr>
<td colspan="2"><hr style="margin-top: 0; margin-bottom: 0"></td>
</tr>
{% endfor %}
<tr>
<td class="st-position-price-col">
+ {{ fewo_price.flatPrice|number_format(2) }}
+ {{ priceResult.flatPrice|number_format(2) }}
</td>
<td class="st-position-name-col">
Service-Gebühr
@ -18,7 +56,7 @@
</tr>
<tr>
<td class="st-position-price-col">
+ {{ fewo_lodging.deposit|number_format(2) }}
+ {{ priceResult.deposit|number_format(2) }}
</td>
<td class="st-position-name-col">
Kaution
@ -26,9 +64,15 @@
</tr>
<tr class="st-total-tr">
<td class="st-position-price-col">
<span class="st-total-price">= {{ total_price|number_format(2) }} €</span>
<span class="st-total-price">= {{ priceResult.total_price|number_format(2) }} €</span>
</td>
<td class="st-position-name-col">Gesamtpreis der Reise</td>
</tr>
</tbody>
</table>
{% else %}
Leider ist der gewünschter Zeitraum ist nicht buchbar.<br>
Bitte ändern Sie das Datum, rote Felder sind bereits gebucht.
{% endif %}

View file

@ -20,13 +20,14 @@
{# @var departure \AppBundle\Entity\TravelDeparturePoint #}
<tr>
<td style="text-align: left">
{% if departure.flightTime[startWeekday] is defined %}
{% if departure.flightTime is defined %}
{% if departure.flightTime.startWeekday is defined %}
{% if departure.flightTime[startWeekday] != "" %}
<a href="#" data-toggle="collapse" data-target="#flight_{{ travelName }}_{{ departure.id }}" class="pull-right collapsed">Flugzeiten <i class="fa fa-plus"></i></a>
{% endif %}
{% endif %}
<h4>{{ departure.name }}</h4>
{% if departure.flightTime[startWeekday] is defined %}
{% if departure.flightTime.startWeekday is defined %}
<div class="collapse" id="flight_{{ travelName }}_{{ departure.id }}" style="">
{% for flightTime in departure.flightTime[startWeekday]|split('\n') %}
{% if flightTime != "" %}
@ -35,6 +36,7 @@
{% endfor %}
</div>
{% endif %}
{% endif %}
</td>
<td>{{ departure.extraCharge|number_format(2) }} €</td>
</tr>

View file

@ -1,6 +1,6 @@
<header class="header fixedheader setbg sticky">
<div class="topbar">
<div class="container">
<div class="container-fluid">
<div class="pull-right">
<ul class="topbar-drops list-inline">
<li class="nohover visible-xs visible-sm"> Mo-Fr: 09:00 - 22:00 | Sa: 10:00 - 22:00 | So: 11:00 - 22:00 Uhr</li>
@ -19,7 +19,7 @@
</div><!-- end topbar -->
<div class="menu-container">
<div class="container">
<div class="container-fluid">
<div class="menu-wrapper">
<nav id="navigation" class="navbar" role="navigation" itemscope
itemtype="https://schema.org/SiteNavigationElement">
@ -93,7 +93,7 @@
<div id="header" class="sticky clearfix">
<!-- TOP NAV -->
<header id="topNav">
<div class="container">
<div class="container-fluid">
<div class="navbar-collapse nav-main-collapse collapse submenu-dark">
<nav class="nav-main">

View file

@ -2,7 +2,7 @@
<section class="section fullscreen background start-slider">
<div class="absolute-section">
<div class="container">
<div class="container-fluid">
<div class="row">
<div class="col-md-12 col-xs-12">
<div class="home-message text-center">
@ -57,7 +57,7 @@
<section class="nopadding">
<div class="container-full absolute">
<div class="container container-form">
<div class="container-fluid container-form">
<div class="home-form">
<!-- Nav tabs
Hier bitte die Tabs über Parameter Steuer, wenn JS aus.

View file

@ -1,5 +1,5 @@
{# @var child_page \AppBundle\Entity\Page #}
<div class="col-md-4 col-sm-4">
<div class="col-md-4 col-sm-6">
<div class="travel-wrapper get-box-link">
<div class="item text-left">
<div class="item-img">

View file

@ -1,128 +1,135 @@
{# @var page \AppBundle\Entity\Page #}
<div id="sidebar" class="col-md-3 col-sm-4 col-xs-12">
<div id="sidebar" class="col-md-3 col-sm-12 col-xs-12">
<div class="row">
<div class="col-sm-6 col-md-12">
{% if show_nav_sidebar_about is not defined %}
<div id="show_sterntours_video_sidebar" class="widget clearfix">
<div class="widget-title">
<a class="collapse-widget {{ (app.request.get('_open_side_about')) }}" href="#about-widget" data-toggle="collapse" aria-expanded="true">Wir: STERN TOURS
</a>
</div><!-- end title -->
<div class="boxwidget collapse in {{ (app.request.get('_open_side_about')) }}" id="about-widget" aria-expanded="true">
<div class="video-wrap">
<div class="g-absolute-centered">
<a data-type="youtube_sterntours_video" data-src="https://www.youtube-nocookie.com/embed/Rpo5py2fjrg" href="javascript:;">
<div class="u-icon-v3"> Video ansehen <i class="fa fa-play"></i></div>
</a>
</div>
<img src="/images/placeholder-image.png" data-src="https://img.youtube.com/vi/Rpo5py2fjrg/sddefault.jpg" class="img-responsive lozad" alt="">
</div>
</div><!-- end boxwidget -->
</div><!-- end widget -->
{% endif %}
<div id="show_sterntours_video_sidebar" class="widget clearfix">
<div class="widget-title">
Wir: STERN TOURS
</div><!-- end title -->
<div class="boxwidget">
<div class="video-wrap">
<div class="g-absolute-centered">
<a data-type="youtube_sterntours_video" data-src="https://www.youtube-nocookie.com/embed/Rpo5py2fjrg" href="javascript:;">
<div class="u-icon-v3"> Video ansehen <i class="fa fa-play"></i></div>
</a>
</div>
<img src="/images/placeholder-image.png" data-src="https://img.youtube.com/vi/Rpo5py2fjrg/sddefault.jpg" class="img-responsive lozad" alt="">
{% if show_search_sidebar_widget ?? true %}
{% if search_sidebar_widget_block is null %}
{% if search_form is defined %}
{{ include('default/components/sidebar/searchSidebarWidget.html.twig') }}
</div>
</div><!-- end boxwidget -->
</div><!-- end widget -->
{# #WORKAROUND Overriding this block doesn't work, probably due to a Symfony bug, see ttSearch.html.twig #}
{% elseif tt_search_form is defined %}
{{ include('default/components/sidebar/ttSearchSidebarWidget.html.twig') }}
{# END WORKAROUND #}
{% if show_search_sidebar_widget ?? true %}
{% if search_sidebar_widget_block is null %}
{% if search_form is defined %}
{{ include('default/components/sidebar/searchSidebarWidget.html.twig') }}
{# #WORKAROUND Overriding this block doesn't work, probably due to a Symfony bug, see ttSearch.html.twig #}
{% elseif tt_search_form is defined %}
{{ include('default/components/sidebar/ttSearchSidebarWidget.html.twig') }}
{# END WORKAROUND #}
{% elseif page is defined %}
{# #HACK Dont display the search in FEWO #}
{% if page.title != 'Ferienwohnungen' %}
{{ render(controller('AppBundle:Component:searchSidebarWidget', {page: page})) }}
{% elseif page is defined %}
{# #HACK Dont display the search in FEWO #}
{% if page.title != 'Ferienwohnungen' %}
{{ render(controller('AppBundle:Component:searchSidebarWidget', {page: page})) }}
{% endif %}
{% endif %}
{% else %}
{{ search_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% else %}
{{ search_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% if show_nav_sidebar_widget ?? true and page is defined %}
{% if nav_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:navSidebarWidget', {page: page})) }}
{% else %}
{{ nav_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
<div class="widget clearfix hidden-xs">
<div class="widget-title">
TOP bewertet
</div><!-- end title -->
<div class="boxwidget">
<a href="http://www.netzsieger.de/e/stern-tours" target="_blank" rel="nofollow"><img
src="{{ asset('images/netzsieger.png') }}" alt="Netzsieger.de bewertet STERN TOURS">
</a>
</div><!-- end boxwidget -->
<div class="boxwidget">
<!-- Ausgezeichnet.org-Siegel: Begin -->
<div id="auorg-bg"><a href="https://www.ausgezeichnet.org" target="_blank"
title="Unabh&auml;ngige Bewertungen, Kundenbewertungen und G&uuml;tesiegel von AUSGEZEICHNET.ORG"
class="auorg-br"> <span
style="font-size:8px;font-weight:normal;text-transform:uppercase;"> AUSGEZEICHNET.ORG</span>
</a></div>
<script type="text/javascript"
src="//siegel.ausgezeichnet.org/widgets/js/55b648290cf257aef3483d90/widget.js"></script>
<!-- Ausgezeichnet.org-Siegel: End -->
</div><!-- end boxwidget -->
{% if show_seal_of_approval is defined %}
<div class="boxwidget">
{% image '@AppBundle/Resources/public/images/guetesiegel_R_V.png' %}<img src="{{ asset_url }}"
alt="R+V Reiseversicherungen">{% endimage %}
</div><!-- end boxwidget -->
{% endif %}
{#<div class="boxwidget">
<div itemscope itemtype="https://data-vocabulary.org/Review-aggregate">
<span itemprop="itemreviewed">STERN TOURS Online-Shop</span><br>
<span itemprop="rating" itemscope itemtype="https://data-vocabulary.org/Rating">
<span itemprop="average">4.90</span> / <span itemprop="best">5</span>
</span>
bei <span itemprop="count">78</span> Bewertungen
</div>
</div>#}
{% if show_nav_sidebar_widget ?? true and page is defined %}
{% if nav_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:navSidebarWidget', {page: page})) }}
{% else %}
{{ nav_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
</div><!-- end widget -->
<div class="widget clearfix hidden-xs">
<div class="widget-title">
<a class="collapse-widget" href="#top-widget" data-toggle="collapse" aria-expanded="true">TOP bewertet
</a>
</div><!-- end title -->
<div class="boxwidget collapse in" id="top-widget" aria-expanded="true">
<a href="http://www.netzsieger.de/e/stern-tours" target="_blank" rel="nofollow"><img
src="{{ asset('images/netzsieger.png') }}" alt="Netzsieger.de bewertet STERN TOURS">
</a>
{% if (show_feedbacks_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty
and page.effectiveCountry.feedbackPage is not empty %}
{% if feedbacks_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:feedbacksSidebarWidget', {country: page.effectiveCountry ?? null})) }}
{% else %}
{{ feedbacks_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
<!-- Ausgezeichnet.org-Siegel: Begin -->
<div id="auorg-bg"><a href="https://www.ausgezeichnet.org" target="_blank"
title="Unabh&auml;ngige Bewertungen, Kundenbewertungen und G&uuml;tesiegel von AUSGEZEICHNET.ORG"
class="auorg-br"> <span
style="font-size:8px;font-weight:normal;text-transform:uppercase;"> AUSGEZEICHNET.ORG</span>
</a></div>
<script type="text/javascript"
src="//siegel.ausgezeichnet.org/widgets/js/55b648290cf257aef3483d90/widget.js"></script>
{% if (show_travel_guide_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
{% if travel_guide_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:travelGuideSidebarWidget', {country: page.effectiveCountry})) }}
{% else %}
{{ travel_guide_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% if show_seal_of_approval is defined %}
<div class="boxwidget">
{% image '@AppBundle/Resources/public/images/guetesiegel_R_V.png' %}<img src="{{ asset_url }}"
alt="R+V Reiseversicherungen">{% endimage %}
</div><!-- end boxwidget -->
{% endif %}
{% if (show_travel_magazine_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
{% if travel_magazine_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:travelMagazineSidebarWidget', {country: page.effectiveCountry})) }}
{% else %}
{{ travel_magazine_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
<!-- Ausgezeichnet.org-Siegel: End -->
</div><!-- end boxwidget -->
{% if (show_offers_sidebar_widget ?? true) %}
{% if offers_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:offersSidebarWidget', {country: page.effectiveCountry ?? null})) }}
{% else %}
{{ offers_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
</div><!-- end widget -->
</div>
<div class="col-sm-6 col-md-12">
{% if (show_feedbacks_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty
and page.effectiveCountry.feedbackPage is not empty %}
{% if feedbacks_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:feedbacksSidebarWidget', {country: page.effectiveCountry ?? null})) }}
{% else %}
{{ feedbacks_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% if (show_travel_guide_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
{% if travel_guide_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:travelGuideSidebarWidget', {country: page.effectiveCountry})) }}
{% else %}
{{ travel_guide_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% if (show_travel_magazine_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
{% if travel_magazine_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:travelMagazineSidebarWidget', {country: page.effectiveCountry})) }}
{% else %}
{{ travel_magazine_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
{% if (show_offers_sidebar_widget ?? true) %}
{% if offers_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:offersSidebarWidget', {country: page.effectiveCountry ?? null})) }}
{% else %}
{{ offers_sidebar_widget_block|raw }}
{% endif %}
{% endif %}
</div>
<div class="col-sm-12">
<hr class="visible-sm visible-xs">
</div>
</div>
</div><!-- end col -->

View file

@ -1,7 +1,8 @@
{% if nav_pages %}
<div class="widget clearfix">
<div class="widget-title visible-xs">
<div class="widget-title">
<a class="collapse-widget" href="#side-navigation" data-toggle="collapse">Reiseprogramme</a>
</div><!-- end title -->

View file

@ -2,38 +2,40 @@
<div class="widget clearfix hidden-xs">
<div class="widget-title">
{{ slider_title }}
<a class="collapse-widget" href="#{{ target_widget }}" data-toggle="collapse" aria-expanded="true">{{ slider_title }}</a>
</div><!-- end title -->
<div class="boxwidget collapse in" id="{{ target_widget }}" aria-expanded="true">
<div class="box-slider">
{% for page in pages %}
<div class="box-slider">
{% for page in pages %}
<div class="travel-wrapper slide{{ loop.first ? ' active' }}">
<div class="travel-wrapper slide{{ loop.first ? ' active' }}">
<a href="{{ page.urlPath|default('javascript:void(0);') }}" class="item text-center">
<div class="item-img">
{% include 'default/components/pageBoxImage.html.twig' %}
</div>
<a href="{{ page.urlPath|default('javascript:void(0);') }}" class="item text-center">
<div class="item-img">
{% include 'default/components/pageBoxImage.html.twig' %}
</div>
<div class="box_mid">
<div class="hl5">{{ page.title }}</div>
<div class="box_mid">
<div class="hl5">{{ page.title }}</div>
<p>{{ page.boxBody ?? page.description }}</p>
<p>{{ page.boxBody ?? page.description }}</p>
{% if page.travelProgram is not empty and page.travelProgram.lowestPrice > 0 %}
<div class="price">
Für {{ page.travelProgram.lowestPrice|number_format }},- € p.P.
</div>
{% endif %}
</div>
</a>
{% if page.travelProgram is not empty and page.travelProgram.lowestPrice > 0 %}
<div class="price">
Für {{ page.travelProgram.lowestPrice|number_format }},- € p.P.
</div>
{% endif %}
</div>
</a>
</div><!-- end travel-wrapper -->
{% endfor %}
</div><!-- end travel-wrapper -->
{% endfor %}
<div class="item-switch clearfix">
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
<a href="javascript:void(0);" class="item-button-next">weiter</a>
<div class="item-switch clearfix">
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
<a href="javascript:void(0);" class="item-button-next">weiter</a>
</div>
</div>
</div>

View file

@ -2,24 +2,26 @@
<div class="widget clearfix hidden-xs">
<div class="widget-title">
{{ slider_title }}
<a class="collapse-widget" href="#{{ target_widget }}" data-toggle="collapse" aria-expanded="true">{{ slider_title }}</a>
</div><!-- end title -->
<div class="boxwidget collapse in" id="{{ target_widget }}" aria-expanded="true">
<div class="box-slider newswidget clearfix{{ theme|default('normal') == 'gray-box' ? ' gray-box' }}">
<div class="box-slider newswidget clearfix{{ theme|default('normal') == 'gray-box' ? ' gray-box' }}">
{% for slide in slides %}
<a href="{{ slide.urlPath|default('javascript:void(0);') }}" class="slide{{ loop.first ? ' active' }}">
<div class="hl5">{{ slide.title }}</div>
<p>{{ slide.boxBody|default(slide.description) }}</p>
</a>
{% endfor %}
{% for slide in slides %}
<a href="{{ slide.urlPath|default('javascript:void(0);') }}" class="slide{{ loop.first ? ' active' }}">
<div class="hl5">{{ slide.title }}</div>
<p>{{ slide.boxBody|default(slide.description) }}</p>
</a>
{% endfor %}
<div class="item-switch clearfix">
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
<a href="javascript:void(0);" class="item-button-next">weiter</a>
</div>
<div class="item-switch clearfix">
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
<a href="javascript:void(0);" class="item-button-next">weiter</a>
</div>
</div><!-- end newswidget -->
</div><!-- end newswidget -->
</div>
</div><!-- end widget -->
{% endif %}

View file

@ -53,7 +53,7 @@ E-Mail: {{ booking_request.email ?? 'keine Angabe' }}
=====================================================================================
Reiseteilnehmer:
Zimmernummer, Zimmertyp, Geschlecht, Vorname, Nachname, Geburtsdatum
Nr., Zimmertyp, Geschlecht, Vorname, Nachname, Geburtsdatum
=====================================================================================
{% set travelerIndex = 0 %}
{% set travelerCollection = booking_request.travelers|slice(0, (booking_request.travelerCount + booking_request.childrenCount)) %}

View file

@ -1,34 +1,40 @@
{# @var fewo_booking_request \AppBundle\Entity\FewoBookingRequest #}
{# @var fewo_lodging \AppBundle\Entity\FewoLodging #}
{# @var fewo_price \AppBundle\Entity\FewoPrice #}
=====================================================================================
Reisedaten:
=====================================================================================
Ferienwohnung: {{ fewo_lodging.name }}
Saison: {{ fewo_price.season.name }}
Reisezeitraum: {{ fewo_booking_request.fromDate|date }} - {{ fewo_booking_request.toDate|date }}
=======================================================
Ihre Reisedaten
Reisezeitraum: {{ fewo_booking_request.fromDate|date }} - {{ fewo_booking_request.toDate|date }}
Ferienwohnung: {{ fewo_lodging.name }}
=======================================================
Gesamtpreis: {{ fewo_booking_request.totalPrice|number_format(2) }}
{% for season, values in priceResult.season %}
* Saison: {{ season }}
* Mindestbelegung: {{ values.minimumStay }} {{ values.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
* Preis: {{ values.price|number_format(2) }} € / {{ values.numberDays }} {{ values.numberDays < 2 ? 'Nacht' : 'Nächte' }} x {{ values.perNight|number_format(2) }}
---------------------------------------------------------------------------
{% endfor %}
* Service-Gebühr: + {{ priceResult.flatPrice|number_format(2) }}
* Kaution: + {{ priceResult.deposit|number_format(2) }}
---------------------------------------------------------------------------
* Gesamtpreis: {{ priceResult.total_price|number_format(2) }}
=====================================================================================
Reiseanmelder{% if fewo_booking_request.salutation == 2 %}in{% endif %}
=======================================================
Reiseanmelder: {% if fewo_booking_request.salutation == 2 %}in{% endif %}
=====================================================================================
Vorname: {{ fewo_booking_request.firstName }}
Nachname: {{ fewo_booking_request.lastName }}
Adresse: {{ fewo_booking_request.streetAddress }}
PLZ: {{ fewo_booking_request.zipCode }}
Ort: {{ fewo_booking_request.city }}
Telefonnummer: {{ fewo_booking_request.phone }}
Fax: {{ fewo_booking_request.fax ?? 'keine Angabe' }}
E-Mail: {{ fewo_booking_request.email ?? 'keine Angabe' }}
=====================================================================================
Reiseteilnehmer: {{ fewo_booking_request.travelerCount }}
=====================================================================================
=====================================================================================
* Vorname: {{ fewo_booking_request.firstName }}
* Nachname: {{ fewo_booking_request.lastName }}
* Adresse: {{ fewo_booking_request.streetAddress }}
* PLZ: {{ fewo_booking_request.zipCode }}
* Ort: {{ fewo_booking_request.city }}
* Telefon: {{ fewo_booking_request.phone }}
* Fax: {{ fewo_booking_request.fax ?? 'keine Angabe' }}
* E-Mail: {{ fewo_booking_request.email ?? 'keine Angabe' }}
=======================================================
Reiseteilnehmer: {{ fewo_booking_request.travelerCount }}
=======================================================
Mitteilungen / Sonstiges:
=====================================================================================
{{ fewo_booking_request.notes ?? '-' }}
=======================================================

View file

@ -1,11 +1,15 @@
{# @var fewo_booking_request \AppBundle\Entity\FewoBookingRequest #}
Sehr geehrte{{ fewo_booking_request.salutation == 1 ? 'r Herr' : ' Frau' }} {{ fewo_booking_request.lastName }},
vielen Dank für Ihren Buchungsauftrag. Dieser wird schnellstmöglich bearbeitet und stellt noch keine{#
#} Buchungsbestätigung dar. Bitte prüfen Sie noch einmal Ihre Angaben und kontaktieren Sie uns bitte, wenn ein Fehler{#
#} enthalten ist.
vielen Dank für Ihren Auftrag, folgende Ferienwohnung wurde gemietet:
{% include 'default/email/components/fewoBookingSummary.txt.twig' %}
Bitte prüfen Sie noch einmal Ihre Angaben und kontaktieren Sie uns bitte, wenn ein Fehler enthalten ist.
{% include 'default/email/components/signature.txt.twig' %}

View file

@ -1,4 +1,4 @@
FOLGENDE REISE WURDE GEBUCHT:
Folgende Wohnung wurde gemietet
URL: {{ lodging_url }}

View file

@ -7,21 +7,10 @@
{% endblock %}
{% block canonical_tag %}{% if app.debug %}<!-- Die canonical URL wird für diese Seite bewusst nicht definiert, da sie vom Suchindex ausgeschlossen wurde (Siehe meta robots) -->{% endif %}{% endblock %}
{% block stylesheets %}
{{ parent() }}
{% stylesheets 'bundles/app/css/booking.css' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% endblock %}
{% block javascripts %}
{{ parent() }}
{% javascripts '@AppBundle/Resources/public/js/booking.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{% block body %}
<section class="clearfix">
<div class="content-copy">
@ -227,7 +216,6 @@
</td>
</tr>
{% if extraDays == 1 and travel_program.drafts.count() > 0 %}
<tr>
{% else %}
@ -235,12 +223,12 @@
{% endif %}
<td>Verlängerung buchen</td>
<td>
Vor der Reise
Vor der Reise im Rundreisehotel oder auf Wunsch in einem anderen Hotel der gebuchten Preiskategorie in Tel Aviv oder Jerusalem
{{ form_widget(form.extraBookingDaysBefore) }}
{{ form_errors(form.extraBookingDaysBefore) }}
<br>
Nach der Reise
Nach der Reise im Rundreisehotel oder auf Wunsch in einem anderen Hotel der gebuchten Preiskategorie in Tel Aviv oder Jerusalem
{{ form_widget(form.extraBookingDaysAfter) }}
{{ form_errors(form.extraBookingDaysAfter) }}
@ -298,25 +286,20 @@
</div>
</div>
</div>
<p>
Die gewünschte Zahlungsart (Überweisung, Kreditkarten) stimmen wir mit Ihnen im Anschluss an Ihre Buchung ab.
{% if(travel_program.category.id != 1) %}
Abweichend von den Anzahlungsbedingungen Ziffer 2.1 gelten hier besondere Anzahlungsbedingungen wie folgt: Fluganteil 100 % und Landleistung 20%. Abweichend von den allgemeinen Stornobedingungen Ziffer 4.3a gelten hier besondere Stornobedingungen (Ziffer 4.3b) wie folgt: Fluganteil 100 % und Landleistung gemäß Ziffer 4.3a allgemeine Stornobedingungen.</p>
Abweichend von den Anzahlungsbedingungen Ziffer 2.1 gelten hier besondere Anzahlungsbedingungen wie folgt: Fluganteil 100% und Landleistung 20%. Abweichend von den allgemeinen Stornobedingungen Ziffer 4.3a gelten hier besondere Stornobedingungen (Ziffer 4.3b) wie folgt: Fluganteil 100% und Landleistung gemäß Ziffer 4.3a allgemeine Stornobedingungen.
{% endif %}
</p>
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Flugdaten</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2">
<div class="panel-group" id="accordion_fd">
@ -325,7 +308,6 @@
</a>
<div id="collapse_fd" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body">
{% for departure in travel_date.departures %}
{# @var departure \AppBundle\Entity\TravelDeparturePoint #}
{% if departure.flightTime[travel_date.startWeekday] is defined %}
@ -342,7 +324,6 @@
<div class="" id="no_flight_time" style="display: none;">
<p>Die Flugdaten sind zum Zeitpunkt der Ausschreibung noch nicht bekannt und daher werden wir Ihnen diese mit der Annahme vom Buchungsauftrag mitteilen.</p>
</div>
<div class="" id="yes_flight_time" style="display: none;">
<h3>Hinweis</h3>
<p>Flugzeiten können um 1 Std. variieren durch Sommer-/Winterzeit.</p>
@ -351,8 +332,6 @@
</div>
</div>
</div>
</ul>
</div><!-- accordion -->
</div>
</div>
@ -369,14 +348,31 @@
<ul class="c1">
{% for travel_program_date in travel_program_dates if travel_program_date.count < 1 %}
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
{% endfor %}
<div id="extraDaysProgramBefore_show" style="display: none;">
<li>
<span id="extraDaysProgramBefore_date" data-org-date="{{ travel_program_date.date }}">{{ travel_program_date.date }}</span> : Reiseverlängerung vor der Reise - {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : Reiseverlängerung im Rundreisehotel oder auf Wunsch in einem anderen Hotel der gebuchten Preiskategorie in Tel Aviv oder Jerusalem
{% endif %}
</li>
<li>
{{ travel_program_date.date }} : Start {{ travel_program.title }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
</div>
<div id="extraDaysProgramBefore_hide">
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
</div>
{% endfor %}
<div class="accordion-toggle-2">
<div class="panel-group" id="accordion_pd">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_pd" href="#collapse_pd" aria-expanded="true">
@ -384,14 +380,33 @@
</a>
<div id="collapse_pd" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body">
{% for travel_program_date in travel_program_dates if travel_program_date.count > 0 %}
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
{% if travel_program_dates|length != travel_program_date.count +1 %}
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
{% else %}
<div id="extraDaysProgramAfter_show" style="display: none;">
<li>
{{ travel_program_date.date }} : Ende {{ travel_program.title }}
<br>Übernachtung : Reiseverlängerung im Rundreisehotel oder auf Wunsch in einem anderen Hotel der gebuchten Preiskategorie in Tel Aviv oder Jerusalem
</li>
<li>
<span id="extraDaysProgramAfter_date" data-org-date="{{ travel_program_date.date }}">{{ travel_program_date.date }}</span> : Reiseverlängerung - {{ travel_program_date.day|raw }}
</li>
</div>
<div id="extraDaysProgramAfter_hide">
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
</div>
{% endif %}
{% endfor %}
</div>
@ -409,7 +424,6 @@
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseleistungen</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2">
<div class="panel-group" id="accordion">
@ -456,7 +470,6 @@
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
@ -551,15 +564,12 @@
}
.form-box-small .form-control{
margin-bottom: 8px;
}
.form-box.form-box-small .st-travelers div.required:before {
margin-right: 20px;
right: 0px;
top: 0px;
}
</style>
<div class="form-box form-box-small">
@ -569,13 +579,11 @@
<p>Bitte geben Sie Ihre Vornamen und Nachnamen in die beiden Felder "Vornamen" und "Nachnamen" ein, wie diese im maschinenlesbaren Teil in Ihrem Reisepass eingetragen sind.</p>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="hidden">
{% for country in travel_program.countries %}
<input type="hidden" name="travel_program_countries_id[]" value="{{ country.id }}">
{% endfor %}
</div>
<div class="st-travelers">
{% set currentIndex = 0 %}
{% for room in form.rooms %}
@ -680,7 +688,8 @@
<label for="{{ traveler.acceptEntryRequirements.vars.id }}" style="line-height: 1.2em;">
Ich habe die oben genannten Hinweise zu den "Einreisebestimmungen, Visabestimmungen und gesundheitspolizeilichen Vorschriften" für mich und alle Mitreisenden gelesen und zur Kenntnis genommen..
</label>
{{ form_errors(traveler.acceptEntryRequirements) }}
<span class="checkbox_marker"></span>
{{ form_errors(traveler.acceptEntryRequirements) }}
<div class="help-block with-errors"></div>
</div>
</div>
@ -693,7 +702,8 @@
</div> <!-- st trav -->
<h2>Hinweis</h2>
<p>Sofern Sie nicht oder nicht ausschließlich nur die deutsche, österreichische oder schweizerische Staatsbürgerschaft besitzen, können Sie die Reise nicht buchen,
<p>Sofern Sie nicht oder nicht ausschließlich nur die Staatsbürgerschaft für [Deutschland, Österreich, Schweiz, Italien, Spanien, Frankreich] besitzen, können Sie die Reise nicht buchen,
da wir Sie vorher u.a. über die Einreisebestimmungen für Ihre individuelle Staatsbürgerschaft informieren müssen.
Bitte nehmen Sie vor einer Buchung Kontakt mit uns auf, damit Sie nach Erhalt der Informationen entscheiden können, ob Sie die Reise buchen möchten.</p>
</div> <!-- col -->
@ -714,11 +724,12 @@
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptLegalRights) }}
<label for="{{ form.acceptLegalRights.vars.id }}" style="line-height: 1.2em;">
{{ form_widget(form.acceptLegalRights) }}
<label for="{{ form.acceptLegalRights.vars.id }}" style="line-height: 1.2em;">
Hiermit bestätige ich, dass ich das Formblatt mit den Informationen zu meinen wichtigsten Rechten nach der Richtlinie (EU) 2015/2302 zur Kenntnis genommen habe.
</label>
{{ form_errors(form.acceptLegalRights) }}
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptLegalRights) }}
<div class="help-block with-errors"></div>
</div>
</div>
@ -751,6 +762,7 @@
Die für deutsche Staatsbürger geltenden Bestimmungen finden Sie auf den Seiten des <a href="https://www.auswaertiges-amt.de/de/ReiseUndSicherheit/reise-und-sicherheitshinweise" target="_blank">Auswärtigen Amts</a>
Ein Widerrufsrecht steht Ihnen gemäß § 312 g Abs. 2 Nr. 9 BGB (Bürgerliches Gesetzbuch) nicht zu.
</label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptTerms) }}
<div class="help-block with-errors"></div>
</div>
@ -772,6 +784,7 @@
{{ form_widget(form.acceptPrivacy) }}
<label for="{{ form.acceptPrivacy.vars.id }}" style="line-height: 1.2em;">Ich habe die <a href="/datenschutz" target="_blank">Datenschutzerklärung</a> zur Kenntnis genommen.
</label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
@ -810,9 +823,9 @@
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit"
class="aligncenter btn btn-primary btn-lg border-radius"
class="aligncenter btn btn-primary btn-lg border-radius btn-booking-form"
>
kostenpflichtig<br class="visible-xs"> buchen
<i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> kostenpflichtig<br class="visible-xs"> buchen
</button>
</div>

View file

@ -3,7 +3,14 @@
{% block canonical_tag %}{% endblock %}
{% block body %}
<style>
.c1.plus li:before {
content: '+';
}
.c1.minus li:before {
content: '-';
}
</style>
<section class="clearfix">
<div class="content-copy">
@ -88,13 +95,13 @@
<div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body">
<h3>Eingeschlossene Leistungen</h3>
<ul class="c1">
<ul class="c1 plus">
{% for travel_program_service in travel_program.included|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
<li>{{ travel_program_service|raw }}</li>
{% endfor %}
</ul>
<h3>Nicht eingeschlossene / zubuchbare Leistungen</h3>
<ul class="c1">
<ul class="c1 minus">
{% for travel_program_service in travel_program.excluded|split('\n') %}
<li>{{ travel_program_service|raw }}</li>
{% endfor %}
@ -200,6 +207,7 @@
<thead>
<tr>
<th style="text-align: left;">Nr.</th>
<th style="text-align: left;">Zimmertyp</th>
<th style="text-align: left;">Geschlecht</th>
<th style="text-align: left;">Vorname</th>
<th style="text-align: left;">Nachname</th>
@ -209,40 +217,135 @@
</thead>
<tbody class="st-travelers">
{% for participant in booking.participants %}
<tr class="st-traveler st-traveler-{{ loop.index }}"
data-st-traveler-index="{{ loop.index }}"
style="display: ;"
>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index"
type="button"
>
{{ loop.index ?? '' }}
</button>
</td>
<td style="text-align: left;">
{% if participant.sex == 1 %}
männlich
{% elseif participant.sex == 2 %}
weiblich
{% endif %}
</td>
<td style="text-align: left;">
{{ participant.firstName }}
</td>
<td style="text-align: left;">
{{ participant.lastName }}
</td>
<td style="text-align: left;">
{{ participant.birthDate|date }}
</td>
<td style="text-align: left;">
{{ participant.getNationalityName }}
</td>
</tr>
{% set travelerIndex = 0 %}
{% set travelerCollection = booking_request.travelers|slice(0, (booking_request.travelerCount + booking_request.childrenCount)) %}
{% for room in booking_request.occupiedRooms %}
{% if(room.type == 1) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Einzelzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% if(room.child == 1) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Einzelzimmer Kind</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% endif %}
{% elseif (room.type == 2) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Doppelzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Doppelzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% if(room.child == 1) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Doppelzimmer Kind</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% endif %}
{% elseif (room.type == 3) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% if(room.child == 1) %}
<tr>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
</td>
<td style="text-align: left;">Dreibettzimmer Kind</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName }}</td>
</tr>
{% set travelerIndex = travelerIndex + 1 %}
{% endif %}
{% endif %}
{% endfor %}
</tbody>
</table>
</div>

View file

@ -1,11 +1,12 @@
<div class="row">
{% for calendar_month in calendar %}
<div class="col-xs-12 col-sm-6">
<table class="table calendar-table">
<table class="table calendar-table" id="jump-{{ calendar_month['monthNumber'] }}-{{ calendar_month['year'] }}">
<thead>
<tr>
<th colspan="7">
{{ calendar_month['monthName'] }} {{ calendar_month['year'] }}
{{ calendar_month['monthNumber'] }} {{ calendar_month['monthName'] }} {{ calendar_month['year'] }}
</th>
</tr>
<tr>

View file

@ -2,13 +2,10 @@
{# @var fewo_lodging \AppBundle\Entity\FewoLodging #}
{% extends get_base_template() %}
{% block javascripts %}
{{ parent() }}
{% javascripts '@AppBundle/Resources/public/js/travelProgram.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{% block stylesheets %}
<style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
<link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
{% endblock stylesheets %}
{% block body %}
<section class="clearfix">
@ -185,10 +182,14 @@
</strong>
</td>
<td data-title="Beginn">
<a class="default scroll-to-jump" href="#jump-{{ price.season.fromDate|date("n-Y") }}">
{{ price.season.fromDate|date }}
</a>
</td>
<td data-title="Ende">
<a class="default scroll-to-jump" href="#jump-{{ price.season.toDate|date("n-Y") }}">
{{ price.season.toDate|date }}
</a>
</td>
<td data-title="Mindestbelegung">
{{ price.season.minimumStay }} {{ price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
@ -218,98 +219,11 @@
<p>Bitte klicken Sie einen Anreisetermin (grüne Zahl), um zur Buchungsmaske zu gelagen.</p>
<style>
.table > tbody > tr > td.normal {
background-color: rgba(88, 155, 92, 0.20);
padding: 8px;
}
.table > tbody > tr > td.calendar-day-non {
background-color: #fff;
}
.table > tbody > tr > td.calendar-day-past {
background-color: rgba(242, 242, 242, 0.5);
}
.table > tbody > tr > td.calendar-light {
opacity: 0.5;
}
.table > tbody > tr > td.calendar-day-disabled-half {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #f0bcbc 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#f0bcbc',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > td.calendar-day-disabled-half-booked {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #C5DCC6 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#C5DCC6',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > .calendar-day-reservation-begin {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #deebde), color-stop(49%, #deebde), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
}
.table > tbody > tr > .calendar-day-reservation-end {
background-color: #f2f2f2;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #deebde), color-stop(100%, #deebde));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
}
.table > tbody > tr > td.active {
background-color: rgba(88, 155, 92, 0.35);
padding: 0;
}
.table > tbody > tr > td.active:hover {
background-color: #648859;
}
.table > tbody > tr > td a {
color: #5a5a5a;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
text-decoration: underline;
}
.table > tbody > tr > td:hover a {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
}
.table > tbody > tr > td a {
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
}
</style>
{% include 'default/pages/cms/calendarLodgingProgram.html.twig' %}
</div> <!-- END tabpanel -->
</div>
{{ block('travel_lodging_program_tab_bar') }}
</div>
</section><!-- end section -->
{% endblock body %}

View file

@ -57,8 +57,6 @@
<div class="content-pane">
{{ page.contentNew|raw|keywords|lozad }}
<h1>Die SS Sudan</h1>
<p class="ft">
Der sehr elegante Restaurantsaal besteht ebenfalls aus Mobiliar des 19. Jahrhunderts und ist mit

View file

@ -10,29 +10,6 @@
{% block body %}
<style>
.price-over-slider.next-over {
left: 15px;
border-left: 0;
top: 125px;
}
@media (min-width: 992px) {
.price-over-slider.next-over {
left: 150px;
border-left: 1px solid #fff;
top: 75px;
}
}
@media (max-width: 768px) {
.price-over-slider.next-over {
top: 165px;
}
}
</style>
<section class="clearfix">
<div class="content-copy">
<h1>{{ travel_program.title|default(page.pagetitle)|default(page.title) }}</h1>
@ -53,20 +30,19 @@
</div>
{% endif %}
{% if travel_program.travelDates is not empty %}
<div class="pull-right btn-over-slider">
<button type="button"
class="btn btn-primary btn-lg border-radius st-slider-booking-btn"
onclick=
>
Termine &amp; Preise
class="btn btn-primary btn-lg border-radius st-slider-booking-btn" id="st-slider-booking-events-scroll">
Termine <i class="fa fa-star faa-burst animated" style="margin-top: -5px"></i> Preise
</button>
</div>
{% endif %}
<div class="pull-right btn-over-slider btn-over-slider-bottom">
<a href="{{ page.slug }}/pdf" title="Reisebeschreibung als PDF herunterladen"
class="btn btn-primary btn-lg border-radius st-slider-booking-btn st-slider-booking-btn-bottom">
PDF herunterladen
class="btn btn-primary btn-sm border-radius st-slider-booking-btn st-slider-booking-btn-bottom">
<i class="fa fa-print" style="margin-top: -3px;"></i> Katalogseite zum Drucken
</a>
</div>
<section class="section fullscreen background padding-0 margin-bottom-20">
@ -114,16 +90,12 @@
#}
{% block travel_program_tab_bar %}
<div class="scroller-nav-tabs scroller-left-nav-tabs"><i class="glyphicon glyphicon-chevron-left"></i>
</div>
<div class="scroller-nav-tabs scroller-right-nav-tabs"><i class="glyphicon glyphicon-chevron-right"></i>
</div>
<div class="wrapper-nav-tabs">
<ul class="nav nav-tabs nav-justified list-nav-tabs">
<li class="active">
<a href="#travel-description-content-tab" aria-controls="travel-description-content-tab"
role="tab" data-toggle="tab">
Reiseablauf
role="tab" data-toggle="tab" class="child-first">
<span>1</span> Reiseablauf
</a>
</li>
{% if travel_program.included is not empty or
@ -131,16 +103,17 @@
travel_program.classDescription is not empty %}
<li>
<a href="#travel-service-content-tab" aria-controls="travel-service-content-tab"
role="tab" data-toggle="tab">
Leistungen
role="tab" data-toggle="tab" class="child-sec">
<span>2</span> Leistungen
</a>
</li>
{% endif %}
{% if travel_program.travelDates is not empty %}
<li>
<a href="#travel-dates-content-tab" aria-controls="travel-dates-content-tab" role="tab"
data-toggle="tab">
Termine <i class="fa fa-star"></i> Preise
data-toggle="tab" class="child-sec">
<span>3</span> Termine <i class="fa fa-star faa-burst animated"></i> Preise
</a>
</li>
{% endif %}
@ -158,12 +131,14 @@
Landinfos
</a>
</li>
{#<li><a href="#content_tab_07" aria-controls="content_tab_07" role="tab" data-toggle="tab">Team vor Ort</a></li>#}
</ul>
</div>
{% endblock travel_program_tab_bar %}
<div class="tab-content">
<div id="position-scroll-tab"></div>
{#
********* REISEABLAUF *********
#}
@ -240,8 +215,8 @@
<thead>
<tr>
<th>Nr.</th>
<th>Beginn</th>
<th>Ende</th>
<th>Beginn <span class="small-table-show">- Ende</span></th>
<th class="small-table-hidden">Ende</th>
{% if has_three_bed_room %}
<th>Preis p.P im Dreibettzimmer</th>{% endif %}
{% if has_double_bed_room %}
@ -249,7 +224,7 @@
{% if has_singel_bed_room %}
<th>Preis p.P im Einzelzimmer</th>{% endif %}
<th>Abflugorte / Zuschläge</th>
<th>Status</th>
<th>Verfügbarkeit</th>
<th>Buchungsformular</th>
</tr>
</thead>
@ -265,20 +240,20 @@
<tr>
<td data-title="Nr."><strong class="small">{{ travel_date.name }}</strong>
</td>
<td data-title="Beginn">{{ travel_date.start|date }}</td>
<td data-title="Ende">{{ travel_date.end|date }}</td>
<td data-title="Beginn">{{ travel_date.start|date }} <span class="small-table-show">{{ travel_date.end|date }}</span></td>
<td data-title="Ende" class="small-table-hidden">{{ travel_date.end|date }}</td>
{% if has_three_bed_room %}
<td data-title="Preis p.P. im Dreibettzimmer">
<td data-title="Preis p.P. im Dreibettzimmer" class="price">
{% if travel_date.prices[5] is defined %}
{% if travel_date.prices[5].available == "1" %}
{% if travel_date.prices[5] is defined %}
{% if travel_date.prices[5].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
<span class="block">
<span class="{% if travel_date.prices[5].effectiveDiscountPrice %}old_price{% endif %}">
ab {{ travel_date.prices[5].effectivePrice|number_format }}
<span class="{% if travel_date.prices[5].effectiveDiscountPrice %}old_price{% endif %}">
{% if travel_date.prices[5].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
ab {{ travel_date.prices[5].effectivePrice|number_format }}
</span>
{% if travel_date.prices[5].effectiveDiscountPrice %}
<span class="new_price">
@ -286,7 +261,7 @@
</span>
{% endif %}
</span>
</span>
{% endif %}
{% else %}
nicht verfügbar
@ -295,17 +270,16 @@
</td>
{% endif %}
{% if has_double_bed_room %}
<td data-title="Preis p.P im Doppelzimmer">
<td data-title="Preis p.P im Doppelzimmer" class="price">
{% if travel_date.prices[3] is defined %}
{% if travel_date.prices[3].available == "1" %}
{% if travel_date.prices[3].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
<span class="block">
<span class="{% if travel_date.prices[3].effectiveDiscountPrice %}old_price{% endif %}">
ab {{ travel_date.prices[3].effectivePrice|number_format }}
</span>
<span class="{% if travel_date.prices[3].effectiveDiscountPrice %}old_price{% endif %}">
{% if travel_date.prices[3].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
ab {{ travel_date.prices[3].effectivePrice|number_format }}
</span>
{% if travel_date.prices[3].effectiveDiscountPrice %}
<span class="new_price">
ab {{ travel_date.prices[3].effectiveDiscountPrice|number_format }}
@ -321,17 +295,17 @@
{% endif %}
{% if has_singel_bed_room %}
<td data-title="Preis p.P im Einzelzimmer">
<td data-title="Preis p.P im Einzelzimmer" class="price">
{% if travel_date.prices[1] is defined %}
{% if travel_date.prices[1].available == "1" %}
{% if travel_date.prices[1].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
<span class="block">
<span class="{% if travel_date.prices[1].effectiveDiscountPrice %}old_price{% endif %}">
ab {{ travel_date.prices[1].effectivePrice|number_format }}
</span>
<span class="{% if travel_date.prices[1].effectiveDiscountPrice %}old_price{% endif %}">
{% if travel_date.prices[1].effectiveDiscountPrice %}
<i class="icons-percent"></i>
{% endif %}
ab {{ travel_date.prices[1].effectivePrice|number_format }}
</span>
{% if travel_date.prices[1].effectiveDiscountPrice %}
<span class="new_price">
ab {{ travel_date.prices[1].effectiveDiscountPrice|number_format }}
@ -346,7 +320,7 @@
</td>
{% endif %}
<td data-title="Abflugorte / Zuschläge">
<a href="#" class="color-brand" data-toggle="modal"
<a href="#" class="btn btn-primary btn-sm border-radius st-slider-booking-btn" data-toggle="modal"
data-target="#st-departures-modal-{{ loop.index0 }}">
Flughäfen
</a>
@ -371,7 +345,7 @@
</td>
{% else %}
<td data-title="Verfügbarkeit">
<div style="">
<div style="font-size: 0.95em">
<img src="/images/icons/available-{{ travel_date.effectiveStatus }}.png"
style="height: 24px; width: 24px;vertical-align:middle"
alt="">
@ -384,15 +358,33 @@
{% if travel_date.effectiveStatus == 3 %}
GARANTIERT
{% endif %}
{% if travel_date.effectiveStatus == 4 %}
WENIGE PLÄTZE
{% endif %}
{% if travel_date.effectiveStatus == 5 %}
NUR NOCH <span style="white-space: nowrap">1 PLATZ</span>
{% endif %}
{% if travel_date.effectiveStatus == 6 %}
NUR NOCH <span style="white-space: nowrap">2 PLÄTZE</span>
{% endif %}
{% if travel_date.effectiveStatus == 7 %}
NUR NOCH <span style="white-space: nowrap">3 PLÄTZE</span>
{% endif %}
{% if travel_date.effectiveStatus == 8 %}
NUR NOCH <span style="white-space: nowrap">4 PLÄTZE</span>
{% endif %}
{% if travel_date.effectiveStatus == 9 %}
NUR NOCH <span style="white-space: nowrap">5 PLÄTZE</span>
{% endif %}
</div>
</td>
<td data-title="">
<a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}"
class="btn btn-primary"
class="btn btn-primary btn-md border-radius btn-booking-form"
rel="nofollow"
>
ANFRAGEN
<i class="fa fa-angle-double-right"></i> Buchungs-<br class="hidden"><span class="hidden" style="margin-left: 5px;">&nbsp;</span>Formular
</a>
</td>
{% endif %}

View file

@ -2,17 +2,13 @@
{% form_theme form 'default/form/theme.html.twig' %}
{% block stylesheets %}
{{ parent() }}
{% stylesheets 'bundles/app/css/booking.css' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% endblock %}
<style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
<link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
{% endblock stylesheets %}
{% block javascripts %}
{{ parent() }}
{% javascripts '@AppBundle/Resources/public/js/fewoBooking.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<script src="{{ asset('js/fewoBooking-min.js?v') }}{{ get_file_last_time('js/fewoBooking-min.js') }}"></script>
{% endblock %}
{% block body %}
@ -31,20 +27,19 @@
<h2 style="margin-top:10px">{{ lodging.name }}</h2>
Aus technischen Gründen können wir Ihnen derzeit leider kein Buchungsformular anbieten.<br>
Bitte schreiben Sie uns eine Mail unter <a href="mailto:stern@sterntours.de">stern@sterntours.de</a> für Ihre Anfrage.<br><br>
Vielen Dank für Ihr Verständnis.
{#
<div id="booking_form" class="booking_form" style="display:none;">
<div id="booking_form" class="booking_form" style="">
<form class="st-booking-form" method="post" data-toggle="validator">
{{ form_errors(form) }}
{{ form_errors(form.email) }}
<input type="hidden" name="hidden_toDate" id="hidden_toDate" value="{{ lastSeason.toDate|date('d-m-y') }}">
<input type="hidden" name="hidden_reservationDays" id="hidden_reservationDays" value='{{ reservationDays|json_encode|raw }}'>
<input type="hidden" name="hidden_customDays" id="hidden_customDays" value='{{ classByDays|json_encode|raw }}'>
<div id="message"></div>
<div class="form-box">
@ -57,34 +52,38 @@
{{ lodging.name }}
</td>
</tr>
<tr>
<!-- <tr>
<td>Saison</td>
<td>
{{ fewo_price.season.name }}
</td>
</tr>
-->
<tr>
<td>Reisebeginn</td>
<td>{{ fromDate|date }}</td>
</tr>
<tr>
<td>{{ form_label(form.toDate, 'Reiseende') }}</td>
<td><label class="st-required control-label required">Datum</label></td>
<td>
{{ form_widget(form.toDate, {attr: {'data-allowed-dates': allowed_to_dates}}) }}
{{ form_errors(form.toDate) }}
<div class="form-group" style="margin-bottom:0;">
<div class="input-daterange input-group" id="date-range">
{{ form_widget(form.fromDate) }}
<span class="input-group-addon bg-info b-0 text-white">bis</span>
{{ form_widget(form.toDate) }}
</div>
</div>
</td>
</tr>
<tr>
<!-- <tr>
<td>Mindestbelegung</td>
<td>
{{ fewo_price.season.minimumStay }} {{ fewo_price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
</td>
</tr>
</tr> -->
<tr>
<td>{{ form_label(form.travelerCount, 'Reiseteilnehmer') }}</td>
<td>
<div style="max-width: 180px;">
{{ form_widget(form.travelerCount) }}
{{ form_errors(form.travelerCount) }}
</div>
</td>
</tr>
</tbody>
@ -211,21 +210,8 @@
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Allgemeine Geschäftsbedingungen</h5>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptTerms) }}
<label for="{{ form.acceptTerms.vars.id }}">
Ich habe alle Daten und Angaben auf Richtigkeit überprüft. Ich habe die
<a href="/uploads/{{ terms_filename }}" target="_blank">
Allgemeinen Geschäftsbedingungen des Reisevermittlers
</a>
gelesen und akzeptiert. Zugleich erkenne ich diese für alle Reiseteilnehmer an.
</label>
{{ form_errors(form.acceptTerms) }}
</div>
<div class="help-block with-errors"></div>
</div>
<h5>Datenschutz</h5>
<div class="form-group">
<div class="checkbox">
@ -236,28 +222,17 @@
Datenschutzerklärung
</a> genannte Datenverarbeitung ein.
</label>
{{ form_errors(form.acceptPrivacy) }}
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptProcessing) }}
<label for="{{ form.acceptProcessing.vars.id }}" style="line-height: 1.2em;">Hiermit willige ich in die Verarbeitung der von mir freiwillig
angegebenen personenbezogenen Daten ein.
Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit ohne Nachteile per Mail an
stern@sterntours.de widerrufen kann.
</label>
{{ form_errors(form.acceptProcessing) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit"
class="aligncenter btn btn-primary btn-lg border-radius"
class="aligncenter btn btn-primary btn-lg border-radius btn-booking-form"
>
kostenpflichtig<br class="visible-xs"> buchen
<i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> kostenpflichtig<br class="visible-xs"> mieten
</button>
</div>
</div>
@ -269,9 +244,12 @@
</form>
</div><!-- end contact-form -->
#}
</div>
</section>
{% endblock body %}

View file

@ -21,9 +21,9 @@ monolog:
console:
type: console
channels: [!event, !doctrine]
browser_console:
type: browser_console
level: warning
# browser_console:
# type: browser_console
# level: warning
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration
#firephp:

View file

@ -316,7 +316,6 @@ class AdminController extends Controller
return $this->redirect('/admin/fewo/lodgings');
}
return $this->render('default/admin/lodgingsEdit.html.twig', [
'form' => $form->createView(),
'lodging' => $lodging,
@ -499,7 +498,6 @@ class AdminController extends Controller
// -------------------------------------------------------------------------------------------
return $this->render('default/admin/fewoBooking.html.twig', [
'form' => $form->createView(),
'lodging' => $lodging,
@ -681,6 +679,7 @@ class AdminController extends Controller
*/
public function adminFewoNewReservationAction(Request $request, $lodgingId)
{
$em = $this->getEntityManager();
$fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging');
$lodging = $fewoLodgingRepo->find($lodgingId);
@ -754,7 +753,6 @@ class AdminController extends Controller
public function adminFewoNewReservationWithStartingDayAction(Request $request, $lodgingId, $fromDate)
{
$em = $this->getEntityManager();
$fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging');
$lodging = $fewoLodgingRepo->find($lodgingId);

View file

@ -66,6 +66,7 @@ class BookingController extends Controller
if($action == '/show_nationality_country_text')
{
$ret = "";
$nationality_id = $request->request->get('nationality_id');
$country_ids = $request->request->get('country_ids');
@ -223,11 +224,14 @@ class BookingController extends Controller
)
);
// #TODO This will lead to multiple bookings due to multiple form submission. Redirect instead!
return $this->render('default/pages/bookingConfirmation.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $travelProgramPage,
'booking_request' => $bookingRequest,
'breadcrumb_entries' => $breadcrumbEntries,
'show_nav_sidebar_about' => "notshow",
'show_nav_sidebar_widget' => false,
'show_travel_guide_sidebar_widget' => false,
'show_travel_magazine_sidebar_widget' => false,
@ -243,17 +247,12 @@ class BookingController extends Controller
]);
}
/* $string = (string) $form->getErrors(true, true);
var_dump($string);
var_dump( $form->isValid());
var_dump($this->getErrorMessages($form));
die();
*/
return $this->render('default/pages/booking.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $travelProgramPage,
'breadcrumb_entries' => $breadcrumbEntries,
'show_nav_sidebar_about' => "notshow",
'show_nav_sidebar_widget' => false,
'show_travel_guide_sidebar_widget' => false,
'show_travel_magazine_sidebar_widget' => false,

View file

@ -7,6 +7,7 @@
namespace AppBundle\Controller;
use AppBundle\Entity\FewoPrice;
use AppBundle\Entity\Page;
use AppBundle\Entity\SunstarTravelProgram;
use AppBundle\Entity\FewoLodgingGroup;
@ -254,6 +255,8 @@ class CmsController extends Controller
$calendarService = $this->container->get('app.lodging_calendar_util');
$lodging = $page->getFewoLodging();
$prices = $lodging->getPricesFilterNow();
$lodging->setPrices($prices);
$paddedCalendar = $calendarService->getCalendarWithPadding($calendarService->getMinCalendarEntriesByLodging($lodging));
if (count($lodging->getPrices()->toArray()) != 0)
{
@ -262,7 +265,6 @@ class CmsController extends Controller
} else {
$calendar = $paddedCalendar;
}
$imgs = array();
$imgs_pre = array();
$imgs_post = array();

View file

@ -126,6 +126,7 @@ class ComponentController extends Controller
;
return $this->render('default/components/sidebar/pageSliderSidebarWidget.html.twig', [
'slider_title' => 'Reiseführer',
'target_widget' => 'travel-leader-widget',
'pages' => $pages
]);
}
@ -142,6 +143,7 @@ class ComponentController extends Controller
;
return $this->render('default/components/sidebar/pageSliderSidebarWidget.html.twig', [
'slider_title' => 'Reisemagazin',
'target_widget' => 'travel-magazine-widget',
'pages' => $pages
]);
}
@ -150,6 +152,7 @@ class ComponentController extends Controller
{
return $this->render('default/components/sidebar/pageSliderSidebarWidget.html.twig', [
'slider_title' => 'Angebote',
'target_widget' => 'offer-widget',
'pages' => $this->getOffersByCountry($country),
]);
}
@ -174,6 +177,7 @@ class ComponentController extends Controller
{
return $this->render(':default/components/sidebar:textSliderSidebarWidget.html.twig', [
'slider_title' => 'Kundenfeedback',
'target_widget' => 'feedback-widget',
'slides' => $this->getDoctrine()->getRepository('AppBundle:Page')->findFeedbacks(
$country->getFeedbackPage()->getId()),
'theme' => 'gray-box',

View file

@ -75,7 +75,6 @@ class DefaultController extends Controller
{
$destinationIds[] = $data['c2']->getId();
}
$r = $this->getDoctrine()->getRepository('AppBundle:TravelPeriod')->getTravelProgramsWithTravelDatesForTimePeriod(
$data['b'], $data['e'], $destinationIds, count($destinationIds) > 1);
}
@ -149,6 +148,7 @@ class DefaultController extends Controller
}
}
//https://dtps-ibe.traveltainment.de/hotel?taid=DRS32&ddate=2018-07-25&rdate=2018-08-08&adult=2&rid=2202
//http://dtps-ibe.traveltainment.de/hotel?taid=DRS32&ddate=2018-07-25&rdate=2018-08-08&dur=6,14&adult=1&child=0&rgid=2202
else
@ -266,9 +266,42 @@ class DefaultController extends Controller
$child .= $p.",";
}
}
$board = "";
$room = "";
if($sleist != "" && strpos($sleist, ";")) {
$eleist = explode(';', $sleist);
$v = end($eleist);
if(strpos($v, "F") !== false){
$board = 2;
}
if(strpos($v, "H") !== false){
$board = 3;
}
if(strpos($v, "V") !== false){
$board = 4;
}
if(strpos($v, "A") !== false){
$board = 5;
}
if(strpos($v, "EZ") !== false){
$room = 1;
}
if(strpos($v, "DZ") !== false){
$room = 2;
}
if(strpos($v, "FZ") !== false){
$room = 3;
}
}
$child = rtrim($child, ',');
$url = "http://dtps-ibe.traveltainment.de/offer?taid=DRS32";
$url .= '&ibe=package&adult='.$adult.'&ddate='.date("Y-m-d", $hin).'&rdate='.date("Y-m-d", $rueck).'&depap='.$airp.'&aid='.$iff.'&brand='.$va.'&dur='.$dau.'&child='.$child;
$url = "https://dtps-ibe.traveltainment.de/offer?taid=DRS32";
$url .= '&ibe=package&adult='.$adult.'&ddate='.date("Y-m-d", $hin).'&rdate='.date("Y-m-d", $rueck).'&depap='.$airp.'&aid='.$iff.'&brand='.$va.'&dur='.$dau.'&child='.$child.'&board='.$board.'&room='.$room.'&dur=exact';
$ttUrl = urldecode($url);
}

View file

@ -12,6 +12,7 @@ use AppBundle\Entity\Traveler;
use AppBundle\Entity\TravelPeriodPrice;
use AppBundle\Entity\TravelPeriodPriceType;
use AppBundle\Form\BookingRequestType;
use AppBundle\Form\FewoReservationType;
use AppBundle\Util;
@ -26,26 +27,143 @@ use Symfony\Component\HttpFoundation\Response;
class FewoBookingController extends Controller
{
private $calendar;
public function getEntityManager()
{
return $this->getDoctrine()->getManager();
}
private function initCalender($lodging){
$calendarService = $this->container->get('app.lodging_calendar_util');
$paddedCalendar = $calendarService->getCalendarWithPadding($calendarService->getMinCalendarEntriesByLodging($lodging));
if (count($lodging->getPrices()->toArray()) != 0) {
$this->calendar = $calendarService->calendarAndFillDayStates($paddedCalendar, $lodging);
} else {
$this->calendar = $paddedCalendar;
}
}
/**
* @param FewoLodging $lodging
* @param $endDate
* @return array
*/
public function reservationDays(FewoLodging $lodging, $endDate)
{
$reservations = $lodging->getReservationsFilter(new \DateTime(), $endDate);
$days = array();
foreach($reservations as $reservation) {
$setFromIntervall = clone $reservation->getFromDate();
$fromDate = $reservation->getFromDate();
$toDate = $reservation->getToDate();
// $diff = $fromDate->diff($toDate);
$interval = \DateInterval::createFromDateString('1 day');
$period = new \DatePeriod($setFromIntervall->modify('+1 day'), $interval, $toDate);
//days
foreach ($period as $dt) {
$days[] = $dt->format("d.m.Y");
}
}
return $days;
}
/**
* @param FewoLodging $lodging
* @param $endDate
* @return array
*/
public function classByDays(FewoLodging $lodging, $endDate)
{
$ret = array();
foreach ($this->calendar as $month => $calendar_month) {
foreach ($calendar_month['data'] as $key => $day) {
if($day && $day->getDate()){
$toClass = "";
if($day->getIsBookable() && !$day->getIsPastDate()) {
$toClass .= " bookable";
}
$ret[$day->getDate()->format("d.m.Y")] = $day->getCssClass()."".$toClass;
}
}
}
return $ret;
}
/**
* The routing for this action is entirely controlled by KernelControllerListener!
*
* @param Page $fewoTravelProgramPage
* @param Request $request
* @param $action
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
* @throws \Exception
* @param FewoLodging $lodging
* @return bool
*/
private function getSeasonLast(FewoLodging $lodging)
{
$lodgingPrices = $lodging->getPrices();
$season = false;
$lastDate = new \DateTime();
foreach($lodgingPrices as $price)
{
if($price->getSeason()){
if($price->getSeason()->getToDate() > $lastDate){
$season = $price->getSeason();
$lastDate = $price->getSeason()->getToDate();
}
}
}
return $season;
}
/**
* @param FewoBookingRequest $fewoBookingRequest
* @param FewoLodging $fewoLodging
*/
private function checkIsPossible(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging){
$fromDate = clone $fewoBookingRequest->getFromDate();
$toDate = clone $fewoBookingRequest->getToDate();
$interval = \DateInterval::createFromDateString('1 day');
$period = new \DatePeriod($fromDate, $interval, $toDate->modify('+1 day'));
$check_days = array();
//days
foreach ($period as $dt) {
$check_days[] = $dt->format("d.m.Y");
}
foreach ($this->calendar as $month => $calendar_month) {
foreach ($calendar_month['data'] as $key => $day) {
if($day && $day->getDate()) {
if (in_array($day->getDate()->format("d.m.Y"), $check_days)) {
if($day->getIsReserved() || $day->getIsPastDate()) {
return false;
}
}
}
}
}
return true;
}
public function indexAction(Page $fewoTravelProgramPage, $action, Request $request)
{
$calendarService = $this->container->get('app.lodging_calendar_util');
$em = $this->getEntityManager();
//$fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging');
$fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging');
$fewoPriceRepo = $em->getRepository('AppBundle:FewoPrice');
if (!$request->query->has('pnr') || !$request->query->has('fd'))
@ -53,127 +171,86 @@ class FewoBookingController extends Controller
return $this->redirect($fewoTravelProgramPage->getUrlPath());
}
$priceId = $request->query->get('pnr');
$fromDate = $request->query->get('fd');
$lodging = $fewoTravelProgramPage->getFewoLodging();
/** @var FewoPrice $price */
$price = $fewoPriceRepo->find($priceId);
$this->initCalender($lodging);
/** @var FewoSeason $season */
$season = $price->getSeason();
$minimumStay = $season->getMinimumStay();
$fromDate = $calendarService->convertDate($fromDate);
$fromDateTime = new \DateTime($fromDate);
$toDate = '';
$maxPersons = $lodging->getMaximumPersons();
$fewoBookingRequest = new FewoBookingRequest();
$reservation = new FewoReservation();
$fewoBookingRequest->setFromDate($fromDateTime);
//$fewoBookingRequest->setToDate($toDate);
$fewoBookingRequest->setNumberDays($minimumStay);
$fewoBookingRequest->setLodging($lodging);
$fewoBookingRequest->setPrice($price);
$reservation = new FewoReservation();
$lastSeason = $this->getSeasonLast($lodging);
$reservationDays = $this->reservationDays($lodging, $lastSeason->getToDate());
$classByDays = $this->classByDays($lodging, $lastSeason->getToDate());
$allowedToDateStrs = [];
if (!$lodging->getPrices()->isEmpty())
{
$nightsSinceFromDate = 0;
$calendar = $calendarService->createCalendarAndFillDayStates($lodging);
$areAllowedToDatesCollected = false;
foreach ($calendar as $calendarMonth)
{
if ($calendarMonth['year'] < $fromDateTime->format('Y') ||
$calendarMonth['monthNumber'] < $fromDateTime->format('n'))
{
continue;
}
/** @var Util\CalendarDayState[] $dayStates */
$dayStates = $calendarMonth['data'];
$i = 0;
if ($calendarMonth['year'] == $fromDateTime->format('Y') &&
$calendarMonth['monthNumber'] == $fromDateTime->format('n'))
{
$i = intval($fromDateTime->format('j')) - 1;
}
for (; $i < count($dayStates); ++$i)
{
if ($nightsSinceFromDate >= $season->getMinimumStay())
{
$dayState = $dayStates[$i];
if ($dayState->getIsInSeason() && (!$dayState->getIsReserved() ||
($dayState->getIsReservationBegin() && !$dayState->getIsReservationEnd())))
{
$allowedToDateStrs[] = $dayState->getDate()->format('Y-m-d');
}
else
{
$areAllowedToDatesCollected = true;
break;
}
}
++$nightsSinceFromDate;
}
if ($areAllowedToDatesCollected)
{
break;
}
}
if (!empty($allowedToDateStrs))
{
$toDate = $allowedToDateStrs[0];
}
}
//first init for form ...
$fromDate = $request->query->get('fd');
$priceId = $request->query->get('pnr');
$price = $fewoPriceRepo->find($priceId);
$season = $price->getSeason();
$minimumStay = $season->getMinimumStay();
if ($request->getMethod() != 'POST')
{
$fewoBookingRequest->setFromDate($fromDate);
$fewoBookingRequest->setToDate($toDate);
$fromDate = $calendarService->convertDate($fromDate);
$fromDateTime = new \DateTime($fromDate);
$toDate = new \DateTime($fromDate);
$toDate->modify('+'.$season->getMinimumStay().' day');
$toDate = $toDate->format('d.m.Y');
$toDateTime = new \DateTime($toDate);
$fewoBookingRequest->setFromDate($fromDateTime);
$fewoBookingRequest->setToDate($toDateTime);
$fewoBookingRequest->setNumberDays($minimumStay);
$fewoBookingRequest->setLodging($lodging);
$fewoBookingRequest->setPrice($price);
}
$form = $this->createForm(FewoBookingRequestType::class, $fewoBookingRequest, [
'lodging' => $lodging,
'maxPersons' => $maxPersons,
'toDate' => $toDate
]);
$form = $this->createForm(FewoBookingRequestType::class, $fewoBookingRequest, [
'lodging' => $lodging,
'maxPersons' => $maxPersons,
'fromDate' => $fromDate,
'toDate' => $toDate,
]);
//overwrite is an request from form
if ($request->getMethod() == 'POST')
{
$form->handleRequest($request);
/** @var FewoBookingRequest $fewoBookingRequest */
$fewoBookingRequest = $form->getData();
$fewoBookingRequest->setFromDate($fromDateTime);
$finalFromDate = $fewoBookingRequest->getFromDate();
$finalToDate = $fewoBookingRequest->getToDate();
$timeDiff = date_diff($finalFromDate, $finalToDate);
$numberDays = $timeDiff->days; // todo: evtl umbenennen, damit es eindeutig für Nächte und nicht mehr für Tage verwendet wird
$fewoBookingRequest->setNumberDays($numberDays);
$fewoBookingRequest->setLodging($lodging);
$fewoBookingRequest->setPrice($price);
$numberDays = $timeDiff->days;
$season = $fewoLodgingRepo->findSeasonForLodgingBy($lodging, $finalFromDate);
if($season){
$price = $fewoPriceRepo->findOneBy(['lodging' => $lodging, 'season' => $season]);
if($price){
$season = $price->getSeason();
$minimumStay = $season->getMinimumStay();
$fewoBookingRequest->setPrice($price);
$fewoBookingRequest->setNumberDays($numberDays);
}
}
}
$totalPrice = $this->calculatePrice($fewoBookingRequest, $lodging, $price);
$perDayTotalPrice = $this->calculatePerDayTotalPrice($fewoBookingRequest, $price);
$fewoBookingRequest->setTotalPrice($totalPrice);
$isPossible = $this->checkIsPossible($fewoBookingRequest, $lodging);
$priceResult = $this->calculatePriceNew($fewoBookingRequest, $lodging, $price);
$totalPrice = 0;
$perDayTotalPrice = 0;
// $totalPrice = $this->calculatePrice($fewoBookingRequest, $lodging, $price);
//$perDayTotalPrice = $this->calculatePerDayTotalPrice($fewoBookingRequest, $price);
$fewoBookingRequest->setTotalPrice($priceResult['price_total']);
if($action == '/buchen')
{
if ($request->getMethod() == 'POST' && $form->isValid())
if ($request->getMethod() == 'POST' && $form->isValid() && $isPossible)
{
$reservation->setFromDate($fewoBookingRequest->getFromDate());
$reservation->setToDate($fewoBookingRequest->getToDate());
@ -184,7 +261,7 @@ class FewoBookingController extends Controller
$em->persist($reservation);
$em->flush();
$crmBookingUrl = $this->get('app.fewo_booking_exporter')->process($fewoBookingRequest, $lodging, $price);//, $travelDate, $bookingPriceInfo);
$crmBookingUrl = $this->get('app.fewo_booking_exporter')->process($fewoBookingRequest, $lodging, $price, $priceResult);//, $travelDate, $bookingPriceInfo);
if (!$crmBookingUrl)
{
$crmBookingUrl = '[CRM-EXPORT FEHLGESCHLAGEN]';
@ -195,7 +272,7 @@ class FewoBookingController extends Controller
}
$this->get('mailer')->send(\Swift_Message::newInstance()
->setSubject('Ihr FeWo-Buchungsauftrag bei STERN TOURS')
->setSubject('Ihre FeWo-Mietauftrag bei STERN TOURS')
->setFrom('stern@stern-tours.de', 'STERN TOURS')
->setTo($fewoBookingRequest->getEmail())
->setBody(
@ -204,9 +281,8 @@ class FewoBookingController extends Controller
'fewo_booking_request' => $fewoBookingRequest,
'fewo_lodging' => $lodging,
'fewo_price' => $price,
//'booking_price_info' => $bookingPriceInfo,
//'travel_date' => $travelDate,
//'breadcrumb_entries' => $breadcrumbEntries,
'priceResult' => $priceResult,
'isPossible' => $isPossible,
]),
'text/plain', 'utf-8'
)
@ -217,6 +293,7 @@ class FewoBookingController extends Controller
->setSubject('FEWO-BUCHUNG: ' . $lodging->getName())
->setFrom('stern@stern-tours.de', 'STERN TOURS')
->setTo('stern@stern-tours.de')
//->setTo('kevin@adametz.media')
->setBody(
$this->renderView('default/email/fewoBookingServiceEmail.txt.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir') . '/..') . DIRECTORY_SEPARATOR,
@ -225,15 +302,16 @@ class FewoBookingController extends Controller
'fewo_booking_request' => $fewoBookingRequest,
'fewo_lodging' => $lodging,
'fewo_price' => $price,
//'booking_price_info' => $bookingPriceInfo,
//'travel_date' => $travelDate,
//'breadcrumb_entries' => $breadcrumbEntries,
'priceResult' => $priceResult,
'isPossible' => $isPossible,
]),
'text/plain', 'utf-8'
)
);
return $this->render('default/pages/fewoBookingConfirmation.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $fewoTravelProgramPage,
@ -243,6 +321,8 @@ class FewoBookingController extends Controller
'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice,
'show_search_sidebar_widget' => false,
'isPossible' => $isPossible,
'priceResult' => $priceResult,
]);
}
@ -257,10 +337,14 @@ class FewoBookingController extends Controller
'fewo_price' => $price,
'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice,
'allowed_to_dates' => implode(';', $allowedToDateStrs),
'page' => $fewoTravelProgramPage,
'show_search_sidebar_widget' => false,
'lastSeason' => $lastSeason,
'reservationDays' => $reservationDays,
'classByDays' => $classByDays,
'terms_filename' => $this->getDoctrine()->getRepository('AppBundle:TravelOrganizer')->find(1)->getFileName(),
'isPossible' => $isPossible,
'priceResult' => $priceResult,
]);
}
@ -273,12 +357,74 @@ class FewoBookingController extends Controller
'fewo_price' => $price,
'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice,
'isPossible' => $isPossible,
'priceResult' => $priceResult,
]);
}
throw new \Exception('Unknown FewoBookingController action: '. $action);
}
private function calculatePriceNew(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging){
$fromDate = clone $fewoBookingRequest->getFromDate();
$toDate = clone $fewoBookingRequest->getToDate();
$interval = \DateInterval::createFromDateString('1 day');
$period = new \DatePeriod($fromDate, $interval, $toDate);
$check_days = array();
//days
foreach ($period as $dt) {
$check_days[] = $dt->format("d.m.Y");
}
$result = [];
$result['total'] = 0;
$result['price_total'] = 0;
$result['deposit'] = $lodging->getDeposit();
$result['flatPrice'] = 0;
$result['days'] = 0;
$result['season'] = [];
$frist_day = false;
foreach ($this->calendar as $month => $calendar_month) {
foreach ($calendar_month['data'] as $key => $day) {
if($day && $day->getDate()) {
if (in_array($day->getDate()->format("d.m.Y"), $check_days)) {
$season = $day->getPrice()->getSeason()->getName();
if(!isset($result['season'][$season])){
$result['season'][$season]['fromDay'] = $day->getDate()->format("d.m.Y");
$result['flatPrice'] = $day->getPrice()->getFlatPrice();
$result['season'][$season]['price'] = 0;
$result['season'][$season]['numberDays'] = 0;
$result['season'][$season]['perNight'] = $day->getPrice()->getPerNight();
$result['season'][$season]['minimumStay'] = $day->getPrice()->getSeason()->getMinimumStay();
}
if(!$frist_day){
$result['season'][$season]['price'] += $day->getPrice()->getPerNight();
$result['season'][$season]['numberDays'] ++;
$result['season'][$season]['toDay'] = $day->getDate()->format("d.m.Y");
$result['total'] += $day->getPrice()->getPerNight();
$result['days'] ++;
}else{
$frist_day = true;
}
}
}
}
}
$result['total_price'] = $result['flatPrice'] + $result['total'] + $result['deposit'];
return $result;
}
public function calculatePrice(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice)
{
$result = $fewoLodging->getDeposit();

View file

@ -81,11 +81,11 @@ class FewoBookingRequest
private $travelerCount;
private $acceptTerms = false;
// private $acceptTerms = false;
private $acceptPrivacy = false;
private $acceptProcessing = false;
// private $acceptProcessing = false;
private $lodging;
@ -325,22 +325,18 @@ class FewoBookingRequest
$this->travelerCount = $travelerCount;
}
/**
* @return mixed
*/
public function getAcceptTerms()
/* public function getAcceptTerms()
{
return $this->acceptTerms;
}
/**
* @param mixed $acceptTerms
*/
public function setAcceptTerms($acceptTerms)
{
$this->acceptTerms = $acceptTerms;
}
*/
/**
* @return mixed
*/
@ -357,24 +353,16 @@ class FewoBookingRequest
$this->acceptPrivacy = $acceptPrivacy;
}
/**
* @return mixed
*/
/*
public function isAcceptProcessing()
{
return $this->acceptProcessing;
}
/**
* @param mixed $acceptProcessing
*/
public function setAcceptProcessing($acceptProcessing)
{
$this->acceptProcessing = $acceptProcessing;
}
/**
* @return mixed
*/
public function getNumberDays()
{

View file

@ -35,11 +35,13 @@ class FewoLodging
/**
* @var \AppBundle\Entity\FewoLodgingGroup
*
* @ORM\ManyToOne(targetEntity="FewoLodgingGroup")
* @ORM\ManyToOne(targetEntity="FewoLodgingGroup", inversedBy="lodgings")
)
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
* })
*/
private $group;
/**
@ -523,6 +525,18 @@ class FewoLodging
return $this->prices;
}
/**
* Set Price
*
* @param \Doctrine\Common\Collections\Collection
*
* @return FewoLodging
*/
public function setPrices($prices)
{
$this->prices = $prices;
}
/**
* Get prices
*
@ -538,9 +552,31 @@ class FewoLodging
});
}
public function getPricesByFromDateFilter($fromDate)
{
return $this->getPrices()->filter(function(FewoPrice $price) use ($fromDate) {
if(!empty($price->getSeason()))
var_dump($price->getSeason()->getFromDate() );
echo "<br>";
return ($price->getSeason()->getFromDate() >= $fromDate && $price->getSeason()->getToDate() <= $fromDate);
});
}
/**
* Get prices
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getPricesFilterNow()
{
$now = new \DateTime();
return $this->getPrices()->filter(function(FewoPrice $price) use ($now) {
if(!empty($price->getSeason()))
return ($price->getSeason()->getToDate() >= $now);
});
}
/**
* Add image
*
* @param \AppBundle\Entity\FewoLodgingImage $image

View file

@ -28,4 +28,20 @@ class FewoLodgingRepository extends \Doctrine\ORM\EntityRepository
return $qb->getQuery()->getOneOrNullResult();
}
public function findSeasonForLodgingBy($lodging, $fromDate)
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('s');
$qb->from('AppBundle:FewoSeason', 's');
$qb->innerJoin('s.prices', 'p');
$qb->where($qb->expr()->eq('p.lodging', $lodging->getId()));
$qb->andWhere('s.fromDate <= :fromDate');
$qb->andWhere('s.toDate >= :fromDate');
$qb->setParameter('fromDate', $fromDate);
$qb->addOrderBy('s.fromDate', 'DESC');
$qb->setMaxResults(1);
return $qb->getQuery()->getOneOrNullResult();
}
}

View file

@ -35,7 +35,6 @@ class FewoSeason
* @var \AppBundle\Entity\FewoPrice
*
* @ORM\OneToMany(targetEntity="FewoPrice", mappedBy="season", cascade={"persist", "remove"})
* @ORM\OrderBy({"fromDate" = "DESC"})
*/
private $prices;

View file

@ -106,7 +106,8 @@ class PageRepository extends NestedTreeRepository
->where('node.status > 0')
->andWhere('node.template = \'overview\'')
->andWhere('node.lvl = 0')
->orderBy('node.lft,node.title,childPage.lft,childPage.title')
->andWhere('node.order > 0')
->orderBy('node.order,node.title, childPage.lft, childPage.title')
->getQuery()
->execute()
;

View file

@ -53,12 +53,14 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
// Limit time period for seasons and travel dates
$qb->innerJoin('tp.periods', 'p');
$qb->addSelect('p');
$qb->innerJoin('p.dates', 'd');
$qb->addSelect('d');
$qb->where("((p.isSeason = 0 AND d.startDate >= '$startDateStr' AND d.endDate <= '$endDateStr') OR".
$qb->andWhere("((p.isSeason = 0 AND d.startDate >= '$startDateStr' AND d.endDate <= '$endDateStr') OR".
" (p.isSeason = 1 AND d.endDate >= '$startDateStr' AND".
" DATE_ADD(d.startDate, tp.programDuration, 'DAY') <= '$endDateStr' AND p.status > 0))");
// Prices
// Instead of a single join to prices we add one join per price type. This reduces the execution time by
// 150ms on the development system
@ -91,6 +93,7 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
}
}
$qb->groupBy('p.id, p_dep.id, d.id');
// $qb->groupBy('p.id');
// Travel class
$qb->innerJoin('p.class', 'cls', Expr\Join::WITH, 'cls.standard = 1');
@ -100,8 +103,10 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
->addSelect('tp_image');
// Sort travel programs
$qb->addSelect('COALESCE(tp.position, 0) as HIDDEN position_sort_key');
$qb->orderBy('position_sort_key');
// $qb->addSelect('COALESCE(tp.position, 0) as HIDDEN position_sort_key');
// $qb->orderBy('position_sort_key');
//$qb->addOrderBy('LENGTH(tp.title)'); // Emulate natural sort
$qb->addOrderBy('tp.title');
$qb->addOrderBy('tp.id');
@ -115,7 +120,6 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
{
return $travelPrograms;
}
// Collect arrival point IDs for non mediated travel programs
$isUsedArrivalPointById = [];
foreach ($travelPrograms as $travelProgram)

View file

@ -17,6 +17,11 @@ class Traveler
private $NATIONALITY = [
1 => 'deutsch',
2 => 'österreichisch',
3 => 'schweizerisch',
4 => 'italienisch',
5 => 'spanisch',
6 => 'französisch',
];
/**

View file

@ -176,7 +176,7 @@ class BookingSternToursCrmExporter extends SternToursCrmExporter
$i++;
}
$resp = $this->httpPostAPIv3('create_drafts', [
$resp = $this->httpPostAPIv3('draft/create_drafts_from_booking', [
'travel_program_id' => $tp->getId(),
'comfort' => $bookingRequest->getComfort(),
'booking_before' => $bookingPriceInfo['booking_before'],

View file

@ -20,7 +20,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
parent::__construct($logger);
}
public function process(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice)
public function process(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice, $priceResult)
{
$lead = $this->createLead($fewoBookingRequest);
if ($lead === null)
@ -28,7 +28,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
$this->warn('Failed creating lead in CRM', $fewoBookingRequest, Logger::ERROR);
return false;
}
$bookingUrl = $this->createBooking($fewoBookingRequest, $fewoLodging, $fewoPrice, $lead['customer_id'], $lead['id']);
$bookingUrl = $this->createBooking($fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult, $lead['customer_id'], $lead['id']);
if ($bookingUrl === false)
{
$this->warn('Failed creating booking in CRM', $fewoBookingRequest, Logger::ERROR);
@ -41,10 +41,31 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
$this->warn('Failed creating traveler in CRM.', $fewoBookingRequest);
}
*/
$this->createNewDrafts($bookingUrl, $fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult);
return $bookingUrl;
}
private function createNewDrafts($bookingUrl, $fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult){
//make an request omn the new API
$resp = $this->httpPostAPIv3('draft/create_drafts_from_fewo', [
'booking_id' => array_values(array_slice(explode("/", $bookingUrl), -1))[0],
'fewo_lodging_id' => $fewoLodging->getId(),
'request_date' => (new \DateTime())->format('Y-m-d'), // required
'priceResult' => $priceResult,
'startDateStr' => $fewoBookingRequest->getFromDate()->format('Y-m-d'),
'endDateStr' => $fewoBookingRequest->getToDate()->format('Y-m-d'),
]);
if (count($resp) == 0)
{
$this->warn('Failed retrieving newly created new draft object', $fewoBookingRequest);
}
return $resp;
}
private function createLead(FewoBookingRequest $fewoBookingRequest)
{
$resp = $this->httpPost('lead', ['lead' => [
@ -88,15 +109,16 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
return null;
}
private function createBooking(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging, FewoPrice $price, $customerId, $leadId)
private function createBooking(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging, FewoPrice $price, $priceResult, $customerId, $leadId)
{
$resp = $this->httpPost('booking', ['booking' => [
'booking_date' => (new \DateTime())->format('Y-m-d'),
'customer_id' => $customerId,
'lead_id' => $leadId,
//'travel_country_id' => $tp->getTravelCountry(),
//'travel_category_id' => $tp->getTravelCategory(),
//'travelagenda_id' => $tp->getTravelAgenda(),
'travel_country_id' => 27,
'travel_category_id' => 7,
'travel_company_id' => 1,
'travelagenda_id' => 109,
'sf_guard_user_id' => self::API_USER_ID,
'branch_id' => 4,
'website_id' => self::WEBSITE_ID,
@ -104,13 +126,15 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
'start_date' => $fewoBookingRequest->getFromDate()->format('Y-m-d'), // required
'end_date' => $fewoBookingRequest->getToDate()->format('Y-m-d'), // required
'pax' => $fewoBookingRequest->getTravelerCount(),
'travel_number' => substr($lodging->getName()." - ".$price->getSeason()->getName(), 0, 30),
'price' => $fewoBookingRequest->getTotalPrice(),
'travel_number' => substr($price->getSeason()->getName(), 0, 30),
'price' => $priceResult['total'],
'price_total' => $priceResult['total_price'],
'participant_salutation_id' => $fewoBookingRequest->getSalutation(),
'participant_name' => $fewoBookingRequest->getLastName(),
'participant_firstname' => $fewoBookingRequest->getFirstName(),
//'participant_birthdate' => $bookingRequest->getTravelers()[0]->getBirthDate(),
'new_drafts' => true,
]]);
if (!$resp['success'])

View file

@ -16,8 +16,9 @@ abstract class SternToursCrmExporter
const API_URL_LOCAL = 'http://cms-stern-tours.local/api';
const API_v3_URL_LOCAL = 'http://mein.sterntours.local/';
const API_URL = 'https://cms.stern-tours.net/api';
const API_v3_URL_LOCAL = 'http://crm-stern-tours.local/';
const API_v3_URL = 'https://mein.sterntours.de/';
const API_KEY = 'f6077389c9ce710e554763a5de02c8ec';
@ -82,7 +83,6 @@ abstract class SternToursCrmExporter
$baseUrl = self::API_v3_URL_LOCAL.'api/';
}
$data = array(
'email' => self::API_v3_MAIL,
'password' => self::API_v3_PASS,
@ -98,9 +98,7 @@ abstract class SternToursCrmExporter
$result = curl_exec($ch);
$r = json_decode($result);
if($r->success) {
if($action == 'create_drafts'){
//api URL
$data = json_encode($postData);
@ -108,15 +106,15 @@ abstract class SternToursCrmExporter
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $r->success->token, 'Accept:application/json', 'Content-Type:application/json']);
curl_setopt($ch, CURLOPT_URL, $baseUrl.'draft/create_drafts_from_booking');
curl_setopt($ch, CURLOPT_URL, $baseUrl.$action);
$result = curl_exec($ch);
$r = json_decode($result);
// var_dump($r);
// var_dump($r);
if($r->success) {
curl_close($ch);
return $r->success;
}
}
}
return $ret;

View file

@ -55,11 +55,13 @@ class FewoBookingRequestType extends AbstractType
'lodging' => null,
'maxPersons' => null,
'toDate' => null,
'fromDate' => null,
'data_class' => 'AppBundle\Entity\FewoBookingRequest',
]);
$resolver->setAllowedTypes('lodging', ['AppBundle\Entity\FewoLodging']);
$resolver->setAllowedTypes('toDate', ['string', 'NULL']);
$resolver->setAllowedTypes('fromDate', ['string', 'NULL']);
}
@ -70,9 +72,12 @@ class FewoBookingRequestType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$maxPersons = $options['maxPersons'];
$fromDate= $options['fromDate'];
$toDate = $options['toDate'];
$fromDateDateTime = new \DateTime($fromDate);
$toDateDateTime = new \DateTime($toDate);
$TRAVELERS_CHOICES = [
'1' => 1,
];
@ -86,11 +91,23 @@ class FewoBookingRequestType extends AbstractType
}
$builder
->add('toDate', StDateType::class, [
->add('fromDate', StDateType::class, [
//options
//'widget' => 'single_text',
'data' => $toDateDateTime,
'format' => 'd.M.y'
"attr" => array(
"class" => "form-control",
'placeholder' => 'StartDatum',
'data-range' => 1,
),
'data' => $fromDateDateTime
])
->add('toDate', StDateType::class, [
"attr" => array(
"class" => "form-control",
'placeholder' => 'EndDatum',
'data-range' => 1,
),
'data' => $toDateDateTime
])
->add('travelerCount', ChoiceType::class, [
'choices' => $TRAVELERS_CHOICES,
@ -132,9 +149,9 @@ class FewoBookingRequestType extends AbstractType
]
])
->add('notes', TextareaType::class, ['required' => false])
->add('acceptTerms', CheckboxType::class, ['required' => true])
//->add('acceptTerms', CheckboxType::class, ['required' => true])
->add('acceptPrivacy', CheckboxType::class, ['required' => true])
->add('acceptProcessing', CheckboxType::class, ['required' => true])
//->add('acceptProcessing', CheckboxType::class, ['required' => true])
;
}

View file

@ -33,9 +33,11 @@ class FewoLodgingType extends AbstractType
])
->add('description', null, [
'required' => true,
'attr' => array('rows' => '7')
])
->add('equipment', null, [
'required' => true,
'attr' => array('rows' => '7')
])
->add('adress1', null, [
'required' => true,

View file

@ -14,6 +14,7 @@ use Doctrine\ORM\EntityManager;
use Doctrine\ORM\PersistentCollection;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@ -32,6 +33,14 @@ class KernelControllerListener
public function onKernelController(FilterControllerEvent $event)
{
$request = $event->getRequest();
$session = $request->getSession();
$request->attributes->set('_open_side_about', 'open');
if($session->get('time')){
$request->attributes->set('_open_side_about', '');
}
$session->set('time', time());
if ($request->get('_controller') == 'AppBundle\Controller\DefaultController::defaultAction')
{
$repo = $this->em->getRepository('AppBundle:Page');

View file

@ -15231,7 +15231,7 @@
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 0,
"oA": 1,
"oAP": "/public/css/booking-min.css",
"oF": 0,
"oS": 3
@ -15303,16 +15303,46 @@
"oAP": "/public/css/custom.css.map",
"oF": 0
},
"/public/css/daterangepicker.css": {
"/public/css/daterangepicker-min.css": {
"aP": 1,
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 0,
"oAP": "/public/css/daterangepicker-min-min.css",
"oF": 0,
"oS": 3
},
"/public/css/daterangepicker.css": {
"aP": 1,
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 1,
"oAP": "/public/css/daterangepicker-min.css",
"oF": 0,
"oS": 3
},
"/public/css/fewo-min.css": {
"aP": 1,
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 0,
"oAP": "/public/css/fewo-min-min.css",
"oF": 0,
"oS": 3
},
"/public/css/fewo.css": {
"aP": 1,
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 1,
"oAP": "/public/css/fewo-min.css",
"oF": 0,
"oS": 3
},
"/public/css/font-awesome-4.7.0.css": {
"aP": 1,
"bl": 0,
@ -15427,6 +15457,40 @@
"sI": 1,
"sU": 0
},
"/public/css/my-fewo.css": {
"aP": 1,
"bl": 0,
"ft": 16,
"ma": 0,
"oA": 0,
"oAP": "/public/css/my-fewo-min.css",
"oF": 0,
"oS": 3
},
"/public/css/my-fewo.css.map": {
"cB": 0,
"ft": 8192,
"oA": 0,
"oAP": "/public/css/my-fewo.css.map",
"oF": 0
},
"/public/css/my-fewo.less": {
"aP": 0,
"bl": 0,
"eJ": 0,
"ft": 1,
"ie": 1,
"iI": 0,
"ma": 1,
"mS": 0,
"oA": 0,
"oAP": "/Users/kevinadametz/Websites/sterntours-3/trunk/web/css/my-fewo.css",
"oF": 6,
"oS": 1,
"rwU": 0,
"sI": 0,
"sU": 0
},
"/public/css/owl-carousel.css": {
"aP": 1,
"bl": 0,
@ -16644,8 +16708,8 @@
"mi": 1,
"oA": 0,
"oAP": "/public/js/min/booking-min.js",
"oF": 0,
"sC": 1,
"oF": 1,
"sC": 0,
"tS": 0
},
"/public/js/bootstrap-3.3.7.js": {
@ -16662,7 +16726,7 @@
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 1,
"oA": 0,
"oAP": "/public/js/min/bootstrap-select-1.12.0-min.js",
"oF": 0,
"sC": 1,
@ -16708,14 +16772,24 @@
"sC": 0,
"tS": 0
},
"/public/js/fewoBooking-min.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oAP": "/public/js/min/fewoBooking-min-min.js",
"oF": 0,
"sC": 1,
"tS": 0
},
"/public/js/fewoBooking.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oAP": "/public/js/min/fewoBooking-min.js",
"oF": 0,
"sC": 1,
"oAP": "/Users/kevinadametz/Websites/sterntours-3/trunk/web/js/fewoBooking-min.js",
"oF": 7,
"sC": 0,
"tS": 0
},
"/public/js/jquery-3.1.1.js": {
@ -16808,6 +16882,16 @@
"sC": 1,
"tS": 0
},
"/public/js/min/fewoBooking-min.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oAP": "/public/js/min/min/fewoBooking-min-min.js",
"oF": 0,
"sC": 1,
"tS": 0
},
"/public/js/min/owl.carousel-2.3.4-min.js": {
"ft": 64,
"ma": 0,
@ -16818,6 +16902,16 @@
"sC": 1,
"tS": 0
},
"/public/js/min/travelProgram-min.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oAP": "/public/js/min/min/travelProgram-min-min.js",
"oF": 0,
"sC": 1,
"tS": 0
},
"/public/js/onloadCSS.js": {
"ft": 64,
"ma": 0,
@ -16862,7 +16956,7 @@
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 1,
"oA": 0,
"oAP": "/public/js/min/parallax-min.js",
"oF": 0,
"sC": 1,
@ -16875,7 +16969,7 @@
"oA": 0,
"oAP": "/public/js/min/travelProgram-min.js",
"oF": 0,
"sC": 1,
"sC": 0,
"tS": 0
},
"/public/js/validator.js": {
@ -16917,7 +17011,7 @@
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oA": 1,
"oAP": "/public/vendor/daterangepicker/min/daterangepicker-min.js",
"oF": 0,
"sC": 1,
@ -17013,11 +17107,21 @@
"rFN": 0,
"uCM": 0
},
"/public/vendor/daterangepicker/moment.min.js": {
"/public/vendor/daterangepicker/min/daterangepicker-min.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 0,
"oAP": "/public/vendor/daterangepicker/min/min/daterangepicker-min-min.js",
"oF": 0,
"sC": 1,
"tS": 0
},
"/public/vendor/daterangepicker/moment.min.js": {
"ft": 64,
"ma": 0,
"mi": 1,
"oA": 1,
"oAP": "/public/vendor/daterangepicker/min/moment.min-min.js",
"oF": 0,
"sC": 1,
@ -17677,46 +17781,54 @@
"position": 2,
"type": 0
},
{
"followForSyntaxChecking": 0,
"linkedFileAbbreviatedPath": "/public/js/parallax.js",
"position": 3,
"type": 0
},
{
"followForSyntaxChecking": 0,
"linkedFileAbbreviatedPath": "/public/js/bootstrap-select-1.12.0.js",
"position": 4,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/bootstrap-select-1.13.2.js",
"position": 5,
"position": 3,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/validator.js",
"position": 6,
"position": 4,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/cookieconsent.min.js",
"position": 7,
"position": 5,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/owl.carousel-2.3.4.js",
"position": 8,
"position": 6,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/lozad.js",
"position": 9,
"position": 7,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/js/booking.js",
"position": 8,
"type": 0
}
],
"/public/js/fewoBooking.js": [
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/vendor/daterangepicker/moment.min.js",
"position": 0,
"type": 0
},
{
"followForSyntaxChecking": 1,
"linkedFileAbbreviatedPath": "/public/vendor/daterangepicker/daterangepicker.js",
"position": 1,
"type": 0
}
]

View file

@ -381,6 +381,7 @@ a,
-webkit-border-radius: 120px;
-moz-border-radius: 120px;
border-radius: 120px;
border:1px solid #fff !important;
}
.btn-white.btn-normal,
.btn-default.btn-normal,
@ -396,7 +397,7 @@ a,
font-size: 15px !important;
height: 50px !important;
line-height: 20px;
padding: 16px 45px !important;
padding: 16px 35px !important;
}
.btn-default.btn-sm,
.btn-primary.btn-sm,
@ -1233,10 +1234,11 @@ a[id^="video_"]:before,
box-shadow: 0px 0px 8px 5px rgba(255, 255, 255, 0.4);
}
.btn-over-slider-bottom {
top: 280px !important;
top: 270px !important;
}
.st-slider-booking-btn-bottom {
background-color: #777777 !important;
.btn-primary.btn-sm.st-slider-booking-btn-bottom {
text-transform: none;
font-size: 15px!important;
}
.price-over-slider {
position: absolute;
@ -2116,7 +2118,7 @@ body.modal-open {
.fullscreen {
width: 100%;
min-height: 100%;
padding-top: 150px;
padding-top: 145px;
}
.section.padding-top-20 {
padding-top: 20px;
@ -2197,7 +2199,7 @@ body.modal-open {
width: 12px;
height: 12px;
}
.carousel.fewo .carousel-indicators {
.carousel .carousel-indicators {
bottom: 0px;
}
.start-slider {
@ -2230,8 +2232,8 @@ body.modal-open {
top: 49px;
}
.carousel-indicators li {
width: 26px;
height: 26px;
width: 18px;
height: 18px;
background-color: #fff;
border: 1px solid #ffc926;
border-radius: 50%;
@ -2239,12 +2241,10 @@ body.modal-open {
}
.carousel-indicators li:hover,
.carousel-indicators .active {
width: 26px;
height: 26px;
width: 18px;
height: 18px;
background-color: #ffc926;
border: 1px solid #fff;
border-radius: 50%;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.4);
}
a.carousel-control .glyphicon {
color: #ffc926;
@ -2256,7 +2256,6 @@ a.carousel-control .glyphicon {
}
.px-bullets {
position: absolute;
bottom: 20px;
right: 50%;
bottom: -20px;
}
@ -2421,12 +2420,13 @@ i {
display: -moz-box;
overflow-x: hidden;
}
#content section .nav-tabs .fa {
color: #ffd659;
padding-bottom: 3px;
}
#content section .nav-tabs > li > a {
margin-right: 2px;
margin-right: 0px;
line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 0;
@ -2434,19 +2434,33 @@ i {
background-color: #c3c3c3;
font-weight: 600;
white-space: nowrap;
padding: 10px 10px;
padding: 10px 12px 10px 50px;
cursor: pointer;
text-align: left;
}
#content section .nav-tabs > li > a.child-first {
padding-left: 38px;
}
#content section .nav-tabs > li > a.child-sec {
padding-left: 55px;
}
#content section .nav-tabs > li.active > a,
#content section .nav-tabs > li.active > a:hover,
#content section .nav-tabs > li.active > a:focus,
#content section .nav-tabs > li > a:hover,
#content section .nav-tabs > li > a:focus {
color: #fff;
color: #1a457c;
background-color: #ffc926;
border: 1px solid #ddd;
border: 1px solid #ffc926;
border-bottom-color: transparent;
cursor: pointer;
box-shadow: -2px 0 16px -6px rgba(0,0,0,.5);
}
#content section .nav-tabs > li.active > a .fa,
#content section .nav-tabs > li.active > a:hover .fa,
@ -2464,7 +2478,197 @@ i {
#content section .scroller-left-nav-tabs {
display: none;
}
@media (max-width: 992px) {
#content section .nav-tabs > li a::after {
content: '';
position: absolute;
top: 0;
right: -21px;
width: 44px;
height: 42px;
transform: scale(0.707) rotate(45deg);
z-index: 1;
border-radius: 0 5px 0 50px;
background: #c3c3c3;
box-shadow: 2px -2px 0 2px #ffffff;
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
#content section .nav-tabs > li.active > a::after,
#content section .nav-tabs > li.active > a:hover::after,
#content section .nav-tabs > li.active > a:focus::after,
#content section .nav-tabs > li > a:hover::after,
#content section .nav-tabs > li > a:focus::after{
background: #ffc926 !important;
}
#content section .nav-tabs > li:last-child a::after {
right: -18px;
}
#content section .nav-tabs > li:last-child a {
margin-right: 20px;
}
#content section .nav-tabs > li:first-child a {
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
}
#content section .nav-tabs > li:last-child a {
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
}
#content section .nav-tabs > li a span:first-child {
position: absolute;
left: 26px;
top:8px;
display: inline-block;
width: 24px;
height: 24px;
line-height: 23px;
border-radius: 50%;
background-color: #fff;
color: #777;
text-align: center;
}
#content section .nav-tabs > li.active a span:first-child {
color: #1a457c;
border-color: #777;
background-color: #fff;
}
#content section .nav-tabs > li a.child-first span:first-child {
left: 8px;
}
@media (max-width: 786px) {
#content section .nav-tabs {
display: block;
}
#content section .nav-tabs > li > a.child-sec {
padding-left: 38px;
}
#content section .nav-tabs > li a span:first-child {
left: 8px;
}
#content section .nav-tabs > li a {
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
}
#content section .nav-tabs > li > a {
padding-left: 40px;
padding-right: 30px;
float:left;
}
#content section .nav-tabs > li > a.child-first {
padding-left: 40px;
float:none;
margin-right: 20px;
}
#content section .nav-tabs > li > a.child-sec {
padding-left: 40px;
float:none;
margin-right: 20px;
}
}
@media (min-width: 540px) and (max-width: 786px) {
#content section .nav-tabs > li > a.child-first {
padding-left: 40px;
float:left;
margin-right: 0px;
}
#content section .nav-tabs > li > a.child-sec {
padding-left: 55px;
float:left;
margin-right: 0px;
}
#content section .nav-tabs > li a.child-sec span:first-child {
left: 26px;
}
}
/*
#content section .nav-tabs > li a::after {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 22px solid transparent;
border-bottom: 21px solid transparent;
border-left: 20px solid #c3c3c3;
position: absolute;
top: 50%;
margin-top: -22px;
left: 100%;
z-index: 2;
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
#content section .nav-tabs > li a::before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 22px solid transparent;
border-bottom: 21px solid transparent;
border-left: 20px solid white;
position: absolute;
top: 50%;
margin-top: -22px;
margin-left: 3px;
left: 100%;
z-index: 1;
}
#content section .nav-tabs > li.active > a::after,
#content section .nav-tabs > li.active > a:hover::after,
#content section .nav-tabs > li.active > a:focus::after,
#content section .nav-tabs > li > a:hover::after,
#content section .nav-tabs > li > a:focus::after{
border-left-color: #ffc926 !important;
}
#content section .nav-tabs > li:first-child a {
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
}
#content section .nav-tabs > li:last-child a {
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
}
#content section .nav-tabs > li:last-child a::after {
border: 0;
}
*/
/*
@media (max-width: 991px) {
#content section .scroller-nav-tabs {
display: block;
text-align: center;
@ -2507,6 +2711,7 @@ i {
width: auto;
}
}
*/
.result-wrapper .table {
font-size: .9em;
}
@ -3383,7 +3588,7 @@ footer.clearfix {
#sidebar .widget {
position: relative;
display: block;
margin-bottom: 40px;
margin-bottom: 20px;
}
#sidebar ul {
padding: 0;
@ -3403,22 +3608,50 @@ footer.clearfix {
display: none;
content: "";
}
@media (max-width: 768px) {
#sidebar .widget,
#sidebar .widget-title {
margin-top: 0;
padding-top: 0;
}
#sidebar .widget-title {
font-size: 23px;
position: relative;
padding-bottom: 5px;
border-bottom: 1px solid #ffc926;
font-weight: normal;
margin-bottom: 4px;
color: #777777;
line-height: 1.2em;
vertical-align: baseline;
}
@media (max-width: 992px) {
#sidebar .widget a.collapse-widget {
color: #777777;
font-size: 20px;
}
#sidebar .widget a.collapse-widget::before {
display: inline-block;
font-family: FontAwesome;
content: "\f106";
padding: 6px 10px 0 0;
font-size: 32px;
padding:0 6px 0 6px;
font-size: 28px;
color: #ffc926;
vertical-align: bottom;
}
#sidebar .widget a.collapse-widget.collapsed::before {
display: inline-block;
content: "\f107";
}
#sidebar .widget {
margin-bottom: 0px;
}
#sidebar .widget-title {
border-bottom-color: #dfdfdf;
background: #efefef;
line-height: 1em;
padding-top: 2px;
}
}
#sidebar .widget .hl5,
#sidebar .widget .hl5 a {
@ -3435,7 +3668,8 @@ footer.clearfix {
#sidebar .widget .boxwidget {
text-align: center;
margin: 0 auto;
padding-bottom: 20px;
padding-bottom: 0px;
overflow-x: hidden;
}
#sidebar .widget .searchwidget {
background-color: #eaeaea;
@ -3455,6 +3689,13 @@ footer.clearfix {
padding-left: 8px;
font-size: 18px;
}
#sidebar .widget .searchwidget {
margin-bottom: 10px;
}
#sidebar .widget .boxwidget {
margin-bottom: 10px;
}
#sidebar .widget .newswidget {
border-bottom: 1px solid #777777;
padding-bottom: 10px;
@ -3576,22 +3817,7 @@ footer.clearfix {
width: 94%;
padding: 0 0 0 0;
}
#sidebar .widget,
#sidebar .widget-title {
margin-top: 0;
padding-top: 0;
}
#sidebar .widget-title {
font-size: 25px;
position: relative;
padding-bottom: 8px;
border-bottom: 1px solid #ffc926;
font-weight: normal;
margin-bottom: 20px;
color: #777777;
line-height: 1.2em;
vertical-align: baseline;
}
/*
14) COLOR SCHEMES
===============================================================
@ -3941,16 +4167,16 @@ a,
margin-right: -30px;
}
.btn-over-slider {
top: 110px;
top: 80px;
}
.btn-over-slider-bottom {
top: 320px;
}
.st-slider-booking-btn-bottom {
background-color: #777777 !important;
}
.price-over-slider {
top: 115px;
top: 85px;
}
#sidebar #side-navigation .side-menu {
width: 100%;
@ -4115,7 +4341,7 @@ a,
width: 18px;
height: 18px;
left: 0;
top: 3px;
top: 0px;
margin-left: -20px;
border: 1px solid #ccc;
border-radius: 3px;
@ -4130,10 +4356,10 @@ a,
width: 16px;
height: 16px;
left: 0;
top: 0;
top: -2px;
margin-left: -20px;
padding-left: 3px;
padding-top: 1px;
padding-top: 0;
font-size: 11px;
color: #555555;
}
@ -5892,12 +6118,13 @@ input[type="radio"] .styled:checked + label::after {
}
.boxwidget .video-wrap {
height: 180px;
height: 220px;
}
}
.bootstrap-select .dropdown-toggle .filter-option {
overflow: hidden;
white-space: nowrap;
}
@ -5911,7 +6138,6 @@ input[type="radio"] .styled:checked + label::after {
transform: translate(0%, -50%);
text-align: center;
z-index: 10;
}
.u-icon-v3 {
@ -5923,7 +6149,6 @@ input[type="radio"] .styled:checked + label::after {
font-size: 1rem;
line-height: 1.2rem;
font-weight: 500;
display: inline-block;
padding: 10px 15px;
-webkit-transition: all .2s ease-in-out;
@ -5932,14 +6157,12 @@ input[type="radio"] .styled:checked + label::after {
-webkit-box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.5);
-moz-box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.5);
box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.5);
}
.u-icon-v3 i {
position: relative;
display: inline-block;
z-index: 12;
}
.u-icon-v3:hover {
@ -5947,7 +6170,6 @@ input[type="radio"] .styled:checked + label::after {
-webkit-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5);
-moz-box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5);
box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5);
}
.content-pane .h3l {
padding-bottom: 10px;
@ -5992,3 +6214,434 @@ hr.primary {
height: 100%;
border: 0;
}
.u-go-to-v1 {
width: 3.57143rem;
height: 3.57143rem;
display: block;
background-color: rgba(255, 255, 255, 0.7);
border-radius: 50%;
-webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
-webkit-transition: .3s ease-out;
-o-transition: .3s ease-out;
transition: .3s ease-out;
z-index: 11;
font-size: 22px;
}
.u-go-to-v1 i {
position: absolute;
color: #555;
top: 52%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.u-go-to-v1:hover, .u-go-to-v1:focus:hover {
text-decoration: none;
color: #fff;
background-color: #ffc926;
}
.u-go-to-v1:hover i, .u-go-to-v1:focus:hover i {
color: #fff;
}
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes zoomIn {
from {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3);
}
50% {
opacity: 1;
}
}
@keyframes zoomIn {
from {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3);
}
50% {
opacity: 1;
}
}
.zoomIn {
-webkit-animation-name: zoomIn;
animation-name: zoomIn;
}
@-webkit-keyframes zoomOut {
from {
opacity: 1;
}
50% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3);
}
to {
opacity: 0;
}
}
@keyframes zoomOut {
from {
opacity: 1;
}
50% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3);
}
to {
opacity: 0;
}
}
.zoomOut {
-webkit-animation-name: zoomOut;
animation-name: zoomOut;
}
.price-over-slider.next-over {
left: 15px;
border-left: 0;
top: 125px;
}
@media (min-width: 992px) {
.price-over-slider.next-over {
left: 150px;
border-left: 1px solid #fff;
top: 75px;
}
}
@media (max-width: 768px) {
.price-over-slider.next-over {
top: 135px;
}
}
.btn-booking-form {
font-size: 15px;
border: 1px solid #fff;
box-shadow: 0 0 2px 2px rgba(0,0,0,.1);
}
.btn-booking-form {
background: transparent;
transition: all 0.7s ease-out;
background: linear-gradient(270deg, rgba(255, 181, 16, 0.8), rgb(255, 197, 41), rgba(100, 136, 89, 1), rgba(100, 136, 89, 0.8));
background-position: 1% 70%;
background-size: 300% 300%;
}
.btn-booking-form:hover {
border: 1px solid rgba(255, 201, 38, 1);
background-position: 99% 50%;
}
.u-icon-v3 i {
margin-top: -3px;
}
.u-icon-v3:hover i {
animation: slide1 2s ease-in-out infinite;
margin-top: -3px;
}
.btn-booking-form i {
animation: slide1 3s ease-in-out infinite;
margin-top: -6px;
font-size: 20px;
}
@keyframes slide1 {
0% {opacity: 1; transform: translateX(0px) scale(1);}
25%{opacity: 0; transform:translateX(8px) scale(0.9);}
26%{opacity: 0; transform:translateX(-5px) scale(0.9);}
55% {opacity: 1; transform: translateX(0px) scale(1);}
}
@media (min-width: 992px) {
.price-over-slider.next-over {
left: 150px;
border-left: 1px solid #fff;
top: 75px;
}
}
@media (max-width: 768px) {
.price-over-slider.next-over {
top: 165px;
}
}
@-webkit-keyframes burst {
0% {
opacity: 1
}
75% {
-webkit-transform: scale(1.6);
transform: scale(1.6);
opacity: 1
}
85% {
-webkit-transform: scale(1.7);
transform: scale(1.7);
opacity: 0
}
100% {
opacity: 0
}
}
@keyframes burst {
0% {
opacity: 1
}
75% {
-webkit-transform: scale(1.6);
transform: scale(1.6);
opacity: 1
}
85% {
-webkit-transform: scale(1.7);
transform: scale(1.7);
opacity: 0
}
100% {
opacity: 0
}
}
.faa-burst.animated, .faa-burst.animated-hover:hover, .faa-parent.animated-hover:hover > .faa-burst {
-webkit-animation: burst 3s infinite linear;
animation: burst 3s infinite linear;
margin-left: 3px;
margin-right: 3px;
}
.faa-burst.animated-hover.faa-fast:hover, .faa-burst.animated.faa-fast,
.faa-parent.animated-hover:hover > .faa-burst.faa-fast {
-webkit-animation: burst 1s infinite linear;
animation: burst 1s infinite linear
}
.faa-burst.animated-hover.faa-slow:hover, .faa-burst.animated.faa-slow,
.faa-parent.animated-hover:hover > .faa-burst.faa-slow {
-webkit-animation: burst 3s infinite linear;
animation: burst 3s infinite linear
}
@-webkit-keyframes falling {
0% {
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
opacity: 0
}
25% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1
}
75% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1
}
100% {
-webkit-transform: translateY(50%);
transform: translateY(50%);
opacity: 0
}
}
@keyframes falling {
0% {
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
opacity: 0
}
25% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1
}
75% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1
}
100% {
-webkit-transform: translateY(50%);
transform: translateY(50%);
opacity: 0
}
}
.faa-falling.animated, .faa-falling.animated-hover:hover, .faa-parent.animated-hover:hover > .faa-falling {
-webkit-animation: falling 3s linear infinite;
animation: falling 3s linear infinite
}
.faa-falling.animated-hover.faa-fast:hover, .faa-falling.animated.faa-fast,
.faa-parent.animated-hover:hover > .faa-falling.faa-fast {
-webkit-animation: falling 1s linear infinite;
animation: falling 1s linear infinite
}
.faa-falling.animated-hover.faa-slow:hover, .faa-falling.animated.faa-slow,
.faa-parent.animated-hover:hover > .faa-falling.faa-slow {
-webkit-animation: falling 3s linear infinite;
animation: falling 3s linear infinite
}
.icons-percent::before {
content: '%';
font-weight: 700;
width: 24px;
height: 24px;
line-height: 24px;
font-size: 14px;
float: left;
background: #ffc926;
color: #fff;
border-radius: 50%;
margin-top: 4px;
}
.table>tbody>tr>td {
}
.icons-percent {
font-family: Oswald, sans-serif;
position: absolute;
top: -8px;
left: -28px;
}
.table .old_price {
font-size: 0.9em;
text-align: right;
position: relative;
display: inline-block;
}
.table .new_price {
text-align: right;
font-size: 1.05em;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 6px 4px;
}
.small-table-hidden {
display: table-cell;
}
.small-table-show {
display: none;
}
@media (min-width: 992px){
.btn-booking-form br.hidden {
display: inline-block !important;
}
.btn-booking-form span.hidden {
display: inline-block !important;
}
.btn-booking-form i {
margin-bottom: -12px !important;
}
}
@media (min-width: 992px) and (max-width: 1140px){
.table>tbody>tr>td.price{
text-align: right;
}
.icons-percent {
text-align: center;
}
.btn-booking-form {
padding: 7px 12px;
}
.small-table-hidden {
display: none;
}
.small-table-show {
display: inline-block;
}
}
@media (min-width: 1141px){
.table>tbody>tr>td.price{
text-align: right;
}
.icons-percent {
text-align: center;
}
}
.container-fluid {
max-width: 1280px;
}
.checkbox input[type=checkbox]~span.checkbox_marker::before {
animation: slide1 3s ease-in-out infinite;
font-family: 'FontAwesome';
font-size: 20px;
line-height: 20px;
content: "\f101";
display: inline-block;
position: absolute;
width: 20px;
height: 20px;
left: 0;
top: -1px;
margin-left: -20px;
padding-left: 3px;
padding-top: 0px;
color: #ce9d1e;
transition: visibility 0.5s, opacity 0.5s linear;
visibility: visible;
opacity: 1;
}
.checkbox input[type=checkbox]:checked~span.checkbox_marker::before {
visibility: hidden;
opacity: 0;
}

File diff suppressed because one or more lines are too long

View file

@ -199,47 +199,54 @@
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.bookable {
background-color: rgba(88, 155, 92, 0.4);
cursor: pointer !important;
border-radius: 0;
font-weight: bold;
text-decoration: underline;
}
.daterangepicker td.bookable:hover {
background-color: rgba(88, 155, 92, 0.50);
}
.daterangepicker td.calendar-day-reservation-begin {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0faf0), color-stop(49%, #f0faf0), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -moz-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #E6F0E6), color-stop(49%, #E6F0E6), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.calendar-day-reservation-end {
background-color: #f2f2f2;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #deebde), color-stop(100%, #deebde));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #E6F0E6), color-stop(100%, #E6F0E6));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
border-radius: 0;
}
.daterangepicker td.calendar-day-disabled-half-booked {
background-color: #f2f2f2;
.daterangepicker td.calendar-day-disabled-half-booked, .daterangepicker td.calendar-day-disabled-half {
background: #f0bcbc;
background: -moz-linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
background: -webkit-linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
background: linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f0bcbc', endColorstr='#f0bcbc', GradientType=1);
border-radius: 0;
}
/*
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #E6F0E6), color-stop(99%, #E6F0E6));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
border-radius: 0;
}
*/
.daterangepicker td.calendar-day-disabled-half-booked.bookable {
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #bcd7be), color-stop(100%, #bcd7be));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
@ -249,27 +256,78 @@
border-radius: 0;
}
.daterangepicker td.off, .daterangepicker td.off:hover {
background: none !important;
background-color: #fff !important;
color: #fff !important;
cursor: not-allowed;
.daterangepicker td.calendar-day-reservation-begin.bookable {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #bcd7be), color-stop(49%, #bcd7be), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.disabled, .daterangepicker option.disabled {
.daterangepicker td.normal, .daterangepicker td.calendar-light, .daterangepicker td.normal:hover, .daterangepicker td.calendar-light:hover {
background-color: #E6F0E6 !important;
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.calendar-day-disabled, .daterangepicker option.calendar-day-disabled {
cursor: not-allowed;
text-decoration: none;
background-color: #f0bcbc !important;
border-radius: 0px;
}
.daterangepicker td.bookable {
background-color: rgba(88, 155, 92, 0.4)!important;
cursor: pointer !important;
border-radius: 0;
font-weight: bold;
text-decoration: underline;
}
.daterangepicker td.bookable:hover {
background-color: rgba(88, 155, 92, 0.50);
}
.daterangepicker td.bookable-end {
cursor: pointer !important;
}
.daterangepicker td.normal.bookable-end, .daterangepicker td.normal.bookable-end:hover {
background-color: #d6e6d7;
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.calendar-day-reservation-begin.bookable-end {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #d6e6d7), color-stop(49%, #d6e6d7), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.bookable-end:before {
width: 100%;
height: 100%;
background-color: rgba(88, 155, 92, 0.20);
}
.daterangepicker td.active, .daterangepicker td.active:hover {
background: none !important;
background-color: rgba(88, 155, 92, 1) !important;
color: #fff !important;
}
.daterangepicker td.in-range {
background-color: rgba(88, 155, 92, 0.70) !important;
@ -277,11 +335,6 @@
color: #000;
border-radius: 0;
}
.daterangepicker td.active, .daterangepicker td.active:hover {
background: none !important;
background-color: rgba(88, 155, 92, 1) !important;
color: #fff !important;
}
.daterangepicker td.start-date {
border-radius: 4px 0 0 4px;
@ -293,7 +346,6 @@
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px;
padding: 1px;
@ -456,3 +508,6 @@
float: right; }
.daterangepicker .drp-calendar.left {
clear: none !important; } }

View file

@ -0,0 +1 @@
.table>tbody>tr>td.normal{background-color:rgba(88,155,92,0.2);padding:8px}.table>tbody>tr>td.calendar-day-non{background-color:#fff}.table>tbody>tr>td.calendar-day-past{background-color:rgba(242,242,242,0.5)}.table>tbody>tr>td.calendar-light{opacity:0.5}.table>tbody>tr>td.calendar-day-disabled-half{background:#f0bcbc;background:linear-gradient(145deg, #f0bcbc 49%, #f2f2f2 50%, #f0bcbc 51%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#f0bcbc',GradientType=1 )}.table>tbody>tr>td.calendar-day-disabled-half-booked{background:#f0bcbc;background:linear-gradient(145deg, #f0bcbc 49%, #f2f2f2 50%, #C5DCC6 51%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#C5DCC6',GradientType=1 )}.table>tbody>tr>.calendar-day-reservation-begin{background-color:#f0bcbc;background:linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%)}.table>tbody>tr>.calendar-day-reservation-end{background-color:#f2f2f2;background:linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%)}.table>tbody>tr>td.active{background-color:rgba(88,155,92,0.35);padding:0}.table>tbody>tr>td.active:hover{background-color:#648859}.table>tbody>tr>td a{color:#5a5a5a;font-weight:700;width:100%;display:block;height:100%;padding:8px;text-decoration:underline}.table>tbody>tr>td:hover a{color:#fff;font-weight:700;width:100%;display:block;height:100%}.table>tbody>tr>td a.default{color:#648859;font-weight:700;width:100%;display:block;height:100%;padding:8px;text-decoration:none}.table>tbody>tr>td:hover a.default{color:#fff;font-weight:700;width:100%;display:block;height:100%;text-decoration:none;background-color:#648859}

View file

@ -0,0 +1,102 @@
.table > tbody > tr > td.normal {
background-color: rgba(88, 155, 92, 0.20);
padding: 8px;
}
.table > tbody > tr > td.calendar-day-non {
background-color: #fff;
}
.table > tbody > tr > td.calendar-day-past {
background-color: rgba(242, 242, 242, 0.5);
}
.table > tbody > tr > td.calendar-light {
opacity: 0.5;
}
.table > tbody > tr > td.calendar-day-disabled-half {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #f0bcbc 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#f0bcbc',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > td.calendar-day-disabled-half-booked {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #C5DCC6 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#C5DCC6',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > .calendar-day-reservation-begin {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #deebde), color-stop(49%, #deebde), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
}
.table > tbody > tr > .calendar-day-reservation-end {
background-color: #f2f2f2;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #deebde), color-stop(100%, #deebde));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
}
.table > tbody > tr > td.active {
background-color: rgba(88, 155, 92, 0.35);
padding: 0;
}
.table > tbody > tr > td.active:hover {
background-color: #648859;
}
.table > tbody > tr > td a {
color: #5a5a5a;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
text-decoration: underline;
}
.table > tbody > tr > td:hover a {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
}
.table > tbody > tr > td a.default {
color: #648859;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
text-decoration: none;
}
.table > tbody > tr > td:hover a.default {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
text-decoration: none;
background-color: #648859;
}
/* #wrapper, #content, #fullwidth, .container, .row, .content-copy, .tab-content, .tab-pane {
position:relative;
} */

File diff suppressed because one or more lines are too long

View file

@ -921,7 +921,7 @@ body.boxed #topBar.dark ul.top-links>li {
@media only screen and (max-width: 767px) {
#sidebar .widget {
margin-bottom: 0px;
margin-bottom: 5px;
}
#topMain.nav-pills>li>a.dropdown-toggle:after {
display: block;

View file

@ -10,3 +10,6 @@
@import (inline) './cookieconsent.min.css';
@import (inline) './custom.css';
@import (inline) './header-min.css';
@import (inline) './booking.css';
//@import (inline) './daterangepicker.css';

View file

@ -0,0 +1,617 @@
.daterangepicker {
position: absolute;
color: inherit;
background-color: #fff;
border-radius: 4px;
border: 1px solid #ddd;
width: 278px;
max-width: none;
padding: 0;
margin-top: 7px;
top: 100px;
left: 20px;
z-index: 3001;
display: none;
font-family: arial;
font-size: 15px;
line-height: 1em;
}
.daterangepicker:before, .daterangepicker:after {
position: absolute;
display: inline-block;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.daterangepicker:before {
top: -7px;
border-right: 7px solid transparent;
border-left: 7px solid transparent;
border-bottom: 7px solid #ccc;
}
.daterangepicker:after {
top: -6px;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-left: 6px solid transparent;
}
.daterangepicker.opensleft:before {
right: 9px;
}
.daterangepicker.opensleft:after {
right: 10px;
}
.daterangepicker.openscenter:before {
left: 0;
right: 0;
width: 0;
margin-left: auto;
margin-right: auto;
}
.daterangepicker.openscenter:after {
left: 0;
right: 0;
width: 0;
margin-left: auto;
margin-right: auto;
}
.daterangepicker.opensright:before {
left: 9px;
}
.daterangepicker.opensright:after {
left: 10px;
}
.daterangepicker.drop-up {
margin-top: -7px;
}
.daterangepicker.drop-up:before {
top: initial;
bottom: -7px;
border-bottom: initial;
border-top: 7px solid #ccc;
}
.daterangepicker.drop-up:after {
top: initial;
bottom: -6px;
border-bottom: initial;
border-top: 6px solid #fff;
}
.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar {
float: none;
}
.daterangepicker.single .drp-selected {
display: none;
}
.daterangepicker.show-calendar .drp-calendar {
display: block;
}
.daterangepicker.show-calendar .drp-buttons {
display: block;
}
.daterangepicker.auto-apply .drp-buttons {
display: none;
}
.daterangepicker .drp-calendar {
display: none;
max-width: 270px;
}
.daterangepicker .drp-calendar.left {
padding: 8px 0 8px 8px;
}
.daterangepicker .drp-calendar.right {
padding: 8px;
}
.daterangepicker .drp-calendar.single .calendar-table {
border: none;
}
.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {
color: #fff;
border: solid black;
border-width: 0 2px 2px 0;
border-radius: 0;
display: inline-block;
padding: 3px;
}
.daterangepicker .calendar-table .next span {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}
.daterangepicker .calendar-table .prev span {
transform: rotate(135deg);
-webkit-transform: rotate(135deg);
}
.daterangepicker .calendar-table th, .daterangepicker .calendar-table td {
white-space: nowrap;
text-align: center;
vertical-align: middle;
min-width: 32px;
width: 32px;
height: 24px;
line-height: 24px;
font-size: 14px;
border-radius: 4px;
border: 0 solid #fff;
white-space: nowrap;
cursor: pointer;
}
.daterangepicker .calendar-table {
border: 1px solid #fff;
border-radius: 4px;
background-color: #fff;
}
.daterangepicker .calendar-table table {
width: 100%;
margin: 0;
border-spacing: 0;
border-collapse: collapse;
}
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
background-color: #eee;
border-color: transparent;
color: inherit;
}
.daterangepicker td.week, .daterangepicker th.week {
font-size: 80%;
color: #ccc;
}
.daterangepicker td.start-date.end-date {
border-radius: 0px;
}
.daterangepicker th.month {
width: auto;
}
.daterangepicker td.available, .daterangepicker td.available:hover {
background-color: #f0faf0;
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.calendar-day-reservation-begin {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #E6F0E6), color-stop(49%, #E6F0E6), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.calendar-day-reservation-end {
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #E6F0E6), color-stop(100%, #E6F0E6));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
border-radius: 0;
}
.daterangepicker td.calendar-day-disabled-half-booked, .daterangepicker td.calendar-day-disabled-half {
background: #f0bcbc;
background: -moz-linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
background: -webkit-linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
background: linear-gradient(-45deg, #f0bcbc 47%, #f2f2f2 50%, #f0bcbc 53%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f0bcbc', endColorstr='#f0bcbc', GradientType=1);
border-radius: 0;
}
/*
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #E6F0E6), color-stop(99%, #E6F0E6));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 99%);
border-radius: 0;
}
*/
.daterangepicker td.calendar-day-disabled-half-booked.bookable {
background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #bcd7be), color-stop(100%, #bcd7be));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
border-radius: 0;
}
.daterangepicker td.calendar-day-reservation-begin.bookable {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #bcd7be), color-stop(49%, #bcd7be), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.normal, .daterangepicker td.calendar-light, .daterangepicker td.normal:hover, .daterangepicker td.calendar-light:hover {
background-color: #E6F0E6 !important;
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.calendar-day-disabled, .daterangepicker option.calendar-day-disabled {
cursor: not-allowed;
text-decoration: none;
background-color: #f0bcbc !important;
border-radius: 0px;
}
.daterangepicker td.bookable {
background-color: rgba(88, 155, 92, 0.4)!important;
cursor: pointer !important;
border-radius: 0;
font-weight: bold;
text-decoration: underline;
}
.daterangepicker td.bookable:hover {
background-color: rgba(88, 155, 92, 0.50);
}
.daterangepicker td.bookable-end {
cursor: pointer !important;
}
.daterangepicker td.normal.bookable-end, .daterangepicker td.normal.bookable-end:hover {
background-color: #d6e6d7;
border-radius: 0;
cursor: not-allowed;
}
.daterangepicker td.calendar-day-reservation-begin.bookable-end {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #d6e6d7), color-stop(49%, #d6e6d7), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #d6e6d7 0%, #d6e6d7 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0;
}
.daterangepicker td.bookable-end:before {
width: 100%;
height: 100%;
background-color: rgba(88, 155, 92, 0.20);
}
.daterangepicker td.active, .daterangepicker td.active:hover {
background: none !important;
background-color: rgba(88, 155, 92, 1) !important;
color: #fff !important;
}
.daterangepicker td.in-range {
background-color: rgba(88, 155, 92, 0.70) !important;
border-color: transparent;
color: #000;
border-radius: 0;
}
.daterangepicker td.start-date {
border-radius: 4px 0 0 4px;
}
.daterangepicker td.end-date {
border-radius: 0 4px 4px 0;
}
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px;
padding: 1px;
height: auto;
margin: 0;
cursor: default;
}
.daterangepicker select.monthselect {
margin-right: 2%;
width: 56%;
}
.daterangepicker select.yearselect {
width: 40%;
}
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
width: 50px;
margin: 0 auto;
background: #eee;
border: 1px solid #eee;
padding: 2px;
outline: 0;
font-size: 12px;
}
.daterangepicker .calendar-time {
text-align: center;
margin: 4px auto 0 auto;
line-height: 30px;
position: relative;
}
.daterangepicker .calendar-time select.disabled {
color: #ccc;
cursor: not-allowed;
}
.daterangepicker .drp-buttons {
clear: both;
text-align: right;
padding: 8px;
border-top: 1px solid #ddd;
display: none;
line-height: 12px;
vertical-align: middle;
}
.daterangepicker .drp-selected {
display: inline-block;
font-size: 12px;
padding-right: 8px;
}
.daterangepicker .drp-buttons .btn {
margin-left: 8px;
font-size: 12px;
font-weight: bold;
padding: 4px 8px;
}
.daterangepicker.show-ranges .drp-calendar.left {
border-left: 1px solid #ddd;
}
.daterangepicker .ranges {
float: none;
text-align: left;
margin: 0;
}
.daterangepicker.show-calendar .ranges {
margin-top: 8px;
}
.daterangepicker .ranges ul {
list-style: none;
margin: 0 auto;
padding: 0;
width: 100%;
}
.daterangepicker .ranges li {
font-size: 12px;
padding: 8px 12px;
cursor: pointer;
}
.daterangepicker .ranges li:hover {
background-color: #eee;
}
.daterangepicker .ranges li.active {
background-color: #648859;
color: #fff;
}
/* Larger Screen Styling */
@media (min-width: 564px) {
.daterangepicker {
width: auto; }
.daterangepicker .ranges ul {
width: 140px; }
.daterangepicker.single .ranges ul {
width: 100%; }
.daterangepicker.single .drp-calendar.left {
clear: none; }
.daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .drp-calendar {
float: left; }
.daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .drp-calendar {
float: right; }
.daterangepicker.ltr {
direction: ltr;
text-align: left; }
.daterangepicker.ltr .drp-calendar.left {
clear: left;
margin-right: 0; }
.daterangepicker.ltr .drp-calendar.left .calendar-table {
border-right: none;
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.daterangepicker.ltr .drp-calendar.right {
margin-left: 0; }
.daterangepicker.ltr .drp-calendar.right .calendar-table {
border-left: none;
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.daterangepicker.ltr .drp-calendar.left .calendar-table {
padding-right: 8px; }
.daterangepicker.ltr .ranges, .daterangepicker.ltr .drp-calendar {
float: left; }
.daterangepicker.rtl {
direction: rtl;
text-align: right; }
.daterangepicker.rtl .drp-calendar.left {
clear: right;
margin-left: 0; }
.daterangepicker.rtl .drp-calendar.left .calendar-table {
border-left: none;
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.daterangepicker.rtl .drp-calendar.right {
margin-right: 0; }
.daterangepicker.rtl .drp-calendar.right .calendar-table {
border-right: none;
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.daterangepicker.rtl .drp-calendar.left .calendar-table {
padding-left: 12px; }
.daterangepicker.rtl .ranges, .daterangepicker.rtl .drp-calendar {
text-align: right;
float: right; } }
@media (min-width: 730px) {
.daterangepicker .ranges {
width: auto; }
.daterangepicker.ltr .ranges {
float: left; }
.daterangepicker.rtl .ranges {
float: right; }
.daterangepicker .drp-calendar.left {
clear: none !important; } }
.table > tbody > tr > td.normal {
background-color: rgba(88, 155, 92, 0.20);
padding: 8px;
}
.table > tbody > tr > td.calendar-day-non {
background-color: #fff;
}
.table > tbody > tr > td.calendar-day-past {
background-color: rgba(242, 242, 242, 0.5);
}
.table > tbody > tr > td.calendar-light {
opacity: 0.5;
}
.table > tbody > tr > td.calendar-day-disabled-half {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #f0bcbc 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#f0bcbc 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#f0bcbc',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > td.calendar-day-disabled-half-booked {
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#f0bcbc+49,f2f2f2+50,f0bcbc+51 */
background: #f0bcbc; /* Old browsers */
background: -moz-linear-gradient(-35deg, #f0bcbc 49%, #f2f2f2 50%, #C5DCC6 51%); /* FF3.6-15 */
background: -webkit-linear-gradient(-35deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(145deg, #f0bcbc 49%,#f2f2f2 50%,#C5DCC6 51%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0bcbc', endColorstr='#C5DCC6',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.table > tbody > tr > .calendar-day-reservation-begin {
background-color: #f0bcbc;
background: -moz-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #deebde), color-stop(49%, #deebde), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc));
background: -webkit-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -ms-linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
background: linear-gradient(to bottom right, #deebde 0%, #deebde 49%, #f0bcbc 50%, #f0bcbc 100%);
}
.table > tbody > tr > .calendar-day-reservation-end {
background-color: #f2f2f2;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f0bcbc), color-stop(49%, #f0bcbc), color-stop(50%, #deebde), color-stop(100%, #deebde));
background: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -o-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: -ms-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%);
}
.table > tbody > tr > td.active {
background-color: rgba(88, 155, 92, 0.35);
padding: 0;
}
.table > tbody > tr > td.active:hover {
background-color: #648859;
}
.table > tbody > tr > td a {
color: #5a5a5a;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
text-decoration: underline;
}
.table > tbody > tr > td:hover a {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
}
.table > tbody > tr > td a.default {
color: #648859;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
padding: 8px;
text-decoration: none;
}
.table > tbody > tr > td:hover a.default {
color: #fff;
font-weight: 700;
width: 100%;
display: block;
height: 100%;
text-decoration: none;
background-color: #648859;
}
/* #wrapper, #content, #fullwidth, .container, .row, .content-copy, .tab-content, .tab-pane {
position:relative;
} */
/*# sourceMappingURL=my-fewo.css.map */

View file

@ -0,0 +1 @@
{"version":3,"sources":["daterangepicker.css","fewo.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"my-fewo.css"}

View file

@ -0,0 +1,4 @@
@import (inline) './daterangepicker.css';
@import (inline) './fewo.css';

View file

@ -1,4 +1,5 @@
$(document).ready(function() {
$(document).ready(function () {
var frm$ = $('.st-booking-form');
var summary$ = $('.st-booking-summary');
@ -18,35 +19,94 @@ $(document).ready(function() {
extraBookingDaysBefore
extraBookingDaysAfter
*/
function setExtraBookingDaysProgram($this, $to) {
if ($to === 'before') {
var show$ = $('#extraDaysProgramBefore_show');
var hide$ = $('#extraDaysProgramBefore_hide');
var date$ = $('#extraDaysProgramBefore_date');
}
if ($to === 'after') {
var show$ = $('#extraDaysProgramAfter_show');
var hide$ = $('#extraDaysProgramAfter_hide');
var date$ = $('#extraDaysProgramAfter_date');
}
if($($this).val() === 0){
show$.hide();
hide$.show();
}
if($($this).val() > 0){
show$.show();
hide$.hide();
}
function parseDate(input) {
var parts = input.match(/(\d+)/g);
// note parts[1]-1
return new Date(parts[2], parts[1]-1, parts[0]);
}
if(date$.data('org-date')) {
// console.log(date$.data('org-date'));
var date = parseDate(date$.data('org-date'));
//console.log(date);
if ($to === 'before') {
//console.log($($this).val());
date.setDate(date.getDate() - parseInt($($this).val()));
}
if ($to === 'after') {
// console.log($($this).val());
date.setDate(date.getDate() + parseInt($($this).val()));
}
//console.log(date);
date$.html(date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear());
}
}
if(extraBookingDaysBefore$){
extraBookingDaysBefore$.on('change', function () {
setExtraBookingDaysProgram(this, 'before');
});
setExtraBookingDaysProgram(this, 'before');
}
if(extraBookingDaysAfter$){
extraBookingDaysAfter$.on('change', function () {
setExtraBookingDaysProgram(this, 'after');
});
setExtraBookingDaysProgram(this, 'after');
}
//var travelersIndices = $('.st-traveller-index');
var travelers$ = $('.st-traveler');
var travelerFields$ = travelers$.find('input,select,checkbox');
frm$.find('input, select').change(function() {
frm$.find('input, select').change(function () {
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
tmp2.pop();
var url = tmp2.join('/') + '/berechne-gesamtpreis';
if (tmp[1])
{
url += '?'+ tmp[1];
if (tmp[1]) {
url += '?' + tmp[1];
}
$.ajax({
url: url,
type: 'post',
data: frm$.serialize()
}).then(function(r) {
}).then(function (r) {
summary$.html(r);
/*
$('#st-booking-price-set-table .st-total-price-set').html($(r).find('.st-total-price').text());
$('#st-booking-price-set-table .st-deposit-price-set').html($(r).find('.st-deposit-price').text());
$('#st-booking-price-set-table .st-final-price-set').html($(r).find('.st-final-price').text());
*/
/*
$('#st-booking-price-set-table .st-total-price-set').html($(r).find('.st-total-price').text());
$('#st-booking-price-set-table .st-deposit-price-set').html($(r).find('.st-deposit-price').text());
$('#st-booking-price-set-table .st-final-price-set').html($(r).find('.st-final-price').text());
*/
}, function() {
}, function () {
summary$.html('Aufgrund eines Fehlers konnte kein Angebot ermittelt werden.');
})
});
@ -57,65 +117,65 @@ $(document).ready(function() {
$('#no_flight_time').hide();
$('#yes_flight_time').hide();
console.log($(this).val());
if(!$(this).val() || $(this).find("option:selected").text().indexOf("Eigenanreise") == 0){
if (!$(this).val() || $(this).find("option:selected").text().indexOf("Eigenanreise") == 0) {
return;
}
console.log($('#flight_time_'+$(this).val()).length);
if($('#flight_time_'+$(this).val()).length){
$('#flight_time_'+$(this).val()).show();
}if ($('#flight_time_' + $(this).val()).length) {
$('#flight_time_' + $(this).val()).show();
$('#yes_flight_time').show();
}else{
} else {
$('#no_flight_time').show();
}
});
var toggle_first= [];
var toggle_first = [];
function updateNationality(ele){
function updateNationality(ele) {
var obj = ele.parents('.nationality_select').data('toggle');
if(ele.val()){
var values = $("input[name='travel_program_countries_id[]']").map(function(){return $(this).val();}).get();
if (ele.val()) {
var values = $("input[name='travel_program_countries_id[]']").map(function () {
return $(this).val();
}).get();
console.log(values);
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
tmp2.pop();
var url = tmp2.join('/') + '/show_nationality_country_text';
if (tmp[1])
{
url += '?'+ tmp[1];
}
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
tmp2.pop();
var url = tmp2.join('/') + '/show_nationality_country_text';
if (tmp[1]) {
url += '?' + tmp[1];
}
var data = {nationality_id : ele.val(), country_ids: values};
var data = {nationality_id: ele.val(), country_ids: values};
$.ajax({
url:url,
url: url,
type: "POST",
data: data,
}).then(function(r) {
}).then(function (r) {
$(obj).find('.set_nationality_country_text').html(r);
$(obj).show('slow');
if(!toggle_first[ele.val()]){
if (!toggle_first[ele.val()]) {
$(obj).find('.accordion-toggle').click();
toggle_first[ele.val()] = true;
}
}, function() {
}, function () {
summary$.html('Aufgrund eines Fehlers konnte keine Anfrage übermittel werden.');
});
}else{
$(obj).hide();
} else {
$(obj).hide();
}
}
$('.nationality_select').find('select').change(function(){
updateNationality($(this));
$('.nationality_select').find('select').change(function () {
updateNationality($(this));
});
function updateAllNationality(){
$('.nationality_select').find('select').each(function(){
function updateAllNationality() {
$('.nationality_select').find('select').each(function () {
updateNationality($(this));
});
}
updateAllNationality();
@ -139,10 +199,10 @@ $(document).ready(function() {
$i.toggleClass('icon-minus icon-plus');
if($i.hasClass('icon-minus')){
if ($i.hasClass('icon-minus')) {
$i.parent('h5').find('span').html('Leistungen ausblenden');
}
if($i.hasClass('icon-plus')){
if ($i.hasClass('icon-plus')) {
$i.parent('h5').find('span').html('Leistungen einblenden');
}
}
@ -151,9 +211,7 @@ $(document).ready(function() {
$('.booking_insurance_toogle').on('shown.bs.collapse', toggleChevronIn);
function updateTravelers()
{
function updateTravelers() {
var travelersIndex = 1;
var singleTravelerCount = parseInt(roomCountSR$.val());
@ -173,139 +231,127 @@ $(document).ready(function() {
var $offset = 1;
//single
if(singleTravelerCount > 0)
{
for(var i = $offset; i <= singleTravelerCount; i++)
{
if (singleTravelerCount > 0) {
for (var i = $offset; i <= singleTravelerCount; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer 1. Erwachsender");
counter ++;
counter++;
}
}
//single + child
$offset = $offset + parseInt(roomCountSR$.find('option').length) -1;
$offset = $offset + parseInt(roomCountSR$.find('option').length) - 1;
//4 next 5
if(singleTravelerChildCount > 0)
{
for(var i = $offset; i < singleTravelerChildCount + $offset; i++)
{
if (singleTravelerChildCount > 0) {
for (var i = $offset; i < singleTravelerChildCount + $offset; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer | 1. Erwachsender");
counter ++;
counter++;
//child
i++;
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer | Kind");
counter ++;
counter++;
}
}
//double
$offset = $offset + (parseInt(roomChildCountSR$.find('option').length) -1) * 2;
$offset = $offset + (parseInt(roomChildCountSR$.find('option').length) - 1) * 2;
//4 + 4*2 next 13
if(doubleTravelerCount > 0)
{
if (doubleTravelerCount > 0) {
$m = 1;
for(var i = $offset; i < doubleTravelerCount + $offset; i++)
{
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
// var currentRoomIndex = $(travelerSelector).attr("data-room-index");
for (var i = $offset; i < doubleTravelerCount + $offset; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
// var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
counter ++;
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
counter++;
$m++;
if($m == 3){
if ($m == 3) {
$m = 1;
}
}
}
//double + child
$offset = $offset + (parseInt(roomCountDR$.find('option').length) -1) * 2;
$offset = $offset + (parseInt(roomCountDR$.find('option').length) - 1) * 2;
//12 + 3*2 next 19
if(doubleTravelerChildCount > 0)
{
if (doubleTravelerChildCount > 0) {
$m = 1;
for(var i = $offset; i < doubleTravelerChildCount + $offset; i++)
{
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
for (var i = $offset; i < doubleTravelerChildCount + $offset; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
counter ++;
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
counter++;
$m++;
if($m == 3){
if ($m == 3) {
$m = 1;
//child
i++;
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | Kind");
counter ++;
counter++;
}
}
}
//triple
$offset = $offset + (parseInt(roomChildCountDR$.find('option').length) -1) * 3;
$offset = $offset + (parseInt(roomChildCountDR$.find('option').length) - 1) * 3;
//18 + 3*3 next 28
if(tripleTravelerCount > 0)
{
if (tripleTravelerCount > 0) {
$m = 1;
for(var i = $offset; i < tripleTravelerCount + $offset; i++)
{
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
for (var i = $offset; i < tripleTravelerCount + $offset; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
counter ++;
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
counter++;
$m++;
if($m == 4){
if ($m == 4) {
$m = 1;
}
}
}
//triple + child
$offset = $offset + (parseInt(roomCountTR$.find('option').length) -1) * 3;
$offset = $offset + (parseInt(roomCountTR$.find('option').length) - 1) * 3;
//27 + 2*3 next 34
if(tripleTravelerChildCount > 0)
{
if (tripleTravelerChildCount > 0) {
$m = 1;
for(var i = $offset; i < tripleTravelerChildCount + $offset; i++)
{
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
for (var i = $offset; i < tripleTravelerChildCount + $offset; i++) {
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
counter ++;
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
counter++;
$m++;
if($m == 4){
if ($m == 4) {
$m = 1;
//child
i++;
var travelerSelector = '.st-traveler-'+i;
var roomIndexSelector = travelerSelector+' .st-traveller-index';
var travelerSelector = '.st-traveler-' + i;
var roomIndexSelector = travelerSelector + ' .st-traveller-index';
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | Kind");
counter ++;
counter++;
}
}
}

View file

@ -1,5 +1,54 @@
window.currentScroll = 0;
var collapse_on_responsive = function() {
if (jQuery(document).width() < 992) {
jQuery('.widget').find('.collapse-widget:not(.open)').addClass('collapsed');
jQuery('.widget').find('.collapse:not(.open)').removeClass('in');
}else{
jQuery('.widget').find('.collapse-widget:not(.open)').removeClass('collapsed');
jQuery('.widget').find('.collapse:not(.open)').addClass('in');
}
};
collapse_on_responsive();
$(window).on('resize',function(e){
collapse_on_responsive();
});
$(document).ready(function() {
function scrollToTabContent(tabSelector){
$("html, body").animate({
scrollTop: $(tabSelector).offset().top - 220
}, 1000);
}
function activateTravelDatesTab(){
$('[href=\'#travel-dates-content-tab\']').first().on('shown.bs.tab', function () {
scrollToTabContent('#travel-dates-content-tab');
});
$('[href=\'#travel-dates-content-tab\']').first().tab('show');
}
$('.nav-tabs > li > a').click(function(){
if($(this).data('toggle') === 'tab'){
return
}
scrollToTabContent($(this).attr('href'));
});
$('#st-slider-booking-events-scroll').click(function (event) {
event.preventDefault();
activateTravelDatesTab();
});
if (location.hash === '#travel-dates-content-tab'){
activateTravelDatesTab();
}
});
window.currentScroll = 0;
jQuery('body').removeClass('no-js');
@ -117,12 +166,8 @@ jQuery("#topMain a.dropdown-toggle").bind("click", function(e) {
return true;
});
jQuery(document).ready(function($) {
if (jQuery(document).width() < 768) {
jQuery('.widget').find('.collapse-widget').addClass('collapsed');
jQuery('.widget').find('.collapse').removeClass('in');
}
});
jQuery(document).ready(function($) {
"use strict";
@ -145,64 +190,7 @@ jQuery(document).ready(function($) {
}
})});
/* ==============================================
VIDEOS -->
=============================================== */
/* var videos$ = $('a[id^="video_"]');
function videoInitHandler()
{
var el$ = $(this);
var text = el$.text();
var length = text.length - 11;
var caption = text.substring(0, length);
var expl = this.id.substring(6, this.id.length);
$('<iframe />')
.attr({
width: '100%',
height: 500,
src: 'https://www.youtube-nocookie.com/embed/'+ expl,
frameborder: 0,
allowfullscreen: true,
'data-st-video': this.id
})
.hide()
.insertAfter(this)
;
el$
.addClass('st-collapsed')
//.css('background-image', 'url(/images/st2/icons/arrowup.gif)')
.text(caption + ' einblenden')
.attr('href', 'javascript:void(0);')
;
}
videos$.each(videoInitHandler);
videos$.click(function() {
var el$ = $(this);
var video$ = $('[data-st-video='+ this.id +']');
var text = el$.text();
var length = text.length - 11;
var caption = text.substring(0, length);
if (el$.hasClass('st-collapsed'))
{
video$.slideDown('slow');
el$.text(caption + ' ausblenden');
el$.removeClass('st-collapsed');
}
else
{
video$.slideUp(400);
el$.text(caption + ' einblenden');
el$.addClass('st-collapsed');
}
});*/
/* ==============================================
@ -299,6 +287,8 @@ jQuery(document).ready(function($) {
/* ==============================================
nav-tabs -->
=============================================== */
/*
var scrollBarWidths = 40;
var windowW = $(window).width();
@ -392,6 +382,8 @@ jQuery(document).ready(function($) {
});
*/
/* ==============================================
MENU HOVER -->
=============================================== */
@ -443,12 +435,11 @@ jQuery(document).ready(function($) {
$('.tab-pane').removeClass('active');
$('.tab-pane'+href).addClass('active');
if($(this).parents('.nav-tabs-bottom').length){
$('html, body').animate({
scrollTop: ($(".content-copy").offset().top + 200)
}, 500);
}
if($('#position-scroll-tab').length){
$('html, body').animate({
scrollTop: ($("#position-scroll-tab").offset().top - 220)
}, 500);
}
});
/* ==============================================
@ -466,7 +457,6 @@ jQuery(document).ready(function($) {
=============================================== */
function toggleChevron(e) {
console.log(e.target);
var $i = $(e.target)
.parent('.panel-group')
.find("i.indicator");
@ -484,7 +474,6 @@ jQuery(document).ready(function($) {
$('#accordion').on('shown.bs.collapse', toggleChevron);
function toggleChevron2(e) {
console.log(e.target);
var $i = $(e.target)
.parent('.panel-group')
.find("i.indicator");
@ -502,7 +491,6 @@ jQuery(document).ready(function($) {
$('#accordion_pd').on('shown.bs.collapse', toggleChevron2);
function toggleChevron3(e) {
console.log(e.target);
var $i = $(e.target)
.parent('.panel-group')
.find("i.indicator");
@ -664,3 +652,121 @@ jQuery(document).ready(function($) {
}
});
$("a.scroll-to-jump").click(function(e)
{
$(window).t
rigger('resize');
e.preventDefault();
var aid = $(this).attr('href');
aid = aid.replace("#", "");
aTag = $("[id='"+ aid +"']");
if(aTag !== null && aTag.offset() !== null){
$("html, body").animate({
scrollTop: aTag.offset().top - 220
}, 1000);
}
}
);
function initGoTo() {
//Variables
if(!$('.js-go-to').length){
return;
}
var $this = $('.js-go-to'),
$target = $this.data('target'),
showEffect = $this.data('show-effect'),
position = $this.data('position'),
type = $this.data('type'),
hideEffect = $this.data('hide-effect'),
offsetTop = $this.data('offset-top'),
targetOffsetTop = function () {
return $target ? $($target).offset().top : 0;
};
if (type == 'static') {
$this.css({
'display': 'inline-block'
});
} else {
$this.addClass('animated').css({
'display': 'inline-block',
'position': type,
'opacity': 0
});
}
if (type == 'fixed' || type == 'absolute') {
$this.css(position);
}
$this.on('click', function (e) {
e.preventDefault();
$('html, body').stop().animate({
'scrollTop': targetOffsetTop()
}, 800);
});
if (!$this.data('offset-top') && !$this.hasClass('js-animation-was-fired') && type != 'static') {
if ($this.offset().top <= $(window).height()) {
$this.show();
setTimeout(function () {
$this.addClass('js-animation-was-fired ' + showEffect).css({
'opacity': ''
});
});
}
}
if (type != 'static') {
$(window).on('scroll', function () {
if ($this.data('offset-top')) {
if ($(window).scrollTop() >= offsetTop && !$this.hasClass('js-animation-was-fired')) {
$this.show();
setTimeout(function () {
$this.addClass('js-animation-was-fired ' + showEffect).css({
'opacity': ''
});
});
} else if ($(window).scrollTop() <= offsetTop && $this.hasClass('js-animation-was-fired')) {
$this.removeClass('js-animation-was-fired ' + showEffect);
setTimeout(function () {
$this.addClass(hideEffect).css({
'opacity': 0
});
}, 100);
setTimeout(function () {
$this.removeClass(hideEffect).hide();
}, 400);
}
} else {
var thisOffsetTop = $this.offset().top;
if (!$this.hasClass('js-animation-was-fired')) {
if ($(window).scrollTop() >= thisOffsetTop - $(window).height()) {
$this.show();
setTimeout(function () {
$this.addClass('js-animation-was-fired ' + showEffect).css({
'opacity': ''
});
});
}
}
}
});
$(window).trigger('scroll');
}
}
initGoTo();

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,8 @@ $(document).ready(function() {
var toDateMonth$ = $('#fewo_booking_request_toDate_month');
var toDateYear$ = $('#fewo_booking_request_toDate_year');
frm$.find('input, select').change(function() {
function loadCalculationFewo(){
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
tmp2.pop();
@ -16,7 +17,6 @@ $(document).ready(function() {
{
url += '?'+ tmp[1];
}
$.ajax({
url: url,
type: 'post',
@ -27,6 +27,117 @@ $(document).ready(function() {
}, function() {
summary$.html('Aufgrund eines Fehlers konnte kein Angebot ermittelt werden.');
})
});
}
frm$.find('input, select').change(function() {
loadCalculationFewo();
});
// var currentDate = moment().format("DD.MM.YYYY");
var startDate = $('#fewo_booking_request_fromDate').val();
var endDate = $('#fewo_booking_request_toDate').val();
var maxDate = $('#hidden_toDate').val();
var reservationDays = JSON.parse($('#hidden_reservationDays').val());
var customDays = JSON.parse($('#hidden_customDays').val());
var checkDates = function (date) {
var formatted = date.format('DD.MM.YYYY');
if(reservationDays.indexOf(formatted) > -1){
return true;
}
if(customDays[formatted] !== undefined && customDays[formatted].indexOf('bookable') == -1 && customDays[formatted].indexOf('bookable-end') == -1){
return true;
}
return false;
};
var checkCustom = function (date) {
if (date !== false) {
var formatted = date.format('DD.MM.YYYY');
if(customDays[formatted] !== undefined){
return customDays[formatted];
}
}
};
$('#fewo_booking_request_fromDate, #fewo_booking_request_toDate').daterangepicker({
isInvalidDate: checkDates,
isCustomDate: checkCustom,
"minDate": moment(),
"maxDate": maxDate,
"timePickerSeconds": true,
"locale": {
"format": "DD.MM.YYYY",
"separator": " - ",
"applyLabel": "OK",
"cancelLabel": "X",
"fromLabel": "Von",
"toLabel": "Bis",
"customRangeLabel": "Custom",
"weekLabel": "W",
"daysOfWeek": [
"So",
"Mo",
"Di",
"Mi",
"Do",
"Fr",
"Sa"
],
"monthNames": [
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember"
],
"firstDay": 1
},
autoApply: true,
autoUpdateInput: false,
"startDate": startDate,
"endDate": endDate,
}, function(start, end, label) {
// console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')");
// Lets update the fields manually this event fires on selection of range
var selectedStartDate = start.format('DD.MM.YYYY'); // selected start
var selectedEndDate = end.format('DD.MM.YYYY'); // selected end
var $checkinInput = $('#fewo_booking_request_fromDate');
var $checkoutInput = $('#fewo_booking_request_toDate');
// Updating Fields with selected dates
$checkinInput.val(selectedStartDate);
$checkoutInput.val(selectedEndDate);
// Setting the Selection of dates on calender on CHECKOUT FIELD (To get this it must be binded by Ids not Calss)
var checkOutPicker = $checkoutInput.data('daterangepicker');
checkOutPicker.setStartDate(selectedStartDate);
checkOutPicker.setEndDate(selectedEndDate);
// Setting the Selection of dates on calender on CHECKIN FIELD (To get this it must be binded by Ids not Calss)
var checkInPicker = $checkinInput.data('daterangepicker');
checkInPicker.setStartDate(selectedStartDate);
checkInPicker.setEndDate(selectedEndDate);
loadCalculationFewo();
});
$('#fewo_booking_request_fromDate, #fewo_booking_request_toDate').on('show.daterangepicker', function(ev, picker) {
/* console.log(picker.startDate.format('YYYY-MM-DD'));
console.log(picker.endDate.format('YYYY-MM-DD'));
*/
});
});

View file

@ -1,27 +1,2 @@
$(document).ready(function() {
function scrollToTabContent(tabSelector)
{
$(document.body).animate({
scrollTop: $(tabSelector).offset().top - 220
}, 1000);
}
function activateTravelDatesTab()
{
$('[href=\'#travel-dates-content-tab\']').tab('show');
scrollToTabContent('#travel-dates-content-tab');
}
$('.nav-tabs > li > a').click(function() {
scrollToTabContent($(this).attr('href'));
});
$('.st-slider-booking-btn').click(activateTravelDatesTab);
if (location.hash === '#travel-dates-content-tab')
{
activateTravelDatesTab();
}
});

File diff suppressed because one or more lines are too long

View file

@ -79,6 +79,9 @@ class LodgingCalendarService
$day->setIsReservationEnd(false);
$day->setIsEmpty(true);
$day->setIsPastDate(false);
$day->setIsBookableEnd(false);
$data[] = $day;
}
@ -96,6 +99,9 @@ class LodgingCalendarService
$day->setIsReservationBegin(false);
$day->setIsReservationEnd(false);
$day->setIsEmpty(false);
$day->setIsBookableEnd(false);
if($datetime < $now){
$day->setIsPastDate(true);
}else{
@ -117,6 +123,9 @@ class LodgingCalendarService
$day->setIsReservationEnd(false);
$day->setIsEmpty(true);
$day->setIsPastDate(false);
$day->setIsBookableEnd(false);
$data[] = $day;
}
@ -677,6 +686,88 @@ class LodgingCalendarService
}
public function checkDatesBeforeReservationBegin($paddedCalendar, $currDay, $season){
$bool = true;
//days
$minDays = $season->getMinimumStay();
$setMinStayFrom = clone $currDay->getDate();
$setMinStayTo = clone $currDay->getDate();
// $setMinStayFrom->modify('-1 day');
//$minStayInterval = \DateInterval::createFromDateString('-1 day');
// $minStayPeriod = new \DatePeriod($setMinStayTo->modify('+1 day'), $minStayInterval, $setMinStayFrom->modify('-'.($minDays-1).' days'));
$setMinStayTo->modify('-'.($minDays).' days');
$counter = 0;
$last = $minDays;
for($mSdt = $setMinStayFrom; $mSdt >= $setMinStayTo; $mSdt->modify('-1 day')){
if(isset($paddedCalendar[$mSdt->format("Y-n")])) {
$key = $this->findCalendarDayKey($paddedCalendar[$mSdt->format("Y-n")], $mSdt->format("d"));
$checkDay = $paddedCalendar[$mSdt->format("Y-n")]['data'][$key];
if(empty($checkDay->getDate()) || empty($checkDay->getPrice())) {
continue;
}
if(!empty($checkDay->getPrice()->getSeason()) && $minDays != $checkDay->getPrice()->getSeason()->getMinimumStay()){
if($minDays > $checkDay->getPrice()->getSeason()->getMinimumStay()){
$last = $counter+$checkDay->getPrice()->getSeason()->getMinimumStay();
$setMinStayTo->modify('-'.($last).' days');
}
if($minDays < $checkDay->getPrice()->getSeason()->getMinimumStay()){
$last = $counter+$checkDay->getPrice()->getSeason()->getMinimumStay();
$setMinStayTo->modify('-'.($last).' days');
}
$minDays = $checkDay->getPrice()->getSeason()->getMinimumStay();
}
}
$counter++;
//look is the last from $minDays bookable
if($counter == $minDays+1 && !$checkDay->getIsBookable()){
$bool = false;
}
if($counter <= $last) {
if($checkDay->getIsReserved()) {
$bool = false;
}else{
if($counter>1){
$preCheckDate = clone $checkDay->getDate();
$preCheckDate->modify('-'.($minDays).' days');
$preKey = $this->findCalendarDayKey($paddedCalendar[$preCheckDate->format("Y-n")], $preCheckDate->format("d"));
$preCheckDay = $paddedCalendar[$preCheckDate->format("Y-n")]['data'][$preKey];
if($preCheckDay && $preCheckDay->getIsBookable()){
$checkDay->setIsBookableEnd(true);
}
// $checkDay->setIsBookableEnd(true);
}
}
$checkDay->setIsBookable(false);
}
}
if ($bool && $currDay->getIsReservationBegin() == true && $season->getOnlyWeekday() != null && $season->getOnlyWeekday() == $currDay->getDate()->format('w')){
$currDay->setIsBookableEnd(true);
}
if ($bool && $currDay->getIsReservationBegin() == true && $season->getOnlyWeekday() == null){
$currDay->setIsBookableEnd(true);
}
}
public function calendarAndFillDayStates($paddedCalendar, FewoLodging $lodging){
$startMonth = array_values($paddedCalendar)[0]['monthNumber'];
@ -760,51 +851,13 @@ class LodgingCalendarService
$currDay->setIsBookable(false);
}
//check for the min sty days.
if ($currDay->getIsReservationBegin() == true)
{
//days
$minDays = $season->getMinimumStay();
$setMinStayFrom = clone $currDay->getDate();
$setMinStayTo = clone $currDay->getDate();
//$minStayInterval = \DateInterval::createFromDateString('-1 day');
// $minStayPeriod = new \DatePeriod($setMinStayTo->modify('+1 day'), $minStayInterval, $setMinStayFrom->modify('-'.($minDays-1).' days'));
$setMinStayTo->modify('-'.($minDays).' days');
$counter = 0;
$last = $minDays;
for($mSdt = $setMinStayFrom; $mSdt >= $setMinStayTo; $mSdt->modify('-1 day')){
if(isset($paddedCalendar[$mSdt->format("Y-n")])) {
$key = $this->findCalendarDayKey($paddedCalendar[$mSdt->format("Y-n")], $mSdt->format("d"));
$checkDay = $paddedCalendar[$mSdt->format("Y-n")]['data'][$key];
if(!empty($checkDay->getPrice())){
if(!empty($checkDay->getPrice()->getSeason()) && $minDays != $checkDay->getPrice()->getSeason()->getMinimumStay()){
if($minDays > $checkDay->getPrice()->getSeason()->getMinimumStay()){
$last = $counter+$checkDay->getPrice()->getSeason()->getMinimumStay();
$setMinStayTo->modify('-'.($last).' days');
}
if($minDays < $checkDay->getPrice()->getSeason()->getMinimumStay()){
$last = $counter+$checkDay->getPrice()->getSeason()->getMinimumStay();
$setMinStayTo->modify('-'.($last).' days');
}
$minDays = $checkDay->getPrice()->getSeason()->getMinimumStay();
}
}
$counter++;
if($counter <= $last) {
$checkDay->setIsBookable(false);
}
}
}
if ($currDay->getIsReservationBegin() == true) {
$this->checkDatesBeforeReservationBegin($paddedCalendar, $currDay, $season);
}
}
}
//$season is end

View file

@ -39,7 +39,7 @@ class CalendarDayState
/**
* @var bool
*/
private $isBookable; // ist buchbar? nur wenn isReserved = false und isInSeason = true
private $isBookable; // ist buchbar? nur wenn isReserved = false
/**
* @var bool
@ -51,6 +51,11 @@ class CalendarDayState
*/
private $isReservationEnd;
/**
* @var bool
*/
private $isBookableEnd; // ist buchbar? aber nur als Ende der Reise
/**
* @var \DateTime|null
*/
@ -162,6 +167,22 @@ class CalendarDayState
$this->isBookable = $isBookable;
}
/**
* @return bool
*/
public function getIsBookableEnd(): bool
{
return $this->isBookableEnd;
}
/**
* @param bool isBookableEnd
*/
public function setIsBookableEnd(bool $isBookableEnd)
{
$this->isBookableEnd = $isBookableEnd;
}
/**
* @return bool
*/
@ -254,6 +275,10 @@ class CalendarDayState
$ret .= 'calendar-day-non ';
}
if($this->getIsBookableEnd()){
$ret .= 'bookable-end ';
}
if($this->getIsReserved()){
$ret .= 'calendar-day-disabled ';
return $ret;
@ -283,7 +308,14 @@ class CalendarDayState
if($this->getIsBookable()){
return $ret;
}
$ret = "normal";
if($this->getIsBookableEnd()){
$ret = 'bookable-end normal';
}else{
$ret = "normal";
}
return $ret;

View file

@ -57,14 +57,15 @@ class FewoBookingRequestValidator extends ConstraintValidator
$timeDiff = date_diff($fromDate, $toDate);
$numberDays = $timeDiff->days;
$withinSeason = false;
$withinSeason = true;
$alreadyReserved = false;
if($fromDate >= $season->getFromDate()
/* if($fromDate >= $season->getFromDate()
&& $toDate <= $season->getToDate())
{
$withinSeason = true;
}
*/
/** @var FewoReservation $reservation */
foreach($reservations as $reservation)

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"version":3,"sources":["../../src/AppBundle/Resources/public/css/daterangepicker.css","../../src/AppBundle/Resources/public/css/fewo.css"],"names":[],"mappings":"AAAA,iBACE,SAAU,SACV,MAAO,QACP,iBAAkB,KAClB,cAAe,IACf,OAAQ,IAAI,MAAM,KAClB,MAAO,MACP,UAAW,KACX,QAAS,EACT,WAAY,IACZ,IAAK,MACL,KAAM,KACN,QAAS,KACT,QAAS,KACT,YAAa,MACb,UAAW,KACX,YAAa,IAGU,uBAAzB,wBACE,SAAU,SACV,QAAS,aACT,oBAAqB,eACrB,QAAS,GAGX,wBACE,IAAK,KACL,aAAc,IAAI,MAAM,YACxB,YAAa,IAAI,MAAM,YACvB,cAAe,IAAI,MAAM,KAG3B,uBACE,IAAK,KACL,aAAc,IAAI,MAAM,YACxB,cAAe,IAAI,MAAM,KACzB,YAAa,IAAI,MAAM,YAGzB,kCACE,MAAO,IAGT,iCACE,MAAO,KAGT,oCACE,KAAM,EACN,MAAO,EACP,MAAO,EACP,YAAa,KACb,aAAc,KAGhB,mCACE,KAAM,EACN,MAAO,EACP,MAAO,EACP,YAAa,KACb,aAAc,KAGhB,mCACE,KAAM,IAGR,kCACE,KAAM,KAGR,yBACE,WAAY,KAGd,gCACE,IAAK,QACL,OAAQ,KACR,cAAe,QACf,WAAY,IAAI,MAAM,KAGxB,+BACE,IAAK,QACL,OAAQ,KACR,cAAe,QACf,WAAY,IAAI,MAAM,KAGxB,iDAAkD,sCAChD,MAAO,KAGT,sCACE,QAAS,KAGX,6CACE,QAAS,MAGX,4CACE,QAAS,MAGX,yCACE,QAAS,KAGX,+BACE,QAAS,KACT,UAAW,MAGb,oCACE,QAAS,IAAI,EAAE,IAAI,IAGrB,qCACE,QAAS,IAGX,sDACE,OAAQ,KAGV,4CAA6C,4CAC3C,MAAO,KACP,OAAQ,MAAM,KACd,aAAc,EAAE,IAAI,IAAI,EACxB,cAAe,EACf,QAAS,aACT,QAAS,IAGX,4CACE,UAAW,eACX,kBAAmB,eAGrB,4CACE,UAAW,eACX,kBAAmB,eAGgB,oCAArC,oCACE,YAAa,OACb,WAAY,OACZ,eAAgB,OAChB,UAAW,KACX,MAAO,KACP,OAAQ,KACR,YAAa,KACb,UAAW,KACX,cAAe,IACf,OAAQ,EAAE,MAAM,KAChB,YAAa,OACb,OAAQ,QAGV,iCACE,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,iBAAkB,KAGpB,uCACE,MAAO,KACP,OAAQ,EACR,eAAgB,EAChB,gBAAiB,SAEnB,oCAAqC,oCACnC,iBAAkB,KAClB,aAAc,YACd,MAAO,QAGT,yBAA0B,yBACxB,UAAW,IACX,MAAO,KAOT,wCACE,cAAe,EAIjB,0BACE,MAAO,KAET,8BAA+B,oCAC7B,iBAAkB,QAClB,cAAe,EACf,OAAQ,YAIV,mDACE,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFACZ,cAAe,EAIjB,iDACE,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFACZ,cAAe,EAGsC,+CAAvD,sDACE,WAAY,QACZ,WAAY,iEACZ,WAAY,oEACZ,WAAY,4DACZ,OAAQ,2GACR,cAAe,EAejB,+DACE,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFACZ,cAAe,EAGjB,4DACE,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFACZ,cAAe,EAKW,mCAAsE,yCAAlG,2BAAgE,iCAC9D,iBAAkB,kBAClB,cAAe,EACf,OAAQ,YAEiC,8CAA3C,0CACE,OAAQ,YACR,gBAAiB,KACjB,iBAAkB,kBAClB,cAAe,EAGjB,6BACE,iBAAkB,6BAClB,OAAQ,kBACR,cAAe,EACf,YAAa,IACb,gBAAiB,UAInB,mCACE,iBAAkB,mBAIpB,iCACE,OAAQ,kBAEV,wCAAyC,8CACvC,iBAAkB,QAClB,cAAe,EACf,OAAQ,YAGV,gEACE,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFACZ,cAAe,EAKjB,wCACE,MAAO,KACP,OAAQ,KACR,iBAAkB,mBAGpB,2BAA4B,iCAC1B,WAAY,cACZ,iBAAkB,4BAClB,MAAO,eAGT,6BACE,iBAAkB,6BAClB,aAAc,YACd,MAAO,KACP,cAAe,EAGjB,+BACE,cAAe,IAAI,EAAE,EAAE,IAGzB,6BACE,cAAe,EAAE,IAAI,IAAI,EAK3B,oCAAqC,mCACnC,UAAW,KACX,QAAS,IACT,OAAQ,KACR,OAAQ,EACR,OAAQ,QAGV,oCACE,aAAc,GACd,MAAO,IAGT,mCACE,MAAO,IAGuG,mCAAhH,mCAAoC,qCAAsC,qCACxE,MAAO,KACP,OAAQ,EAAE,KACV,WAAY,KACZ,OAAQ,IAAI,MAAM,KAClB,QAAS,IACT,QAAS,EACT,UAAW,KAGb,gCACE,WAAY,OACZ,OAAQ,IAAI,KAAK,EAAE,KACnB,YAAa,KACb,SAAU,SAGZ,gDACE,MAAO,KACP,OAAQ,YAGV,8BACE,MAAO,KACP,WAAY,MACZ,QAAS,IACT,WAAY,IAAI,MAAM,KACtB,QAAS,KACT,YAAa,KACb,eAAgB,OAGlB,+BACE,QAAS,aACT,UAAW,KACX,cAAe,IAGjB,mCACE,YAAa,IACb,UAAW,KACX,YAAa,IACb,QAAS,IAAI,IAGf,gDACE,YAAa,IAAI,MAAM,KAGzB,yBACE,MAAO,KACP,WAAY,KACZ,OAAQ,EAGV,uCACE,WAAY,IAGd,4BACE,WAAY,KACZ,OAAQ,EAAE,KACV,QAAS,EACT,MAAO,KAGT,4BACE,UAAW,KACX,QAAS,IAAI,KACb,OAAQ,QAGV,kCACE,iBAAkB,KAGpB,mCACE,iBAAkB,QAClB,MAAO,KAIT,yBACE,iBACE,MAAO,KACP,4BACE,MAAO,MACT,mCACE,MAAO,KACT,2CACE,MAAO,KAC4B,0CAArC,oCACE,MAAO,KAC4B,0CAArC,oCACE,MAAO,MACT,qBACE,UAAW,IACX,WAAY,KACZ,wCACE,MAAO,KACP,aAAc,EACd,wDACE,aAAc,KACd,wBAAyB,EACzB,2BAA4B,EAChC,yCACE,YAAa,EACb,yDACE,YAAa,KACb,uBAAwB,EACxB,0BAA2B,EAC/B,wDACE,cAAe,IACa,mCAA9B,6BACE,MAAO,KACX,qBACE,UAAW,IACX,WAAY,MACZ,wCACE,MAAO,MACP,YAAa,EACb,wDACE,YAAa,KACb,uBAAwB,EACxB,0BAA2B,EAC/B,yCACE,aAAc,EACd,yDACE,aAAc,KACd,wBAAyB,EACzB,2BAA4B,EAChC,wDACE,aAAc,KACc,mCAA9B,6BACE,WAAY,MACZ,MAAO,OACf,yBACE,yBACE,MAAO,KACT,6BACE,MAAO,KACT,6BACE,MAAO,MACT,oCACE,MAAO,gBC3fX,0BACI,iBAAkB,mBAClB,QAAS,IAGb,oCACI,iBAAkB,KAEtB,qCACI,iBAAkB,qBAEtB,kCACI,QAAS,GAEb,8CAEI,WAAuK,QACvK,WAA0L,iEAC1L,WAAyM,oEACzM,WAAuO,4DACvO,OAA0R,6GAE9R,qDAEI,WAAsc,QACtc,WAAyd,iEACzd,WAAwe,oEACxe,WAAsgB,4DACtgB,OAAyjB,6GAE7jB,gDACI,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFAEhB,8CACI,iBAAkB,QAClB,WAAY,qFACZ,WAAY,8IACZ,WAAY,wFACZ,WAAY,mFACZ,WAAY,oFACZ,WAAY,gFAGhB,0BACI,iBAAkB,oBAClB,QAAS,EAEb,gCACI,iBAAkB,QAGtB,qBACI,MAAO,QACP,YAAa,IACb,MAAO,KACP,QAAS,MACT,OAAQ,KACR,QAAS,IACT,gBAAiB,UAGrB,2BACI,MAAO,KACP,YAAa,IACb,MAAO,KACP,QAAS,MACT,OAAQ,KAIZ,6BACI,MAAO,QACP,YAAa,IACb,MAAO,KACP,QAAS,MACT,OAAQ,KACR,QAAS,IACT,gBAAiB,KAGrB,mCACI,MAAO,KACP,YAAa,IACb,MAAO,KACP,QAAS,MACT,OAAQ,KACR,gBAAiB,KACjB,iBAAkB"}

BIN
trunk/web/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
trunk/web/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

11
trunk/web/js/fewoBooking-min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,49 +0,0 @@
{
"name": "Stern Tours",
"short_name": "sterntours",
"theme_color": "#648859",
"background_color": "#ffffff",
"display": "standalone",
"orientation": "portrait",
"Scope": "/",
"start_url": "/",
"splash_pages": null,
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 192 192" style="enable-background:new 0 0 192 192;" xml:space="preserve">
<g>
<path d="M80.3,172.1c0.5-8.3,0.9-13.8,1.2-19.2c-2.7,4.7-5.4,9.5-8.2,14.1c-0.8,1.3-1.9,2.4-2.9,3.6c0.3-2.8,0.3-5.6,0.8-8.4
c0.7-4,1.6-8.1,2.4-12.1c-2.6,3-5.2,6.1-7.8,9.1c-2.3,2.7-4.7,5.3-7.1,7.9c1.1-3.4,2.2-6.8,3.4-10.2c1.1-3.2,2.2-6.4,3.4-9.6
c-2.4,2.1-4.8,4.3-7.3,6.4c-2.7,2.2-5.5,4.2-8.3,6.3c1.5-3,2.9-6.1,4.5-9.1c1.6-3.2,3.3-6.4,5-9.6c-3,1.9-6.1,3.8-9.1,5.7
c-2.7,1.7-5.3,3.5-8,5.2c1.7-2.8,3.3-5.5,5.1-8.3c1.9-3,3.8-5.9,5.7-8.8c-3.3,1.6-6.5,3.4-9.8,4.9c-2.7,1.2-5.5,2.2-8.3,3.2
c1.8-2,3.6-4,5.4-6c2.6-2.9,5.1-5.7,7.7-8.6c-3.6,1.1-7.2,2.2-10.8,3.1c-2.5,0.7-5.1,1.2-7.6,1.7c2-1.8,4-3.6,6-5.3
c2.9-2.5,5.9-4.9,8.9-7.3c-3.7,0.6-7.5,1.3-11.2,1.9c-3,0.5-6,0.9-9,1.3c2.7-1.7,5.3-3.3,8-5c3.5-2.3,7-4.6,10.5-6.9
c-4.1,0.2-8.2,0.4-12.3,0.5c-2.3,0-4.5-0.2-6.8-0.3c2.1-1.1,4.1-2.4,6.2-3.3c3.8-1.6,7.6-3,11.5-4.5c-3.9-0.4-7.8-0.8-11.7-1.4
c-2.4-0.4-4.8-1.1-7.2-1.7c2.3-0.8,4.5-1.6,6.8-2.3c3.7-1,7.4-1.9,11.1-2.8c-3.4-1-6.8-1.9-10.2-2.9c-2.8-0.8-5.6-1.7-8.4-2.5
c3-0.5,6-0.9,9-1.4c3.3-0.5,6.6-1.1,9.8-1.7c-2.1-1.1-4.2-2.3-6.4-3.3c-3.6-1.7-7.2-3.3-10.8-5c4.1,0.2,8.1,0.3,12.2,0.5
c2.5,0.1,5,0.2,7.4,0.3c-2.1-1.5-4.1-3.1-6.2-4.6c-3.1-2.2-6.3-4.2-9.4-6.4c3.7,0.5,7.5,1.1,11.2,1.6c2.6,0.3,5.3,0.5,7.9,0.8
c-1.6-1.8-3.2-3.6-4.9-5.2c-3.4-3.1-6.8-6.2-10.3-9.2c4.2,1.7,8.4,3.4,12.7,5c2.1,0.8,4.4,1.2,6.6,1.8c-1.5-1.7-3.1-3.3-4.6-5
c-3.5-3.7-6.9-7.5-10.4-11.2c4.2,2.3,8.3,4.7,12.6,6.9c2.7,1.4,5.7,2.4,8.5,3.6c-2.3-3.6-4.6-7.3-6.9-10.9c-1.8-3-3.6-6-5.3-9
c2.7,2,5.5,4.1,8.2,6.2c3.3,2.6,6.7,5.2,10,7.8c-1.7-3.9-3.6-7.7-5.2-11.7c-1.2-3-2.1-6.1-3.2-9.2c2.2,2.2,4.5,4.5,6.7,6.7
c2.8,2.9,5.5,5.8,8.3,8.8c-1.1-3.9-2.3-7.8-3.4-11.7c-1.1-3.9-2.2-7.8-3.4-11.7c2.4,3.3,4.7,6.6,7.2,9.9c2.3,3,4.6,6,6.9,9.1
c-0.6-3.7-1.3-7.5-1.9-11.2c-0.5-3.5-1-7-1.4-10.5c1.7,2.9,3.3,5.8,5.1,8.7c2.3,3.8,4.6,7.6,6.9,11.5c-0.2-4.3-0.5-8.6-0.6-12.9
c-0.1-3.7,0-7.4,0-11.2c1.4,3.5,2.9,7,4.2,10.6c1.6,4.2,3,8.5,4.6,12.8c0.4-4.2,0.9-8.4,1.3-12.6C95,24,95.5,20.2,96,16.3
c1,3.9,2.1,7.7,3,11.6c1,4.2,1.8,8.5,2.7,12.7c1.2-4.3,2.4-8.6,3.7-12.9c1.1-3.8,2.4-7.6,3.6-11.3c0.2,3.9,0.5,7.7,0.7,11.6
c0.2,4.3,0.4,8.6,0.7,12.9c2.1-3.9,4.2-7.7,6.4-11.5c1.8-3.3,3.7-6.5,5.6-9.8c-0.5,3.8-0.9,7.6-1.4,11.3c-0.6,4.4-1.2,8.7-1.8,13.1
c2.6-3.8,5.1-7.6,7.8-11.3c2.3-3.2,4.9-6.2,7.3-9.3c-1.1,3.7-2.2,7.3-3.2,11c-1.2,4.2-2.4,8.5-3.6,12.7c3.5-3.5,7-7.1,10.6-10.6
c2.3-2.3,4.8-4.4,7.2-6.6c-1.4,3-2.8,6.1-4.2,9.1c-2.1,4.2-4.2,8.4-6.3,12.6c3.9-2.6,7.9-5.3,11.8-7.9c2.4-1.5,4.9-2.8,7.3-4.2
c-1.6,2.4-3,4.9-4.7,7.2c-2.7,3.7-5.5,7.2-8.3,10.8c4.2-2,8.5-4.1,12.7-6.1c3-1.4,6.1-2.7,9.2-4.1c-2.2,2.4-4.3,4.9-6.6,7.2
c-3.2,3.4-6.6,6.6-9.8,10c4.8-1.4,9.6-2.9,14.4-4.3c2.8-0.8,5.6-1.5,8.4-2.2c-2.2,1.8-4.4,3.7-6.7,5.4c-3.8,2.8-7.7,5.5-11.6,8.3
c4.8-0.2,9.7-0.4,14.5-0.6c2.7-0.1,5.4-0.3,8.1-0.5c-2.5,1.3-4.9,2.7-7.4,4c-4.2,2.1-8.4,4.2-12.6,6.3c4,0.5,7.9,1,11.9,1.4
c3.3,0.4,6.6,0.7,9.9,1.1c-3.4,1-6.7,2.1-10.1,3.1c-3.1,0.9-6.2,1.8-9.3,2.6c3.1,0.6,6.2,1.2,9.3,1.8c3.2,0.7,6.5,1.6,9.7,2.4
c-3,0.6-6,1.1-9,1.7c-2.9,0.6-5.8,1.2-8.6,1.8c2.9,0.8,5.7,1.5,8.6,2.3c3.3,0.9,6.5,1.9,9.8,2.9c-3.2,0.4-6.5,0.7-9.7,1.3
c-2.7,0.4-5.3,1.1-8,1.7c2.5,1.3,5,2.7,7.5,4c3.2,1.6,6.4,3,9.6,4.6c-3.4-0.2-6.7-0.3-10.1-0.5c-3.6-0.2-7.2-0.5-10.9-0.8
c3.1,2,6.2,4.1,9.3,6.1c3,2,6,3.9,9.1,5.9c-2.7-0.4-5.3-0.7-8-1.1c-4.1-0.7-8.3-1.4-12.4-2.1c3.4,2.6,6.8,5.2,10.2,7.9
c2.1,1.7,4.1,3.4,6.1,5.2c-2.6-0.7-5.2-1.3-7.7-2c-4.3-1.3-8.6-2.6-12.9-4c3,3.3,6.2,6.6,9.1,10c1.4,1.6,2.5,3.5,3.7,5.3
c-2-0.9-4.1-1.7-6.1-2.6c-4.2-2.1-8.4-4.2-12.7-6.3c2.7,3.6,5.5,7.2,8.1,10.9c1.8,2.5,3.3,5.1,4.9,7.7c-2.6-1.7-5.3-3.4-7.8-5.2
c-3.4-2.4-6.6-4.9-10-7.3c1.4,3.2,2.8,6.4,4.4,9.6c1.5,3.1,3.1,6,4.7,9.1c-2.7-2.1-5.6-4.1-8.2-6.4c-3-2.7-5.7-5.6-8.6-8.4
c1.5,4.1,3,8.1,4.3,12.2c1,3.2,1.9,6.4,2.8,9.6c-2.2-2.5-4.4-5.1-6.6-7.6c-2.2-2.5-4.4-4.9-6.6-7.4c0.6,3.3,1.3,6.6,1.9,9.9
c0.7,3.7,1.3,7.3,1.9,11c-1.8-2.9-3.5-5.8-5.3-8.7c-2.3-3.5-4.7-6.9-7.1-10.3c0.4,4.8,0.8,9.6,1.1,14.4c0.1,2.2,0,4.4-0.1,6.5
c-1.1-1.9-2.4-3.7-3.3-5.6c-2-4.5-3.8-9.2-5.7-13.7c-0.5,4.4-1,8.9-1.6,13.3c-0.3,2.4-1,4.8-1.5,7.2c-0.8-2.6-1.6-5.1-2.3-7.7
c-1.1-4.1-2.2-8.2-3.2-12.3c-0.8,3.8-1.6,7.6-2.5,11.5c-0.8,3.3-1.6,6.6-2.4,9.9c-0.7-3.4-1.4-6.8-2-10.1
c-0.6-3.4-1.1-6.8-1.7-10.2c-1.3,3.4-2.6,6.8-4.1,10.2c-1.4,3.2-3.1,6.4-4.7,9.6C80.3,173.6,80.3,171.4,80.3,172.1z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -0,0 +1,15 @@
{
"name": "SternTours",
"short_name": "SternTours",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"start_url": "sterntours.de",
"display": "standalone"
}

View file

@ -3,6 +3,12 @@ $url = "http://www.sterntours.de/tt-suche?".str_replace("/travelsearch.php?", ""
header("Location:".$url, true, 301);
exit;
/*
$url = "http://sterntours.local/tt-suche?".str_replace("/travelsearch.php?", "", $_SERVER['REQUEST_URI']);
header("Location:".$url, true, 301);
exit;
*/
/*