CSS Template Anpassungen

Bullets weiter einrücken
Silder Höhen anpassen
.form-inline .dropdown margin bottom
h1 in Templates ändern.
bower.json
Button Text vertical middle (span table-cell)
Box Höhe auch wenn kein Text mit fester Höhe.
confirm Booking Seite angelegt.
Bug BookingRequestValidator //use AppBundle\Entity\BookingRequest;
Slider Austausch Bilder

git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3310 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
adametz 2017-02-28 17:12:19 +00:00
parent c516e2967d
commit 55645fce16
21 changed files with 353 additions and 35 deletions

View file

@ -89,7 +89,7 @@
{{ render(controller('AppBundle:Component:header')) }}
{% block header2 %}
<section class="section fullscreen background parallax" style="background-image:url('/bundles/app/images/travel/header-top-image3.jpg');" data-img-width="1920" data-img-height="820" data-diff="480">
<section class="section fullscreen background parallax" style="background-image:url('/bundles/app/images/travel/header-top-image3.jpg');" data-img-width="1920" data-img-height="820" data-diff="680">
<div class="container">
<div class="row">

View file

@ -28,16 +28,25 @@
<div class="carousel-inner">
<div class="item active">
<!-- Set the first background image using inline CSS below. -->
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image.jpg');"></div>
<div class="fill" style="background-image:url('/bundles/app/images/travel/slider_aegypten.jpg');"></div>
</div>
<div class="item">
<!-- Set the second background image using inline CSS below. -->
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image1.jpg');"></div>
<div class="fill" style="background-image:url('/bundles/app/images/travel/slider_felsendom.jpg');"></div>
</div>
<div class="item">
<!-- Set the third background image using inline CSS below. -->
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image2.jpg');"></div>
<div class="fill" style="background-image:url('/bundles/app/images/travel/slider_petra.jpg');"></div>
</div>
<div class="item">
<!-- Set the third background image using inline CSS below. -->
<div class="fill" style="background-image:url('/bundles/app/images/travel/slider_strandkorb.jpg');"></div>
</div>
<div class="item">
<!-- Set the third background image using inline CSS below. -->
<div class="fill" style="background-image:url('/bundles/app/images/travel/slider_usedom.jpg');"></div>
</div>
</div>
</div>
</section><!-- end section -->

View file

@ -26,7 +26,7 @@
</div>
<a class="item-button is-box-link" href="{{ page.urlPath }}">ansehen</a>
<a class="item-button is-box-link dobble_line" href="{{ page.urlPath }}"><span>ansehen</span></a>
</div>

View file

@ -23,7 +23,7 @@
<p>{{ child_page.boxBody ?? child_page.description }}</p>
</div>
<a class="item-button is-box-link dobble_line" href="{{ child_page.urlPath }}" title="{{ child_page.title }}">
{{ child_page.title }}
<span>{{ child_page.title }}</span>
</a>
</div>
</div>

View file

@ -3,9 +3,247 @@
{% block canonical_tag %}{% endblock %}
{% block body %}
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
<p>
<a href="/">Zurück zur Startseite</a>
</p>
<section class="clearfix">
<div class="content-copy">
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
<div class="pull-right">
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
</div>
<div class="clearfix"></div>
<h2 style="margin-top:10px">{{ travel_program.title }}</h2>
<div id="booking_form" class="booking_form">
<form class="st-booking-form" method="post">
<div id="message"></div>
<div class="form-box">
<div class="table-responsive" id="no-more-tables_first">
<table class="table first-table">
<tbody>
<tr>
<td>Reiseprogramm</td>
<td>
{{ travel_program.title }}
{#<br class="visible-xs"><a href="#" data-toggle="modal" data-target="#myModal">(Reisebeschreibung aufrufen)</a>#}
</td>
</tr>
<tr>
<td>Kategorie</td>
<td>Standard {# #TODO #}</td>
</tr>
<tr>
<td>Reisezeitraum</td>
<td>{{ booking.selectedStartDate|date }} - {{ booking.selectedEndDate|date }}</td>
</tr>
<tr>
<td>Abflugort</td>
<td>
{{ booking.selectedDeparture.name }}
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-xs-12">
<div class="panel">
<div class="panel-body">
<h3>Ihr gewähltes Angebot</h3>
<div class="st-booking-summary">
{% include 'default/components/booking/summary.html.twig' with {
'summary': summary,
'total_price': total_price
} %}
</div>
</div>
</div>
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseleistungen</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2">
<div class="panel-group" id="accordion">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="true">
<h3><span>Reiseleistungen einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
</a>
<div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body">
<h3>Eingeschlossene Leistungen</h3>
<ul class="c1">
{% for travel_program_service in travel_program.included|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
<li>{{ travel_program_service|raw }}</li>
{% endfor %}
</ul>
<h3>Nicht eingeschlossene / zubuchbare Leistungen</h3>
<ul class="c1">
{% for travel_program_service in travel_program.excluded|split('\n') %}
<li>{{ travel_program_service|raw }}</li>
{% endfor %}
</ul>
<h3>Hinweise</h3>
<ul class="c1">
{% for travel_program_service in travel_program.advices|split('\n') %}
<li>{{ travel_program_service|raw }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div><!-- accordion -->
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseanmelder</h5>
</div>
<div class="table-responsive" id="no-more-tables_first">
<table class="table first-table">
<tbody>
<tr>
<td>Anrede</td>
<td>{{ booking.salutation }}</td>
</tr>
<tr>
<td>Vorname</td>
<td>{{ booking.firstName }}</td>
</tr>
<tr>
<td>Nachname</td>
<td>{{ booking.lastName }}</td>
</tr>
<tr>
<td>Vorname</td>
<td>{{ booking.firstName }}</td>
</tr>
<tr>
<td>Straße, Hausnummer</td>
<td>{{ booking.street }} {{ booking.houseNr }}</td>
</tr>
<tr>
<td>PLZ</td>
<td>{{ booking.zipCode }}</td>
</tr>
<tr>
<td>Ort</td>
<td>{{ booking.city }}</td>
</tr>
<tr>
<td>Land</td>
<td>{{ booking.country }}</td>
</tr>
<tr>
<td>Telefon tagsüber</td>
<td>{{ booking.phone }}</td>
</tr>
<tr>
<td>Fax (optional)</td>
<td>{{ booking.fax }}</td>
</tr>
<tr>
<td>E-Mail-Adresse</td>
<td>{{ booking.mail }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseteilnehmer</h5>
<p>Bitte geben Sie Ihre Vornamen und Nachnamen in die beiden Felder "Vornamen" und "Nachnamen" ein, wie diese im maschinenlesbaren Teil in Ihrem Reisepass eingetragen sind.</p>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="table-responsive" id="no-more-tables">
<table class="table">
<thead>
<tr>
<th style="text-align: left;">Nr.</th>
<th style="text-align: left;">Geschlecht</th>
<th style="text-align: left;">Vorname</th>
<th style="text-align: left;">Nachname</th>
<th style="text-align: left;">Geburtsdatum (TT.MM.JJJJ)</th>
</tr>
</thead>
<tbody class="st-travelers">
{% for participant in booking.participants %}
<tr class="st-traveler st-traveler-{{ loop.index }}"
data-st-traveler-index="{{ loop.index }}"
style="display: ;"
>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index"
type="button"
>
{{ loop.index ?? '' }}
</button>
</td>
<td style="text-align: left;">
{{ participant.sex }}
</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>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Mitteilungen / Sonstiges (optional)</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<p>{{ booking.comments }}</p>
</div>
</div>
</div><!-- end form-box -->
</div><!-- end contact-form -->
<div class="pull-right">
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
</div>
</div>
</section>
{% endblock %}

View file

@ -8,7 +8,7 @@
{% block body %}
<section class="clearfix">
<div class="hl2">{{ page.pagetitle|default(page.title) }}</div>
<h1>{{ page.pagetitle|default(page.title) }}</h1>
{#{% for i in 0..page.children|length//3 %}#}
<div class="row">

View file

@ -2,7 +2,7 @@
{% block body %}
<section class="clearfix">
<div class="hl2">{{ page.pagetitle|default(page.title) }}</div>
<h1>{{ page.pagetitle|default(page.title) }}</h1>
{#{% for i in 0..page.children|length//3 %}#}
<div class="row">

View file

@ -14,7 +14,7 @@
{% block body %}
<section class="clearfix">
<div class="hl2">Unsere beliebtesten Kulturreisen</div>
<h1>Unsere beliebtesten Kulturreisen</h1>
{{ render(controller('AppBundle:Component:offersCarousel')) }}
</section><!-- end section -->

View file

@ -85,13 +85,15 @@ class BookingController extends Controller
$breadcrumbEntries = Util::createBreadcrumb($travelProgramPage);
$breadcrumbEntries[] = new BreadcrumbEntry('Buchen');
if ($request->getMethod() == 'POST' && $form->isValid())
if ($request->getMethod() == 'POST') // && $form->isValid())
{
$booking = $this->getDoctrine()->getRepository('AppBundle:TravelBooking')->createFromBookingRequest(
$bookingRequest, $travelDate, $bookingPriceInfo);
$em = $this->getDoctrine()->getManager();
$em->persist($booking);
$em->flush();
$crmBookingUrl = $this->get('app.booking_exporter')->process($bookingRequest, $travelDate, $bookingPriceInfo);
$crmBookingUrl = preg_replace('/\\/api/', '', $crmBookingUrl) .'/edit';
@ -129,12 +131,17 @@ class BookingController extends Controller
'text/plain', 'utf-8'
)
);
// #TODO This will lead to multiple bookings due to multiple form submission. Redirect instead!
return $this->render('default/pages/bookingConfirmation.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'page' => $travelProgramPage,
'breadcrumb_entries' => $breadcrumbEntries,
'booking' => $booking,
'travel_program' => $travelProgram,
'summary' => $htmlSummary,
'total_price' => $totalPrice,
]);
}

View file

@ -0,0 +1,46 @@
{
"name": "my-new-project",
"authors": [
"John Doe <john@doe.com> (http://johndoe.com)"
],
"description": "CodeKit automatically generated this file. You should customize it according to: https://github.com/bower/spec/blob/master/json.md",
"main": [
"index.html",
"main.js"
],
"moduleType": [
"amd",
"es6",
"globals",
"node",
"yui"
],
"keywords": [
"none"
],
"license": "MIT",
"homepage": "https://google.com",
"repository": {
"type": "git",
"url": "git://github.com/foo/bar.git"
},
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"private": true,
"dependencies": {
"bootstrap": "3.3.7",
"bootstrap-select": "1.12.2",
"jquery": "^3.1.1",
"jquery-ui": "^1.12.1",
"owl.carousel": "^2.2.0",
"font-awesome": "^4.7.0",
"html5shiv": "^3.7.3",
"jquery-prettyPhoto": "^3.1.6",
"respond": "^1.4.2"
}
}

View file

@ -39,7 +39,8 @@ body.modal-open {
background-color: #ffffff;
position: relative;
display: block;
padding:60px 0;
padding:30px 0;
padding-top: 20px;
overflow: hidden;
&.padding-top-20 {
padding-top: 20px;
@ -75,7 +76,7 @@ body.modal-open {
.absolute {
padding:0;
position: relative;
margin-top: -122px;
margin-top: -92px;
z-index: 100;
display: block;
width: 100%;

View file

@ -165,6 +165,7 @@
}
}
@media (min-width: 1200px) {
}
@ -193,6 +194,8 @@
}
.home-message {
padding: 89px 0px;
padding-top: 128px;
padding-bottom: 0px;
min-height: 580px;
&.small {
min-height: 130px;
@ -519,6 +522,9 @@
margin-bottom: 16px;
box-shadow: none;
}
.form-inline .dropdown {
margin-bottom: 16px;
}
.form-bottom, .form-inline .form-bottom {
margin-bottom: 16px;
width: 100%;
@ -650,7 +656,7 @@
ul {
margin-bottom: 20px;
li {
margin: 5px 15px;
margin: 5px 22px;
list-style: none;
&:before {
font: normal normal normal 14px/1 FontAwesome;

View file

@ -159,6 +159,7 @@
padding-right: 10px;
padding-left: 10px;
padding-bottom: 10px;
min-height: 132px;
}
h5 {
font-weight: 700;
@ -226,13 +227,16 @@
}
&.dobble_line {
height: 3.6em;
padding-top: 0px;
span {
color: #fff;
height: 3.6em;
display: table-cell;
vertical-align: middle;
}
}
/*span {
color: #fff;
height: 3.6em;
display: table-cell;
vertical-align: middle;
}*/
}
.travel-wrapper .lb {

View file

@ -742,6 +742,7 @@ a[id^="video_"]:before,
padding-right: 10px;
padding-left: 10px;
padding-bottom: 10px;
min-height: 132px;
}
.travel-wrapper h5 {
font-weight: 700;
@ -793,12 +794,6 @@ a[id^="video_"]:before,
overflow: hidden;
line-height: 1.45em;
height: 3.6em;
/*span {
color: #fff;
height: 3.6em;
display: table-cell;
vertical-align: middle;
}*/
}
.travel-wrapper .item > a.item-button.single_line {
padding-top: 17px;
@ -806,6 +801,13 @@ a[id^="video_"]:before,
}
.travel-wrapper .item > a.item-button.dobble_line {
height: 3.6em;
padding-top: 0px;
}
.travel-wrapper .item > a.item-button.dobble_line span {
color: #fff;
height: 3.6em;
display: table-cell;
vertical-align: middle;
}
.travel-wrapper .lb {
position: relative;
@ -1239,6 +1241,8 @@ a[id^="video_"]:before,
}
.home-message {
padding: 89px 0px;
padding-top: 128px;
padding-bottom: 0px;
min-height: 580px;
}
.home-message.small {
@ -1539,6 +1543,9 @@ a[id^="video_"]:before,
margin-bottom: 16px;
box-shadow: none;
}
.form-inline .dropdown {
margin-bottom: 16px;
}
.form-bottom,
.form-inline .form-bottom {
margin-bottom: 16px;
@ -1670,7 +1677,7 @@ a[id^="video_"]:before,
margin-bottom: 20px;
}
.content-copy .tab-content ul li {
margin: 5px 15px;
margin: 5px 22px;
list-style: none;
}
.content-copy .tab-content ul li:before {
@ -1904,7 +1911,8 @@ body.modal-open {
background-color: #ffffff;
position: relative;
display: block;
padding: 60px 0;
padding: 30px 0;
padding-top: 20px;
overflow: hidden;
}
.section.padding-top-20 {
@ -1939,7 +1947,7 @@ body.modal-open {
.absolute {
padding: 0;
position: relative;
margin-top: -122px;
margin-top: -92px;
z-index: 100;
display: block;
width: 100%;
@ -5545,4 +5553,3 @@ input[type="radio"] .styled:checked + label::after {
.icon-previous11:before {
content: "\e174";
}
/*# sourceMappingURL=custom.css.map */

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View file

@ -6,7 +6,7 @@
namespace AppBundle\Validator\Constraints;
use AppBundle\Entity\BookingRequest;
//use AppBundle\Entity\BookingRequest;
use AppBundle\Entity\TravelDate;
use AppBundle\Entity\TravelProgram;
use AppBundle\Form\BookingRequestType;