{% apply spaceless %}
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>{% if app.request.server.get('WEB_UMGEBUNG') != 'WEB' %}{{ app.request.server.get('WEB_UMGEBUNG') }}-{% endif %}{% block metaTitle %}handwerkXcampus{% endblock %}</title>
{% if app.request.server.get('WEB_UMGEBUNG') != 'WEB' %}
<meta name="robots" content="noindex">
{% endif %}
<!-- SEO Meta Tags-->
<meta name="description"
content="{% block metaDescription %}Der handwerkXcampus bietet einen einfachen Zugang zu Weiterbildung in der SHK Branche. Wir bieten eine große Auswahl an OnDemand-Kursen und Schulungen in Präsenz und Online, die direkt auf das Handwerk abgestimmt sind. So können sich Mitarbeiter aus dem Handwerk in den Bereichen Technik, Sicherheit und Gesetzgebung weiterbilden.{% endblock %}">
<meta name="keywords" content="Handwerk, Weiterbildung, Schulungen im Handwerk, SHK Weiterbildungen">
<!-- Viewport-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<!-- Favicon and Touch Icons-->
<link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicons') }}/favicon.ico">
<link rel="icon" type="image/x-icon" href="{{ asset('favicons') }}/favicon.ico">
<link rel="icon" type="image/gif" href="{{ asset('favicons') }}/favicon.gif">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon.png">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon.png">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-57x57.png" sizes="57x57">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-60x60.png" sizes="60x60">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-72x72.png" sizes="72x72">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-76x76.png" sizes="76x76">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-114x114.png" sizes="114x114">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-120x120.png" sizes="120x120">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-128x128.png" sizes="128x128">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-144x144.png" sizes="144x144">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-152x152.png" sizes="152x152">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="apple-touch-icon" href="{{ asset('favicons') }}/apple-touch-icon-precomposed.png">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-160x160.png" sizes="160x160">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="{{ asset('favicons') }}/favicon-196x196.png" sizes="196x196">
<meta name="msapplication-TileImage" content="{{ asset('favicons') }}/win8-tile-144x144.png">
<meta name="msapplication-square70x70logo" content="{{ asset('favicons') }}/win8-tile-70x70.png">
<meta name="msapplication-square144x144logo" content="{{ asset('favicons') }}/win8-tile-144x144.png">
<meta name="msapplication-square150x150logo" content="{{ asset('favicons') }}/win8-tile-150x150.png">
<meta name="msapplication-wide310x150logo" content="{{ asset('favicons') }}/win8-tile-310x150.png">
<meta name="msapplication-square310x310logo" content="{{ asset('favicons') }}/win8-tile-310x310.png">
<link rel="manifest" href="{{ asset('css/site.webmanifest') }}">
<link rel="mask-icon" color="#fe6a6a" href="{{ asset('img/asafari-pinned-tab.svg') }}">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
<!-- Vendor Styles including: Font Icons, Plugins, etc.-->
<link rel="stylesheet" media="screen" href="{{ asset('vendor/simplebar/dist/simplebar.min.css') }}"/>
<link rel="stylesheet" media="screen" href="{{ asset('vendor/tiny-slider/dist/tiny-slider.css') }}"/>
<link rel="stylesheet" media="screen" href="{{ asset('vendor/lightgallery.js/dist/css/lightgallery.min.css') }}"/>
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/icons.min.css') }}"/>
<!-- Main Theme Styles + Bootstrap-->
<link rel="stylesheet" media="screen" href="{{ asset('css/theme.min.css') }}">
<!-- Quill css -->
<link href="{{ asset('hyper5/vendor/jquery-toast-plugin/jquery.toast.min.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('hyper5/vendor/jstree/themes/default/style.min.css') }}" rel="stylesheet" type="text/css">
<link rel="stylesheet" media="screen" href="{{ asset('vendor/nouislider/dist/nouislider.min.css') }}"/>
<link rel="stylesheet" media="screen" href="{{ asset('vendor/drift-zoom/dist/drift-basic.min.css') }}"/>
<!-- Eigene CSS Datei -->
<link rel="stylesheet" media="screen" href="{{ asset('css/campus.css') }}?V=28"/>
{% if not app.session.get('appUser') and app.request.server.get('WEB_UMGEBUNG') != 'LOCAL' %}
{% if not is_granted('ROLE_MITGLIED') %}
<script type="text/javascript" charset="UTF-8" src="//cdn.cookie-script.com/s/1a5771b0c569557353339494055e4e80.js"></script>
<script type="text/javascript" charset="UTF-8" data-cookiescriptreport="report" src="//report.cookie-script.com/r/1a5771b0c569557353339494055e4e80.js"></script>
{#
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="b58eb13a-043c-4f6e-84fd-881aad6a11db" data-blockingmode="auto"
type="text/javascript"></script>
#}
{% endif %}
{% endif %}
{% if app.request.server.get('WEB_UMGEBUNG') == 'WEB' %}
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-JNWK6WEJRQ"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-JNWK6WEJRQ');
</script>
{% endif %}
{% include('/user/firma/_firmenfarben.html.twig') %}
<!-- bundle -->
<script src="{{ asset('assets/js/vendor.min.js') }}"></script>
<script src="{{ asset('amcharts4/core.js') }}"></script>
<script src="{{ asset('amcharts4/charts.js') }}"></script>
<script src="{{ asset('amcharts4/animated.js') }}"></script>
<script>
jQuery(function ($) {
window.appNavMenuNachLinksWischen = function () {
let erstePosX = 0
let letztePosX = 0
document.addEventListener('touchstart', e => {
erstePosX = e.changedTouches[0].screenX
})
document.addEventListener('touchend', e => {
let meineStrecke = erstePosX - e.changedTouches[0].screenX
if ($('.offcanvasMenuNachLinksSchiessen').hasClass('show')) {
if (meineStrecke > 100) {
$('.offcanvasMenuSchliessenButton').trigger('click');
setTimeout(function () {
$('.offcanvasMenuNachLinksSchiessen').css('left', 0);
}, 500)
} else {
$('.offcanvasMenuNachLinksSchiessen').css('left', 0);
}
}
})
document.addEventListener('touchmove', e => {
let movePos = e.changedTouches[0].screenX
let meineStrecke = erstePosX - movePos
if ($('.offcanvasMenuNachLinksSchiessen').hasClass('show')) {
if (movePos > letztePosX) {
$('.offcanvasMenuNachLinksSchiessen').css('left', 0);
}
if (meineStrecke > 25) {
$('.offcanvasMenuNachLinksSchiessen').css('left', (meineStrecke - 24) * -1);
}
letztePosX = movePos;
}
})
}
window.appNavHauptmenuNachObenWischen = function () {
let erstePosY = 0
document.addEventListener('touchstart', e => {
erstePosY = e.changedTouches[0].screenY
})
document.addEventListener('touchend', e => {
let meineStrecke = erstePosY - e.changedTouches[0].screenY
if ($('.mobil-hauptmenu').hasClass('show')) {
if (meineStrecke > 50) {
$('.button-mobiles-menu').trigger('click');
}
}
})
}
window.appNavHauptmenuNachObenWischen();
});
</script>
</head>
<body class="handheld-toolbar-enabled">
{% include('/user/firma/_firmenfarben.html.twig') %}
<main class="page-wrapper">
<!-- Navbar Marketplace-->
<!-- Remove "navbar-sticky" class to make navigation bar scrollable with the page.-->
<header class="bg-light shadow-sm navbar-sticky navbar-stuck">
<div class="navbar navbar-expand-lg navbar-light">
<div class="container">
<div id="hauptseite-zurueck-symbol" class="navbar-toolbar d-none hauptseite-zurueck-symbol">
<a id="hauptseite-zurueck-link" class="navbar-tool me-2 hauptseite-zurueck-link" href="">
<span class="navbar-tool-tooltip zindex-10">zurück</span>
<div class="navbar-tool-icon-box bg-secondary"><i class="navbar-tool-icon mdi mdi-arrow-left-bold-outline fs-4"></i></div>
</a>
</div>
<div id="hauptseite-campus-logo" class="hauptseite-campus-logo">
<a class="navbar-brand d-none d-sm-block flex-shrink-0 order-lg-1 me-0" href="{{ path ('user_start') }}">
<img src="{{ asset('img/campus/logo/Logo.png') }}" width="120" alt="Campus">
</a>
<a class="navbar-brand d-sm-none me-0 me-md-2 order-lg-1 p-0" href="{{ path ('user_start') }}">
<img src="{{ asset('img/campus/logo/Logo_klein.png') }}" width="48" alt="Campus">
{#
<img src="{{ asset('img/campus/logo/Logo.png') }}" width="90" alt="Campus">
#}
</a>
</div>
{% include('/nav/user_navigation_rechts.html.twig') %}
{% include('/nav/user_navigation_links.html.twig') %}
</div>
</div>
<div class="search-box collapse" id="searchBox">
<div class="card pt-2 pb-4 border-0 rounded-0">
<div class="container">
<div class="input-group"><i class="ci-search position-absolute top-50 start-0 translate-middle-y text-muted fs-base ms-3"></i>
{% include('/nav/user_navigation_suche.html.twig') %}
</div>
</div>
</div>
</div>
</header>
{% if app.request.server.get('WEB_UMGEBUNG') != 'WEB' %}
{% if app.user.provisorischerMitarbeiter is not defined or app.user.provisorischerMitarbeiter == 0 %}
<div class="text-center bg-warning text-white fw-bolder">
<h3 class="fw-bolder"> {{ app.request.server.get('WEB_UMGEBUNG') }} - Version</h3>
</div>
{% else %}
<div class="text-center bg-danger fw-bolder p-1">
<h3 class="fw-bolder text-white p-0 m-0">Inaktiver Account <small>(provisorischer Mitarbeiter)</small></h3>
</div>
{% endif %}
{% else %}
{% endif %}
{% if is_granted("IS_IMPERSONATOR") %}
{% if app.user.userProfil.celseoSupportFreigabe != null %}
<div class="text-center bg-success text-white fw-bolder">
<h5 class="pt-1 mb-0 text-white fw-bolder">Support Freigabe seit {{ app.user.userProfil.celseoSupportFreigabe|date('H:i:s') }}</h5>
</div>
{% else %}
<div class="text-center bg-danger text-white fw-bolder">
<h5 class="pt-1 mb-0 text-white fw-bolder">Keine Supportfreigabe</h5>
</div>
{% endif %}
{% endif %}
{% if app.request.server.get('MAINTENANCE_HINWEIS') != '0' %}
{% include('/meldungen.html.twig') %}
{% endif %}
{% block body %}
{% endblock %}
</main>
{% if not app.session.get('appUser') %}
<div class="{% if is_granted("ROLE_CELSEO_MASTERADMIN") %}d-none d-md-block{% endif %}">
<div class="mt-5"> </div>
<!-- Footer-->
<footer class="footer pt-4 hintergrundfarbe schriftfarbe">
<div class="container pt-2 pb-0">
<div class="row">
<div class="col-md-5 text-center text-md-start mb-4">
<div class="text-nowrap mb-3">
<a class="d-inline-block align-middle mt-n2 me-2" href="#"><img class="d-block" src="{{ asset('img/campus/logo/Logo_weiss.png') }}" width="117"
alt="Cartzilla"></a>
</div>
<p class="fs-sm text-white opacity-70 pb-1">Finde dein Weiterbildungsangebot!<br>Mach dich fit für die Zukunft.</p>
{#
<h6 class="d-inline-block pe-3 me-3 border-end border-light">
<span class="text-white fw-bolder h4">78 </span><span class="fw-normal text-white">Seminare</span>
</h6>
<h6 class="d-inline-block me-3">
<span class="text-white fw-bolder h4">128 </span><span class="fw-normal text-white">Praxisvideos</span>
</h6>
<div class="widget mt-4 text-md-nowrap text-center text-md-start">
<a class="btn-social bs-light bs-facebook me-2 mb-2" href="#"><i class="ci-facebook"></i></a>
<a class="btn-social bs-light bs-dribbble me-2 mb-2" href="#"><i class="ci-instagram"></i></a>
<a class="btn-social bs-light bs-behance me-2 mb-2" href="#"><i class="ci-youtube"></i></a>
<a class="btn-social bs-light bs-pinterest me-2 mb-2" href="#"><i class="ci-phone"></i></a>
</div>
#}
</div>
<!-- Mobile dropdown menu (visible on screens below md)-->
<div class="col-12 d-md-none text-center mb-4 pb-2">
<div class="btn-group dropdown d-block mx-auto mb-3">
<button class="btn btn-outline-light border-light dropdown-toggle" type="button" data-bs-toggle="dropdown">Kategorien</button>
<ul class="dropdown-menu my-1">
{#<li><a class="dropdown-item" href="{{ path ('user_konfigurator_auswahl') }}">Stärkenkompas</a></li>#}
<li><a class="dropdown-item seminarlink-navigationsleiste" href="#">Seminare</a></li>
<li><a class="dropdown-item" href="{{ path ('user_lieferanten') }}">Lieferanten</a></li>
</ul>
</div>
<div class="btn-group dropdown d-block mx-auto mb-10">
<button class="btn btn-outline-light border-light dropdown-toggle" type="button" data-bs-toggle="dropdown">Rechtliches</button>
<ul class="dropdown-menu my-1">
<li><a class="dropdown-item" href="#">Datenschutz</a></li>
<li><a class="dropdown-item" href="#">Impressum</a></li>
<li><a class="dropdown-item" href="#">AGB´s</a></li>
</ul>
</div>
</div>
<!-- Desktop menu (visible on screens above md)-->
<div class="col-md-3 d-none d-md-block text-center text-md-start mb-4">
<div class="widget widget-links widget-light pb-2">
<h3 class="widget-title text-light">Kategorien</h3>
<ul class="widget-list">
{#<li class="widget-list-item"><a class="widget-list-link" href="{{ path ('user_konfigurator_auswahl') }}">Stärkenkompass</a></li>#}
<li class="widget-list-item"><a class="widget-list-link seminarlink-navigationsleiste" href="#">Seminare</a></li>
{% if is_granted('ROLE_FIRMA') %}
<li class="widget-list-item"><a class="widget-list-link" href="{{ path ('user_lieferanten') }}">Lieferanten</a></li>
{% endif %}
</ul>
</div>
</div>
<div class="col-md-4 d-none d-md-block text-center text-md-start mb-4">
<div class="widget widget-links widget-light pb-2">
<h3 class="widget-title text-light">Rechtliches</h3>
<ul class="widget-list">
<li class="widget-list-item"><a class="widget-list-link" href="{{ path('datenschutz') }}">Datenschutz</a></li>
<li class="widget-list-item"><a class="widget-list-link" href="{{ path('impressum') }}">Impressum</a></li>
<li class="widget-list-item"><a class="widget-list-link" href="{{ path('agb') }}">AGB´s</a></li>
{# <li class="widget-list-item"><a class="widget-list-link" href="{{ path('teilnahmebedingungen') }}">Teilnahmebedingungen</a></li> #}
</ul>
</div>
</div>
</div>
</div>
</footer>
</div>
{% else %}
<div class="mb-5"> </div>
{% endif %}
<div class="loading-screen d-none">
<span>
<i class="mdi mdi-spin mdi-loading"></i>
</span>
</div>
<div class="handheld-toolbar d-lg-none">
<div class="d-table table-layout-fixed w-100 pb-4">
<a id="zurueck-mobil-ansicht"
class="d-table-cell handheld-toolbar-item hauptseite-zurueck-symbol hauptseite-zurueck-link border-0 d-none" href="">
<span class="handheld-toolbar-icon"><i class="mdi mdi-arrow-left-bold-outline fs-5 p-0"></i></span>
</a>
<a id="home-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0" href="{{ path ('user_start') }}">
<span class="handheld-toolbar-icon"><i class="ci-home"></i></span>
</a>
<a id="dashboard-mobil-ansicht"
class="d-table-cell handheld-toolbar-item border-0 d-none" href="{{ path ('user_firma',{id:0, seite:'info'}) }}">
<span class="handheld-toolbar-icon"><i class="mdi mdi-view-dashboard-outline fs-5 p-0"></i></span>
</a>
{#
<a id="staerkenkompass-mobil-ansicht"
class="d-table-cell handheld-toolbar-item staerkenkompass-zurueck-symbol border-0 d-none" href="{{ path ('user_konfigurator_auswahl') }}">
<span class="handheld-toolbar-icon"><i class="mdi mdi-compass-outline fs-5 p-0"></i></span>
</a>
#}
<a id="staerkenkompass-mobil-ansicht"
class="d-table-cell handheld-toolbar-item staerkenkompass-zurueck-symbol border-0 d-none seminarlink-navigationsleiste" href="#">
<span class="handheld-toolbar-icon"><i class="mdi mdi-card-search-outline fs-5 p-0"></i></span>
</a>
<a id="seminarfilter-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#seminarfilter-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-filter-alt schriftfarbe"></i></span>
</a>
<a id="interne-schulungen-schulungsinhalt-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#interne-schulungen-schulungsinhalt-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-view-list schriftfarbe fs-5 p-0"></i></span>
</a>
<a id="chat-mobil-ansicht"
class="d-table-cell handheld-toolbar-item staerkenkompass-zurueck-symbol border-0 d-none" href="{{ path ('user_firma',{id:0, seite:'chat-alle'}) }}">
<span class="handheld-toolbar-icon"><i class="uil-comment fs-5 p-0"></i></span>
</a>
<a id="favoriten-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 favoriten-handy-navigation-link d-none"
href="{% if is_granted('ROLE_MITGLIED') %}{{ path ('user_profil_mein_profil_info', {seite:'favoriten'}) }}{% else %}{{ path ('user_gast_favoriten') }}{% endif %}">
<span class="handheld-toolbar-icon"><i class="ci-heart"></i></span>
</a>
<a id="firmeninfo-menu-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#firmeninfo-menu-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-view-list schriftfarbe"></i></span>
</a>
<a id="interne-schulungen-menu-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#interne-schulungen-menu-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-view-list schriftfarbe"></i></span>
</a>
<a id="lieferanten-videos-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#lieferanten-videos-menu-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-view-list schriftfarbe"></i></span>
</a>
<a id="aufDerBaustelle-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#aufDerBaustelle-menu-sidebar">
<span class="handheld-toolbar-icon"><i class="mdi mdi-google-maps schriftfarbe fs-5 p-0"></i></span>
</a>
<a id="account-menu-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 hintergrundfarbe d-none" href="#"
data-bs-toggle="offcanvas" data-bs-target="#account-menu-sidebar">
<span class="handheld-toolbar-icon"><i class="ci-view-list schriftfarbe"></i></span>
</a>
{#
<a id="navigation-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0" href="javascript:void(0)" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
onclick="window.scrollTo(0, 0)">
<span class="handheld-toolbar-icon"><i class="ci-menu"></i></span>
</a>
#}
<a id="warenkorb-mobil-ansicht" class="d-table-cell handheld-toolbar-item border-0 warenkorb-handy-navigation-link d-none"
href="{{ path ('user_profil_mein_profil_info', {seite:'warenkorb'}) }}">
<span class="handheld-toolbar-icon"><i class="ci-cart"></i>
<span id="warenkorb-handy-navigation-anzahl"
class="badge bg-primary rounded-pill ms-1"
style="visibility: hidden">0
</span>
</span>
</a>
<a id="faq-mobil-ansicht" class="d-table-cell handheld-toolbar-item hintergrundfarbe d-none" href="#" data-bs-toggle="offcanvas" data-bs-target="#help-sidebar">
<span class="handheld-toolbar-icon"><i class="mdi mdi-help-circle-outline schriftfarbe"></i></span>
</a>
</div>
</div>
<!-- Back To Top Button--><a class="btn-scroll-top" href="#top" data-scroll><span class="btn-scroll-top-tooltip text-muted fs-sm me-2">Top</span><i
class="btn-scroll-top-icon ci-arrow-up"> </i></a>
<!-- Vendor scrits: js libraries and plugins-->
{# <script src="{{ asset('vendor/bootstrap/dist/js/bootstrap.bundle.min.js') }}"></script> #}
<script src="{{ asset('vendor/simplebar/dist/simplebar.min.js') }}"></script>
<script src="{{ asset('vendor/tiny-slider/dist/min/tiny-slider.js') }}"></script>
<script src="{{ asset('vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js') }}"></script>
<script src="{{ asset('vendor/nouislider/dist/nouislider.min.js') }}"></script>
<script src="{{ asset('vendor/drift-zoom/dist/Drift.min.js') }}"></script>
<!-- Main theme script-->
<script src="{{ asset('js/theme.min.js') }}?V=2"></script>
<!-- plugin js -->
<script src="{{ asset('assets/js/vendor/dropzone.min.js') }}"></script>
<!-- init js -->
<script src="{{ asset('assets/js/ui/component.fileupload.js') }}"></script>
<!-- eigene js -->
<script src="{{ asset('js/campus.js') }}?V=7"></script>
<script src="{{ asset('hyper5/vendor/jstree/jstree.min.js') }}"></script>
<script src="{{ asset('hyper5/vendor/jquery-toast-plugin/jquery.toast.min.js') }}"></script>
<script src="{{ asset('hyper5/js/pages/demo.toastr.js') }}"></script>
<script>
var tooltipList;
var tooltipTriggerList;
if ($('#seminarfilter-aktivieren').length != 0) {
$('#seminarfilter-mobil-ansicht').removeClass('d-none')
}
if ($('#interne-schulungen-aktivieren').length != 0) {
$('#interne-schulungen-menu-mobil-ansicht').removeClass('d-none')
}
if ($('#interne-schulungen-schulungsinhalt-aktivieren').length != 0) {
$('#interne-schulungen-schulungsinhalt-mobil-ansicht').removeClass('d-none')
}
if ($('#lieferanten-videos-aktivieren').length != 0) {
$('#lieferanten-videos-mobil-ansicht').removeClass('d-none')
}
if ($('#firmeninfo-menu-aktivieren').length != 0) {
$('#firmeninfo-menu-mobil-ansicht').removeClass('d-none')
}
if ($('#account-menu-aktivieren').length != 0) {
$('#account-menu-mobil-ansicht').removeClass('d-none')
}
if ($('#faq-mobil-aktivieren').length != 0) {
$('#faq-mobil-ansicht').removeClass('d-none')
}
function loadTooltips() {
if (typeof tooltipList === 'object') {
tooltipTriggerList.map(function (tooltipTriggerEl) {
bootstrap.Tooltip.getInstance(tooltipTriggerEl).dispose();
});
}
tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
});
}
jQuery(function ($) {
$(document).on('change', '#switch-user-celseo-support', function (event) {
let confirmNachricht;
let confirmBestaetigen;
let celseoSupportAktiv = 0;
$('.switch-user-celseo-support:checked').each(function (index, checkboxAktiv) {
celseoSupportAktiv = $(checkboxAktiv).attr('data-aktiv');
});
celseoSupportAktiv = parseInt(celseoSupportAktiv);
if (celseoSupportAktiv === 1) {
$('.switch-user-celseo-support').prop('checked', false)
confirmNachricht = 'Möchtest du zulassen, dass der Support zur Problemlösung Zugriff auf dein Campus-Profil bekommt?<br>Die Freigabe wird automatisch um Mitternacht deaktiviert, wenn sie nicht vorzeitig von dir beendet wird.'
confirmBestaetigen = 'Profil freigeben'
} else {
$('.switch-user-celseo-support').prop('checked', true)
confirmNachricht = 'Zugriff für den Support deaktivieren?'
confirmBestaetigen = 'Freigabe deaktivieren'
}
$('.offcanvasMenuSchliessenButton').trigger('click');
window.confirmModal('Support-Freigabe', '', confirmNachricht, confirmBestaetigen, function () {
$.ajax({
'url': '{{ path('celseo_support_freigabe') }}',
'method': 'post',
'data': {
'celseoSupportAktiv': celseoSupportAktiv,
},
'success': function (response) {
if (celseoSupportAktiv === 1) {
$('.switch-user-celseo-support').prop('checked', true)
$('#freigabe-celseo-support-symbol').css("visibility", "visible")
} else {
$('.switch-user-celseo-support').prop('checked', false)
$('#freigabe-celseo-support-symbol').css("visibility", "hidden")
}
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
});
$('.dropdown-click').on('click', function () {
$('.dropdown-menu', $(this)).toggleClass('show');
});
$.ajax({
'url': '{{ path('user_start_navbar_seminare') }}',
'method': 'GET',
'success': function (response) {
$('#user-navbar-link-seminare').html(response);
},
'error': function (response) {
console.log('Fehler beim Seminar Laden', response);
}
});
$(document).on('change', '.input-suchbegriff', function (event) {
event.preventDefault();
let jsonData = {};
jsonData.schulungsart = [];
jsonData.branche = [];
jsonData.kategorie = [];
jsonData.themengebiet = [];
jsonData.zielgruppe = [];
jsonData.anbieter = [];
jsonData.suchbegriff = $(this).val();
window.location.href = '/user/start/seminarfilter?filter=' + encodeURIComponent(JSON.stringify(jsonData));
});
$(document).on('click', '.nav-link-suchfilter-seminare', function (event) {
event.preventDefault();
let linkArt = $(this).attr('data-seminare-link-art')
let linkid = $(this).attr('data-seminare-link-id')
let jsonData = {};
jsonData.schulungsart = [];
jsonData.branche = [];
jsonData.kategorie = [];
jsonData.themengebiet = [];
jsonData.zielgruppe = [];
jsonData.anbieter = [];
jsonData.suchbegriff = '';
if ($('.input-suchbegriff').length > 0) {
jsonData.suchbegriff = $('.input-suchbegriff').val();
}
if (linkArt === 'schulungsart') {
jsonData.schulungsart.push(linkid);
}
if (linkArt === 'kategorie') {
let linkid2 = $(this).attr('data-seminare-link-id2')
jsonData.branche.push(linkid2);
jsonData.kategorie.push(linkid);
}
if (linkArt === 'themengebiet') {
jsonData.themengebiet.push(linkid);
}
if (linkArt === 'zielgruppe') {
jsonData.zielgruppe.push(linkid);
}
if (linkArt === 'anbieter') {
jsonData.anbieter.push(linkid);
}
window.location.href = '/user/start/seminarfilter?filter=' + encodeURIComponent(JSON.stringify(jsonData));
});
$(document).on('click', '.seminarlink-navigationsleiste', function (event) {
event.preventDefault();
let jsonData = {};
jsonData.schulungsart = [];
jsonData.branche = [];
jsonData.kategorie = [];
jsonData.themengebiet = [];
jsonData.zielgruppe = [];
jsonData.anbieter = [];
jsonData.suchbegriff = '';
window.location.href = '/user/start/seminarfilter?filter=' + encodeURIComponent(JSON.stringify(jsonData));
});
window.toastSpeichern = function (text, farbe, zeit, position = 'mid-center') {
$.toast({
text: text, // Text in der Benachrichtigung
heading: '', // Optionale Überschrift
icon: farbe, // Durch ändern des Icons wird die Hintergrundfarbe etc geregelt, info, error, warning, success
showHideTransition: 'fade', // fade, slide oder plain
allowToastClose: false, // Darf der Toast geschlossen werden? true - false
hideAfter: zeit, // 1 Sekunde = 1000
stack: 1, // Anzahl wie viele Toast übereinander gelegt werden können
position: position, // bottom-left, bottom-right, bottom-center, top-left, top-right, top-center, mid-center
loader: false, // Balken anzeigen true - false
loaderBg: '#9EC600', // Farbe des Balken
beforeShow: function () {
}, // will be triggered before the toast is shown
afterShown: function () {
}, // will be triggered after the toat has been shown
beforeHide: function () {
}, // will be triggered before the toast gets hidden
afterHidden: function () {
} // will be triggered after the toast has been hidden
});
}
let userJaNein = false;
{% if is_granted('ROLE_MITGLIED') %}
userJaNein = true;
{% endif %}
/* if (userJaNein || Cookiebot.consent.marketing) {
$.ajax({
'url': '{{ path('campus_online_statistik') }}',
'method': 'GET',
'success': function (response) {
},
'error': function (response) {
}
});
}*/
});
</script>
{% if is_granted('ROLE_MITGLIED') %}
<script>
jQuery(function ($) {
window.chatConnection = null;
window.refreshUserNotification = null;
window.websocketConnected = false;
function connectWebocket() {
window.chatConnection = new WebSocket('{{ app.request.server.get('WEBSOCKET_ROUTE') }}');
window.chatConnection.onopen = function (e) {
console.log("Connection established!");
window.websocketConnected = true;
/*let $chatSimplebar = $('.simplebar-content-wrapper', $('#chat-frame-wrapper'));
$chatSimplebar[0].scrollTop = $chatSimplebar[0].scrollHeight;*/
};
window.chatConnection.onmessage = function (e) {
let messageData = JSON.parse(e.data);
let now = new Date();
let showMessage;
if (messageData.type === 'single') {
showMessage = parseInt($('#chat-frame-wrapper').attr('data-chat-userid')) === parseInt(messageData.sender);
} else {
showMessage = parseInt($('#chat-frame-wrapper').attr('data-chat-userid')) === parseInt(messageData.empfaenger);
}
if (showMessage) {
const chatField = document.querySelector('#chatcontent');
const newElement = document.createElement("li");
/* let bildHTML = '';
if(messageData['bild'].length > 0) {
if(messageData['projektgruppe'] !== -1) {
bildHTML = `<img src="/user/firma/gruppenchat/upload_datei/ansehen/${messageData['bild']}" class="img-fluid chat-image mt-2 mb-2" onload="window.scrollChatDown()">`;
} else {
bildHTML = `<img src="/user/firma/chat/upload_datei/ansehen/${messageData['chatId']}" class="img-fluid chat-image mt-2 mb-2" onload="window.scrollChatDown()">`;
}
}
let strNachricht = `<li class="clearfix chat-li" data-chat-id="${messageData.chatId}">
<div class="chat-avatar">
<img src="${messageData.senderProfilbild}" class="rounded-circle" alt="Profilbild">
<i>${addZero(now.getHours())}:${addZero(now.getMinutes())}</i>
</div>
<div class="conversation-text">
<div class="ctext-wrap">
<i>${messageData.senderName}</i>
${bildHTML}
<p>${messageData.message}</p>
</div>
</div>
</li>`;*/
$.ajax({
'url': '{{ path('user_firma_chat_nachricht_lesen') }}',
'method': 'post',
'data': {
'chatId': messageData['chatId']
},
'success': function (response) {
let strNachricht = response;
setTimeout(() => {
let lastChatID = $('.chat-li').last().attr('data-chat-id') ?? 0;
if (parseInt(lastChatID) !== messageData['chatId']) {
newElement.innerHTML = strNachricht;
chatField.appendChild(newElement);
let $chatSimplebar = $('.simplebar-content-wrapper', $('#chat-frame-wrapper'));
$chatSimplebar[0].scrollTop = $chatSimplebar[0].scrollHeight;
}
if ($('#user-chat-geöffnet').length != 0) {
$.ajax({
'url': '/notification/chat/loeschen',
'method': 'post',
'data': {
['sender']: messageData.sender,
['empfaenger']: messageData.empfaenger,
['gruppenID']: messageData.gruppenID,
},
'success': function (response) {
console.log('Chat Notification gelöscht' + response)
},
'error': function (response) {
console.log('Fehler beim Chat Notification löschen' + response)
}
});
} else {
window.refreshUserNotification();
}
}, messageData['bild'].length > 0 > 0 ? 3000 : 0);
},
'error': function (response) {
console.log('Fehler beim Chat Nachricht lesen' + response)
}
});
} else {
window.refreshUserNotification();
}
};
window.chatConnection.onclose = function (e) {
console.log('Socket is closed. Reconnect will be attempted in 5 second.', e.reason);
window.websocketConnected = false;
setTimeout(function () {
connectWebocket();
}, 5000);
};
}
let letzteUrl = '';
window.refreshUserNotification = function () {
let neueUrl = window.location.href;
let urlSenden = '';
if (neueUrl !== letzteUrl) {
urlSenden = neueUrl
letzteUrl = neueUrl
}
$.ajax({
'url': '{{ path('user_start_navbar_warenkorb') }}',
'method': 'GET',
'success': function (response) {
$('#user-navigation-warenkorb').html(response);
},
'error': function (response) {
console.log('Fehler beim Warenkorb Laden', response);
}
});
$.ajax({
'url': '{{ path('notification_message_user') }}',
'method': 'post',
'data': {
'url': urlSenden,
},
'success': function (response) {
$('#user-navigation-notification').html(response);
},
'error': function (response) {
console.log('Fehler beim Message Laden', response);
}
});
}
$(document).on('click', '.user-mobile-navi a', function (event) {
if ($(window).width() < 992 && !$(this).hasClass('accordion-button')) {
$(this).closest('.user-mobile-navi').removeClass('show');
}
});
try {
connectWebocket();
} catch (e) {
console.error(e);
}
setInterval(refreshUserNotification, 60000);
window.refreshUserNotification();
function addZero(i) {
if (i < 10) {
i = "0" + i
}
return i;
}
$(document).on('click', '.link-warenkorb-loeschen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
window.refreshUserNotification();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
window.scrollChatDown = function () {
let $chatSimplebar = $('.simplebar-content-wrapper', $('#chat-frame-wrapper'));
$chatSimplebar[0].scrollTop = $chatSimplebar[0].scrollHeight;
}
{% if app.user.firmenProfil != null and app.request.server.get('WEB_UMGEBUNG') != 'WEB' %}
$.ajax({
'url': '{{ path('user_start_navbar_intranet_verbindungen') }}',
'method': 'get',
'success': function (response) {
$('#admin-celseo-intranet-zugang').html(response);
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
$(document).on('click', '.btn-celseo-intranet-login', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$.ajax({
'url': href,
'method': 'post',
'success': function (response) {
if (!response['error']) {
window.location.href = response['link'];
} else {
window.toastSpeichern('Error', 'error', 4000);
}
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
{% endif %}
});
</script>
{% endif %}
</body>
</html>
{% endapply %}