Skip to content
Snippets Groups Projects
Commit a0fbc43f authored by Stefan Galinski's avatar Stefan Galinski :video_game:
Browse files

[FEATURE] Sync templates with the website base

parent a238cd67
No related branches found
No related tags found
No related merge requests found
<div class="tx-sgjobs">
<div class="tx-sgjobs default-content-element">
<f:render section="main" />
</div>
......@@ -4,63 +4,81 @@
<f:form.hidden value="{limit}" id="filter-limit"/>
<f:form.hidden id="filter-recordPageId" name="recordPageId" value="{recordPageId}"/>
<div class="sgjobs-filter-bar">
<div class="sgjobs-filter-bar-form-control">
<label for="filter-countries">
<f:translate key="frontend.filter.countries"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedCountry}"
property="filterCountry"
optionValueField="value"
options="{countries}"
id="filter-countries" />
<div class="row default-content-element">
<div class="col-md-6 col-sm-6 col-cs-12">
<div class="sgjobs-filter-bar-form-control">
<label for="filter-countries">
<f:translate key="frontend.filter.countries"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedCountry}"
property="filterCountry"
optionValueField="value"
options="{countries}"
id="filter-countries"/>
</div>
</div>
<div class="col-md-6 col-sm-6 col-cs-12">
<div class="sgjobs-filter-bar-form-control">
<label for="filter-countries">
<f:translate key="frontend.filter.locations"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedLocation}"
property="filterLocation"
optionValueField="value"
options="{companies}"
id="filter-locations"/>
</div>
</div>
</div>
<div class="sgjobs-filter-bar-form-control">
<label for="filter-countries">
<f:translate key="frontend.filter.locations"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedLocation}"
property="filterLocation"
optionValueField="value"
options="{companies}"
id="filter-locations" />
<div class="row default-content-element">
<div class="col-md-6 col-sm-6 col-cs-12">
<div class="sgjobs-filter-bar-form-control">
<label for="filter-companies">
<f:translate key="frontend.filter.companies"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedCompany}"
property="filterCompany"
optionValueField="value"
options="{companies}"
id="filter-companies"/>
</div>
</div>
<div class="col-md-6 col-sm-6 col-cs-12">
<div class="sgjobs-filter-bar-form-control">
<label for="filter-departments">
<f:translate key="frontend.filter.departments"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedDepartment}"
property="filterDepartment"
optionLabelField="title"
optionValueField="uid"
options="{departments}"
prependOptionLabel=""
prependOptionValue="0"
id="filter-departments"/>
</div>
</div>
</div>
<div class="sgjobs-filter-bar-form-control">
<label for="filter-companies">
<f:translate key="frontend.filter.companies"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedCompany}"
property="filterCompany"
optionValueField="value"
options="{companies}"
id="filter-companies" />
</div>
<div class="sgjobs-filter-bar-form-control">
<label for="filter-departments">
<f:translate key="frontend.filter.departments"/>
</label>
<f:form.select
class="sgjobs-select form-control"
size="1"
value="{selectedDepartment}"
property="filterDepartment"
optionLabelField="title"
optionValueField="uid"
options="{departments}"
prependOptionLabel=""
prependOptionValue="0"
id="filter-departments" />
</div>
<div class="sgjobs-filter-bar-form-submit">
<f:form.submit value="{f:translate(key:'frontend.filter.submit')}"/>
<div class="row default-content-element">
<div class="col-md-12 col-sm-12 col-cs-12">
<f:form.submit class="btn btn-md btn-primary" value="{f:translate(key:'frontend.filter.submit')}"/>
</div>
</div>
</div>
</f:form>
......
<div class="col-md-6 col-sm-6 col-cs-12">
<div class="default-content-element">
<article class="sg-jobs-job" id="offer-{job.uid}">
<div class="sg-jobs-job-header">
<h2>{job.title}</h2>
<h3>
{job.company.city}
<f:if condition="{job.alternativeStartDate}">
<f:then>
{job.alternativeStartDate}
</f:then>
<f:else>
<f:format.date date="{job.startDate}" format="d.m.Y" />
</f:else>
</f:if>
</h3>
<f:link.action class="sg-jobs-job sg-card sg-card-shadow" id="offer-{job.uid}" pageUid="{settings.applyPage}" controller="Joblist" action="applyForm"
pluginName="JobApplication" arguments="{jobId: job.uid}">
<div class="default-content-element default-header-element sg-card-title">
<h2 class="h2">{job.title}</h2>
</div>
<div class="sg-jobs-job-body">
<h3><f:translate key="frontend.entry_date" /></h3>
<p>
<f:if condition="{job.alternativeStartDate}">
<f:then>
{job.alternativeStartDate}
</f:then>
<f:else>
<f:format.date date="{job.startDate}" format="d.m.Y" />
</f:else>
</f:if>
</p>
<h3><f:translate key="frontend.location" /></h3>
<p>
{job.company.country} - {job.company.zip} {job.company.city}
</p>
<h3><f:translate key="frontend.department" /></h3>
<p>{job.department.title}</p>
<h3><f:translate key="frontend.organisation" /></h3>
<p>{job.company.name}</p>
<f:if condition="{job.task}">
<h3><f:translate key="frontend.task" /></h3>
<f:format.html parseFuncTSPath="lib.parseFunc_RTE">{job.task}</f:format.html>
</f:if>
<f:if condition="{job.qualification}">
<h3><f:translate key="frontend.qualification" /></h3>
<f:format.html parseFuncTSPath="lib.parseFunc_RTE">{job.qualification}</f:format.html>
</f:if>
<div class="sgjobs-job-body">
<f:if condition="{job.description}">
<h3><f:translate key="frontend.description" /></h3>
<f:format.html parseFuncTSPath="lib.parseFunc_RTE">{job.description}</f:format.html>
</f:if>
<f:if condition="!{job.hideApplyByEmail}">
<f:if condition="{job.contact.email}">
<h3><f:translate key="frontend.email" /></h3>
<p>
{job.contact.email}
</p>
</f:if>
</f:if>
<f:if condition="!{job.hideApplyByPostal}">
<f:if condition="{job.contact} && !{job.contact.hideInFrontend}">
<h3><f:translate key="frontend.apply_by_mail" /></h3>
<p>
{job.company.name}
<br>
{job.contact.title} {job.contact.firstName} {job.contact.lastName}<br>
{job.company.street}
<br>
{job.company.city}
<br>
{job.contact.email}<br>
{job.contact.phone}
</p>
</f:if>
</f:if>
</div>
<div class="sg-jobs-job-footer">
<f:link.action class="cta-link" pageUid="{settings.applyPage}" controller="Joblist" action="applyForm"
pluginName="JobApplication" arguments="{jobId: job.uid}">
<f:translate key="frontend.applyNow" />
</f:link.action>
<f:if condition="{job.qualification}">
<div class="sgjobs-highlight-area">
<!--<h3><f:translate key="frontend.qualification" /></h3>-->
<ul class="default-list">
<li>
<f:format.raw><f:translate key="frontend.jobStart" extensionName="project_theme" /></f:format.raw>
<f:if condition="{job.alternativeStartDate}">
<f:then>
{job.alternativeStartDate}
</f:then>
<f:else>
<f:format.date date="{job.startDate}" format="d.m.Y" />
</f:else>
</f:if>
</li>
<li>
<f:format.raw><f:translate key="frontend.jobLocation" extensionName="project_theme" /></f:format.raw>
</li>
</ul>
</div>
</f:if>
<div class="default-content-element sg-cta sg-cta-with-icon sg-cta-stretch">
<div class="btn btn-warning btn-lg">
<f:format.raw><f:translate key="frontend.jobDetailsCta" extensionName="project_theme" /></f:format.raw>
</div>
</div>
</article>
</f:link.action>
</div>
</div>
{namespace h=SGalinski\SgJobs\ViewHelpers}
<f:layout name="Default" />
<f:section name="main">
<f:if condition="{job}">
<f:render partial="ApplyFormSchema" arguments="{_all}"/>
</f:if>
<div class="default-header-element">
<div class="default-content-element sgjobs-header">
<f:if condition="{job}">
<f:then>
<h1><f:translate key="frontend.apply.applyAs" /> <span id="apply-title">{job.title}</span></h1>
<h1><f:translate key="frontend.apply.applyAs" /> <span>{job.title}</span></h1>
</f:then>
<f:else>
<h1><f:translate key="frontend.apply.unsolicitedApplication" /></h1>
</f:else>
</f:if>
</div>
<div class="default-content-element">
<input id="maxFileSize" type="hidden" data-maxFileSize="{maxFileSize}" />
<input id="maxFileSizeMessage" type="hidden" data-maxFileSizeMessage="{maxFileSizeMessage}" />
<f:form action="apply" controller="Joblist" method="post" name="applyData" object="{applyData}" enctype="multipart/form-data">
<f:if condition="{job}">
<f:then>
<f:form.hidden property="job" value="{job}" />
<f:form.hidden property="jobId" value="{job.jobId}" />
<f:form.hidden property="jobTitle" value="{job.title}" />
<f:form.hidden property="company" value="{job.company.uid}" />
</f:then>
</f:if>
<f:form.hidden name="folderName" value="{folderName}" />
<f:comment><!-- To output all validation errors
<f:if condition="{job}">
<div class="row">
<div class="container">
<div class="row default-content-element sgjobs-description">
<input id="maxFileSize" type="hidden" data-maxFileSize="{maxFileSize}" />
<input id="maxFileSizeMessage" type="hidden" data-maxFileSizeMessage="{maxFileSizeMessage}" />
<div class="col-md-8 col-sm-6 col-xs-12">
<div class="default-content-element">
<f:format.html parseFuncTSPath="lib.parseFunc_RTE">{job.task}</f:format.html>
<h3 class="h4"><f:translate key="frontend.qualification" /></h3>
<f:format.html parseFuncTSPath="lib.parseFunc_RTE">{job.qualification}</f:format.html>
</div>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<div class="highlight-box bg-card sgjobs-meta-box">
<ul class="default-list">
<li>
<f:format.raw><f:translate key="frontend.jobStart" extensionName="project_theme" /></f:format.raw>
<f:if condition="{job.alternativeStartDate}">
<f:then>
{job.alternativeStartDate}
</f:then>
<f:else>
<f:format.date date="{job.startDate}" format="d.m.Y" />
</f:else>
</f:if>
</li>
<li><f:format.raw><f:translate key="frontend.jobLocation" extensionName="project_theme" /></f:format.raw></li>
</ul>
<hr>
<h3><f:format.raw><f:translate key="frontend.jobApplyNow" extensionName="project_theme" /></f:format.raw></h3>
<f:if condition="!{job.hideApplyByPostal}">
<p>
<f:format.raw><f:translate key="frontend.job.via.post" extensionName="project_theme" /></f:format.raw><br>
{job.company.name}<br>
{job.contact.firstName} {job.contact.lastName}<br>
{job.company.street}<br>
{job.company.city}
</p>
</f:if>
<f:if condition="!{job.hideApplyByEmail}">
<p>
<f:format.raw><f:translate key="frontend.job.via.email" extensionName="project_theme" /></f:format.raw><br>
<a href="mailto:{job.contact.email}">{job.contact.email}</a>
</p>
</f:if>
<p><f:format.raw><f:translate key="frontend.job.suggestForm" extensionName="project_theme" /></f:format.raw></p>
<div class="default-content-element sg-cta sg-cta-with-icon">
<a href="#apply" class="btn btn-warning btn-lg">
<f:translate key="frontend.applyNow" />
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</f:if>
<div class="row default-content-element {data.flexform_additionalClassesRow}">
<div class="col-md-10 col-sm-10 col-xs-12">
<div class="default-content-element">
<f:if condition="{job}">
<h2><f:translate key="frontend.apply.applyAs" /> <span id="apply-title">{job.title}</span></h2>
</f:if>
</div>
<div class="default-content-element">
<f:form noCacheHash="1" action="apply" class="sgjobs-apply-form" id="apply" controller="Joblist" method="post" name="applyData" object="{applyData}" enctype="multipart/form-data">
<f:if condition="{job}">
<f:then>
<f:form.hidden property="job" value="{job}" />
<f:form.hidden property="jobId" value="{job.jobId}" />
<f:form.hidden property="jobTitle" value="{job.title}" />
<f:form.hidden property="company" value="{job.company.uid}" />
</f:then>
</f:if>
<input type="hidden" name="tx_sgjobs_jobapplication[folderName]" value="{folderName}" />
<f:comment><!-- To output all validation errors
<f:form.validationResults>
<f:if condition="{validationResults.flattenedErrors}">
<ul class="errors">
......@@ -48,29 +112,42 @@
</f:if>
</f:form.validationResults>
-->
</f:comment>
<f:if condition="{internalError}">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<li class="parsley-required"><f:translate key="frontend.apply.error.general" />: {internalError}
</li>
</ul>
</f:if>
</f:comment>
<f:if condition="{internalError}">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<li class="parsley-required"><f:translate key="frontend.apply.error.general" />: {internalError}
</li>
</ul>
</f:if>
<f:if condition="!{job}">
<f:then>
<div class="form-group">
<label for="apply-company"><f:translate key="frontend.apply.company" /></label>
<f:form.select property="company" multiple="0" size="1"
id="apply-company"
class="form-control"
options="{companies}"
optionLabelField="city"
optionValueField="uid"
prependOptionLabel="{f:translate(key:'frontend.apply.country.empty')}" />
<f:form.validationResults for="applyData.company">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
</f:then>
</f:if>
<f:if condition="!{job}">
<f:then>
<div class="form-group">
<label for="apply-company"><f:translate key="frontend.apply.company" /></label>
<label for="apply-company"><f:translate key="frontend.apply.company" /></label>
<f:form.select property="company" multiple="0" size="1"
id="apply-company"
class="form-control"
options="{companies}"
optionLabelField="city"
optionValueField="uid"
prependOptionLabel="{f:translate(key:'frontend.apply.country.empty')}" />
<f:form.validationResults for="applyData.company">
<label for="apply-gender"><f:translate key="frontend.apply.gender" /></label>
<f:form.select property="gender" id="apply-gender" class="form-control" options="{Male: '{f:translate(key: \'frontend.apply.gender.male\')}', Female: '{f:translate(key: \'frontend.apply.gender.female\')}'}" />
<f:form.validationResults for="applyData.gender">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
......@@ -78,285 +155,266 @@
</ul>
</f:form.validationResults>
</div>
</f:then>
</f:if>
<div class="form-group">
<label for="apply-gender"><f:translate key="frontend.apply.gender" /></label>
<f:form.select property="gender" id="apply-gender" class="form-control" options="{Male: '{f:translate(key: \'frontend.apply.gender.male\')}', Female: '{f:translate(key: \'frontend.apply.gender.female\')}'}" />
<f:form.validationResults for="applyData.gender">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-firstName"><f:translate key="frontend.apply.first_name" /></label>
<f:form.textfield property="firstName" class="form-control" id="apply-firstName" />
<f:form.validationResults for="applyData.firstName">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-firstName"><f:translate key="frontend.apply.first_name" /></label>
<f:form.textfield property="firstName" class="form-control" id="apply-firstName" />
<f:form.validationResults for="applyData.firstName">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-lastName"><f:translate key="frontend.apply.last_name" /></label>
<f:form.textfield property="lastName" id="apply-lastName" class="form-control" />
<f:form.validationResults for="applyData.lastName">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-lastName"><f:translate key="frontend.apply.last_name" /></label>
<f:form.textfield property="lastName" id="apply-lastName" class="form-control" />
<f:form.validationResults for="applyData.lastName">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-street"><f:translate key="frontend.apply.street" /></label>
<f:form.textfield property="street" id="apply-street" class="form-control" />
<f:form.validationResults for="applyData.street">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-street"><f:translate key="frontend.apply.street" /></label>
<f:form.textfield property="street" id="apply-street" class="form-control" />
<f:form.validationResults for="applyData.street">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-city"><f:translate key="frontend.apply.city" /></label>
<f:form.textfield property="city" id="apply-city" class="form-control" />
<f:form.validationResults for="applyData.city">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-city"><f:translate key="frontend.apply.city" /></label>
<f:form.textfield property="city" id="apply-city" class="form-control" />
<f:form.validationResults for="applyData.city">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-zip"><f:translate key="frontend.apply.zip" /></label>
<f:form.textfield property="zip" id="apply-zip" class="form-control" />
<f:form.validationResults for="applyData.zip">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-zip"><f:translate key="frontend.apply.zip" /></label>
<f:form.textfield property="zip" id="apply-zip" class="form-control" />
<f:form.validationResults for="applyData.zip">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-country"><f:translate key="frontend.apply.country" /></label>
<f:form.select property="country"
id="apply-country"
class="form-control"
options="{countries}"
optionLabelField="cnShort"
optionValueField="cnShort"
prependOptionLabel="{f:translate(key:'frontend.apply.country.empty')}" />
<f:form.validationResults for="applyData.country">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-country"><f:translate key="frontend.apply.country" /></label>
<f:form.select value="{f:if(condition: '{sysLanguageUid} == 0', then: 'Deutschland', else: 'Germany')}" property="country" id="apply-country" class="form-control"
options="{countries}" optionLabelField="{f:if(condition: '{sysLanguageUid} == 0', then: 'cnShortDe', else: 'cnShortEn')}"
optionValueField="{f:if(condition: '{sysLanguageUid} == 0', then: 'cnShortDe', else: 'cnShortEn')}"
/>
<f:form.validationResults for="applyData.country">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-nationality"><f:translate key="frontend.apply.nationality" /></label>
<f:form.select property="nationality"
id="apply-nationality"
class="form-control"
options="{countries}"
optionLabelField="cnShort"
optionValueField="cnShort"
prependOptionLabel="{f:translate(key:'frontend.apply.nationality.empty')}" />
<f:form.validationResults for="applyData.nationality">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-nationality"><f:translate key="frontend.apply.nationality" /></label>
<f:form.select value="{f:if(condition: '{sysLanguageUid} == 0', then: 'Deutschland', else: 'Germany')}" property="nationality" id="apply-nationality" class="form-control" options="{countries}"
optionLabelField="{f:if(condition: '{sysLanguageUid} == 0', then: 'cnShortDe', else: 'cnShortEn')}"
optionValueField="{f:if(condition: '{sysLanguageUid} == 0', then: 'cnShortDe', else: 'cnShortEn')}"
/>
<f:form.validationResults for="applyData.nationality">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-education"><f:translate key="frontend.apply.education" /></label>
<f:form.textfield property="education" id="apply-education" class="form-control" />
<f:form.validationResults for="applyData.education">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-education"><f:translate key="frontend.apply.education" /></label>
<f:form.textfield property="education" id="apply-education" class="form-control" />
<f:form.validationResults for="applyData.education">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-birthDate"><f:translate key="frontend.apply.birthDate" /></label>
<f:form.textfield property="birthDate" id="apply-birthDate" class="form-control" />
<f:form.validationResults for="applyData.birthDate">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-birthDate"><f:translate key="frontend.apply.birthDate" /></label>
<f:form.textfield property="birthDate" id="apply-birthDate" class="form-control" />
<f:form.validationResults for="applyData.birthDate">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-phone"><f:translate key="frontend.apply.phone" /></label>
<f:form.textfield property="phone" id="apply-phone" class="form-control" />
<f:form.validationResults for="applyData.phone">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-phone"><f:translate key="frontend.apply.phone" /></label>
<f:form.textfield property="phone" id="apply-phone" class="form-control" />
<f:form.validationResults for="applyData.phone">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-mobile"><f:translate key="frontend.apply.mobile" /></label>
<f:form.textfield property="mobile" id="apply-mobile" class="form-control" />
<f:form.validationResults for="applyData.mobile">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-mobile"><f:translate key="frontend.apply.mobile" /></label>
<f:form.textfield property="mobile" id="apply-mobile" class="form-control" />
<f:form.validationResults for="applyData.mobile">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-email"><f:translate key="frontend.apply.email" /></label>
<f:form.textfield type="email" property="email" id="apply-email" class="form-control" />
<f:form.validationResults for="applyData.email">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-email"><f:translate key="frontend.apply.email" /></label>
<f:form.textfield type="email" property="email" id="apply-email" class="form-control" />
<f:form.validationResults for="applyData.email">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-cover-letter">
<f:translate key="frontend.apply.cover_letter" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="coverLetter" resourceName="coverLetter" id="apply-cover-letter" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{coverLetter.name}">
<p class="help-block">
Aktuell: {coverLetter.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][name]" value="{coverLetter.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][type]" value="{coverLetter.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][tmp_name]" value="{coverLetter.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][size]" value="{coverLetter.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.coverLetter">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-cover-letter">
<f:translate key="frontend.apply.cover_letter" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="coverLetter" resourceName="coverLetter" id="apply-cover-letter" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{coverLetter.name}">
<p class="help-block">
Aktuell: {coverLetter.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][name]" value="{coverLetter.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][type]" value="{coverLetter.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][tmp_name]" value="{coverLetter.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][coverLetter][submittedFile][size]" value="{coverLetter.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.coverLetter">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-cv">
<f:translate key="frontend.apply.cv" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="cv" resourceName="cv" id="apply-cv" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{cv.name}">
<p class="help-block">
Aktuell: {cv.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][name]" value="{cv.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][type]" value="{cv.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][tmp_name]" value="{cv.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][size]" value="{cv.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.cv">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-cv">
<f:translate key="frontend.apply.cv" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="cv" resourceName="cv" id="apply-cv" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{cv.name}">
<p class="help-block">
Aktuell: {cv.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][name]" value="{cv.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][type]" value="{cv.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][tmp_name]" value="{cv.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][cv][submittedFile][size]" value="{cv.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.cv">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-certificate">
<f:translate key="frontend.apply.certificate" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="certificate" resourceName="certificate" id="apply-certificate" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{certificate.name}">
<p class="help-block">
Aktuell: {certificate.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][name]" value="{certificate.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][type]" value="{certificate.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][tmp_name]" value="{certificate.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][size]" value="{certificate.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.certificate">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-certificate">
<f:translate key="frontend.apply.certificate" />
(<f:translate key="frontend.apply.allowed_file_extensions" /> {allowedFileExtensions})
</label>
<h:form.upload property="certificate" resourceName="certificate" id="apply-certificate" additionalAttributes="{accept: '{allowedMimeTypes}'}" />
<f:if condition="{certificate.name}">
<p class="help-block">
Aktuell: {certificate.name}
<f:comment><!-- Important, due to a fluid cache issue with the fluid syntax--></f:comment>
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][name]" value="{certificate.name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][type]" value="{certificate.type}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][tmp_name]" value="{certificate.tmp_name}" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][error]" value="0" />
<input type="hidden" name="tx_sgjobs_jobapplication[applyData][certificate][submittedFile][size]" value="{certificate.size}" />
</p>
</f:if>
<f:form.validationResults for="applyData.certificate">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<div class="form-group">
<label for="apply-message"><f:translate key="frontend.apply.message" /></label>
<f:form.textarea class="form-control" rows="10" property="message" id="apply-message" />
</div>
<div class="form-group">
<label for="apply-message"><f:translate key="frontend.apply.message" /></label>
<f:form.textarea class="form-control" rows="10" property="message" id="apply-message" />
</div>
<div class="form-group">
<label>
<f:form.checkbox id="privacy-policy" property="privacyPolicy" value="1" />
<f:format.raw><f:translate key="frontend.apply.privacyPolicy" arguments="{0: '{f:render(section:\'privacyPolicyCheckboxLink\')}'}"/></f:format.raw>
</label>
<f:form.validationResults for="applyData.privacyPolicy">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
<div class="form-group">
<label>
<f:form.checkbox id="privacy-policy" property="privacyPolicy" value="1" />
<f:format.raw><f:translate key="frontend.apply.privacyPolicy" arguments="{0: '{f:render(section:\'privacyPolicyCheckboxLink\')}'}"/></f:format.raw>
</label>
<f:form.validationResults for="applyData.privacyPolicy">
<ul class="sg-jobs-validation-error parsley-errors-list filled">
<f:for each="{validationResults.errors}" as="error">
<li class="parsley-required">{error.message}</li>
</f:for>
</ul>
</f:form.validationResults>
</div>
<button type="submit" class="btn btn-lg btn-warning">{f:translate(key:'frontend.applyNow')} <i class="fa fa-paper-plane" aria-hidden="true"></i></button>
</f:form>
</div>
<button type="submit" class="cta-link">{f:translate(key:'frontend.applyNow')}</button>
</f:form>
</div>
</div>
</f:section>
......
......@@ -7,13 +7,13 @@
<f:render
partial="Filter"
arguments="{recordPageId: recordPageId, filters: filters, countries: countries, cities: cities, companies: companies, departments: departments,
functions: functions, selectedCountry: selectedCountry, selectedCompany: selectedCompany,
selectedLocation: selectedLocation, selectedDepartment: selectedDepartment, selectedFunction: selectedFunction, limit: limit}"
functions: functions, selectedCountry: selectedCountry, selectedCompany: selectedCompany,
selectedLocation: selectedLocation, selectedDepartment: selectedDepartment, selectedFunction: selectedFunction, limit: limit}"
/>
<div class="row default-content-element equal-height-columns stretch-first-child">
<f:for each="{jobs}" as="job">
<f:render partial="Job" arguments="{job: job}" />
<f:render partial="Job" arguments="{job: job}"/>
</f:for>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment