Skip to content
Snippets Groups Projects
Commit 4a1c7b02 authored by Tim Wagner's avatar Tim Wagner
Browse files

[BUGFIX] Clean up and fix job list filtering

parent d60c3ac8
No related branches found
No related tags found
No related merge requests found
......@@ -52,32 +52,19 @@ class CompanyRepository extends Repository {
*
* @param int $pageUid
* @return mixed
* @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
*/
public function getAllCountries($pageUid) {
/** @var QueryInterface $query */
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setStoragePageIds([$pageUid]);
$querySettings->setLanguageUid(
GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('language', 'id', 0)
);
$result = $this->getAllCompanies($pageUid)->toArray();
$query->setQuerySettings($querySettings);
$query->setOrderings(
[
'sorting' => QueryInterface::ORDER_ASCENDING,
]
);
$result = $query->execute()->toArray();
$countryArray = [''];
$countryArray = [];
/** @var Company $company */
foreach ($result as $company) {
$countryName = $company->getCountry();
$countryArray[$countryName] = $countryName;
if ($countryName !== '') {
// The filtering needs this specific key for some reason.
$countryArray[$countryName] = $countryName;
}
}
return $countryArray;
......@@ -88,68 +75,42 @@ class CompanyRepository extends Repository {
*
* @param int $pageUid
* @return mixed
* @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
*/
public function getAllCities($pageUid) {
/** @var QueryInterface $query */
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setStoragePageIds([$pageUid]);
$querySettings->setLanguageUid(
GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('language', 'id', 0)
);
$query->setQuerySettings($querySettings);
$result = $this->getAllCompanies($pageUid)->toArray();
$query->setOrderings(
[
'sorting' => QueryInterface::ORDER_ASCENDING,
]
);
$result = $query->execute()->toArray();
$cityArray = [''];
$cityArray = [];
/** @var Company $company */
foreach ($result as $company) {
$cityName = $company->getCity();
$cityArray[$cityName] = $cityName;
if ($cityName !== '') {
// The filtering needs this specific key for some reason.
$cityArray[$cityName] = $cityName;
}
}
return $cityArray;
}
/**
* Returns all companies filtered by page id
* Returns all company names filtered by page id
*
* @param int $pageUid
* @return mixed
* @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
*/
public function getAllCompanyNames($pageUid) {
/** @var QueryInterface $query */
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setStoragePageIds([$pageUid]);
$querySettings->setLanguageUid(
GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('language', 'id', 0)
);
$query->setQuerySettings($querySettings);
$query->setOrderings(
[
'sorting' => QueryInterface::ORDER_ASCENDING,
]
);
$result = $query->execute()->toArray();
$result = $this->getAllCompanies($pageUid)->toArray();
$companyArray = [''];
$companyArray = [];
/** @var Company $company */
foreach ($result as $company) {
$companyName = $company->getName();
$companyArray[$companyName] = $companyName;
if ($companyName !== '') {
// The filtering needs this specific key for some reason.
$companyArray[$companyName] = $companyName;
}
}
return $companyArray;
......@@ -160,10 +121,9 @@ class CompanyRepository extends Repository {
*
* @param int $pageUid
* @return mixed
* @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Core\Context\Exception\AspectNotFoundException
*/
public function getAllCompanies($pageUid) {
/** @var QueryInterface $query */
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setStoragePageIds([$pageUid]);
......
......@@ -366,6 +366,10 @@
<source><![CDATA[Location]]></source>
<target><![CDATA[Standort]]></target>
</trans-unit>
<trans-unit id="frontend.filter.selections.all" approved="yes">
<source><![CDATA[All]]></source>
<target><![CDATA[Alle]]></target>
</trans-unit>
<trans-unit id="frontend.filter.submit" approved="yes">
<source><![CDATA[Filter]]></source>
<target><![CDATA[Filtern]]></target>
......
......@@ -276,6 +276,9 @@
<trans-unit id="frontend.filter.locations">
<source><![CDATA[Location]]></source>
</trans-unit>
<trans-unit id="frontend.filter.selections.all">
<source><![CDATA[All]]></source>
</trans-unit>
<trans-unit id="frontend.filter.submit">
<source><![CDATA[Filter]]></source>
</trans-unit>
......
......@@ -213,6 +213,10 @@
<source><![CDATA[Location]]></source>
<target><![CDATA[地点]]></target>
</trans-unit>
<trans-unit id="frontend.filter.selections.all" approved="yes">
<source><![CDATA[All]]></source>
<target><![CDATA[]]></target>
</trans-unit>
<trans-unit id="frontend.location" approved="yes">
<source><![CDATA[Location]]></source>
<target><![CDATA[地点]]></target>
......
......@@ -18,13 +18,15 @@
property="filterCountry"
optionValueField="value"
options="{countries}"
prependOptionLabel="{f:translate(key: 'frontend.filter.selections.all')}"
prependOptionValue="0"
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">
<label for="filter-locations">
<f:translate key="frontend.filter.locations"/>
</label>
<f:form.select
......@@ -33,7 +35,9 @@
value="{selectedLocation}"
property="filterLocation"
optionValueField="value"
options="{companies}"
options="{cities}"
prependOptionLabel="{f:translate(key: 'frontend.filter.selections.all')}"
prependOptionValue="0"
id="filter-locations"/>
</div>
</div>
......@@ -52,6 +56,8 @@
property="filterCompany"
optionValueField="value"
options="{companies}"
prependOptionLabel="{f:translate(key: 'frontend.filter.selections.all')}"
prependOptionValue="0"
id="filter-companies"/>
</div>
</div>
......@@ -69,7 +75,7 @@
optionLabelField="title"
optionValueField="uid"
options="{departments}"
prependOptionLabel=""
prependOptionLabel="{f:translate(key: 'frontend.filter.selections.all')}"
prependOptionValue="0"
id="filter-departments"/>
</div>
......@@ -90,7 +96,7 @@
optionLabelField="title"
optionValueField="uid"
options="{experienceLevels}"
prependOptionLabel=""
prependOptionLabel="{f:translate(key: 'frontend.filter.selections.all')}"
prependOptionValue="0"
id="filter-experienceLevels"/>
</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