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" 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="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="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 %} {% 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 {% stylesheets
'bundles/app/css/daterangepicker.css' 'bundles/app/css/daterangepicker.css'
filter='cssrewrite' 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/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--> <![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> </head>
<body> <body>
@ -116,19 +109,7 @@
{#TODO ausmisten und im gleichen zuge das CSS für den Datepicker einfügen#} {#TODO ausmisten und im gleichen zuge das CSS für den Datepicker einfügen#}
{% block javascripts %} {% 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 %} {% endblock javascripts %}
</body> </body>

View file

@ -34,25 +34,15 @@
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}
<!-- Favicons --> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="57x57" href="/images/apple-icon-57x57.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="60x60" href="/images/apple-icon-60x60.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/apple-icon-72x72.png"> <link rel="manifest" href="/site.webmanifest">
<link rel="apple-touch-icon" sizes="76x76" href="/images/apple-icon-76x76.png"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="114x114" href="/images/apple-icon-114x114.png"> <meta name="msapplication-TileColor" content="#da532c">
<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"> <meta name="theme-color" content="#ffffff">
{% block canonical_tag %} {% block canonical_tag %}
{% if canonical_url is not defined and page is defined %} {% if canonical_url is not defined and page is defined %}
{% if page.canonicalUrl is not empty %} {% if page.canonicalUrl is not empty %}
@ -110,7 +100,7 @@
{% block header2 %} {% 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') }});"> <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="row">
<div class="col-md-12 col-xs-12"> <div class="col-md-12 col-xs-12">
<div class="home-message text-center small"> <div class="home-message text-center small">
@ -133,7 +123,7 @@
{# #TODO additional section classes if not home #} {# #TODO additional section classes if not home #}
<section class="section clearfix"> <section class="section clearfix">
<div class="container"> <div class="container-fluid">
<div class="row"> <div class="row">
<div id="fullwidth" class="col-sm-12"> <div id="fullwidth" class="col-sm-12">
@ -157,7 +147,7 @@
offers_sidebar_widget_block: block('offers_sidebar_widget') ?? null, offers_sidebar_widget_block: block('offers_sidebar_widget') ?? null,
feedbacks_sidebar_widget_block: block('feedbacks_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 %} {% block body %}{% endblock %}
</div><!-- end col --> </div><!-- end col -->
</div><!-- end row --> </div><!-- end row -->
@ -170,8 +160,12 @@
{% include 'default/components/footer.html.twig' %} {% 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 --> <!-- default modal -->
{% embed 'default/components/embed/modal.html.twig' with {id: 'default'} %}{% endembed %} {% embed 'default/components/embed/modal.html.twig' with {id: 'default'} %}{% endembed %}

View file

@ -15,7 +15,7 @@
{{ form_row(form.file, {label: 'Bild'}) }} {{ form_row(form.file, {label: 'Bild'}) }}
{% else %} {% else %}
<div> <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> </div>
{% endif %} {% endif %}
{{ form_row(form.fileName, {label: 'Name'}) }} {{ form_row(form.fileName, {label: 'Name'}) }}

View file

@ -35,7 +35,7 @@
{% for image in lodgingGroup.images %} {% for image in lodgingGroup.images %}
{% if image.comp == 'pre' %} {% if image.comp == 'pre' %}
<tr> <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.pos }}</td>
<td>{{ image.fileName }}</td> <td>{{ image.fileName }}</td>
<td>{{ image.description }}</td> <td>{{ image.description }}</td>
@ -85,7 +85,7 @@
{% for image in lodgingGroup.images %} {% for image in lodgingGroup.images %}
{% if image.comp == 'post' %} {% if image.comp == 'post' %}
<tr> <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.pos }}</td>
<td>{{ image.fileName }}</td> <td>{{ image.fileName }}</td>
<td>{{ image.description }}</td> <td>{{ image.description }}</td>

View file

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

View file

@ -1,16 +1,54 @@
{% if(isPossible) %}
<table class="st-booking-table"> <table class="st-booking-table">
<tbody> <tbody>
<tr> <tr>
<td class="st-position-price-col"> <td class="st-position-price-col">
+ {{ total_price_per_night|number_format(2) }} Datum:
</td> </td>
<td class="st-position-name-col"> <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> </td>
</tr> </tr>
<tr> <tr>
<td class="st-position-price-col"> <td class="st-position-price-col">
+ {{ fewo_price.flatPrice|number_format(2) }} 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">
+ {{ priceResult.flatPrice|number_format(2) }}
</td> </td>
<td class="st-position-name-col"> <td class="st-position-name-col">
Service-Gebühr Service-Gebühr
@ -18,7 +56,7 @@
</tr> </tr>
<tr> <tr>
<td class="st-position-price-col"> <td class="st-position-price-col">
+ {{ fewo_lodging.deposit|number_format(2) }} + {{ priceResult.deposit|number_format(2) }}
</td> </td>
<td class="st-position-name-col"> <td class="st-position-name-col">
Kaution Kaution
@ -26,9 +64,15 @@
</tr> </tr>
<tr class="st-total-tr"> <tr class="st-total-tr">
<td class="st-position-price-col"> <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>
<td class="st-position-name-col">Gesamtpreis der Reise</td> <td class="st-position-name-col">Gesamtpreis der Reise</td>
</tr> </tr>
</tbody> </tbody>
</table> </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 #} {# @var departure \AppBundle\Entity\TravelDeparturePoint #}
<tr> <tr>
<td style="text-align: left"> <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] != "" %} {% 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> <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 %}
{% endif %} {% endif %}
<h4>{{ departure.name }}</h4> <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=""> <div class="collapse" id="flight_{{ travelName }}_{{ departure.id }}" style="">
{% for flightTime in departure.flightTime[startWeekday]|split('\n') %} {% for flightTime in departure.flightTime[startWeekday]|split('\n') %}
{% if flightTime != "" %} {% if flightTime != "" %}
@ -35,6 +36,7 @@
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}
{% endif %}
</td> </td>
<td>{{ departure.extraCharge|number_format(2) }} €</td> <td>{{ departure.extraCharge|number_format(2) }} €</td>
</tr> </tr>

View file

@ -1,6 +1,6 @@
<header class="header fixedheader setbg sticky"> <header class="header fixedheader setbg sticky">
<div class="topbar"> <div class="topbar">
<div class="container"> <div class="container-fluid">
<div class="pull-right"> <div class="pull-right">
<ul class="topbar-drops list-inline"> <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> <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><!-- end topbar -->
<div class="menu-container"> <div class="menu-container">
<div class="container"> <div class="container-fluid">
<div class="menu-wrapper"> <div class="menu-wrapper">
<nav id="navigation" class="navbar" role="navigation" itemscope <nav id="navigation" class="navbar" role="navigation" itemscope
itemtype="https://schema.org/SiteNavigationElement"> itemtype="https://schema.org/SiteNavigationElement">
@ -93,7 +93,7 @@
<div id="header" class="sticky clearfix"> <div id="header" class="sticky clearfix">
<!-- TOP NAV --> <!-- TOP NAV -->
<header id="topNav"> <header id="topNav">
<div class="container"> <div class="container-fluid">
<div class="navbar-collapse nav-main-collapse collapse submenu-dark"> <div class="navbar-collapse nav-main-collapse collapse submenu-dark">
<nav class="nav-main"> <nav class="nav-main">

View file

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

View file

