job-market-search
Information
- Folder
src/components/patterns/job-market-search
Files
Schema
Mocks
Template
// src/components/patterns/job-market-search/job-market-search.twig
{{ attach_library("circle_dot/pattern-job-market-search") }}
{% set job_position_label %}
{% include "@elements/form-elements/label/label.twig" with {
label: "Welche Stelle suchen Sie?",
htmlFor: "job-position",
visually_hidden: true
} only %}
{% endset %}
{% set job_position_form_element %}
{% include "@elements/form-elements/input/input.twig" with {
additional_attributes: [
["placeholder", "Welche Stelle suchen Sie?"]
],
type: "text",
name: "search",
id: "job-position",
} only %}
{% endset %}
{% set job_location_label %}
{% include "@elements/form-elements/label/label.twig" with {
label: "Ort, Bundesland",
htmlFor: "job-location",
visually_hidden: true
} only %}
{% endset %}
{% set job_location_form_element %}
{% include "@elements/form-elements/input/input.twig" with {
additional_attributes: [
["placeholder", "Ort, Bundesland"]
],
type: "text",
name: "location",
id: "job-location",
} only %}
{% endset %}
<beck-job-market-search class="JobMarketSearch {% if should_breakout|default(true) %}u-breakout{% endif %}" data-theme="{{ theme }}" api-endpoint="{{ api_endpoint }}">
<search class="JobMarketSearch-header">
<div class="JobMarketSearch-logo">
{{ logo }}
</div>
<form action="{{ action_url }}" class="JobMarketSearch-form js-JobMarketSearch-form" name="beck-job-market-search" method="get">
<fieldset>
<legend class="visually-hidden">Beck Stellenmarkt</legend>
{% include "@elements/form-element-container/form-element-container.twig" with {
label: job_position_label,
form_element: job_position_form_element
} only %}
{% include "@elements/form-element-container/form-element-container.twig" with {
label: job_location_label,
form_element: job_location_form_element
} only %}
{% include "@elements/button/button.twig" with {
icon: "search",
label: "Job finden",
modifiers: ["primary"],
type: "submit",
} only %}
</fieldset>
</form>
</search>
<section aria-labelledby="search-results-title" aria-live="polite" class="JobMarketSearch-results">
<span class="visually-hidden" id="search-results-title">Beck Stellenmarkt Results</span>
<cd-swiper data-config='{"slidesPerView": "auto", "spaceBetween": 16, "slidesOffsetAfter": 0, "breakpoints": {"768": {"slidesPerView": 4, "spaceBetween": 32, "slidesOffsetAfter": 0}}}'>
<div class="Swiper-container JobMarketSearch-resultsList js-JobMarketSearch-resultsList">
<div class="swiper-wrapper">
<div class="swiper-slide">
{% include "@patterns/job-market-search/result-card/result-card.twig" with {
is_all_jobs_card: true,
template_id: "all-jobs-card-template",
theme: "dark",
title: "Nichts Passendes gefunden?",
description: "Keine Sorge. Es gibt noch viele weitere Stellenangebote zu entdecken!",
link_label: "Alle Jobs entdecken",
url: all_jobs_url,
target: "_blank"
} only %}
</div>
{# Static preview cards for Miyagi - these will be replaced by API results in production #}
{% for i in 1..6 %}
<div class="swiper-slide">
{% include "@patterns/job-market-search/result-card/result-card.twig" with {
theme: "white",
show_badge: i == 1,
title: "Geschäftsbereichsleiter Recht und Steuern / Unternehmensgründung und -förderung (m/w/d)",
description: "Senatsverwaltung für Stadtentwicklung, Bauen und Wohnen",
location: "Köln",
url: "/job-" ~ i,
logo: {
uri: "https://via.placeholder.com/80x80?text=Logo",
alt: "Company Logo",
width: "80",
height: "80"
}
} only %}
</div>
{% endfor %}
</div>
</div>
</cd-swiper>
<div class="JobMarketSearch-error js-JobMarketSearch-error" hidden>
<h3 class="JobMarketSearch-errorTitle">Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.</h3>
</div>
<div class="JobMarketSearch-emptyResults js-JobMarketSearch-emptyResults" hidden>
<h3 class="JobMarketSearch-emptyResultsTitle">Die Suche liefert keine Ergebnisse.</h3>
<p class="JobMarketSearch-emptyResultsMessage">Bitte passen Sie die Parameter an und versuchen es erneut. Alternativ können Sie auch</p>
{% include "@elements/button/button.twig" with {
label: "Alle Jobs entdecken",
icon: "arrow-right",
icon_position: "right",
modifiers: ["secondary"],
url: all_jobs_url,
target: "_blank"
} only %}
</div>
</section>
<div class="JobMarketSearch-pager">
{% include "@patterns/pager/pager.twig" with {
variant: "dots",
current_page: 1,
total_pages: 2,
start_page_in_0: false,
} only %}
</div>
{% include "@patterns/job-market-search/result-card/result-card.twig" with {
as_template_element: true,
template_id: "result-card-template",
theme: "white",
} only %}
</beck-job-market-search>
Error: schema is invalid: data/properties must be object