New DateRangePicker

This commit is contained in:
Kevin Adametz 2023-01-25 12:43:22 +01:00
parent faa508b4ca
commit 81e42b76f5
12 changed files with 398 additions and 88 deletions

View file

@ -19,10 +19,13 @@
<div class="form-group">
<label class="st-required control-label required">Datum</label>
<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) }}
<input type="text" id="fewo_booking_request_datepicker" name="fewo_booking_request_datepicker" required="required" class="form-control" placeholder="dd.mm.yyyy bis dd.mm.yyyy" value="">
<div class="hidden">
<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>
</div>
@ -108,14 +111,15 @@
var maxDate = "{{ lastSeason.toDate|date('d-m-y') }}";
$('#appbundle_feworeservation_fromDate, #appbundle_feworeservation_toDate').daterangepicker({
$('#fewo_booking_request_datepicker').daterangepicker({
isInvalidDate: checkDates,
isCustomDate: checkCustom,
"minDate": moment(),
"maxDate": maxDate,
"timePickerSeconds": true,
"locale": {
"format": "DD.MM.YYYY",
"separator": " - ",
@ -151,23 +155,27 @@
"firstDay": 1
},
autoApply: true,
autoUpdateInput: false,
autoUpdateInput: true,
singleDatePicker: false,
alwaysShowCalendars: true,
"startDate": startDate,
"endDate": endDate,
allowInput: true,
}, function(start, end, label) {
console.log(start);
// console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + 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
$checkinInput = $('#appbundle_feworeservation_fromDate');
$checkoutInput = $('#appbundle_feworeservation_toDate');
$checkoutInput = $('#appbundle_feworeservation_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);
@ -177,9 +185,10 @@
var checkInPicker = $checkinInput.data('daterangepicker');
checkInPicker.setStartDate(selectedStartDate);
checkInPicker.setEndDate(selectedEndDate);
*/
});
$('#appbundle_feworeservation_fromDate, #appbundle_feworeservation_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

@ -19,10 +19,14 @@
<div class="form-group">
<label class="st-required control-label required">Datum</label>
<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) }}
<input type="text" id="fewo_booking_request_datepicker" name="fewo_booking_request_datepicker" required="required" class="form-control" placeholder="dd.mm.yyyy bis dd.mm.yyyy" value="">
<div class="hidden">
<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>
</div>
@ -103,14 +107,12 @@
var maxDate = "{{ lastSeason.toDate|date('d-m-y') }}";
$('#appbundle_feworeservation_fromDate, #appbundle_feworeservation_toDate').daterangepicker({
$('#fewo_booking_request_datepicker').daterangepicker({
isInvalidDate: checkDates,
isCustomDate: checkCustom,
"minDate": moment(),
"maxDate": maxDate,
"timePickerSeconds": true,
"locale": {
"format": "DD.MM.YYYY",
"separator": " - ",
@ -146,23 +148,27 @@
"firstDay": 1
},
autoApply: true,
autoUpdateInput: false,
autoUpdateInput: true,
singleDatePicker: false,
alwaysShowCalendars: true,
"startDate": startDate,
"endDate": endDate,
allowInput: true,
}, function(start, end, label) {
console.log(start);
// console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + 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
$checkinInput = $('#appbundle_feworeservation_fromDate');
$checkoutInput = $('#appbundle_feworeservation_toDate');
$checkoutInput = $('#appbundle_feworeservation_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);
@ -172,7 +178,7 @@
var checkInPicker = $checkinInput.data('daterangepicker');
checkInPicker.setStartDate(selectedStartDate);
checkInPicker.setEndDate(selectedEndDate);
*/
});
$('#appbundle_feworeservation_fromDate, #appbundle_feworeservation_toDate').on('show.daterangepicker', function(ev, picker) {

View file

@ -284,9 +284,10 @@
</div>
</div>
<p>
{{ getContextBySlug('gewuenschte-zahlungsart') }}
{% if(travel_program.category.id != 1) %}
{{ getContextBySlug('abweichende-anzahlungsbedingungen') }}
{% if(travel_program.paymentConditions != "") %}
{{ travel_program.paymentConditions|raw }}
{% else %}
{{ getContextBySlug('anzahlungsbedingungen') }}
{% endif %}
</p>
</div>

View file

@ -62,14 +62,20 @@
<tr>
<td><label class="st-required control-label required">Datum</label></td>
<td style="white-space: normal;">
<div class="form-group" style="margin-bottom:0;">
<div class="row margin-bottom:0;">
<div class="form-group col-xs-12 col-md-6" style="margin-bottom:0;">
<input type="text" id="fewo_booking_request_datepicker" name="fewo_booking_request_datepicker" required="required" class="form-control" placeholder="dd.mm.yyyy bis dd.mm.yyyy" value="">
</div>
</div>
<div class="form-group hidden" style="margin-bottom:0;">
<div class="input-daterange input-group" id="date-range">
{{ form_widget(form.fromDate) }}
<span class="input-group-addon bg-info b-0 text-white">bis</span>
{{ form_widget(form.toDate) }}
</div>
</div>
<div class="small alert alert-success" style="margin-bottom: 0; padding-top: 6px; padding-bottom: 6px">Bei Datumsänderung, erst immer das Anreisedatum, dann das Abreisedatum im Kalender auswählen.</div>
<div class="small alert alert-success" style="margin-bottom: 0; padding-top: 6px; padding-bottom: 6px">Bei Datumsänderung, immer erst das Anreisedatum, dann das Abreisedatum im Kalender auswählen.</div>
</td>
</tr>
<!-- <tr>

View file

@ -79,6 +79,7 @@ swiftmailer:
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
encryption: 'tls'
port: 587
auth_mode: "login"
spool: { type: memory }

View file

@ -6,9 +6,12 @@ parameters:
database_user: kadmin
database_password: KT32vQ7ix
mailer_transport: smtp
mailer_host: w00df904.kasserver.com
mailer_user: m0479305
mailer_password: m4CowydxoC4dY2DB
mailer_host: zimbra.managedemail.de
mailer_user: stern@stern-tours.de
mailer_password: 13C!NlecB!Phil4beAxKl
#mailer_host: w00df904.kasserver.com
#mailer_user: m0479305
#mailer_password: m4CowydxoC4dY2DB
secret: ce1f6c5ca9688d7e0c534fac8126f839
st_cache_driver: array
locale: de_DE

View file

@ -142,6 +142,13 @@ class TravelProgram
*/
private $htmlDescription;
/**
* @var string
*
* @ORM\Column(name="payment_conditions", type="text", length=65535, nullable=true)
*/
private $paymentConditions;
/**
* @var boolean
*
@ -848,6 +855,31 @@ class TravelProgram
}
/**
* Set paymentConditions
*
* @param string $paymentConditions
*
* @return TravelProgram
*/
public function setpaymentConditions($paymentConditions)
{
$this->paymentConditions = $paymentConditions;
return $this;
}
/**
* Get paymentConditions
*
* @return string
*/
public function getpaymentConditions()
{
return $this->paymentConditions;
}
/**
* @param \DateTime $startDate
* @return array

View file

@ -7,7 +7,7 @@
"uuidString" : "7B4142F5-F6AB-47B4-92FD-340AF03CE426"
}
],
"creatorBuild" : "34081",
"creatorBuild" : "34127",
"files" : {
"\/css\/booking.css" : {
"aP" : 1,
@ -2041,17 +2041,6 @@
"sC" : 1,
"tS" : 0
},
"\/js\/fewoBooking.js" : {
"bF" : 0,
"ft" : 64,
"ma" : 0,
"mi" : 1,
"oA" : 0,
"oAP" : "\/js\/min\/fewoBooking-min.js",
"oF" : 0,
"sC" : 0,
"tS" : 0
},
"\/js\/jquery-3.1.1.js" : {
"bF" : 0,
"ft" : 64,
@ -5274,6 +5263,9 @@
"removeVariables" : 0,
"safelistEntries" : [
],
"skippedEntries" : [
"node_modules\/**"
]
},
"rollupContext" : "",
@ -5308,6 +5300,7 @@
"tsNoImplicitThis" : 0,
"tsNoImplicitUseStrict" : 0,
"tsNoLib" : 0,
"tsNoPropertyAccessFromIndexSignature" : 0,
"tsNoResolve" : 0,
"tsNoStrictGenericChecks" : 0,
"tsNoUncheckedIndexAccess" : 0,

View file

@ -7,7 +7,6 @@ $(document).ready(function() {
var toDateMonth$ = $('#fewo_booking_request_toDate_month');
var toDateYear$ = $('#fewo_booking_request_toDate_year');
function loadCalculationFewo(){
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
@ -37,11 +36,10 @@ $(document).ready(function() {
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){
@ -63,13 +61,12 @@ $(document).ready(function() {
};
$('#fewo_booking_request_fromDate1, #fewo_booking_request_toDate1').daterangepicker({
$('#fewo_booking_request_datepicker').daterangepicker({
isInvalidDate: checkDates,
isCustomDate: checkCustom,
"minDate": moment(),
"maxDate": maxDate,
"timePickerSeconds": true,
"locale": {
"format": "DD.MM.YYYY",
"separator": " - ",
@ -105,13 +102,15 @@ $(document).ready(function() {
"firstDay": 1
},
autoApply: true,
autoUpdateInput: false,
singleDatePicker: true,
autoUpdateInput: true,
singleDatePicker: false,
alwaysShowCalendars: true,
"startDate": startDate,
"endDate": endDate,
allowInput: true,
}, function(start, end, label) {
// console.log("New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + 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
@ -123,6 +122,7 @@ $(document).ready(function() {
$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);
@ -132,13 +132,9 @@ $(document).ready(function() {
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'));
*/
});
});
});

103
web/js/_fewoBooking-script-min.js vendored Normal file
View file

@ -0,0 +1,103 @@
$(document).ready(function () {
var i = $(".st-booking-form"),
a = $(".st-booking-summary"),
t = $("#fewo_booking_request_toDate_day"),
e = $("#fewo_booking_request_toDate_month"),
s = $("#fewo_booking_request_toDate_year");
function h() {
var t = location.href.split("?"),
e = t[0].split("/");
e.pop();
var s = e.join("/") + "/berechne-gesamtpreis";
t[1] && (s += "?" + t[1]),
$.ajax({ url: s, type: "post", data: i.serialize() }).then(
function (t) {
a.html(t);
},
function () {
a.html(
"Aufgrund eines Fehlers konnte kein Angebot ermittelt werden."
);
}
);
}
i.find("input, select").change(function () {
h();
});
var n = $("#fewo_booking_request_fromDate").val(),
r = $("#fewo_booking_request_toDate").val(),
o = $("#hidden_toDate").val(),
l = JSON.parse($("#hidden_reservationDays").val()),
d = JSON.parse($("#hidden_customDays").val()),
c = function (t) {
var e = t.format("DD.MM.YYYY");
return (
-1 < l.indexOf(e) ||
(void 0 !== d[e] &&
-1 == d[e].indexOf("bookable") &&
-1 == d[e].indexOf("bookable-end"))
);
},
u = function (t) {
if (!1 !== t) {
var e = t.format("DD.MM.YYYY");
if (void 0 !== d[e]) return d[e];
}
};
$(
"#fewo_booking_request_fromDate, #fewo_booking_request_toDate"
).daterangepicker(
{
isInvalidDate: c,
isCustomDate: u,
minDate: moment(),
maxDate: o,
timePickerSeconds: !0,
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: !0,
autoUpdateInput: !1,
startDate: n,
endDate: r,
},
function (t, e, s) {
var i = t.format("DD.MM.YYYY"),
a = e.format("DD.MM.YYYY"),
n = $("#fewo_booking_request_fromDate"),
r = $("#fewo_booking_request_toDate");
n.val(i), r.val(a);
var o = r.data("daterangepicker");
o.setStartDate(i), o.setEndDate(a);
var l = n.data("daterangepicker");
l.setStartDate(i), l.setEndDate(a), h();
}
),
$("#fewo_booking_request_fromDate, #fewo_booking_request_toDate").on(
"show.daterangepicker",
function (t, e) {}
);
});