@ -1,5 +1,5 @@
{# @var child_page \AppBundle\Entity\Page #} {# @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="travel-wrapper get-box-link">
<div class="item text-left"> <div class="item text-left">
<div class="item-img"> <div class="item-img">

View file

@ -1,13 +1,15 @@
{# @var page \AppBundle\Entity\Page #} {# @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 id="show_sterntours_video_sidebar" class="widget clearfix">
<div class="widget-title"> <div class="widget-title">
Wir: STERN TOURS <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><!-- end title -->
<div class="boxwidget"> <div class="boxwidget collapse in {{ (app.request.get('_open_side_about')) }}" id="about-widget" aria-expanded="true">
<div class="video-wrap"> <div class="video-wrap">
<div class="g-absolute-centered"> <div class="g-absolute-centered">
<a data-type="youtube_sterntours_video" data-src="https://www.youtube-nocookie.com/embed/Rpo5py2fjrg" href="javascript:;"> <a data-type="youtube_sterntours_video" data-src="https://www.youtube-nocookie.com/embed/Rpo5py2fjrg" href="javascript:;">
@ -19,6 +21,7 @@
</div> </div>
</div><!-- end boxwidget --> </div><!-- end boxwidget -->
</div><!-- end widget --> </div><!-- end widget -->
{% endif %}
{% if show_search_sidebar_widget ?? true %} {% if show_search_sidebar_widget ?? true %}
@ -42,6 +45,7 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if show_nav_sidebar_widget ?? true and page is defined %} {% if show_nav_sidebar_widget ?? true and page is defined %}
{% if nav_sidebar_widget_block is null %} {% if nav_sidebar_widget_block is null %}
{{ render(controller('AppBundle:Component:navSidebarWidget', {page: page})) }} {{ render(controller('AppBundle:Component:navSidebarWidget', {page: page})) }}
@ -52,15 +56,14 @@
<div class="widget clearfix hidden-xs"> <div class="widget clearfix hidden-xs">
<div class="widget-title"> <div class="widget-title">
TOP bewertet <a class="collapse-widget" href="#top-widget" data-toggle="collapse" aria-expanded="true">TOP bewertet
</a>
</div><!-- end title --> </div><!-- end title -->
<div class="boxwidget"> <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 <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"> src="{{ asset('images/netzsieger.png') }}" alt="Netzsieger.de bewertet STERN TOURS">
</a> </a>
</div><!-- end boxwidget -->
<div class="boxwidget">
<!-- Ausgezeichnet.org-Siegel: Begin --> <!-- Ausgezeichnet.org-Siegel: Begin -->
<div id="auorg-bg"><a href="https://www.ausgezeichnet.org" target="_blank" <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" title="Unabh&auml;ngige Bewertungen, Kundenbewertungen und G&uuml;tesiegel von AUSGEZEICHNET.ORG"
@ -69,8 +72,6 @@
</a></div> </a></div>
<script type="text/javascript" <script type="text/javascript"
src="//siegel.ausgezeichnet.org/widgets/js/55b648290cf257aef3483d90/widget.js"></script> src="//siegel.ausgezeichnet.org/widgets/js/55b648290cf257aef3483d90/widget.js"></script>
<!-- Ausgezeichnet.org-Siegel: End -->
</div><!-- end boxwidget -->
{% if show_seal_of_approval is defined %} {% if show_seal_of_approval is defined %}
<div class="boxwidget"> <div class="boxwidget">
@ -79,19 +80,18 @@
</div><!-- end boxwidget --> </div><!-- end boxwidget -->
{% endif %} {% endif %}
<!-- Ausgezeichnet.org-Siegel: End -->
</div><!-- end boxwidget -->
{#<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>#}
</div><!-- end widget --> </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 {% if (show_feedbacks_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty
and page.effectiveCountry.feedbackPage is not empty %} and page.effectiveCountry.feedbackPage is not empty %}
{% if feedbacks_sidebar_widget_block is null %} {% if feedbacks_sidebar_widget_block is null %}
@ -125,4 +125,11 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
</div>
<div class="col-sm-12">
<hr class="visible-sm visible-xs">
</div>
</div>
</div><!-- end col --> </div><!-- end col -->

View file

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

View file

@ -2,8 +2,9 @@
<div class="widget clearfix hidden-xs"> <div class="widget clearfix hidden-xs">
<div class="widget-title"> <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><!-- end title -->
<div class="boxwidget collapse in" id="{{ target_widget }}" aria-expanded="true">
<div class="box-slider"> <div class="box-slider">
{% for page in pages %} {% for page in pages %}
@ -36,6 +37,7 @@
<a href="javascript:void(0);" class="item-button-next">weiter</a> <a href="javascript:void(0);" class="item-button-next">weiter</a>
</div> </div>
</div> </div>
</div>
</div><!-- end widget --> </div><!-- end widget -->
{% endif %} {% endif %}

View file

@ -2,8 +2,9 @@
<div class="widget clearfix hidden-xs"> <div class="widget clearfix hidden-xs">
<div class="widget-title"> <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><!-- 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' }}">
@ -20,6 +21,7 @@
</div> </div>
</div><!-- end newswidget --> </div><!-- end newswidget -->
</div>
</div><!-- end widget --> </div><!-- end widget -->
{% endif %} {% endif %}

View file

@ -53,7 +53,7 @@ E-Mail: {{ booking_request.email ?? 'keine Angabe' }}
===================================================================================== =====================================================================================
Reiseteilnehmer: Reiseteilnehmer:
Zimmernummer, Zimmertyp, Geschlecht, Vorname, Nachname, Geburtsdatum Nr., Zimmertyp, Geschlecht, Vorname, Nachname, Geburtsdatum
===================================================================================== =====================================================================================
{% set travelerIndex = 0 %} {% set travelerIndex = 0 %}
{% set travelerCollection = booking_request.travelers|slice(0, (booking_request.travelerCount + booking_request.childrenCount)) %} {% 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_booking_request \AppBundle\Entity\FewoBookingRequest #}
{# @var fewo_lodging \AppBundle\Entity\FewoLodging #} {# @var fewo_lodging \AppBundle\Entity\FewoLodging #}
{# @var fewo_price \AppBundle\Entity\FewoPrice #} {# @var fewo_price \AppBundle\Entity\FewoPrice #}
===================================================================================== =======================================================
Reisedaten: Ihre Reisedaten
=====================================================================================
Ferienwohnung: {{ fewo_lodging.name }}
Saison: {{ fewo_price.season.name }}
Reisezeitraum: {{ fewo_booking_request.fromDate|date }} - {{ fewo_booking_request.toDate|date }} 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' }}
===================================================================================== * 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 }} Reiseteilnehmer: {{ fewo_booking_request.travelerCount }}
===================================================================================== =======================================================
=====================================================================================
Mitteilungen / Sonstiges: Mitteilungen / Sonstiges:
=====================================================================================
{{ fewo_booking_request.notes ?? '-' }} {{ fewo_booking_request.notes ?? '-' }}
=======================================================

View file

@ -1,11 +1,15 @@
{# @var fewo_booking_request \AppBundle\Entity\FewoBookingRequest #} {# @var fewo_booking_request \AppBundle\Entity\FewoBookingRequest #}
Sehr geehrte{{ fewo_booking_request.salutation == 1 ? 'r Herr' : ' Frau' }} {{ fewo_booking_request.lastName }}, 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{# vielen Dank für Ihren Auftrag, folgende Ferienwohnung wurde gemietet:
#} enthalten ist.
{% include 'default/email/components/fewoBookingSummary.txt.twig' %} {% 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' %} {% include 'default/email/components/signature.txt.twig' %}

View file

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

View file

@ -7,21 +7,10 @@
{% endblock %} {% 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 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 %} {% block body %}
<section class="clearfix"> <section class="clearfix">
<div class="content-copy"> <div class="content-copy">
@ -227,7 +216,6 @@
</td> </td>
</tr> </tr>
{% if extraDays == 1 and travel_program.drafts.count() > 0 %} {% if extraDays == 1 and travel_program.drafts.count() > 0 %}
<tr> <tr>
{% else %} {% else %}
@ -235,12 +223,12 @@
{% endif %} {% endif %}
<td>Verlängerung buchen</td> <td>Verlängerung buchen</td>
<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_widget(form.extraBookingDaysBefore) }}
{{ form_errors(form.extraBookingDaysBefore) }} {{ form_errors(form.extraBookingDaysBefore) }}
<br> <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_widget(form.extraBookingDaysAfter) }}
{{ form_errors(form.extraBookingDaysAfter) }} {{ form_errors(form.extraBookingDaysAfter) }}
@ -298,25 +286,20 @@
</div> </div>
</div> </div>
</div> </div>
<p> <p>
Die gewünschte Zahlungsart (Überweisung, Kreditkarten) stimmen wir mit Ihnen im Anschluss an Ihre Buchung ab. Die gewünschte Zahlungsart (Überweisung, Kreditkarten) stimmen wir mit Ihnen im Anschluss an Ihre Buchung ab.
{% if(travel_program.category.id != 1) %} {% 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 %} {% endif %}
</p> </p>
</div> </div>
</div> </div>
<div class="form-box"> <div class="form-box">
<div class=""> <div class="">
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<h5>Flugdaten</h5> <h5>Flugdaten</h5>
</div> </div>
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2"> <div class="accordion-toggle-2">
<div class="panel-group" id="accordion_fd"> <div class="panel-group" id="accordion_fd">
@ -325,7 +308,6 @@
</a> </a>
<div id="collapse_fd" class="panel-collapse collapse" aria-expanded="true" style=""> <div id="collapse_fd" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body"> <div class="panel-body">
{% for departure in travel_date.departures %} {% for departure in travel_date.departures %}
{# @var departure \AppBundle\Entity\TravelDeparturePoint #} {# @var departure \AppBundle\Entity\TravelDeparturePoint #}
{% if departure.flightTime[travel_date.startWeekday] is defined %} {% if departure.flightTime[travel_date.startWeekday] is defined %}
@ -342,7 +324,6 @@
<div class="" id="no_flight_time" style="display: none;"> <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> <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>
<div class="" id="yes_flight_time" style="display: none;"> <div class="" id="yes_flight_time" style="display: none;">
<h3>Hinweis</h3> <h3>Hinweis</h3>
<p>Flugzeiten können um 1 Std. variieren durch Sommer-/Winterzeit.</p> <p>Flugzeiten können um 1 Std. variieren durch Sommer-/Winterzeit.</p>
@ -351,8 +332,6 @@
</div> </div>
</div> </div>
</div> </div>
</ul>
</div><!-- accordion --> </div><!-- accordion -->
</div> </div>
</div> </div>
@ -369,14 +348,31 @@
<ul class="c1"> <ul class="c1">
{% for travel_program_date in travel_program_dates if travel_program_date.count < 1 %} {% for travel_program_date in travel_program_dates if travel_program_date.count < 1 %}
<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> <li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }} {{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %} {% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }} <br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %} {% endif %}
</li> </li>
{% endfor %} </div>
{% endfor %}
<div class="accordion-toggle-2"> <div class="accordion-toggle-2">
<div class="panel-group" id="accordion_pd"> <div class="panel-group" id="accordion_pd">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_pd" href="#collapse_pd" aria-expanded="true"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_pd" href="#collapse_pd" aria-expanded="true">
@ -384,14 +380,33 @@
</a> </a>
<div id="collapse_pd" class="panel-collapse collapse" aria-expanded="true" style=""> <div id="collapse_pd" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body"> <div class="panel-body">
{% for travel_program_date in travel_program_dates if travel_program_date.count > 0 %} {% for travel_program_date in travel_program_dates if travel_program_date.count > 0 %}
{% if travel_program_dates|length != travel_program_date.count +1 %}
<li> <li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }} {{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %} {% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }} <br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %} {% endif %}
</li> </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 %} {% endfor %}
</div> </div>
@ -409,7 +424,6 @@
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseleistungen</h5> <h5>Reiseleistungen</h5>
</div> </div>
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2"> <div class="accordion-toggle-2">
<div class="panel-group" id="accordion"> <div class="panel-group" id="accordion">
@ -456,7 +470,6 @@
</div> </div>
<div class="form-box"> <div class="form-box">
<div class=""> <div class="">
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
@ -551,15 +564,12 @@
} }
.form-box-small .form-control{ .form-box-small .form-control{
margin-bottom: 8px; margin-bottom: 8px;
} }
.form-box.form-box-small .st-travelers div.required:before { .form-box.form-box-small .st-travelers div.required:before {
margin-right: 20px; margin-right: 20px;
right: 0px; right: 0px;
top: 0px; top: 0px;
} }
</style> </style>
<div class="form-box form-box-small"> <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> <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>
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<div class="hidden"> <div class="hidden">
{% for country in travel_program.countries %} {% for country in travel_program.countries %}
<input type="hidden" name="travel_program_countries_id[]" value="{{ country.id }}"> <input type="hidden" name="travel_program_countries_id[]" value="{{ country.id }}">
{% endfor %} {% endfor %}
</div> </div>
<div class="st-travelers"> <div class="st-travelers">
{% set currentIndex = 0 %} {% set currentIndex = 0 %}
{% for room in form.rooms %} {% for room in form.rooms %}
@ -680,6 +688,7 @@
<label for="{{ traveler.acceptEntryRequirements.vars.id }}" style="line-height: 1.2em;"> <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.. 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> </label>
<span class="checkbox_marker"></span>
{{ form_errors(traveler.acceptEntryRequirements) }} {{ form_errors(traveler.acceptEntryRequirements) }}
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
</div> </div>
@ -693,7 +702,8 @@
</div> <!-- st trav --> </div> <!-- st trav -->
<h2>Hinweis</h2> <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. 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> 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 --> </div> <!-- col -->
@ -718,6 +728,7 @@
<label for="{{ form.acceptLegalRights.vars.id }}" style="line-height: 1.2em;"> <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. 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> </label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptLegalRights) }} {{ form_errors(form.acceptLegalRights) }}
<div class="help-block with-errors"></div> <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> 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. Ein Widerrufsrecht steht Ihnen gemäß § 312 g Abs. 2 Nr. 9 BGB (Bürgerliches Gesetzbuch) nicht zu.
</label> </label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptTerms) }} {{ form_errors(form.acceptTerms) }}
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
</div> </div>
@ -772,6 +784,7 @@
{{ form_widget(form.acceptPrivacy) }} {{ 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 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> </label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptPrivacy) }} {{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
</div> </div>
@ -810,9 +823,9 @@
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit" <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> </button>
</div> </div>

View file

@ -3,7 +3,14 @@
{% block canonical_tag %}{% endblock %} {% block canonical_tag %}{% endblock %}
{% block body %} {% block body %}
<style>
.c1.plus li:before {
content: '+';
}
.c1.minus li:before {
content: '-';
}
</style>
<section class="clearfix"> <section class="clearfix">
<div class="content-copy"> <div class="content-copy">
@ -88,13 +95,13 @@
<div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style=""> <div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body"> <div class="panel-body">
<h3>Eingeschlossene Leistungen</h3> <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') %} {% 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> <li>{{ travel_program_service|raw }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<h3>Nicht eingeschlossene / zubuchbare Leistungen</h3> <h3>Nicht eingeschlossene / zubuchbare Leistungen</h3>
<ul class="c1"> <ul class="c1 minus">
{% for travel_program_service in travel_program.excluded|split('\n') %} {% for travel_program_service in travel_program.excluded|split('\n') %}
<li>{{ travel_program_service|raw }}</li> <li>{{ travel_program_service|raw }}</li>
{% endfor %} {% endfor %}
@ -200,6 +207,7 @@
<thead> <thead>
<tr> <tr>
<th style="text-align: left;">Nr.</th> <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;">Geschlecht</th>
<th style="text-align: left;">Vorname</th> <th style="text-align: left;">Vorname</th>
<th style="text-align: left;">Nachname</th> <th style="text-align: left;">Nachname</th>
@ -209,40 +217,135 @@
</thead> </thead>
<tbody class="st-travelers"> <tbody class="st-travelers">
{% for participant in booking.participants %} {% set travelerIndex = 0 %}
<tr class="st-traveler st-traveler-{{ loop.index }}" {% set travelerCollection = booking_request.travelers|slice(0, (booking_request.travelerCount + booking_request.childrenCount)) %}
data-st-traveler-index="{{ loop.index }}" {% for room in booking_request.occupiedRooms %}
style="display: ;" {% if(room.type == 1) %}
> <tr>
<td> <td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index" <button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
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> </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> </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 %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>

View file

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

View file

@ -2,13 +2,10 @@
{# @var fewo_lodging \AppBundle\Entity\FewoLodging #} {# @var fewo_lodging \AppBundle\Entity\FewoLodging #}
{% extends get_base_template() %} {% extends get_base_template() %}
{% block javascripts %} {% block stylesheets %}
{{ parent() }} <style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
{% javascripts '@AppBundle/Resources/public/js/travelProgram.js' %} <link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
<script src="{{ asset_url }}"></script> {% endblock stylesheets %}
{% endjavascripts %}
{% endblock %}
{% block body %} {% block body %}
<section class="clearfix"> <section class="clearfix">
@ -185,10 +182,14 @@
</strong> </strong>
</td> </td>
<td data-title="Beginn"> <td data-title="Beginn">
<a class="default scroll-to-jump" href="#jump-{{ price.season.fromDate|date("n-Y") }}">
{{ price.season.fromDate|date }} {{ price.season.fromDate|date }}
</a>
</td> </td>
<td data-title="Ende"> <td data-title="Ende">
<a class="default scroll-to-jump" href="#jump-{{ price.season.toDate|date("n-Y") }}">
{{ price.season.toDate|date }} {{ price.season.toDate|date }}
</a>
</td> </td>
<td data-title="Mindestbelegung"> <td data-title="Mindestbelegung">
{{ price.season.minimumStay }} {{ price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }} {{ 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> <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' %} {% include 'default/pages/cms/calendarLodgingProgram.html.twig' %}
</div> <!-- END tabpanel --> </div> <!-- END tabpanel -->
</div> </div>
{{ block('travel_lodging_program_tab_bar') }}
</div> </div>
</section><!-- end section --> </section><!-- end section -->
{% endblock body %} {% endblock body %}

View file

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

View file

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

View file

@ -2,17 +2,13 @@
{% form_theme form 'default/form/theme.html.twig' %} {% form_theme form 'default/form/theme.html.twig' %}
{% block stylesheets %} {% block stylesheets %}
{{ parent() }} <style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
{% stylesheets 'bundles/app/css/booking.css' filter='cssrewrite' %} <link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
<link rel="stylesheet" href="{{ asset_url }}"/> {% endblock stylesheets %}
{% endstylesheets %}
{% endblock %}
{% block javascripts %} {% block javascripts %}
{{ parent() }} {{ parent() }}
{% javascripts '@AppBundle/Resources/public/js/fewoBooking.js' %} <script src="{{ asset('js/fewoBooking-min.js?v') }}{{ get_file_last_time('js/fewoBooking-min.js') }}"></script>
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %} {% endblock %}
{% block body %} {% block body %}
@ -31,20 +27,19 @@
<h2 style="margin-top:10px">{{ lodging.name }}</h2> <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="">
{#
<div id="booking_form" class="booking_form" style="display:none;">
<form class="st-booking-form" method="post" data-toggle="validator"> <form class="st-booking-form" method="post" data-toggle="validator">
{{ form_errors(form) }} {{ form_errors(form) }}
{{ form_errors(form.email) }} {{ 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 id="message"></div>
<div class="form-box"> <div class="form-box">
@ -57,34 +52,38 @@
{{ lodging.name }} {{ lodging.name }}
</td> </td>
</tr> </tr>
<tr> <!-- <tr>
<td>Saison</td> <td>Saison</td>
<td> <td>
{{ fewo_price.season.name }} {{ fewo_price.season.name }}
</td> </td>
</tr> </tr>
-->
<tr> <tr>
<td>Reisebeginn</td> <td><label class="st-required control-label required">Datum</label></td>
<td>{{ fromDate|date }}</td>
</tr>
<tr>
<td>{{ form_label(form.toDate, 'Reiseende') }}</td>
<td> <td>
{{ form_widget(form.toDate, {attr: {'data-allowed-dates': allowed_to_dates}}) }} <div class="form-group" style="margin-bottom:0;">
{{ form_errors(form.toDate) }} <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> </td>
</tr> </tr>
<tr> <!-- <tr>
<td>Mindestbelegung</td> <td>Mindestbelegung</td>
<td> <td>
{{ fewo_price.season.minimumStay }} {{ fewo_price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }} {{ fewo_price.season.minimumStay }} {{ fewo_price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
</td> </td>
</tr> </tr> -->
<tr> <tr>
<td>{{ form_label(form.travelerCount, 'Reiseteilnehmer') }}</td> <td>{{ form_label(form.travelerCount, 'Reiseteilnehmer') }}</td>
<td> <td>
<div style="max-width: 180px;">
{{ form_widget(form.travelerCount) }} {{ form_widget(form.travelerCount) }}
{{ form_errors(form.travelerCount) }} {{ form_errors(form.travelerCount) }}
</div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -211,21 +210,8 @@
<div class="form-box"> <div class="form-box">
<div class=""> <div class="">
<div class="col-md-12 col-sm-12 col-xs-12"> <div class="col-md-12 col-sm-12 col-xs-12">
<h5>Allgemeine Geschäftsbedingungen</h5> <h5>Datenschutz</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>
<div class="form-group"> <div class="form-group">
<div class="checkbox"> <div class="checkbox">
@ -236,28 +222,17 @@
Datenschutzerklärung Datenschutzerklärung
</a> genannte Datenverarbeitung ein. </a> genannte Datenverarbeitung ein.
</label> </label>
<span class="checkbox_marker"></span>
{{ form_errors(form.acceptPrivacy) }} {{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
</div> </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"> <div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit" <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> </button>
</div> </div>
</div> </div>
@ -269,9 +244,12 @@
</form> </form>
</div><!-- end contact-form --> </div><!-- end contact-form -->
#}
</div> </div>
</section> </section>
{% endblock body %} {% endblock body %}

View file

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

View file

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

View file

@ -66,6 +66,7 @@ class BookingController extends Controller
if($action == '/show_nationality_country_text') if($action == '/show_nationality_country_text')
{ {
$ret = ""; $ret = "";
$nationality_id = $request->request->get('nationality_id'); $nationality_id = $request->request->get('nationality_id');
$country_ids = $request->request->get('country_ids'); $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! // #TODO This will lead to multiple bookings due to multiple form submission. Redirect instead!
return $this->render('default/pages/bookingConfirmation.html.twig', [ return $this->render('default/pages/bookingConfirmation.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR, 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $travelProgramPage, 'page' => $travelProgramPage,
'booking_request' => $bookingRequest,
'breadcrumb_entries' => $breadcrumbEntries, 'breadcrumb_entries' => $breadcrumbEntries,
'show_nav_sidebar_about' => "notshow",
'show_nav_sidebar_widget' => false, 'show_nav_sidebar_widget' => false,
'show_travel_guide_sidebar_widget' => false, 'show_travel_guide_sidebar_widget' => false,
'show_travel_magazine_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', [ return $this->render('default/pages/booking.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR, 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $travelProgramPage, 'page' => $travelProgramPage,
'breadcrumb_entries' => $breadcrumbEntries, 'breadcrumb_entries' => $breadcrumbEntries,
'show_nav_sidebar_about' => "notshow",
'show_nav_sidebar_widget' => false, 'show_nav_sidebar_widget' => false,
'show_travel_guide_sidebar_widget' => false, 'show_travel_guide_sidebar_widget' => false,
'show_travel_magazine_sidebar_widget' => false, 'show_travel_magazine_sidebar_widget' => false,

View file

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

View file

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

View file

@ -75,7 +75,6 @@ class DefaultController extends Controller
{ {
$destinationIds[] = $data['c2']->getId(); $destinationIds[] = $data['c2']->getId();
} }
$r = $this->getDoctrine()->getRepository('AppBundle:TravelPeriod')->getTravelProgramsWithTravelDatesForTimePeriod( $r = $this->getDoctrine()->getRepository('AppBundle:TravelPeriod')->getTravelProgramsWithTravelDatesForTimePeriod(
$data['b'], $data['e'], $destinationIds, count($destinationIds) > 1); $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 //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 //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 else
@ -266,9 +266,42 @@ class DefaultController extends Controller
$child .= $p.","; $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, ','); $child = rtrim($child, ',');
$url = "http://dtps-ibe.traveltainment.de/offer?taid=DRS32"; $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; $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); $ttUrl = urldecode($url);
} }

View file

@ -12,6 +12,7 @@ use AppBundle\Entity\Traveler;
use AppBundle\Entity\TravelPeriodPrice; use AppBundle\Entity\TravelPeriodPrice;
use AppBundle\Entity\TravelPeriodPriceType; use AppBundle\Entity\TravelPeriodPriceType;
use AppBundle\Form\BookingRequestType; use AppBundle\Form\BookingRequestType;
use AppBundle\Form\FewoReservationType;
use AppBundle\Util; use AppBundle\Util;
@ -26,26 +27,143 @@ use Symfony\Component\HttpFoundation\Response;
class FewoBookingController extends Controller class FewoBookingController extends Controller
{ {
private $calendar;
public function getEntityManager() public function getEntityManager()
{ {
return $this->getDoctrine()->getManager(); 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 FewoLodging $lodging
* * @return bool
* @param Page $fewoTravelProgramPage
* @param Request $request
* @param $action
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
* @throws \Exception
*/ */
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) public function indexAction(Page $fewoTravelProgramPage, $action, Request $request)
{ {
$calendarService = $this->container->get('app.lodging_calendar_util'); $calendarService = $this->container->get('app.lodging_calendar_util');
$em = $this->getEntityManager(); $em = $this->getEntityManager();
//$fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging'); $fewoLodgingRepo = $em->getRepository('AppBundle:FewoLodging');
$fewoPriceRepo = $em->getRepository('AppBundle:FewoPrice'); $fewoPriceRepo = $em->getRepository('AppBundle:FewoPrice');
if (!$request->query->has('pnr') || !$request->query->has('fd')) if (!$request->query->has('pnr') || !$request->query->has('fd'))
@ -53,127 +171,86 @@ class FewoBookingController extends Controller
return $this->redirect($fewoTravelProgramPage->getUrlPath()); return $this->redirect($fewoTravelProgramPage->getUrlPath());
} }
$priceId = $request->query->get('pnr');
$fromDate = $request->query->get('fd');
$lodging = $fewoTravelProgramPage->getFewoLodging(); $lodging = $fewoTravelProgramPage->getFewoLodging();
/** @var FewoPrice $price */ $this->initCalender($lodging);
$price = $fewoPriceRepo->find($priceId);
/** @var FewoSeason $season */ $maxPersons = $lodging->getMaximumPersons();
$fewoBookingRequest = new FewoBookingRequest();
$fewoBookingRequest->setLodging($lodging);
$reservation = new FewoReservation();
$lastSeason = $this->getSeasonLast($lodging);
$reservationDays = $this->reservationDays($lodging, $lastSeason->getToDate());
$classByDays = $this->classByDays($lodging, $lastSeason->getToDate());
//first init for form ...
$fromDate = $request->query->get('fd');
$priceId = $request->query->get('pnr');
$price = $fewoPriceRepo->find($priceId);
$season = $price->getSeason(); $season = $price->getSeason();
$minimumStay = $season->getMinimumStay(); $minimumStay = $season->getMinimumStay();
$fromDate = $calendarService->convertDate($fromDate); $fromDate = $calendarService->convertDate($fromDate);
$fromDateTime = new \DateTime($fromDate); $fromDateTime = new \DateTime($fromDate);
$toDate = '';
$maxPersons = $lodging->getMaximumPersons();
$toDate = new \DateTime($fromDate);
$fewoBookingRequest = new FewoBookingRequest(); $toDate->modify('+'.$season->getMinimumStay().' day');
$reservation = new FewoReservation(); $toDate = $toDate->format('d.m.Y');
$toDateTime = new \DateTime($toDate);
$fewoBookingRequest->setFromDate($fromDateTime); $fewoBookingRequest->setFromDate($fromDateTime);
//$fewoBookingRequest->setToDate($toDate); $fewoBookingRequest->setToDate($toDateTime);
$fewoBookingRequest->setNumberDays($minimumStay); $fewoBookingRequest->setNumberDays($minimumStay);
$fewoBookingRequest->setLodging($lodging);
$fewoBookingRequest->setPrice($price); $fewoBookingRequest->setPrice($price);
$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];
}
}
if ($request->getMethod() != 'POST')
{
$fewoBookingRequest->setFromDate($fromDate);
$fewoBookingRequest->setToDate($toDate);
$fewoBookingRequest->setNumberDays($minimumStay);
$fewoBookingRequest->setLodging($lodging);
$fewoBookingRequest->setPrice($price);
}
$form = $this->createForm(FewoBookingRequestType::class, $fewoBookingRequest, [ $form = $this->createForm(FewoBookingRequestType::class, $fewoBookingRequest, [
'lodging' => $lodging, 'lodging' => $lodging,
'maxPersons' => $maxPersons, 'maxPersons' => $maxPersons,
'toDate' => $toDate 'fromDate' => $fromDate,
'toDate' => $toDate,
]); ]);
//overwrite is an request from form
if ($request->getMethod() == 'POST') if ($request->getMethod() == 'POST')
{ {
$form->handleRequest($request); $form->handleRequest($request);
/** @var FewoBookingRequest $fewoBookingRequest */
$fewoBookingRequest = $form->getData(); $fewoBookingRequest = $form->getData();
$fewoBookingRequest->setFromDate($fromDateTime);
$finalFromDate = $fewoBookingRequest->getFromDate(); $finalFromDate = $fewoBookingRequest->getFromDate();
$finalToDate = $fewoBookingRequest->getToDate(); $finalToDate = $fewoBookingRequest->getToDate();
$timeDiff = date_diff($finalFromDate, $finalToDate); $timeDiff = date_diff($finalFromDate, $finalToDate);
$numberDays = $timeDiff->days;
$numberDays = $timeDiff->days; // todo: evtl umbenennen, damit es eindeutig für Nächte und nicht mehr für Tage verwendet wird $season = $fewoLodgingRepo->findSeasonForLodgingBy($lodging, $finalFromDate);
if($season){
$fewoBookingRequest->setNumberDays($numberDays); $price = $fewoPriceRepo->findOneBy(['lodging' => $lodging, 'season' => $season]);
$fewoBookingRequest->setLodging($lodging); if($price){
$season = $price->getSeason();
$minimumStay = $season->getMinimumStay();
$fewoBookingRequest->setPrice($price); $fewoBookingRequest->setPrice($price);
$fewoBookingRequest->setNumberDays($numberDays);
}
}
} }
$totalPrice = $this->calculatePrice($fewoBookingRequest, $lodging, $price); $isPossible = $this->checkIsPossible($fewoBookingRequest, $lodging);
$perDayTotalPrice = $this->calculatePerDayTotalPrice($fewoBookingRequest, $price); $priceResult = $this->calculatePriceNew($fewoBookingRequest, $lodging, $price);
$fewoBookingRequest->setTotalPrice($totalPrice); $totalPrice = 0;
$perDayTotalPrice = 0;
// $totalPrice = $this->calculatePrice($fewoBookingRequest, $lodging, $price);
//$perDayTotalPrice = $this->calculatePerDayTotalPrice($fewoBookingRequest, $price);
$fewoBookingRequest->setTotalPrice($priceResult['price_total']);
if($action == '/buchen') if($action == '/buchen')
{ {
if ($request->getMethod() == 'POST' && $form->isValid()) if ($request->getMethod() == 'POST' && $form->isValid() && $isPossible)
{ {
$reservation->setFromDate($fewoBookingRequest->getFromDate()); $reservation->setFromDate($fewoBookingRequest->getFromDate());
$reservation->setToDate($fewoBookingRequest->getToDate()); $reservation->setToDate($fewoBookingRequest->getToDate());
@ -184,7 +261,7 @@ class FewoBookingController extends Controller
$em->persist($reservation); $em->persist($reservation);
$em->flush(); $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) if (!$crmBookingUrl)
{ {
$crmBookingUrl = '[CRM-EXPORT FEHLGESCHLAGEN]'; $crmBookingUrl = '[CRM-EXPORT FEHLGESCHLAGEN]';
@ -195,7 +272,7 @@ class FewoBookingController extends Controller
} }
$this->get('mailer')->send(\Swift_Message::newInstance() $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') ->setFrom('stern@stern-tours.de', 'STERN TOURS')
->setTo($fewoBookingRequest->getEmail()) ->setTo($fewoBookingRequest->getEmail())
->setBody( ->setBody(
@ -204,9 +281,8 @@ class FewoBookingController extends Controller
'fewo_booking_request' => $fewoBookingRequest, 'fewo_booking_request' => $fewoBookingRequest,
'fewo_lodging' => $lodging, 'fewo_lodging' => $lodging,
'fewo_price' => $price, 'fewo_price' => $price,
//'booking_price_info' => $bookingPriceInfo, 'priceResult' => $priceResult,
//'travel_date' => $travelDate, 'isPossible' => $isPossible,
//'breadcrumb_entries' => $breadcrumbEntries,
]), ]),
'text/plain', 'utf-8' 'text/plain', 'utf-8'
) )
@ -217,6 +293,7 @@ class FewoBookingController extends Controller
->setSubject('FEWO-BUCHUNG: ' . $lodging->getName()) ->setSubject('FEWO-BUCHUNG: ' . $lodging->getName())
->setFrom('stern@stern-tours.de', 'STERN TOURS') ->setFrom('stern@stern-tours.de', 'STERN TOURS')
->setTo('stern@stern-tours.de') ->setTo('stern@stern-tours.de')
//->setTo('kevin@adametz.media')
->setBody( ->setBody(
$this->renderView('default/email/fewoBookingServiceEmail.txt.twig', [ $this->renderView('default/email/fewoBookingServiceEmail.txt.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir') . '/..') . DIRECTORY_SEPARATOR, 'base_dir' => realpath($this->getParameter('kernel.root_dir') . '/..') . DIRECTORY_SEPARATOR,
@ -225,15 +302,16 @@ class FewoBookingController extends Controller
'fewo_booking_request' => $fewoBookingRequest, 'fewo_booking_request' => $fewoBookingRequest,
'fewo_lodging' => $lodging, 'fewo_lodging' => $lodging,
'fewo_price' => $price, 'fewo_price' => $price,
//'booking_price_info' => $bookingPriceInfo, 'priceResult' => $priceResult,
//'travel_date' => $travelDate, 'isPossible' => $isPossible,
//'breadcrumb_entries' => $breadcrumbEntries,
]), ]),
'text/plain', 'utf-8' 'text/plain', 'utf-8'
) )
); );
return $this->render('default/pages/fewoBookingConfirmation.html.twig', [ return $this->render('default/pages/fewoBookingConfirmation.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR, 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $fewoTravelProgramPage, 'page' => $fewoTravelProgramPage,
@ -243,6 +321,8 @@ class FewoBookingController extends Controller
'total_price' => $totalPrice, 'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice, 'total_price_per_night' => $perDayTotalPrice,
'show_search_sidebar_widget' => false, 'show_search_sidebar_widget' => false,
'isPossible' => $isPossible,
'priceResult' => $priceResult,
]); ]);
} }
@ -257,10 +337,14 @@ class FewoBookingController extends Controller
'fewo_price' => $price, 'fewo_price' => $price,
'total_price' => $totalPrice, 'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice, 'total_price_per_night' => $perDayTotalPrice,
'allowed_to_dates' => implode(';', $allowedToDateStrs),
'page' => $fewoTravelProgramPage, 'page' => $fewoTravelProgramPage,
'show_search_sidebar_widget' => false, 'show_search_sidebar_widget' => false,
'lastSeason' => $lastSeason,
'reservationDays' => $reservationDays,
'classByDays' => $classByDays,
'terms_filename' => $this->getDoctrine()->getRepository('AppBundle:TravelOrganizer')->find(1)->getFileName(), '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, 'fewo_price' => $price,
'total_price' => $totalPrice, 'total_price' => $totalPrice,
'total_price_per_night' => $perDayTotalPrice, 'total_price_per_night' => $perDayTotalPrice,
'isPossible' => $isPossible,
'priceResult' => $priceResult,
]); ]);
} }
throw new \Exception('Unknown FewoBookingController action: '. $action); 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) public function calculatePrice(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice)
{ {
$result = $fewoLodging->getDeposit(); $result = $fewoLodging->getDeposit();

View file

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

View file

@ -35,11 +35,13 @@ class FewoLodging
/** /**
* @var \AppBundle\Entity\FewoLodgingGroup * @var \AppBundle\Entity\FewoLodgingGroup
* *
* @ORM\ManyToOne(targetEntity="FewoLodgingGroup") * @ORM\ManyToOne(targetEntity="FewoLodgingGroup", inversedBy="lodgings")
)
* @ORM\JoinColumns({ * @ORM\JoinColumns({
* @ORM\JoinColumn(name="group_id", referencedColumnName="id") * @ORM\JoinColumn(name="group_id", referencedColumnName="id")
* }) * })
*/ */
private $group; private $group;
/** /**
@ -523,6 +525,18 @@ class FewoLodging
return $this->prices; return $this->prices;
} }
/**
* Set Price
*
* @param \Doctrine\Common\Collections\Collection
*
* @return FewoLodging
*/
public function setPrices($prices)
{
$this->prices = $prices;
}
/** /**
* Get prices * Get prices
* *
@ -538,7 +552,29 @@ 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 * Add image

View file

@ -28,4 +28,20 @@ class FewoLodgingRepository extends \Doctrine\ORM\EntityRepository
return $qb->getQuery()->getOneOrNullResult(); 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 * @var \AppBundle\Entity\FewoPrice
* *
* @ORM\OneToMany(targetEntity="FewoPrice", mappedBy="season", cascade={"persist", "remove"}) * @ORM\OneToMany(targetEntity="FewoPrice", mappedBy="season", cascade={"persist", "remove"})
* @ORM\OrderBy({"fromDate" = "DESC"})
*/ */
private $prices; private $prices;

View file

@ -106,7 +106,8 @@ class PageRepository extends NestedTreeRepository
->where('node.status > 0') ->where('node.status > 0')
->andWhere('node.template = \'overview\'') ->andWhere('node.template = \'overview\'')
->andWhere('node.lvl = 0') ->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() ->getQuery()
->execute() ->execute()
; ;

View file

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

View file

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

View file

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

View file

@ -20,7 +20,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
parent::__construct($logger); 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); $lead = $this->createLead($fewoBookingRequest);
if ($lead === null) if ($lead === null)
@ -28,7 +28,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
$this->warn('Failed creating lead in CRM', $fewoBookingRequest, Logger::ERROR); $this->warn('Failed creating lead in CRM', $fewoBookingRequest, Logger::ERROR);
return false; 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) if ($bookingUrl === false)
{ {
$this->warn('Failed creating booking in CRM', $fewoBookingRequest, Logger::ERROR); $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->warn('Failed creating traveler in CRM.', $fewoBookingRequest);
} }
*/ */
$this->createNewDrafts($bookingUrl, $fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult);
return $bookingUrl; 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) private function createLead(FewoBookingRequest $fewoBookingRequest)
{ {
$resp = $this->httpPost('lead', ['lead' => [ $resp = $this->httpPost('lead', ['lead' => [
@ -88,15 +109,16 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
return null; 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' => [ $resp = $this->httpPost('booking', ['booking' => [
'booking_date' => (new \DateTime())->format('Y-m-d'), 'booking_date' => (new \DateTime())->format('Y-m-d'),
'customer_id' => $customerId, 'customer_id' => $customerId,
'lead_id' => $leadId, 'lead_id' => $leadId,
//'travel_country_id' => $tp->getTravelCountry(), 'travel_country_id' => 27,
//'travel_category_id' => $tp->getTravelCategory(), 'travel_category_id' => 7,
//'travelagenda_id' => $tp->getTravelAgenda(), 'travel_company_id' => 1,
'travelagenda_id' => 109,
'sf_guard_user_id' => self::API_USER_ID, 'sf_guard_user_id' => self::API_USER_ID,
'branch_id' => 4, 'branch_id' => 4,
'website_id' => self::WEBSITE_ID, 'website_id' => self::WEBSITE_ID,
@ -104,13 +126,15 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
'start_date' => $fewoBookingRequest->getFromDate()->format('Y-m-d'), // required 'start_date' => $fewoBookingRequest->getFromDate()->format('Y-m-d'), // required
'end_date' => $fewoBookingRequest->getToDate()->format('Y-m-d'), // required 'end_date' => $fewoBookingRequest->getToDate()->format('Y-m-d'), // required
'pax' => $fewoBookingRequest->getTravelerCount(), 'pax' => $fewoBookingRequest->getTravelerCount(),
'travel_number' => substr($lodging->getName()." - ".$price->getSeason()->getName(), 0, 30), 'travel_number' => substr($price->getSeason()->getName(), 0, 30),
'price' => $fewoBookingRequest->getTotalPrice(), 'price' => $priceResult['total'],
'price_total' => $priceResult['total_price'],
'participant_salutation_id' => $fewoBookingRequest->getSalutation(), 'participant_salutation_id' => $fewoBookingRequest->getSalutation(),
'participant_name' => $fewoBookingRequest->getLastName(), 'participant_name' => $fewoBookingRequest->getLastName(),
'participant_firstname' => $fewoBookingRequest->getFirstName(), 'participant_firstname' => $fewoBookingRequest->getFirstName(),
//'participant_birthdate' => $bookingRequest->getTravelers()[0]->getBirthDate(), //'participant_birthdate' => $bookingRequest->getTravelers()[0]->getBirthDate(),
'new_drafts' => true,
]]); ]]);
if (!$resp['success']) if (!$resp['success'])

View file

@ -16,8 +16,9 @@ abstract class SternToursCrmExporter
const API_URL_LOCAL = 'http://cms-stern-tours.local/api'; 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_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_v3_URL = 'https://mein.sterntours.de/';
const API_KEY = 'f6077389c9ce710e554763a5de02c8ec'; const API_KEY = 'f6077389c9ce710e554763a5de02c8ec';
@ -82,7 +83,6 @@ abstract class SternToursCrmExporter
$baseUrl = self::API_v3_URL_LOCAL.'api/'; $baseUrl = self::API_v3_URL_LOCAL.'api/';
} }
$data = array( $data = array(
'email' => self::API_v3_MAIL, 'email' => self::API_v3_MAIL,
'password' => self::API_v3_PASS, 'password' => self::API_v3_PASS,
@ -98,9 +98,7 @@ abstract class SternToursCrmExporter
$result = curl_exec($ch); $result = curl_exec($ch);
$r = json_decode($result); $r = json_decode($result);
if($r->success) { if($r->success) {
if($action == 'create_drafts'){
//api URL //api URL
$data = json_encode($postData); $data = json_encode($postData);
@ -108,7 +106,7 @@ abstract class SternToursCrmExporter
curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 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_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); $result = curl_exec($ch);
$r = json_decode($result); $r = json_decode($result);
// var_dump($r); // var_dump($r);
@ -116,7 +114,7 @@ abstract class SternToursCrmExporter
curl_close($ch); curl_close($ch);
return $r->success; return $r->success;
} }
}
} }
return $ret; return $ret;

