basic-business-template/content/contents/leistungen.blade.php

261 lines
13 KiB
PHP
Raw Normal View History

2023-07-25 14:32:35 +00:00
@extends('template.'.config('settings.template').'.content.master')
2024-01-09 20:28:36 +00:00
@section('head')
<link rel="stylesheet" href="{{storage('assets/libs/intl-tel-input-17.0.0/css/intlTelInput.min.css')}}">
2024-01-10 20:38:53 +00:00
<style>
.form-anchor{
opacity:0;
}
.form-anchor.show{
transition: opacity 300ms;
opacity:1;
}
</style>
2024-01-09 20:28:36 +00:00
@stop
2023-07-25 14:32:35 +00:00
@section('content')
2023-07-27 21:49:08 +00:00
<div class="pt-3 pb-2 mb-5" style="background-color: {{$_primary_ci_color}}">
<div class="container">
2024-01-10 09:56:51 +00:00
<nav style="--bs-breadcrumb-divider: '';" aria-label="breadcrumb">
2023-07-27 21:49:08 +00:00
<ol class="breadcrumb text-decoration-none">
<li class="breadcrumb-item"><a href="{{url('/')}}">Home</a></li>
<li class="breadcrumb-item"><a href="{{url('/leistungen')}}">Leistungen</a></li>
<li class="breadcrumb-item active" aria-current="page">{{$content->title}}</li>
</ol>
</nav>
</div>
</div>
2023-07-25 14:32:35 +00:00
<div class="container">
<div class="row">
<div class="col-12 col-lg-7">
2024-01-02 11:09:43 +00:00
<div class="row">
2023-07-25 16:33:26 +00:00
2024-01-02 11:09:43 +00:00
<div class="col-12 col-md-11 d-flex">
<h1 class="mt-3 mb-2 ">{{$content->title}}</h1>
</div>
<div class="fw-bolder my-4">
{!! $content->kurzbeschreibung !!}
</div>
2023-07-25 16:33:26 +00:00
2024-01-02 11:09:43 +00:00
<div class="col-12 col-lg-9">
2024-01-10 18:08:58 +00:00
<x-img src="{{ $content->image() }}" sizes="(max-width: 330px) 330px, (max-width: 540px) 540px, 720px," class="img-fluid card-img-top"/>
2024-01-02 11:09:43 +00:00
<br>
</div>
<div class="col-12 mb-5 mt-5 fs-5">
{!! $content->beschreibung !!}
</div>
2023-12-17 16:06:45 +00:00
2024-01-02 11:09:43 +00:00
@isset($content->bilder)
<div class="col-12 mb-5">
<h2 class="mb-4 mt-5 h3">Bilder</h2>
</div>
@foreach($content->bilder as $image)
<div class="col-12 col-md-6 col-lg-3 text-center">
<x-img src="{{$image}}" class="rounded img-fluid border mb-3"/>
</div>
@endforeach
@endisset
2023-07-25 14:32:35 +00:00
</div>
</div>
2024-01-09 19:26:14 +00:00
<div class="col-12 col-lg-4 offset-lg-1" id="lumino-form-sent">
<div class="card mb-5 mt-5 shadow-lg position-sticky" style="top:5rem;">
2023-07-25 16:33:26 +00:00
<div class="card-header text-center">
<h3 class="fs-5 fw-bold">Unverbindlich anfragen</h3>
2023-07-25 14:32:35 +00:00
</div>
<div class="card-body">
2023-12-27 16:34:37 +00:00
@if(session()->has('error'))
<div class="alert alert-danger mb-4">
<span class="fw-bold">Fehler!</span>
<br>
{{session()->get('error')}}
2023-07-25 14:32:35 +00:00
</div>
2023-12-27 16:34:37 +00:00
@endif
@if(session()->has('success'))
<div class="row">
<div class="col-12">
<div class="alert alert-success" id="successful-submitting-form" role="alert">
<div class="row text-center">
<div class="col-12" style="text-align: center;">
2024-01-10 18:57:13 +00:00
<script src="{{storage('assets/libs/lottie-player-0.4.0.js')}}"></script>
<lottie-player src="{{storage('assets/animations/form-sent.json')}}" background="transparent" speed="1" style="width: 190px; height: 190px; display: inline-block;" autoplay loop></lottie-player>
2023-12-27 16:34:37 +00:00
</div>
<div class="col-12">
<h2 class="mt-3 fs-4 text-muted">Anfrage erfolgreich abgesendet!</h2>
</div>
</div>
</div>
</div>
2023-07-25 14:32:35 +00:00
</div>
2023-12-27 16:34:37 +00:00
@else
2024-01-09 20:06:04 +00:00
<x-form id="anfrage" class="form-load" id-name="anfrage" channels="email-anfrage,bestaetigung-kunde">
2024-01-09 19:26:14 +00:00
<div class="mb-4">
<label for="exampleInputEmail1" class="form-label">Name:</label>
<input type="name" name="name" class="form-control" id="name" aria-describedby="emailHelp" placeholder="Max Mustermann" autocomplete="on" required>
</div>
2023-07-25 14:32:35 +00:00
2024-01-09 19:26:14 +00:00
<div class="mb-4">
<label for="exampleInputEmail1" class="form-label">Telefonnummer:</label>
2024-01-09 20:28:36 +00:00
<input type="tel" name="tel" class="form-control phone" id="tel" aria-describedby="emailHelp" placeholder="0170 1234 56478" autocomplete="on">
2024-01-09 19:26:14 +00:00
</div>
2023-07-25 16:33:26 +00:00
2024-01-09 19:26:14 +00:00
<div class="mb-4">
<label for="email" class="form-label">E-Mail:</label>
<input type="email" name="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="beispiel@areya.de" autocomplete="on" required>
</div>
2023-12-27 16:34:37 +00:00
2024-01-09 19:26:14 +00:00
<div class="form-floating mb-4">
<textarea style="height: 80px;" name="nachricht" class="form-control" placeholder="Leave a comment here" id="nachricht"></textarea>
<label for="floatingTextarea">Nachricht</label>
</div>
2023-12-27 16:34:37 +00:00
2024-01-10 09:56:51 +00:00
<div class="mb-4">
<i class="text-muted small">Wir verwenden Ihre Daten ausschließlich gemäß unserer <a href="{{url('/datenschutz')}}" class="text-decoration-none" >Datenschutzerklärung</a>.</i>
</div>
2024-01-09 19:26:14 +00:00
<div class="d-grid gap-2">
2024-01-10 09:56:51 +00:00
<button type="submit" d-load-message="Wird verschickt" class="btn btn-primary btn-block btn-load">Anfrage unverbindlich absenden
<svg style="fill: currentColor;width: 17px;margin-left: 6px;margin-bottom: 4px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"/></svg>
2024-01-09 19:26:14 +00:00
</button>
</div>
</x-form>
2023-12-27 16:34:37 +00:00
@endif
2023-07-25 14:32:35 +00:00
</div>
</div>
</div>
</div>
2023-12-17 17:32:49 +00:00
@php($otherContents = filterByContentType("Leistungen")->filter(function ($item) use ($content) { return $item->id != $content->id; }))
@if($otherContents->isNotEmpty())
<div class="row mb-5">
<div class="col-12">
<hr class="pb-5 mt-5">
<h2 class="mb-4 mt-5 h3">Weitere Leistungen</h2>
</div>
2024-01-10 08:37:12 +00:00
@foreach($otherContents->take(3) as $index => $otherContent)
2023-12-17 17:32:49 +00:00
2023-12-27 16:34:37 +00:00
<div class="col-12 col-md-6 col-lg-4 mb-3">
2023-12-17 17:32:49 +00:00
<a href="{{$otherContent->path}}" class="text-decoration-none">
2024-01-10 08:37:12 +00:00
<div class="card shadow-sm h-100" data-aos="fade-up" data-aos-delay="{{$index * 250}}">
2023-12-17 17:32:49 +00:00
<x-img src="{{$otherContent->image()}}" class="img-fluid card-img-top"/>
<div class="card-body">
<h3 class="h5 mb-3">{{$otherContent->title}}</h3>
{{$otherContent->kurzbeschreibung}}
</div>
</div>
</a>
</div>
@endforeach
</div>
@endif
2023-07-25 14:32:35 +00:00
</div>
2024-01-10 20:31:47 +00:00
<div class="fixed-bottom d-lg-none text-center pb-3 form-anchor">
2024-01-10 12:36:05 +00:00
<div class="d-grid gap-2 px-4">
<a href="#lumino-form-sent" class="btn btn-primary btn-block">Angebot anfordern
<svg style="fill: currentColor;width: 17px;margin-left: 6px;margin-bottom: 4px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"/></svg>
</a>
</div>
</div>
2023-07-25 14:32:35 +00:00
@stop
@section('scripts')
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script>
2024-01-09 20:06:04 +00:00
const shareData = {
title: "{{ $content->title }}",
text: 'Text',
url: window.location.href,
}
</script>
<!-- <script src="{{ asset('template/js/pages/news/methods.js') }}"></script>
2023-07-25 14:32:35 +00:00
<script src="{{ asset('template/js/pages/news/events.js') }}"></script>
2024-01-09 20:28:36 +00:00
<script src="{{ asset('template/js/pages/news/script.js') }}"></script> -->
<script src="{{ asset('template/assets/libs/intl-tel-input-17.0.0/js/intlTelInput.min.js') }}"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
let baseUrl = document.querySelector("meta[name=url-base]").getAttribute('content');
let input = document.querySelector(".phone");
let iti = window.intlTelInput(input, {
initialCountry: "de",
geoIpLookup: function(callback) {
$.get('https://ipinfo.io', function() {}, "jsonp").always(function(resp) {
var countryCode = (resp && resp.country) ? resp.country : "us";
callback(countryCode);
});
},
utilsScript: baseUrl+"/template/assets/libs/intl-tel-input-17.0.0/js/utils.min.js"
});
$("#anfrage").submit(function() {
if (iti.isValidNumber() == false) {
alert('Telefonnummer nicht gültig!');
return false;
}
return true;
});
2024-01-09 20:06:04 +00:00
});
2024-01-09 20:28:36 +00:00
</script>
2023-07-25 14:32:35 +00:00
<script>
2024-01-09 20:06:04 +00:00
document.addEventListener("DOMContentLoaded", () => {
document.querySelectorAll(".form-load").forEach(formLoad => formLoad.addEventListener("submit", () => {
let btnLoad = formLoad.querySelector('.btn-load');
let message = btnLoad.getAttribute('d-load-message');
btnLoad.innerHTML = `
<span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
<span role="status">${message}...</span>
`;
}));
});
</script>
2024-01-10 12:47:17 +00:00
<script>
// Get the elements
2024-01-10 20:31:47 +00:00
const targetElement = document.querySelector('#lumino-form-sent');
const elementToRemove = document.querySelector('.form-anchor');
// Create an Intersection Observer
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
// If target element is visible
if (entry.isIntersecting) {
// Remove the element to remove
2024-01-10 20:38:53 +00:00
elementToRemove.classList.remove('show');
setTimeout(() => elementToRemove.style.display = 'none', 300);
2024-01-10 20:31:47 +00:00
} else {
const fixedElementRect = elementToRemove.getBoundingClientRect();
const referenceElementRect = targetElement.getBoundingClientRect();
if (fixedElementRect.bottom < referenceElementRect.top) {
// Show the element to remove
elementToRemove.style.display = 'block';
2024-01-10 20:38:53 +00:00
setTimeout(() => elementToRemove.classList.add('show'), 300);
2024-01-10 20:31:47 +00:00
} else {
// Hide the element to remove
2024-01-10 20:38:53 +00:00
//elementToRemove.style.display = 'none';
elementToRemove.classList.remove('show');
setTimeout(() => elementToRemove.style.display = 'none', 300);
2024-01-10 20:31:47 +00:00
}
}
// Stop observing once it's removed (optional)
// observer.unobserve(targetElement);
});
});
// Observe the target element
observer.observe(targetElement);
2024-01-10 12:47:17 +00:00
</script>
2023-07-25 14:32:35 +00:00
@stop