{% apply spaceless %}
{% if app.request.cookies.has(constant('App\\Service\\CookieService::COOKIE_NAME_CLIENT_TIMEZONE')) %}
{% set client_timezone = app.request.cookies.get(constant('App\\Service\\CookieService::COOKIE_NAME_CLIENT_TIMEZONE')) %}
{% else %}
{% set client_timezone = 'UTC' %}
{% endif %}
{% if app.request.attributes.get('_route') != '' %}
{% set seo_title = seo_service.getTitle(app.request, seoTranslationParameters|default(null)) %}
{% set seo_description = seo_service.getDescription(app.request, seoTranslationParameters|default(null)) %}
{% set seo_keywords = seo_service.getKeywords(app.request, seoTranslationParameters|default(null)) %}
{% set seo_canonicalLink = seo_service.getCanonicalLink(app.request) %}
{% endif %}
{% endapply %}
<!DOCTYPE html>
<html lang="{{ app.request.locale|split('_')[0] }}">
<head>
{# Inform the browser as early as possible about hosts we will have to connect to #}
<link rel="preconnect" href="{{ '/'|cdnifyUri }}" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0
{% if app.request.query.get('zoom') is defined and app.request.query.get('zoom') == 'true' %}
, user-scalable=yes"
{% else %}
, user-scalable=no"
{% endif %}
/>
<meta name="robots" content="index, follow" />
{# Facebook Share Tags #}
<meta property="og:image" content="{{ asset('assets/images/joboo-logo.png')|cdnifyUri }}" />
{% if recurrentJob.occupationalFields[0].title is defined and recurrentJob.occupationalFields[0].title is not null and recurrentJob.city is defined and recurrentJob.city is not null %}
{% set fb_title = ('global.sitename'|trans) ~ ' - ' ~ recurrentJob.occupationalFieldSearchtermForDisplay ~ ' ' ~ ('facebook_tags.in'|trans) ~ ' ' ~ recurrentJob.city|trans ~ ' ' ~ ('facebook_tags.searched'|trans) %}
{% else %}
{% set fb_title = ('facebook_tags.generic_title'|trans) %}
{% endif %}
<meta property="og:title" content="{{ fb_title }}" />
<meta property="og:description" content="{{ 'facebook_tags.description'|trans }}" />
<title>{{ seo_title }} {% block seo_title %}{% endblock %}{% block title %} | {{ 'global.sitename_title'|trans }}{% endblock %}</title>
{% if seo_description is defined and seo_description != '' %}
<meta name="description" content="{{ seo_description }}" />
{% else %}
<meta name="description" content="{% block seo_description %}{% endblock %}" />
{% endif %}
{% if seo_keywords is defined and seo_keywords != '' %}
<meta name="keywords" content="{{ seo_keywords }}" />
{% else %}
<meta name="keywords" content="{% block seo_keywords %}{% endblock %}" />
{% endif %}
{% if seo_canonicalLink is defined and seo_canonicalLink != '' %}
<link rel="canonical" href="{{ seo_canonicalLink }}" />
{% endif %}
<meta name="google-site-verification" content="9QP-Hlx8EUwAI7TJoB3VKVI5II5K33edB7FLEOmn38M"/>
{% if app.user is defined and app.user is not null %}
<meta name="apple-itunes-app" content="app-id=1539669014" />
{% endif %}
<meta name="color-scheme" content="light only" />
{% if app.environment == 'prod' %}
<script defer src="{{ asset('assets/vendor-static/sentry-5.27.1-bundle.min.js')|cdnifyUri }}"></script>
<script>
{{ inlineJsWrapperBegin() }}
Sentry.init({
dsn: '{{ sentry_dsn }}',
release: '{{ website_commit_id }}',
ignoreErrors: [
"Non-Error exception captured",
"Non-Error promise rejection captured"
]
});
{{ inlineJsWrapperEnd() }}
</script>
{% endif %}
{% if criteo_service.pageShouldContainCriteoCode(app.request, app.user) %}
{% if criteo_service.pageShouldContainCriteoJobseekerCode(app.request.uri) %}
<script data-ccm-loader-src="//dynamic.criteo.com/js/ld/ld.js?a=88703" type="text/x-ccm-loader" data-ccm-loader-group="criteo" async="true"></script>
{% endif %}
{% if criteo_service.pageShouldContainCriteoJoboffererCode(app.request.uri) %}
<script data-ccm-loader-src="//dynamic.criteo.com/js/ld/ld.js?a=88704" type="text/x-ccm-loader" data-ccm-loader-group="criteo" async="true"></script>
{% endif %}
<!-- Criteo Visit Tag -->
<script>
{{ inlineJsWrapperBegin() }}
if (typeof window.CCM === 'object') {
const hasConsentForEmbedding = CCM.acceptedEmbeddings.some(embedding => {
return embedding.name === 'Criteo';
});
if (hasConsentForEmbedding) {
window.criteo_q = window.criteo_q || [];
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
{% if criteo_service.pageShouldContainCriteoJobseekerCode(app.request.uri) %}
window.criteo_q.push(
{
event: "setAccount",
account: 88703
},
{event: "setSiteType", type: deviceType},
{event: "viewPage"}
);
{% endif %}
{% if criteo_service.pageShouldContainCriteoJoboffererCode(app.request.uri) %}
window.criteo_q.push(
{
event: "setAccount",
account: 88704
},
{event: "setSiteType", type: deviceType},
{event: "viewPage"}
);
{% endif %}
}
}
{{ inlineJsWrapperEnd() }}
</script>
<!-- END Criteo Visit Tag -->
{% endif %}
<script defer src="{{ asset('assets/generated/js/default.js')|cdnifyUri }}"></script>
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico')|cdnifyUri }}?1765879548"/>
<link rel="apple-touch-icon" href="{{ asset('apple-icon-152x152.png')|cdnifyUri }}"/>
<link rel="stylesheet" href="/assets/vendor-static/odometer/odometer-theme-minimal.css"/>
<script src="/assets/vendor-static/odometer/odometer.js"></script>
<link rel="stylesheet" href="{{ asset('assets/generated/css/default.css')|cdnifyUri }}">
{% if isJanusPage is defined and isJanusPage == true %}
<style>
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
#main-wrapper {
flex: 1;
display: flex;
flex-direction: column;
}
#main-wrapper > main {
flex: 1;
}
</style>
{% endif %}
{% block stylesheets %}{% endblock %}
{% block googleStructuredData %}{% endblock %}
</head>
<body id="body" class="{% block additional_body_classes %}{% endblock %}" style="overflow-x: hidden; width: 100%">
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id={{ google_tagmanager_id }}" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
{% if cookie_preferences_service.needToPresentCookieInfo(app.request) %}
<script src="https://cloud.ccm19.de/app.js?apiKey=ca61ddf3f35aa71f4bfe62f441b6dc41e54cdbc0ab73f06c&domain=6536441ae189a2cf7e013c02" referrerpolicy="origin"></script>
{% endif %}
{% set flashes = app.flashes %}
{% block body %}
{% block header %}
<twig:Header/>
{% endblock %}
<div id="main-wrapper"
class="pb-0 {% if (isFrontendSpa is defined and isFrontendSpa == true) or (newLayout is defined and newLayout is not null and newLayout) or(isJanusPage is defined and isJanusPage == true) %}{% else %}pt-3 pt-md-5{% endif %} {{ isJanusPage is defined?"tw-bg-[#f5f5f5]":"" }}">
{% block main %}
<main>
<div id="outermost-main-container"
class="container-fluid {% if (newLayout is defined and newLayout is not null and newLayout) or (fullWidthLayout is defined and fullWidthLayout) %}px-0{% endif %}">
<div class="page-background-overlay-box {% if (newLayout is defined and newLayout is not null and newLayout) or (fullWidthLayout is defined and fullWidthLayout) %}p-0 m-0 w-100{% else %}pt-5 pb-5 pl-5 pr-5{% endif %}">
{% if app.user is defined and app.user is not null and app.user.isJobseeker and app.user.defaultJobseekerProfile is not null %}
{% if not jobseeker_profile_service.hasAtLeastOneActiveWantedJob(app.user.defaultJobseekerProfile) and app.user.defaultJobseekerProfile.wantedJobs|length > 0 %}
<div class="row">
<div class="col">
<div class="jlls-alert jlls-alert-warning">
<div class="jlls-alert-body jlls-alert-body-warning">
{{ 'global.no_active_wanted_jobs'|trans }}
<a class="jlls-link-default tw-underline" href="{{ path('account.wanted_jobs.reactivation', { 'id': app.user.defaultJobseekerProfile, 'wantedJobId': app.user.defaultJobseekerProfile.wantedJobs[0].id }) }}">
{{ 'global.activate_wanted_job'|trans }}
</a>
</div>
</div>
</div>
</div>
{% elseif notification_service.isNotificationCancelled(app.user, constant('App\\Service\\NotificationService::NOTIFICATION_TYPE_UNREAD_JOBRADAR_MATCHES')) %}
<div class="row">
<div class="col">
<div class="alert alert-info">
{{ 'global.jobradar_deactivated'|trans }}
<u>
<a href="{{ path('notification_settings.reactivation_process', { 'userId': app.user.id, 'notificationType': constant('App\\Service\\NotificationService::NOTIFICATION_TYPE_UNREAD_JOBRADAR_MATCHES'), 'checksum' : notification_service.getChecksumForUserAndNotificationType(app.user, constant('App\\Service\\NotificationService::NOTIFICATION_TYPE_UNREAD_JOBRADAR_MATCHES')) }) }}">
{{ 'global.activate_jobradar'|trans }}
</a>
</u>
</div>
</div>
</div>
{% endif %}
{% endif %}
{% if flashes %}
<aside id="flashes">
<div class="row">
<div class="col">
<div class="jlls-card tw-mb-3 tw-mt-2">
<div class="tw-p-6 tw-flex tw-flex-col tw-justify-center">
{# Flash alerts use both Bootstrap (alert alert-*) and Living Styleguide (jlls-alert-*) classes.
This ensures proper styling regardless of whether living_styleguide.css is loaded on the page.
Pages with the styleguide will use jlls- styles; legacy pages fall back to Bootstrap. #}
{% for type, messages in flashes %}
{% if type != 'modal' %}
{% for message in messages %}
<div class="alert alert-{{ type }} jlls-alert jlls-alert-{{ type }} {% if not loop.last %}tw-mb-2{% else %}tw-mb-0{% endif %}">
<div class="jlls-alert-body jlls-alert-body-{{ type }} jlls-text">
{{ message|raw|nl2br }}
</div>
</div>
{% endfor %}
{% endif %}
{% endfor %}
{% block alerts_additional_content %}{% endblock %}
</div>
</div>
</div>
</div>
</aside>
{% endif %}
<noscript>
<aside class="alert alert-warning text-center">
<strong>{{ 'homepage.no_javascript_warning'|trans }}</strong>
</aside>
</noscript>
{% block main_content %}{% endblock %}
</div>
</div>
</main>
{% endblock %}
</div>
{% endblock %}
{% block footer %}
<footer class="pt-5 px-2 pl-5 jlls-footer" style="overflow-x: hidden;">
<div class="row">
<div class="col-4 col-md-1 p-0 d-none d-lg-block">
<img src="{{ asset('assets/images/joboo-logo-white.png')|cdnifyUri }}?1765880448"
style="width: 100%"></img>
</div>
{% if feature_limitations_service.userCanSeeWebsiteNavigationItems(app.user) %}
<div class="pr-0 col-8 col-md-11 pl-0 ml-0">
<div class="container-fluid p-0">
<div class="row text-left">
<div class="col-12 col-md-2 mb-5 pl-md-5 pr-0 font-weight-bold text-uppercase px-1">
<div class="p-0 d-lg-none mb-2">
<img src="{{ asset('assets/images/joboo-logo.png')|cdnifyUri }}?1765880448"
width="80">
</div>
<div class="mb-1">
<a href="{{ path('recurrent_jobs_search.form') }}">{{ 'global.footer.find_jobofferers'|trans }}</a>
</div>
<div class="mb-1">
<a href="{% if app.user %}
{{ path('wanted_jobs_search.form') }}
{% else %}
{{ path('digitalEstate.pro-joboo-de') }}
{% endif %}">{{ 'global.footer.find_jobseekers'|trans }}</a>
</div>
<div class="mb-1">
<a href="{{ path('content', {'content': 'so-geht-es'}) }}">{{ 'global.footer.frequently_asked_questions'|trans }}</a>
</div>
</div>
<div class="col-12 col-md-3 mb-5 font-weight-bold text-uppercase px-1">
{% if not app.user %}
<div class="mb-1">
<ul class="nav navbar-nav">
<li class="dropdown dropup-dropdown-switchable">
<a href="javascript:void(0);" class=" dropdown-toggle"
id="navbar-registration-dropdown-link" role="button"
data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
{{ 'global.navigation.register_dropdown'|trans }}
</a>
<div class="dropdown-menu dropdown-menu-right overflow-auto"
role="menu"
aria-labelledby="navbar-registration-dropdown-link">
<a
class="dropdown-item"
href="{{ path('fos_user_registration_register') }}?createWithRole={{ constant('App\\Entity\\User::ROLE_NAME_JOBSEEKER') }}">
{{ 'global.navigation.register_jobseeker'|trans }}
</a>
<a
class="dropdown-item"
href="{{ path('digitalEstate.pro-joboo-de') }}">
{{ 'global.navigation.register_jobofferer'|trans }}
</a>
<a
class="dropdown-item"
href="{{ path('fos_user_security_login') }}">
{{ 'global.navigation.login'|trans }}
</a>
</div>
</li>
</ul>
</div>
{% endif %}
{% if not app.user %}
<div class="mb-1">
<a href="{{ path('digitalEstate.pro-joboo-de.price') }}">{{ 'global.footer.pricing'|trans }}</a>
</div>
{% endif %}
{% if (app.user is defined and app.user is not null and app.user.hasJoboffererProfile) %}
<div class="mb-1">
<a href="{{ membership_service.userHasActiveJoboffererMembership(app.user) ? path('digitalEstate.pro-joboo-de.price') : path('account.subscription.jobofferer.choose_and_pay_form') }}">{{ 'global.footer.pricing'|trans }}</a>
</div>
{% endif %}
<div class="mb-1">
<span class="d-none d-sm-block">
<a href="{{ path('contact', {'contactOpen': 'true'}) }}#contact-form-area">{{ 'global.footer.feedback'|trans }}</a>
</span>
<span class="d-block d-sm-none">
<a href="{{ path('contact', {'contactOpen': 'true'}) }}#contact-form-area">{{ 'global.footer.feedback_short'|trans({'%br%': '<br>'})|raw }}</a>
</span>
</div>
<div class="mb-1">
<span>
<a href="{{ path('recurrent_jobs.show_recurrent_jobs_belonging_to_joboo_gmbh') }}">{{ 'global.footer.career_at_joboo'|trans }}</a>
</span>
</div>
</div>
<div class="col-12 col-md-2 mb-5 text-uppercase font-weight-bold px-1">
<div class="mb-1">
<a href="{{ path('contact') }}">{{ 'global.navigation.help_and_contact'|trans }}</a>
</div>
<div class="mb-1">
<a href="{{ path('content', {'content': 'garantien'}) }}">{{ 'global.footer.guarantees'|trans }}</a>
</div>
</div>
<div class="col-12 col-md-2 mb-5 p-0 px-1">
<div class="row mb-2 w-100">
<div class="col-12 p-0 m-0">
<span class=" text-uppercase font-weight-bold">Folge uns:</span>
</div>
</div>
<div class="row">
<div class="d-flex flex-column justify-start">
<div>
<a class="pr-2 pb-2 pull-left"
href="https://www.facebook.com/Go-Gastro-127953711371986/"
target="_blank" rel="noopener"
title="{{ 'global.footer.link_facebook'|trans }}">
<img src="{{ asset('assets/images/icon-facebook.png')|cdnifyUri }}"
style="width: 40px;">
</a>
<a class="pr-2 pb-2 pull-left" href="https://www.instagram.com/joboo.de/"
target="_blank" rel="noopener"
title="{{ 'global.footer.link_instagram'|trans }}">
<img src="{{ asset('assets/images/icon-instagram.png')|cdnifyUri }}"
style="width: 40px;">
</a>
<a class="pr-2 pb-2 pull-left"
href="https://www.youtube.com/channel/UC2Ogroq0-2o9XzRu31onSrQ"
target="_blank" rel="noopener"
title="{{ 'global.footer.link_youtube'|trans }}">
<img src="{{ asset('assets/images/icon-youtube.png')|cdnifyUri }}"
style="width: 40px;">
</a>
</div>
</div>
</div>
</div>
<div class="col-3 d-none d-md-flex">
<a href="https://pro.joboo.de/euro-top-portal" target="_blank">
<img class="homepage-seal-img"
src="{{ asset('assets/images/default/homepage/euro-siegel-2026.png')|cdnifyUri }}"
alt="Euro Top Jobportal Generalisten">
</a>
<span style="width: 10px;"></span>
<img src="{{ asset('assets/images/default/homepage/focus-siegel-2023.png')|cdnifyUri }}"
style="max-width: 80px;"/>
</div>
</div>
</div>
</div>
<div class="col-4 d-md-none">
<a href="https://pro.joboo.de/euro-top-portal" target="_blank">
<img class="homepage-seal-img mt-2 mb-4"
src="{{ asset('assets/images/default/homepage/euro-siegel-2026.png')|cdnifyUri }}"
style="min-width: 80px;"
alt="Euro Top Jobportal Generalisten">
</a>
<img class="homepage-seal-img"
src="{{ asset('assets/images/default/homepage/focus-siegel-2023.png')|cdnifyUri }}"
style="min-width: 80px;"/>
</div>
{% endif %}
</div>
<div class="row text-left">
<div class="col-12 mb-5 p-0 ml-0 text-center text-md-left">
<span>
{{ 'global.footer.go_gastro'|trans }}
</span>
<span class="d-none d-sm-inline">
|
</span>
<br class="d-sm-none">
<a href="{{ path('content', {'content': 'agb'}) }}">{{ 'global.footer.terms'|trans }}</a>
|
<a href="{{ path('content', {'content': 'impressum'}) }}">{{ 'global.footer.imprint'|trans }}</a>
|
<a href="{{ path('content', {'content': 'datenschutz'}) }}">{{ 'global.footer.privacy_policy'|trans }}</a>
|
<a href="{{ path('press_images_download_alternative') }}">{{ 'global.footer.press'|trans }}</a>
</div>
</div>
</footer>
{% if app.session is defined and app.session is not null and app.session.has('showSetOwnPasswordNotice') and app.session.get('showSetOwnPasswordNotice') == true %}
<div class="jlls-alert jlls-alert-danger tw-text-center tw-rounded-none"
style="position: fixed; bottom: 0; width: 100%; z-index: 10000;">
<div class="jlls-alert-body jlls-alert-body-danger tw-flex tw-flex-wrap tw-items-center tw-justify-center tw-gap-3 tw-py-3">
<span class="tw-font-semibold">
<span class="tw-font-bold">{{ 'setownpassword_notice.alert.headline'|trans }}</span>
{{ 'setownpassword_notice.alert.body'|trans }}
</span>
<a class="jlls-button-danger tw-py-2 tw-px-4 tw-text-xs" href="{{ path('account.setownpassword.form') }}">
{{ 'setownpassword_notice.alert.cta'|trans }}
</a>
</div>
</div>
{% endif %}
{% endblock %}
{% if flashes and 'modal' in flashes|keys %}
{% for type, messages in flashes %}
{% if type == 'modal' %}
<div class="modal fade" id="main-modal" tabindex="-1" role="dialog" aria-labelledby="main-modal-label"
aria-hidden="true">
<div class="modal-dialog tw-flex tw-min-h-full tw-items-center tw-justify-center" role="document">
<div class="modal-content tw-bg-white tw-rounded-xl tw-shadow-xl tw-overflow-hidden tw-max-w-lg tw-w-full">
<div class="jlls-card-title">
<div class="tw-flex tw-items-center tw-justify-between">
<span class="jlls-card-title-text" id="main-modal-label">{{ 'modal.header.header_important'|trans }}</span>
<button type="button" class="tw-bg-transparent tw-border-0 tw-text-white hover:tw-opacity-80 tw-transition-opacity tw-p-1 tw-rounded" data-dismiss="modal" aria-label="Close">
<svg class="tw-w-5 tw-h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
</div>
<div class="tw-p-6">
<div class="jlls-text">
{{ messages[0]|raw|nl2br }}
</div>
</div>
<div class="tw-p-6 tw-pt-0 tw-flex tw-justify-start">
<button type="button" class="jlls-button-default"
data-dismiss="modal">{{ 'modal.button.ok'|trans }}</button>
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
<script>
{{ inlineJsWrapperBegin() }}
jQuery('#main-modal').modal('show');
{{ inlineJsWrapperEnd() }}
</script>
{% endif %}
{% if app.user is not null and feature_flag_service.featureEnabledForUser(constant('App\\Service\\FeatureFlagService::FEATURE_BROWSER_PUSH_NOTIFICATIONS'), app.user) %}
<script defer src="https://static.cleverpush.com/channel/loader/fJ7vjAHMgEKJAqikj.js" async></script>
<script>
{{ inlineJsWrapperBegin() }}
CleverPush = window.CleverPush || [];
CleverPush.push(['triggerOptIn', function (err, subscriptionId) {
if (!err && typeof subscriptionId !== 'undefined' && typeof subscriptionId !== 'object') {
jQuery.ajax({
url: '{{ path('cleverpush.subscription.subscribe.api') }}',
method: 'post',
dataType: 'json',
data: 'subscriptionId=' + subscriptionId
}).done(function (response) {
})
}
}]);
CleverPush.push(['on', 'UNSUBSCRIBED', function (err, subscriptionId) {
if (!err) {
jQuery.ajax({
url: '{{ path('cleverpush.subscription.unsubscribe.api') }}',
method: 'post',
dataType: 'json',
data: 'subscriptionId=' + subscriptionId
}).done(function (response) {
})
}
}]);
{{ inlineJsWrapperEnd() }}
</script>
{% endif %}
{{ include('/_includes/messageCheckJavascript.html.twig') }}
{{ include('/_includes/throwUsageEventJavascript.html.twig') }}
{{ include('/_includes/throwBusinessEventJavascript.html.twig') }}
{{ include('/_includes/throwExternalPartnerEventJavascript.html.twig') }}
{% block javascripts %}{% endblock %}
<script>
{{ inlineJsWrapperBegin() }}
var jingleAudioElement = document.getElementById('jingle-audio');
jQuery('.jingle-control-start').on('click', function () {
jingleAudioElement.play();
jQuery('.jingle-control-start').toggleClass('d-none');
jQuery('.jingle-control-stop').toggleClass('d-none');
});
jQuery('.jingle-control-stop').on('click', function () {
jingleAudioElement.pause();
jQuery('.jingle-control-start').toggleClass('d-none');
jQuery('.jingle-control-stop').toggleClass('d-none');
});
{{ inlineJsWrapperEnd() }}
</script>
{% if feature_flag_service.featureEnabledForUser(constant('App\\Service\\FeatureFlagService::FEATURE_OCCUPATIONALFIELDSANDPROFESSIONS_DEBUG_INFO'), app.user) %}
<script>
{{ inlineJsWrapperBegin() }}
window.appFunctions.toggleOccupationalFieldsAndProfessionsDebugInfo = function ($debugContainerElementId) {
$debugContainer = jQuery($debugContainerElementId);
$debugContainer.toggle();
};
{{ inlineJsWrapperEnd() }}
</script>
{% endif %}
<script>
{{ inlineJsWrapperBegin() }}
jQuery.post('{{ path('activitytracking.update_last_seen') }}');
jQuery('#relaunch-info-cta').on('click', function () {
jQuery('#relaunch-info-box-outer').hide();
});
jQuery('#relaunch-info-box-outer').delay(8000).fadeOut();
{#
On screens with a very low height, e.g. the iPhone 5s in horizontal orientation,
the lower end of activated dropdown submenus from the nav bar is not visible,
simply because the screen height is lower than the height required to display
all of the dropdown.
As a solution, we turn the dropdown into dropups if the screen height is too low.
#}
function switchNavDropdownIntoDropupIfScreenheightLowerThan(height) {
if (window.innerHeight <= height) {
jQuery('.dropup-dropdown-switchable').removeClass('dropdown').addClass('dropup');
} else {
jQuery('.dropup-dropdown-switchable').removeClass('dropup').addClass('dropdown');
}
}
{# Resizing the window could have resulted in a too low height, thus we re-check. #}
jQuery(window).resize(function () {
switchNavDropdownIntoDropupIfScreenheightLowerThan(400);
});
{# Do the check once the DOM is ready. #}
switchNavDropdownIntoDropupIfScreenheightLowerThan(400);
{{ inlineJsWrapperEnd() }}
</script>
{% if app.request.query.get('zoom') is defined and app.request.query.get('zoom') == 'true' %}
{% else %}
<script>
{{ inlineJsWrapperBegin() }}
jQuery(function () {
if (
!(/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) &&
!(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) &&
!(navigator.userAgent.match(/SAMSUNG|SGH-[I|N|T]|GT-[I|P|N]|SM-[N|P|T|Z|G]|SHV-E|SCH-[I|J|R|S]|SPH-L/i))
) return;
jQuery(document.head).append(
'<style>*{cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}</style>'
);
jQuery(window).on('gesturestart touchmove', function (e) {
if (e.originalEvent.scale !== 1) {
e.originalEvent.preventDefault();
document.body.style.transform = 'scale(1)';
document.body.style.transform = '';
}
});
});
{{ inlineJsWrapperEnd() }}
</script>
{% endif %}
{% block javascripts_last %}{% endblock %}
<!--
website_commit_id: {{ website_commit_id }}
{% apply spaceless %}
{% if app.user is defined and app.user is not null and app.user.hasAtLeastOneAdminRole %}
https://bitbucket.org/go-gastro/website/commits/{{ website_commit_id }}
{% endif %}
{% endapply %}
-->
{% if feature_flag_service.featureEnabledForUser(constant('App\\Service\\FeatureFlagService::FEATURE_SEARCH_TRACING'), app.user) and search_tracing_service.tracings|length > 0 %}
<div class="p-2">
<strong>Suche Debug:</strong>
<hr>
{% for tracing in search_tracing_service.tracings %}
<br>
<pre>{{ tracing }}</pre>
<hr>
{% endfor %}
</div>
{% endif %}
<audio id="jingle-audio" src="{{ asset('assets/sounds/joboo-jingle.mp3')|cdnifyUri }}" loop></audio>
<script>
{# @see \JanusHercules\Shared\Presentation\Component\JanusHerculesComponentToolsTrait::scrollBrowserToTop #}
window.addEventListener('janus_hercules:global:scroll_to_top', function () {
window.scrollTo({top: 0, behavior: 'smooth'});
});
</script>
<script>
if (typeof window.CCM === 'object') {
const hasConsentForGoogleTagManager = CCM.acceptedEmbeddings.some(embedding => {
return embedding.name === 'Google Tag Manager';
});
const hasConsentForGoogleAnalytics = CCM.acceptedEmbeddings.some(embedding => {
return embedding.name === 'Google Analytics';
});
if (hasConsentForGoogleTagManager) {
linkTag = document.createElement('link');
linkTag.rel = 'preconnect';
linkTag.href = 'https://www.googletagmanager.com';
document.head.appendChild(linkTag);
}
if (hasConsentForGoogleAnalytics) {
var linkTag = document.createElement('link');
linkTag.rel = 'preconnect';
linkTag.href = 'https://www.google-analytics.com';
document.head.appendChild(linkTag);
}
}
</script>
{% if app.user and app.user.isJobofferer %}
<!-- Calendly badge widget begin -->
<link href="https://assets.calendly.com/assets/external/widget.css" rel="stylesheet">
<script src="https://assets.calendly.com/assets/external/widget.js" type="text/javascript" async></script>
<script type="text/javascript">window.onload = function() { Calendly.initBadgeWidget({ url: 'https://calendly.com/d/cpjt-bxj-zyf/joboo-potenzialanalyse?primary_color=C2F279', text: 'Mehr Bewerbungen!', color: '#C2F279', textColor: '#2d4a1a' }); }</script>
<!-- Calendly badge widget end -->
{% endif %}
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1494461088300699');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1494461088300699&ev=PageView&noscript=1"/>
</noscript>
<!-- End Facebook Pixel Code -->
</body>
</html>
<!-- 😀 -->