View file

@ -55,11 +55,13 @@ class FewoBookingRequestType extends AbstractType
'lodging' => null, 'lodging' => null,
'maxPersons' => null, 'maxPersons' => null,
'toDate' => null, 'toDate' => null,
'fromDate' => null,
'data_class' => 'AppBundle\Entity\FewoBookingRequest', 'data_class' => 'AppBundle\Entity\FewoBookingRequest',
]); ]);
$resolver->setAllowedTypes('lodging', ['AppBundle\Entity\FewoLodging']); $resolver->setAllowedTypes('lodging', ['AppBundle\Entity\FewoLodging']);
$resolver->setAllowedTypes('toDate', ['string', 'NULL']); $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) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$maxPersons = $options['maxPersons']; $maxPersons = $options['maxPersons'];
$fromDate= $options['fromDate'];
$toDate = $options['toDate']; $toDate = $options['toDate'];
$fromDateDateTime = new \DateTime($fromDate);
$toDateDateTime = new \DateTime($toDate); $toDateDateTime = new \DateTime($toDate);
$TRAVELERS_CHOICES = [ $TRAVELERS_CHOICES = [
'1' => 1, '1' => 1,
]; ];
@ -86,11 +91,23 @@ class FewoBookingRequestType extends AbstractType
} }
$builder $builder
->add('toDate', StDateType::class, [ ->add('fromDate', StDateType::class, [
//options //options
//'widget' => 'single_text', "attr" => array(
'data' => $toDateDateTime, "class" => "form-control",
'format' => 'd.M.y' '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, [ ->add('travelerCount', ChoiceType::class, [
'choices' => $TRAVELERS_CHOICES, 'choices' => $TRAVELERS_CHOICES,
@ -132,9 +149,9 @@ class FewoBookingRequestType extends AbstractType
] ]
]) ])
->add('notes', TextareaType::class, ['required' => false]) ->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('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, [ ->add('description', null, [
'required' => true, 'required' => true,
'attr' => array('rows' => '7')
]) ])
->add('equipment', null, [ ->add('equipment', null, [
'required' => true, 'required' => true,
'attr' => array('rows' => '7')
]) ])
->add('adress1', null, [ ->add('adress1', null, [
'required' => true, 'required' => true,

View file

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

View file

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

View file

@ -381,6 +381,7 @@ a,
-webkit-border-radius: 120px; -webkit-border-radius: 120px;
-moz-border-radius: 120px; -moz-border-radius: 120px;
border-radius: 120px; border-radius: 120px;
border:1px solid #fff !important;
} }
.btn-white.btn-normal, .btn-white.btn-normal,
.btn-default.btn-normal, .btn-default.btn-normal,
@ -396,7 +397,7 @@ a,
font-size: 15px !important; font-size: 15px !important;
height: 50px !important; height: 50px !important;
line-height: 20px; line-height: 20px;
padding: 16px 45px !important; padding: 16px 35px !important;
} }
.btn-default.btn-sm, .btn-default.btn-sm,
.btn-primary.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); box-shadow: 0px 0px 8px 5px rgba(255, 255, 255, 0.4);
} }
.btn-over-slider-bottom { .btn-over-slider-bottom {
top: 280px !important; top: 270px !important;
} }
.st-slider-booking-btn-bottom { .btn-primary.btn-sm.st-slider-booking-btn-bottom {
background-color: #777777 !important; text-transform: none;
font-size: 15px!important;
} }
.price-over-slider { .price-over-slider {
position: absolute; position: absolute;
@ -2116,7 +2118,7 @@ body.modal-open {
.fullscreen { .fullscreen {
width: 100%; width: 100%;
min-height: 100%; min-height: 100%;
padding-top: 150px; padding-top: 145px;
} }
.section.padding-top-20 { .section.padding-top-20 {
padding-top: 20px; padding-top: 20px;
@ -2197,7 +2199,7 @@ body.modal-open {
width: 12px; width: 12px;
height: 12px; height: 12px;
} }
.carousel.fewo .carousel-indicators { .carousel .carousel-indicators {
bottom: 0px; bottom: 0px;
} }
.start-slider { .start-slider {
@ -2230,8 +2232,8 @@ body.modal-open {
top: 49px; top: 49px;
} }
.carousel-indicators li { .carousel-indicators li {
width: 26px; width: 18px;
height: 26px; height: 18px;
background-color: #fff; background-color: #fff;
border: 1px solid #ffc926; border: 1px solid #ffc926;
border-radius: 50%; border-radius: 50%;
@ -2239,12 +2241,10 @@ body.modal-open {
} }
.carousel-indicators li:hover, .carousel-indicators li:hover,
.carousel-indicators .active { .carousel-indicators .active {
width: 26px; width: 18px;
height: 26px; height: 18px;
background-color: #ffc926; background-color: #ffc926;
border: 1px solid #fff; border: 1px solid #fff;
border-radius: 50%;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.4);
} }
a.carousel-control .glyphicon { a.carousel-control .glyphicon {
color: #ffc926; color: #ffc926;
@ -2256,7 +2256,6 @@ a.carousel-control .glyphicon {
} }
.px-bullets { .px-bullets {
position: absolute; position: absolute;
bottom: 20px;
right: 50%; right: 50%;
bottom: -20px; bottom: -20px;
} }
@ -2421,12 +2420,13 @@ i {
display: -moz-box; display: -moz-box;
overflow-x: hidden; overflow-x: hidden;
} }
#content section .nav-tabs .fa { #content section .nav-tabs .fa {
color: #ffd659; color: #ffd659;
padding-bottom: 3px; padding-bottom: 3px;
} }
#content section .nav-tabs > li > a { #content section .nav-tabs > li > a {
margin-right: 2px; margin-right: 0px;
line-height: 1.42857143; line-height: 1.42857143;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 0; border-radius: 0;
@ -2434,19 +2434,33 @@ i {
background-color: #c3c3c3; background-color: #c3c3c3;
font-weight: 600; font-weight: 600;
white-space: nowrap; white-space: nowrap;
padding: 10px 10px; padding: 10px 12px 10px 50px;
cursor: pointer; 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,
#content section .nav-tabs > li.active > a:hover, #content section .nav-tabs > li.active > a:hover,
#content section .nav-tabs > li.active > a:focus, #content section .nav-tabs > li.active > a:focus,
#content section .nav-tabs > li > a:hover, #content section .nav-tabs > li > a:hover,
#content section .nav-tabs > li > a:focus { #content section .nav-tabs > li > a:focus {
color: #fff; color: #1a457c;
background-color: #ffc926; background-color: #ffc926;
border: 1px solid #ddd; border: 1px solid #ffc926;
border-bottom-color: transparent; border-bottom-color: transparent;
cursor: pointer; 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 .fa,
#content section .nav-tabs > li.active > a:hover .fa, #content section .nav-tabs > li.active > a:hover .fa,
@ -2464,7 +2478,197 @@ i {
#content section .scroller-left-nav-tabs { #content section .scroller-left-nav-tabs {
display: none; 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 { #content section .scroller-nav-tabs {
display: block; display: block;
text-align: center; text-align: center;
@ -2507,6 +2711,7 @@ i {
width: auto; width: auto;
} }
} }
*/
.result-wrapper .table { .result-wrapper .table {
font-size: .9em; font-size: .9em;
} }
@ -3383,7 +3588,7 @@ footer.clearfix {
#sidebar .widget { #sidebar .widget {
position: relative; position: relative;
display: block; display: block;
margin-bottom: 40px; margin-bottom: 20px;
} }
#sidebar ul { #sidebar ul {
padding: 0; padding: 0;
@ -3403,22 +3608,50 @@ footer.clearfix {
display: none; display: none;
content: ""; 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 { #sidebar .widget a.collapse-widget {
color: #777777; color: #777777;
font-size: 20px;
} }
#sidebar .widget a.collapse-widget::before { #sidebar .widget a.collapse-widget::before {
display: inline-block; display: inline-block;
font-family: FontAwesome; font-family: FontAwesome;
content: "\f106"; content: "\f106";
padding: 6px 10px 0 0; padding:0 6px 0 6px;
font-size: 32px; font-size: 28px;
color: #ffc926; color: #ffc926;
vertical-align: bottom;
} }
#sidebar .widget a.collapse-widget.collapsed::before { #sidebar .widget a.collapse-widget.collapsed::before {
display: inline-block; display: inline-block;
content: "\f107"; 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,
#sidebar .widget .hl5 a { #sidebar .widget .hl5 a {
@ -3435,7 +3668,8 @@ footer.clearfix {
#sidebar .widget .boxwidget { #sidebar .widget .boxwidget {
text-align: center; text-align: center;
margin: 0 auto; margin: 0 auto;
padding-bottom: 20px; padding-bottom: 0px;
overflow-x: hidden;
} }
#sidebar .widget .searchwidget { #sidebar .widget .searchwidget {
background-color: #eaeaea; background-color: #eaeaea;
@ -3455,6 +3689,13 @@ footer.clearfix {
padding-left: 8px; padding-left: 8px;
font-size: 18px; font-size: 18px;
} }
#sidebar .widget .searchwidget {
margin-bottom: 10px;
}
#sidebar .widget .boxwidget {
margin-bottom: 10px;
}
#sidebar .widget .newswidget { #sidebar .widget .newswidget {
border-bottom: 1px solid #777777; border-bottom: 1px solid #777777;
padding-bottom: 10px; padding-bottom: 10px;
@ -3576,22 +3817,7 @@ footer.clearfix {
width: 94%; width: 94%;
padding: 0 0 0 0; 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 14) COLOR SCHEMES
=============================================================== ===============================================================
@ -3941,16 +4167,16 @@ a,
margin-right: -30px; margin-right: -30px;
} }
.btn-over-slider { .btn-over-slider {
top: 110px; top: 80px;
} }
.btn-over-slider-bottom { .btn-over-slider-bottom {
top: 320px; top: 320px;
} }
.st-slider-booking-btn-bottom { .st-slider-booking-btn-bottom {
background-color: #777777 !important;
} }
.price-over-slider { .price-over-slider {
top: 115px; top: 85px;
} }
#sidebar #side-navigation .side-menu { #sidebar #side-navigation .side-menu {
width: 100%; width: 100%;
@ -4115,7 +4341,7 @@ a,
width: 18px; width: 18px;
height: 18px; height: 18px;
left: 0; left: 0;
top: 3px; top: 0px;
margin-left: -20px; margin-left: -20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 3px; border-radius: 3px;
@ -4130,10 +4356,10 @@ a,
width: 16px; width: 16px;
height: 16px; height: 16px;
left: 0; left: 0;
top: 0; top: -2px;
margin-left: -20px; margin-left: -20px;
padding-left: 3px; padding-left: 3px;
padding-top: 1px; padding-top: 0;
font-size: 11px; font-size: 11px;
color: #555555; color: #555555;
} }
@ -5892,12 +6118,13 @@ input[type="radio"] .styled:checked + label::after {
} }
.boxwidget .video-wrap { .boxwidget .video-wrap {
height: 180px; height: 220px;
} }
} }
.bootstrap-select .dropdown-toggle .filter-option { .bootstrap-select .dropdown-toggle .filter-option {
overflow: hidden; overflow: hidden;
white-space: nowrap;
} }
@ -5911,7 +6138,6 @@ input[type="radio"] .styled:checked + label::after {
transform: translate(0%, -50%); transform: translate(0%, -50%);
text-align: center; text-align: center;
z-index: 10; z-index: 10;
} }
.u-icon-v3 { .u-icon-v3 {
@ -5923,7 +6149,6 @@ input[type="radio"] .styled:checked + label::after {
font-size: 1rem; font-size: 1rem;
line-height: 1.2rem; line-height: 1.2rem;
font-weight: 500; font-weight: 500;
display: inline-block; display: inline-block;
padding: 10px 15px; padding: 10px 15px;
-webkit-transition: all .2s ease-in-out; -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); -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); -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); box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.5);
} }
.u-icon-v3 i { .u-icon-v3 i {
position: relative; position: relative;
display: inline-block; display: inline-block;
z-index: 12; z-index: 12;
} }
.u-icon-v3:hover { .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); -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); -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); box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5);
} }
.content-pane .h3l { .content-pane .h3l {
padding-bottom: 10px; padding-bottom: 10px;
@ -5992,3 +6214,434 @@ hr.primary {
height: 100%; height: 100%;
border: 0; 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; border-radius: 0;
cursor: not-allowed; 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 { .daterangepicker td.calendar-day-reservation-begin {
background-color: #f0bcbc; background-color: #f0bcbc;
background: -moz-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%, #f0faf0), color-stop(49%, #f0faf0), color-stop(50%, #f0bcbc), color-stop(100%, #f0bcbc)); 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, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%); background: -webkit-linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
background: -o-linear-gradient(to bottom right, #f0faf0 0%, #f0faf0 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, #f0faf0 0%, #f0faf0 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, #f0faf0 0%, #f0faf0 49%, #f0bcbc 50%, #f0bcbc 100%); background: linear-gradient(to bottom right, #E6F0E6 0%, #E6F0E6 49%, #f0bcbc 50%, #f0bcbc 100%);
border-radius: 0; border-radius: 0;
} }
.daterangepicker td.calendar-day-reservation-end { .daterangepicker td.calendar-day-reservation-end {
background-color: #f2f2f2; background-color: #E6F0E6;
background: -moz-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #deebde 50%, #deebde 100%); 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%, #deebde), color-stop(100%, #deebde)); 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%, #deebde 50%, #deebde 100%); 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%, #deebde 50%, #deebde 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%, #deebde 50%, #deebde 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%, #deebde 50%, #deebde 100%); background: linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #E6F0E6 50%, #E6F0E6 100%);
border-radius: 0; border-radius: 0;
} }
.daterangepicker td.calendar-day-disabled-half-booked { .daterangepicker td.calendar-day-disabled-half-booked, .daterangepicker td.calendar-day-disabled-half {
background-color: #f2f2f2; 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: -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-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: -webkit-linear-gradient(to bottom right, #f0bcbc 0%, #f0bcbc 49%, #bcd7be 50%, #bcd7be 100%);
@ -249,27 +256,78 @@
border-radius: 0; 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%);
.daterangepicker td.off, .daterangepicker td.off:hover { background: -ms-linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background: none !important; background: linear-gradient(to bottom right, #bcd7be 0%, #bcd7be 49%, #f0bcbc 50%, #f0bcbc 100%);
background-color: #fff !important; border-radius: 0;
color: #fff !important;
cursor: not-allowed;
} }
.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; cursor: not-allowed;
text-decoration: none; text-decoration: none;
background-color: #f0bcbc !important; background-color: #f0bcbc !important;
border-radius: 0px; 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 { .daterangepicker td.in-range {
background-color: rgba(88, 155, 92, 0.70) !important; background-color: rgba(88, 155, 92, 0.70) !important;
@ -277,11 +335,6 @@
color: #000; color: #000;
border-radius: 0; 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 { .daterangepicker td.start-date {
border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;
@ -293,7 +346,6 @@
.daterangepicker select.monthselect, .daterangepicker select.yearselect { .daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px; font-size: 12px;
padding: 1px; padding: 1px;
@ -456,3 +508,6 @@
float: right; } float: right; }
.daterangepicker .drp-calendar.left { .daterangepicker .drp-calendar.left {
clear: none !important; } } 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) { @media only screen and (max-width: 767px) {
#sidebar .widget { #sidebar .widget {
margin-bottom: 0px; margin-bottom: 5px;
} }
#topMain.nav-pills>li>a.dropdown-toggle:after { #topMain.nav-pills>li>a.dropdown-toggle:after {
display: block; display: block;

View file

@ -10,3 +10,6 @@
@import (inline) './cookieconsent.min.css'; @import (inline) './cookieconsent.min.css';
@import (inline) './custom.css'; @import (inline) './custom.css';
@import (inline) './header-min.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,5 +1,6 @@
$(document).ready(function () { $(document).ready(function () {
var frm$ = $('.st-booking-form'); var frm$ = $('.st-booking-form');
var summary$ = $('.st-booking-summary'); var summary$ = $('.st-booking-summary');
@ -18,8 +19,68 @@ $(document).ready(function() {
extraBookingDaysBefore extraBookingDaysBefore
extraBookingDaysAfter 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 travelers$ = $('.st-traveler');
var travelerFields$ = travelers$.find('input,select,checkbox'); var travelerFields$ = travelers$.find('input,select,checkbox');
@ -29,8 +90,7 @@ $(document).ready(function() {
var tmp2 = tmp[0].split('/'); var tmp2 = tmp[0].split('/');
tmp2.pop(); tmp2.pop();
var url = tmp2.join('/') + '/berechne-gesamtpreis'; var url = tmp2.join('/') + '/berechne-gesamtpreis';
if (tmp[1]) if (tmp[1]) {
{
url += '?' + tmp[1]; url += '?' + tmp[1];
} }
$.ajax({ $.ajax({
@ -57,12 +117,9 @@ $(document).ready(function() {
$('#no_flight_time').hide(); $('#no_flight_time').hide();
$('#yes_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; return;
} }if ($('#flight_time_' + $(this).val()).length) {
console.log($('#flight_time_'+$(this).val()).length);
if($('#flight_time_'+$(this).val()).length){
$('#flight_time_' + $(this).val()).show(); $('#flight_time_' + $(this).val()).show();
$('#yes_flight_time').show(); $('#yes_flight_time').show();
} else { } else {
@ -74,14 +131,16 @@ $(document).ready(function() {
function updateNationality(ele) { function updateNationality(ele) {
var obj = ele.parents('.nationality_select').data('toggle'); var obj = ele.parents('.nationality_select').data('toggle');
if (ele.val()) { if (ele.val()) {
var values = $("input[name='travel_program_countries_id[]']").map(function(){return $(this).val();}).get(); var values = $("input[name='travel_program_countries_id[]']").map(function () {
return $(this).val();
}).get();
console.log(values);
var tmp = location.href.split('?'); var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/'); var tmp2 = tmp[0].split('/');
tmp2.pop(); tmp2.pop();
var url = tmp2.join('/') + '/show_nationality_country_text'; var url = tmp2.join('/') + '/show_nationality_country_text';
if (tmp[1]) if (tmp[1]) {
{
url += '?' + tmp[1]; url += '?' + tmp[1];
} }
@ -116,6 +175,7 @@ $(document).ready(function() {
updateNationality($(this)); updateNationality($(this));
}); });
} }
updateAllNationality(); updateAllNationality();
@ -151,9 +211,7 @@ $(document).ready(function() {
$('.booking_insurance_toogle').on('shown.bs.collapse', toggleChevronIn); $('.booking_insurance_toogle').on('shown.bs.collapse', toggleChevronIn);
function updateTravelers() {
function updateTravelers()
{
var travelersIndex = 1; var travelersIndex = 1;
var singleTravelerCount = parseInt(roomCountSR$.val()); var singleTravelerCount = parseInt(roomCountSR$.val());
@ -173,10 +231,8 @@ $(document).ready(function() {
var $offset = 1; var $offset = 1;
//single //single
if(singleTravelerCount > 0) if (singleTravelerCount > 0) {
{ for (var i = $offset; i <= singleTravelerCount; i++) {
for(var i = $offset; i <= singleTravelerCount; i++)
{
var travelerSelector = '.st-traveler-' + 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"); //var currentRoomIndex = $(travelerSelector).attr("data-room-index");
@ -189,10 +245,8 @@ $(document).ready(function() {
$offset = $offset + parseInt(roomCountSR$.find('option').length) - 1; $offset = $offset + parseInt(roomCountSR$.find('option').length) - 1;
//4 next 5 //4 next 5
if(singleTravelerChildCount > 0) if (singleTravelerChildCount > 0) {
{ for (var i = $offset; i < singleTravelerChildCount + $offset; i++) {
for(var i = $offset; i < singleTravelerChildCount + $offset; i++)
{
var travelerSelector = '.st-traveler-' + 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"); //var currentRoomIndex = $(travelerSelector).attr("data-room-index");
@ -213,12 +267,10 @@ $(document).ready(function() {
//double //double
$offset = $offset + (parseInt(roomChildCountSR$.find('option').length) - 1) * 2; $offset = $offset + (parseInt(roomChildCountSR$.find('option').length) - 1) * 2;
//4 + 4*2 next 13 //4 + 4*2 next 13
if(doubleTravelerCount > 0) if (doubleTravelerCount > 0) {
{
$m = 1; $m = 1;
for(var i = $offset; i < doubleTravelerCount + $offset; i++) for (var i = $offset; i < doubleTravelerCount + $offset; i++) {
{
var travelerSelector = '.st-traveler-' + 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"); // var currentRoomIndex = $(travelerSelector).attr("data-room-index");
@ -234,11 +286,9 @@ $(document).ready(function() {
//double + child //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 //12 + 3*2 next 19
if(doubleTravelerChildCount > 0) if (doubleTravelerChildCount > 0) {
{
$m = 1; $m = 1;
for(var i = $offset; i < doubleTravelerChildCount + $offset; i++) for (var i = $offset; i < doubleTravelerChildCount + $offset; i++) {
{
var travelerSelector = '.st-traveler-' + 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"); //var currentRoomIndex = $(travelerSelector).attr("data-room-index");
@ -263,11 +313,9 @@ $(document).ready(function() {
//triple //triple
$offset = $offset + (parseInt(roomChildCountDR$.find('option').length) - 1) * 3; $offset = $offset + (parseInt(roomChildCountDR$.find('option').length) - 1) * 3;
//18 + 3*3 next 28 //18 + 3*3 next 28
if(tripleTravelerCount > 0) if (tripleTravelerCount > 0) {
{
$m = 1; $m = 1;
for(var i = $offset; i < tripleTravelerCount + $offset; i++) for (var i = $offset; i < tripleTravelerCount + $offset; i++) {
{
var travelerSelector = '.st-traveler-' + 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"); //var currentRoomIndex = $(travelerSelector).attr("data-room-index");
@ -284,11 +332,9 @@ $(document).ready(function() {
//triple + child //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 //27 + 2*3 next 34
if(tripleTravelerChildCount > 0) if (tripleTravelerChildCount > 0) {
{
$m = 1; $m = 1;
for(var i = $offset; i < tripleTravelerChildCount + $offset; i++) for (var i = $offset; i < tripleTravelerChildCount + $offset; i++) {
{
var travelerSelector = '.st-traveler-' + 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"); //var currentRoomIndex = $(travelerSelector).attr("data-room-index");

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'); jQuery('body').removeClass('no-js');
@ -117,12 +166,8 @@ jQuery("#topMain a.dropdown-toggle").bind("click", function(e) {
return true; 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($) { jQuery(document).ready(function($) {
"use strict"; "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 --> nav-tabs -->
=============================================== */ =============================================== */
/*
var scrollBarWidths = 40; var scrollBarWidths = 40;
var windowW = $(window).width(); var windowW = $(window).width();
@ -392,6 +382,8 @@ jQuery(document).ready(function($) {
}); });
*/
/* ============================================== /* ==============================================
MENU HOVER --> MENU HOVER -->
=============================================== */ =============================================== */
@ -443,12 +435,11 @@ jQuery(document).ready(function($) {
$('.tab-pane').removeClass('active'); $('.tab-pane').removeClass('active');
$('.tab-pane'+href).addClass('active'); $('.tab-pane'+href).addClass('active');
if($(this).parents('.nav-tabs-bottom').length){ if($('#position-scroll-tab').length){
$('html, body').animate({ $('html, body').animate({
scrollTop: ($(".content-copy").offset().top + 200) scrollTop: ($("#position-scroll-tab").offset().top - 220)
}, 500); }, 500);
} }
}); });
/* ============================================== /* ==============================================
@ -466,7 +457,6 @@ jQuery(document).ready(function($) {
=============================================== */ =============================================== */
function toggleChevron(e) { function toggleChevron(e) {
console.log(e.target);
var $i = $(e.target) var $i = $(e.target)
.parent('.panel-group') .parent('.panel-group')
.find("i.indicator"); .find("i.indicator");
@ -484,7 +474,6 @@ jQuery(document).ready(function($) {
$('#accordion').on('shown.bs.collapse', toggleChevron); $('#accordion').on('shown.bs.collapse', toggleChevron);
function toggleChevron2(e) { function toggleChevron2(e) {
console.log(e.target);
var $i = $(e.target) var $i = $(e.target)
.parent('.panel-group') .parent('.panel-group')
.find("i.indicator"); .find("i.indicator");
@ -502,7 +491,6 @@ jQuery(document).ready(function($) {
$('#accordion_pd').on('shown.bs.collapse', toggleChevron2); $('#accordion_pd').on('shown.bs.collapse', toggleChevron2);
function toggleChevron3(e) { function toggleChevron3(e) {
console.log(e.target);
var $i = $(e.target) var $i = $(e.target)
.parent('.panel-group') .parent('.panel-group')
.find("i.indicator"); .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 toDateMonth$ = $('#fewo_booking_request_toDate_month');
var toDateYear$ = $('#fewo_booking_request_toDate_year'); var toDateYear$ = $('#fewo_booking_request_toDate_year');
frm$.find('input, select').change(function() {
function loadCalculationFewo(){
var tmp = location.href.split('?'); var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/'); var tmp2 = tmp[0].split('/');
tmp2.pop(); tmp2.pop();
@ -16,7 +17,6 @@ $(document).ready(function() {
{ {
url += '?'+ tmp[1]; url += '?'+ tmp[1];
} }
$.ajax({ $.ajax({
url: url, url: url,
type: 'post', type: 'post',
@ -27,6 +27,117 @@ $(document).ready(function() {
}, function() { }, function() {
summary$.html('Aufgrund eines Fehlers konnte kein Angebot ermittelt werden.'); 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->setIsReservationEnd(false);
$day->setIsEmpty(true); $day->setIsEmpty(true);
$day->setIsPastDate(false); $day->setIsPastDate(false);
$day->setIsBookableEnd(false);
$data[] = $day; $data[] = $day;
} }
@ -96,6 +99,9 @@ class LodgingCalendarService
$day->setIsReservationBegin(false); $day->setIsReservationBegin(false);
$day->setIsReservationEnd(false); $day->setIsReservationEnd(false);
$day->setIsEmpty(false); $day->setIsEmpty(false);
$day->setIsBookableEnd(false);
if($datetime < $now){ if($datetime < $now){
$day->setIsPastDate(true); $day->setIsPastDate(true);
}else{ }else{
@ -117,6 +123,9 @@ class LodgingCalendarService
$day->setIsReservationEnd(false); $day->setIsReservationEnd(false);
$day->setIsEmpty(true); $day->setIsEmpty(true);
$day->setIsPastDate(false); $day->setIsPastDate(false);
$day->setIsBookableEnd(false);
$data[] = $day; $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){ public function calendarAndFillDayStates($paddedCalendar, FewoLodging $lodging){
$startMonth = array_values($paddedCalendar)[0]['monthNumber']; $startMonth = array_values($paddedCalendar)[0]['monthNumber'];
@ -760,53 +851,15 @@ class LodgingCalendarService
$currDay->setIsBookable(false); $currDay->setIsBookable(false);
} }
//check for the min sty days. //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 ($currDay->getIsReservationBegin() == true) {
if(!empty($checkDay->getPrice())){ $this->checkDatesBeforeReservationBegin($paddedCalendar, $currDay, $season);
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);
}
}
} }
} }
} }
}
//$season is end //$season is end
} }
return $paddedCalendar; return $paddedCalendar;

View file

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

View file

@ -57,14 +57,15 @@ class FewoBookingRequestValidator extends ConstraintValidator
$timeDiff = date_diff($fromDate, $toDate); $timeDiff = date_diff($fromDate, $toDate);
$numberDays = $timeDiff->days; $numberDays = $timeDiff->days;
$withinSeason = false; $withinSeason = true;
$alreadyReserved = false; $alreadyReserved = false;
if($fromDate >= $season->getFromDate() /* if($fromDate >= $season->getFromDate()
&& $toDate <= $season->getToDate()) && $toDate <= $season->getToDate())
{ {
$withinSeason = true; $withinSeason = true;
} }
*/
/** @var FewoReservation $reservation */ /** @var FewoReservation $reservation */
foreach($reservations as $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); header("Location:".$url, true, 301);
exit; exit;
/*
$url = "http://sterntours.local/tt-suche?".str_replace("/travelsearch.php?", "", $_SERVER['REQUEST_URI']);
header("Location:".$url, true, 301);
exit;
*/
/* /*