sorting on documents

This commit is contained in:
2022-01-31 20:11:31 +00:00
parent 3cecafc380
commit 2ec88c995c
15 changed files with 240 additions and 70 deletions
+51 -4
View File
@@ -46,6 +46,9 @@ const DNSSearchResults = (props) => {
: setShowSpinnerState(true);
};
const [orderByState, setOrderbyState] = useState("createdon");
const [fieldSortState, setfieldSortState] = useState("asc");
const ResultsView = (resultsArr) => {
return (
<div className="govuk-grid-row govuk-!-margin-top-9">
@@ -62,11 +65,40 @@ const DNSSearchResults = (props) => {
{t("search:searchresults-applicant-label")}
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("search:searchresults-authority-label")}
<button
type="button"
onClick={() =>
sortDataBy(
"_pinswg_associatedlpa_value"
)
}
className={
orderByState ==
"_pinswg_associatedlpa_value"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16`
}
>
{t("search:searchresults-authority-label")}
</button>
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("search:searchresults-status-label")}
<button
type="button"
onClick={() => sortDataBy("statuscode")}
className={
orderByState == "statuscode"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16`
}
>
{t("search:searchresults-status-label")}
</button>
</dd>
</div>
@@ -243,6 +275,8 @@ const DNSSearchResults = (props) => {
<PaginationControl
currentPage={currentPage}
searchResultsObj={searchResultsObj}
orderBy={orderByState}
fieldSort={fieldSortState}
spinnerState={spinnerState}
getSearchPageResults={getSearchPageResults}
/>
@@ -272,10 +306,10 @@ const DNSSearchResults = (props) => {
)
: pagesCount;
const getSearchPageResults = (pageNumber) => {
const getSearchPageResults = (pageNumber, orderBy, fieldSort) => {
//console.log(advancedSearch, searchString, pageNumber);
getBasicDNSSearchPaged(pageNumber)
getBasicDNSSearchPaged(pageNumber, orderBy, fieldSort)
.then((data) => {
return data;
})
@@ -288,6 +322,19 @@ const DNSSearchResults = (props) => {
});
};
const sortDataBy = (whichField) => {
setOrderbyState(whichField);
setfieldSortState("asc");
getSearchPageResults(1, whichField, fieldSortState);
whichField == orderByState
? fieldSortState == "desc"
? setfieldSortState("asc")
: setfieldSortState("desc")
: setfieldSortState("asc");
setShowSpinnerState(true);
};
return (
<>
<div className="govuk-grid-row">