| @@ -14,6 +14,8 @@ $(document).ready(function() { | |||||
| if (dpInput.length) { | if (dpInput.length) { | ||||
| fp = document.querySelector("#dtgs-datepicker-inputfield")._flatpickr; | fp = document.querySelector("#dtgs-datepicker-inputfield")._flatpickr; | ||||
| dpInput.prop('disabled', true); | dpInput.prop('disabled', true); | ||||
| dpInput.wrap('<div class="spwn-date-wrapper"></div>'); | |||||
| $("<span id='spwn-remove-date' title='Zurücksetzen'></span>").insertAfter(dpInput); | |||||
| $("<div id='spwn-delivery'><p></p><div class='spwn-delivery--time'></div></div>").insertAfter(".confirm-delivery-date"); | $("<div id='spwn-delivery'><p></p><div class='spwn-delivery--time'></div></div>").insertAfter(".confirm-delivery-date"); | ||||
| fp.config.onChange.push(function() { | fp.config.onChange.push(function() { | ||||
| manipulateDateInputValue(); | manipulateDateInputValue(); | ||||
| @@ -44,6 +46,11 @@ $(document).ready(function() { | |||||
| tagBar(sticky, parentContainer, stickyTop); | tagBar(sticky, parentContainer, stickyTop); | ||||
| }); | }); | ||||
| } | } | ||||
| $("body").on("click", "#spwn-remove-date", function() { | |||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); | |||||
| spawnDateInputValue = ""; | |||||
| }); | |||||
| }); | }); | ||||
| function manipulateDateInputValue() { | function manipulateDateInputValue() { | ||||
| @@ -76,9 +83,15 @@ function changeDelivery(fp) { | |||||
| setIncludedDays("evening", fp, 0); | setIncludedDays("evening", fp, 0); | ||||
| $("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); | $("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); | ||||
| $("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); | $("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); | ||||
| if (spawnDateInputValue === "" || spawnDateInputValue.indexOf("Uhr") === -1) { | |||||
| manipulateDateInputValue(); | |||||
| } | |||||
| // If not date from DPD days | |||||
| if ($(".flatpickr-day").hasClass("selected")) { | |||||
| if (spawnDateInputValue === "" || spawnDateInputValue.indexOf("Uhr") === -1) { | |||||
| manipulateDateInputValue(); | |||||
| } | |||||
| // If DPD date is not in Abendzustellung range | |||||
| } else { | |||||
| $("#spwn-remove-date").trigger("click"); | |||||
| } | |||||
| } else { | } else { | ||||
| // DPD | // DPD | ||||
| console.log("DPD"); | console.log("DPD"); | ||||
| @@ -95,12 +108,15 @@ function changeDelivery(fp) { | |||||
| } | } | ||||
| function setIncludedDays(delivery, fp, addDays) { | function setIncludedDays(delivery, fp, addDays) { | ||||
| // today | |||||
| let spwnDateTemp = new Date(); | let spwnDateTemp = new Date(); | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); | spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); | ||||
| let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); | let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); | ||||
| // If after 1pm add one extra day | |||||
| if (delivery === "evening" && spwnTime > 1300) { | if (delivery === "evening" && spwnTime > 1300) { | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | ||||
| // If after 2pm add one extra day | |||||
| } else if (delivery === "dpd" && spwnTime > 1400) { | } else if (delivery === "dpd" && spwnTime > 1400) { | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | ||||
| } | } | ||||
| @@ -127,6 +143,7 @@ function setIncludedDays(delivery, fp, addDays) { | |||||
| ]); | ]); | ||||
| } | } | ||||
| // For sticky bar in 6-Tage products | |||||
| $.fn.isInViewport = function() { | $.fn.isInViewport = function() { | ||||
| if ($(this).length) { | if ($(this).length) { | ||||
| var elementTop = $(this).offset().top + 50; | var elementTop = $(this).offset().top + 50; | ||||
| @@ -139,6 +156,7 @@ $.fn.isInViewport = function() { | |||||
| } | } | ||||
| }; | }; | ||||
| // 6-Tage products | |||||
| function tagBar(sticky, parentContainer, stickyTop) { | function tagBar(sticky, parentContainer, stickyTop) { | ||||
| var headerHeight = $(".header-inner").outerHeight() + 13, | var headerHeight = $(".header-inner").outerHeight() + 13, | ||||
| windowTop = $(window).scrollTop() + headerHeight; | windowTop = $(window).scrollTop() + headerHeight; | ||||
| @@ -173,4 +191,4 @@ function tagBar(sticky, parentContainer, stickyTop) { | |||||
| if ($("#day6").isInViewport()) { | if ($("#day6").isInViewport()) { | ||||
| sticky.find(".day6Image").addClass("active"); | sticky.find(".day6Image").addClass("active"); | ||||
| } | } | ||||
| } | |||||
| } | |||||
| @@ -104,4 +104,76 @@ input.custom-number[type=number] { | |||||
| .modal-dialog { | .modal-dialog { | ||||
| max-width: 800px !important; | max-width: 800px !important; | ||||
| } | } | ||||
| } | |||||
| } | |||||
| /* Wunschliefertermin Datepicker */ | |||||
| .confirm-delivery-date { | |||||
| .spwn-date-wrapper { | |||||
| display: flex; | |||||
| justify-content: flex-start; | |||||
| margin-bottom: 20px; | |||||
| align-items: center; | |||||
| } | |||||
| #dtgs-datepicker-inputfield { | |||||
| width: 308px; | |||||
| padding-left: 10px; | |||||
| } | |||||
| #spwn-remove-date { | |||||
| margin-left: 10px; | |||||
| cursor: pointer; | |||||
| position: relative; | |||||
| width: 16px; | |||||
| height: 16px; | |||||
| display: block; | |||||
| &:before, | |||||
| &:after { | |||||
| content: ""; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 8px; | |||||
| width: 16px; | |||||
| height: 2px; | |||||
| background: #33548c; | |||||
| } | |||||
| &:before { | |||||
| transform: rotate(-45deg); | |||||
| } | |||||
| &:after { | |||||
| transform: rotate(45deg); | |||||
| } | |||||
| } | |||||
| .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay { | |||||
| border-color: #33548c; | |||||
| background: #33548c; | |||||
| } | |||||
| } | |||||
| #spwn-delivery { | |||||
| padding: 0 0 40px 0; | |||||
| .spwn-delivery--time { | |||||
| display: flex; | |||||
| justify-content: flex-start; | |||||
| span { | |||||
| cursor: pointer; | |||||
| display: inline-block; | |||||
| margin: 0 20px 0 0; | |||||
| color: #33548c; | |||||
| font-size: 16px; | |||||
| line-height: 18px; | |||||
| border: 2px solid #33548c; | |||||
| text-align: center; | |||||
| vertical-align: middle; | |||||
| border-radius: 3px; | |||||
| text-transform: uppercase; | |||||
| letter-spacing: 1px; | |||||
| padding: 14px 30px; | |||||
| font-weight: 600; | |||||
| white-space: nowrap; | |||||
| transition: all .15s ease-in-out; | |||||
| &:hover, | |||||
| &.active { | |||||
| background: #33548c; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -18,7 +18,7 @@ $(document).ready(function() { | |||||
| fp.config.onChange.push(function() { | fp.config.onChange.push(function() { | ||||
| manipulateDateInputValue(); | manipulateDateInputValue(); | ||||
| }); | }); | ||||
| // If Austria and same day delivery is checked change to DPD | // If Austria and same day delivery is checked change to DPD | ||||
| if ($(".confirm-address-shipping").data("iso") === "AT") { | if ($(".confirm-address-shipping").data("iso") === "AT") { | ||||
| inputDPD.attr('checked', true).trigger("click"); | inputDPD.attr('checked', true).trigger("click"); | ||||
| @@ -27,20 +27,20 @@ $(document).ready(function() { | |||||
| // No shop | // No shop | ||||
| inputShopPickup.parents(".shipping-method").hide(); | inputShopPickup.parents(".shipping-method").hide(); | ||||
| } | } | ||||
| // Call changeDelivery | // Call changeDelivery | ||||
| $("[name='shippingMethodId']").on('change', () => { | $("[name='shippingMethodId']").on('change', () => { | ||||
| changeDelivery(fp); | changeDelivery(fp); | ||||
| }); | }); | ||||
| changeDelivery(fp); | changeDelivery(fp); | ||||
| } | } | ||||
| var sticky = $(".thumbnail-container"); | var sticky = $(".thumbnail-container"); | ||||
| if (sticky.length) { | if (sticky.length) { | ||||
| var parentContainer = sticky.parents(".aku-cms-factory-element"), | var parentContainer = sticky.parents(".aku-cms-factory-element"), | ||||
| stickyTop = sticky.offset().top; | stickyTop = sticky.offset().top; | ||||
| tagBar(sticky, parentContainer, stickyTop); | tagBar(sticky, parentContainer, stickyTop); | ||||
| $(window).on('resize scroll', function () { | |||||
| $(window).on('resize scroll', function() { | |||||
| tagBar(sticky, parentContainer, stickyTop); | tagBar(sticky, parentContainer, stickyTop); | ||||
| }); | }); | ||||
| } | } | ||||
| @@ -60,7 +60,7 @@ function changeDelivery(fp) { | |||||
| $(this).addClass("active"); | $(this).addClass("active"); | ||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(spawnDateInputValue + " " + $(this).text()); | $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(spawnDateInputValue + " " + $(this).text()); | ||||
| }); | }); | ||||
| if ($(".confirm-address-shipping").data("iso") !== "AT") { | if ($(".confirm-address-shipping").data("iso") !== "AT") { | ||||
| if (inputShopPickup.is(':checked')) { | if (inputShopPickup.is(':checked')) { | ||||
| // Abholung im Ladengeschäft | // Abholung im Ladengeschäft | ||||
| @@ -76,8 +76,14 @@ function changeDelivery(fp) { | |||||
| setIncludedDays("evening", fp, 0); | setIncludedDays("evening", fp, 0); | ||||
| $("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); | $("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); | ||||
| $("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); | $("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); | ||||
| if (spawnDateInputValue === "" || spawnDateInputValue.indexOf("Uhr") === -1) { | |||||
| manipulateDateInputValue(); | |||||
| // If not date from DPD days | |||||
| if ($(".flatpickr-day").hasClass("selected")) { | |||||
| if (spawnDateInputValue === "" || spawnDateInputValue.indexOf("Uhr") === -1) { | |||||
| manipulateDateInputValue(); | |||||
| } | |||||
| // If DPD date is not in Abendzustellung range | |||||
| } else { | |||||
| $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); | |||||
| } | } | ||||
| } else { | } else { | ||||
| // DPD | // DPD | ||||
| @@ -95,18 +101,21 @@ function changeDelivery(fp) { | |||||
| } | } | ||||
| function setIncludedDays(delivery, fp, addDays) { | function setIncludedDays(delivery, fp, addDays) { | ||||
| // today | |||||
| let spwnDateTemp = new Date(); | let spwnDateTemp = new Date(); | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); | spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); | ||||
| let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); | let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); | ||||
| // If after 1pm add one extra day | |||||
| if (delivery === "evening" && spwnTime > 1300) { | if (delivery === "evening" && spwnTime > 1300) { | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | ||||
| // If after 2pm add one extra day | |||||
| } else if (delivery === "dpd" && spwnTime > 1400) { | } else if (delivery === "dpd" && spwnTime > 1400) { | ||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | |||||
| spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); | |||||
| } | } | ||||
| let spwnDate = fp.formatDate(spwnDateTemp, "d.m.Y"); | let spwnDate = fp.formatDate(spwnDateTemp, "d.m.Y"); | ||||
| fp.set("minDate", spwnDate); | fp.set("minDate", spwnDate); | ||||
| fp.set("enable", [ | fp.set("enable", [ | ||||
| function(date) { | function(date) { | ||||
| let day = date.getDate(); | let day = date.getDate(); | ||||
| @@ -127,6 +136,7 @@ function setIncludedDays(delivery, fp, addDays) { | |||||
| ]); | ]); | ||||
| } | } | ||||
| // For sticky bar in 6-Tage products | |||||
| $.fn.isInViewport = function() { | $.fn.isInViewport = function() { | ||||
| if ($(this).length) { | if ($(this).length) { | ||||
| var elementTop = $(this).offset().top + 50; | var elementTop = $(this).offset().top + 50; | ||||
| @@ -139,6 +149,7 @@ $.fn.isInViewport = function() { | |||||
| } | } | ||||
| }; | }; | ||||
| // 6-Tage products | |||||
| function tagBar(sticky, parentContainer, stickyTop) { | function tagBar(sticky, parentContainer, stickyTop) { | ||||
| var headerHeight = $(".header-inner").outerHeight() + 13, | var headerHeight = $(".header-inner").outerHeight() + 13, | ||||
| windowTop = $(window).scrollTop() + headerHeight; | windowTop = $(window).scrollTop() + headerHeight; | ||||
| @@ -173,4 +184,4 @@ function tagBar(sticky, parentContainer, stickyTop) { | |||||
| if ($("#day6").isInViewport()) { | if ($("#day6").isInViewport()) { | ||||
| sticky.find(".day6Image").addClass("active"); | sticky.find(".day6Image").addClass("active"); | ||||
| } | } | ||||
| } | |||||
| } | |||||
| @@ -114,4 +114,50 @@ input.custom-number[type=number] { | |||||
| .modal-dialog { | .modal-dialog { | ||||
| max-width: 800px !important; | max-width: 800px !important; | ||||
| } | } | ||||
| } | |||||
| } | |||||
| /* Wunschliefertermin Datepicker */ | |||||
| .confirm-delivery-date { | |||||
| #dtgs-datepicker-inputfield { | |||||
| width: 308px; | |||||
| margin-bottom: 20px; | |||||
| padding-left: 10px; | |||||
| } | |||||
| #spwn-remove-date { | |||||
| } | |||||
| .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay { | |||||
| border-color: #86b04b; | |||||
| background: #86b04b; | |||||
| } | |||||
| } | |||||
| #spwn-delivery { | |||||
| padding: 0 0 40px 0; | |||||
| .spwn-delivery--time { | |||||
| display: flex; | |||||
| justify-content: flex-start; | |||||
| span { | |||||
| cursor: pointer; | |||||
| display: inline-block; | |||||
| margin: 0 20px 0 0; | |||||
| color: #86b04b; | |||||
| font-size: 16px; | |||||
| line-height: 18px; | |||||
| border: 2px solid #86b04b; | |||||
| text-align: center; | |||||
| vertical-align: middle; | |||||
| border-radius: 3px; | |||||
| text-transform: uppercase; | |||||
| letter-spacing: 1px; | |||||
| padding: 14px 30px; | |||||
| font-weight: 600; | |||||
| white-space: nowrap; | |||||
| transition: all .15s ease-in-out; | |||||
| &:hover, | |||||
| &.active { | |||||
| background: #86b04b; | |||||
| color: #fff; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||