File diff suppressed because one or more lines are too long

160
web/js/fewoBooking-script-min.js vendored Normal file
View file

@ -0,0 +1,160 @@
$(document).ready(function() {
var frm$ = $('.st-booking-form');
var summary$ = $('.st-booking-summary');
var toDateDay$ = $('#fewo_booking_request_toDate_day');
var toDateMonth$ = $('#fewo_booking_request_toDate_month');
var toDateYear$ = $('#fewo_booking_request_toDate_year');
function loadCalculationFewo(){
var tmp = location.href.split('?');
var tmp2 = tmp[0].split('/');
tmp2.pop();
var url = tmp2.join('/') + '/berechne-gesamtpreis';
if (tmp[1])
{
url += '?'+ tmp[1];
}
$.ajax({
url: url,
type: 'post',
data: frm$.serialize()
}).then(function(r) {
summary$.html(r);
}, function() {
summary$.html('Aufgrund eines Fehlers konnte kein Angebot ermittelt werden.');
});
}
frm$.find('input, select').change(function() {
loadCalculationFewo();
});
// var currentDate = moment().format("DD.MM.YYYY");
var startDate = $('#fewo_booking_request_fromDate').val();
var endDate = $('#fewo_booking_request_toDate').val();
var maxDate = $('#hidden_toDate').val();
var reservationDays = JSON.parse($('#hidden_reservationDays').val());
var customDays = JSON.parse($('#hidden_customDays').val());
var checkDates = function (date) {
var formatted = date.format('DD.MM.YYYY');
if(reservationDays.indexOf(formatted) > -1){
return true;
}
if(customDays[formatted] !== undefined && customDays[formatted].indexOf('bookable') == -1 && customDays[formatted].indexOf('bookable-end') == -1){
return true;
}
return false;
};
var checkCustom = function (date) {
if (date !== false) {
var formatted = date.format('DD.MM.YYYY');
if(customDays[formatted] !== undefined){
return customDays[formatted];
}
}
};
var $start = $('#start'),
$end = $('#end');
$start.datepicker({
onSelect: function (fd, date) {
$end.data('datepicker')
.update('minDate', date);
$end.focus();
}
})
$end.datepicker({
onSelect: function (fd, date) {
$start.data('datepicker')
.update('maxDate', date)
}
})
$('#fewo_booking_request_datepicker').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: true,
singleDatePicker: false,
alwaysShowCalendars: true,
"startDate": startDate,
"endDate": endDate,
allowInput: true,
}, 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();
});
});