From b20f122c2fd778079754828beedcb52bd52edcdb Mon Sep 17 00:00:00 2001 From: Torsten Oppermann <torsten@sgalinski.de> Date: Tue, 12 Dec 2017 13:47:35 +0100 Subject: [PATCH] [TASK] Adding limit jobs per page config to the ajax controller --- Classes/Controller/Ajax/JoblistController.php | 5 ++--- Classes/Controller/JoblistController.php | 1 + Resources/Private/Partials/Filter.html | 1 + Resources/Private/Templates/Ajax/Joblist/Filter.html | 2 +- Resources/Private/Templates/Joblist/Index.html | 2 +- Resources/Public/JavaScript/sgJobs.js | 1 + 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Classes/Controller/Ajax/JoblistController.php b/Classes/Controller/Ajax/JoblistController.php index 907ca34f..3207037e 100644 --- a/Classes/Controller/Ajax/JoblistController.php +++ b/Classes/Controller/Ajax/JoblistController.php @@ -27,11 +27,9 @@ namespace SGalinski\SgJobs\Controller\Ajax; ***************************************************************/ use SGalinski\SgAjax\Controller\Ajax\AbstractAjaxController; -use SGalinski\SgJobs\Service\BackendService; use SGalinski\SgJobs\Service\FrontendFilterService; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; /** * Ajax Controller @@ -70,7 +68,7 @@ class JoblistController extends AbstractAjaxController { $this->assignFilterValues($recordPageId); // pagination logic - $jobLimit = (int) $this->settings['jobLimit']; + $jobLimit = (int) $_POST['parameters']['limit']; $offset = 0; $currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgjobs_pagebrowser')['currentPage']; if ($currentPageBrowserPage && $jobLimit) { @@ -94,6 +92,7 @@ class JoblistController extends AbstractAjaxController { $this->view->assign('selectedLocation', $filters['location']); $this->view->assign('selectedArea', $filters['area']); $this->view->assign('selectedFunction', $filters['function']); + $this->view->assign('limit', $jobLimit); } /** diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php index 2b23079d..f193a3aa 100644 --- a/Classes/Controller/JoblistController.php +++ b/Classes/Controller/JoblistController.php @@ -85,6 +85,7 @@ class JoblistController extends ActionController { $numberOfPages = ($jobLimit <= 0 ? 0 : ceil($jobsCount / $jobLimit)); $this->view->assign('jobs', $jobs); + $this->view->assign('limit', $jobLimit); $this->view->assign('numberOfPages', $numberOfPages); } diff --git a/Resources/Private/Partials/Filter.html b/Resources/Private/Partials/Filter.html index d5e2ca21..29b9424e 100644 --- a/Resources/Private/Partials/Filter.html +++ b/Resources/Private/Partials/Filter.html @@ -4,4 +4,5 @@ <f:form.select class="sgjobs-select form-control" multiple="0" size="1" value="{selectedCompany}" property="filterCompany" optionValueField="value" options="{companies}" id="filter-companies" /> <f:form.select class="sgjobs-select form-control" multiple="0" size="1" value="{selectedArea}" property="filterArea" optionValueField="value" options="{areas}" id="filter-areas" /> <f:form.select class="sgjobs-select form-control" multiple="0" size="1" value="{selectedFunction}" property="filterFunction" optionValueField="value" options="{functions}" id="filter-functions" /> + <f:form.hidden value="{limit}" id="filter-limit" /> </f:form> diff --git a/Resources/Private/Templates/Ajax/Joblist/Filter.html b/Resources/Private/Templates/Ajax/Joblist/Filter.html index 5d9bbcbd..5fdeffc6 100644 --- a/Resources/Private/Templates/Ajax/Joblist/Filter.html +++ b/Resources/Private/Templates/Ajax/Joblist/Filter.html @@ -2,7 +2,7 @@ partial="Filter" arguments="{filters: filters, countries: countries, cities: cities, companies: companies, areas: areas, functions: functions, selectedCountry: selectedCountry, selectedCompany: selectedCompany, - selectedLocation: selectedLocation, selectedArea: selectedArea, selectedFunction: selectedFunction}" + selectedLocation: selectedLocation, selectedArea: selectedArea, selectedFunction: selectedFunction, limit: limit}" /> <f:for each="{jobs}" as="job"> diff --git a/Resources/Private/Templates/Joblist/Index.html b/Resources/Private/Templates/Joblist/Index.html index 04b440d5..ee1921d5 100644 --- a/Resources/Private/Templates/Joblist/Index.html +++ b/Resources/Private/Templates/Joblist/Index.html @@ -5,7 +5,7 @@ <div id="sgjobs-joblist"> <f:render partial="Filter" - arguments="{filters: filters, countries: countries, cities: cities, companies: companies, areas: areas, functions: functions}" + arguments="{filters: filters, countries: countries, cities: cities, companies: companies, areas: areas, functions: functions, limit: limit}" /> <f:for each="{jobs}" as="job"> diff --git a/Resources/Public/JavaScript/sgJobs.js b/Resources/Public/JavaScript/sgJobs.js index 67265db4..369061a2 100644 --- a/Resources/Public/JavaScript/sgJobs.js +++ b/Resources/Public/JavaScript/sgJobs.js @@ -52,6 +52,7 @@ export default class SgJobs { company: $('#filter-companies').val(), area: $('#filter-areas').val(), function: $('#filter-functions').val(), + limit: $('#filter-limit').val() } } ).done(function(result) { -- GitLab