diff --git a/components/case/pagination.js b/components/case/pagination.js
index 50b88581..b35c01dd 100644
--- a/components/case/pagination.js
+++ b/components/case/pagination.js
@@ -4,6 +4,8 @@ import useTranslation from "next-translate/useTranslation";
const PaginationControl = (props) => {
const {
+ orderBy,
+ fieldSort,
searchString,
searchResultsObj,
currentPage,
@@ -82,7 +84,11 @@ const PaginationControl = (props) => {
className="govuk-body govuk-link govuk-!-font-weight-bold govuk-link--no-underline activePaginationItem leftTextButton"
onClick={() => {
spinnerState(),
- getDocumentResults(currentPage - 1);
+ getDocumentResults(
+ currentPage - 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{t("common:previous-link-button")}
@@ -115,8 +121,11 @@ const PaginationControl = (props) => {
key={i}
onClick={() => {
spinnerState();
- console.log(i + 1);
- getDocumentResults(i + 1);
+ getDocumentResults(
+ i + 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{e}
@@ -130,7 +139,11 @@ const PaginationControl = (props) => {
className="govuk-body govuk-link govuk-!-font-weight-bold govuk-link--no-underline activePaginationItem rightTextButton"
onClick={() => {
spinnerState(),
- getDocumentResults(currentPage + 1);
+ getDocumentResults(
+ currentPage + 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{t("common:next-link-button")}
diff --git a/components/search/dnssearchresults.js b/components/search/dnssearchresults.js
index 11167c23..a28ca10e 100644
--- a/components/search/dnssearchresults.js
+++ b/components/search/dnssearchresults.js
@@ -46,6 +46,9 @@ const DNSSearchResults = (props) => {
: setShowSpinnerState(true);
};
+ const [orderByState, setOrderbyState] = useState("createdon");
+ const [fieldSortState, setfieldSortState] = useState("asc");
+
const ResultsView = (resultsArr) => {
return (
@@ -62,11 +65,40 @@ const DNSSearchResults = (props) => {
{t("search:searchresults-applicant-label")}
- {t("search:searchresults-authority-label")}
+
- {t("search:searchresults-status-label")}
+
@@ -243,6 +275,8 @@ const DNSSearchResults = (props) => {
@@ -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 (
<>
diff --git a/components/search/pagination.js b/components/search/pagination.js
index 2ac43e98..35f35fd8 100644
--- a/components/search/pagination.js
+++ b/components/search/pagination.js
@@ -4,6 +4,8 @@ import useTranslation from "next-translate/useTranslation";
const PaginationControl = (props) => {
const {
+ orderBy,
+ fieldSort,
searchString,
searchResultsObj,
currentPage,
@@ -82,7 +84,11 @@ const PaginationControl = (props) => {
className="govuk-body govuk-link govuk-!-font-weight-bold govuk-link--no-underline activePaginationItem leftTextButton"
onClick={() => {
spinnerState(),
- getSearchPageResults(currentPage - 1);
+ getSearchPageResults(
+ currentPage - 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{t("common:previous-link-button")}
@@ -114,9 +120,12 @@ const PaginationControl = (props) => {
className="govuk-body govuk-link govuk-!-padding-2 govuk-!-font-weight-bold govuk-link--no-underline activePaginationItem"
key={i}
onClick={() => {
- spinnerState();
- console.log(i + 1);
- getSearchPageResults(i + 1);
+ spinnerState(),
+ getSearchPageResults(
+ i + 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{e}
@@ -130,7 +139,11 @@ const PaginationControl = (props) => {
className="govuk-body govuk-link govuk-!-font-weight-bold govuk-link--no-underline activePaginationItem rightTextButton"
onClick={() => {
spinnerState(),
- getSearchPageResults(currentPage + 1);
+ getSearchPageResults(
+ currentPage + 1,
+ orderBy,
+ fieldSort
+ );
}}
>
{t("common:next-link-button")}
diff --git a/components/search/searchresults.js b/components/search/searchresults.js
index 5b8a635a..6750e173 100644
--- a/components/search/searchresults.js
+++ b/components/search/searchresults.js
@@ -74,6 +74,9 @@ const SearchResults = (props) => {
: setShowSpinnerState(true);
};
+ const [orderByState, setOrderbyState] = useState("createdon");
+ const [fieldSortState, setfieldSortState] = useState("asc");
+
const cookies = parseCookies();
const selectWatchedCase = (loggedInUser, incidentID, appealType) => {
@@ -166,13 +169,57 @@ const SearchResults = (props) => {
{t("search:searchresults-applicant-label")}
- {t("search:searchresults-authority-label")}
+ {/* {t("search:searchresults-authority-label")} */}
+
- {t("search:searchresults-case-type-label")}
+ {/* {t("search:searchresults-case-type-label")} */}
+
- {t("search:searchresults-status-label")}
+ {/* {t("search:searchresults-status-label")} */}
+
{myportal == true && (
@@ -449,6 +496,8 @@ const SearchResults = (props) => {
@@ -477,7 +526,7 @@ const SearchResults = (props) => {
)
: pagesCount;
- const getSearchPageResults = (pageNumber) => {
+ const getSearchPageResults = (pageNumber, orderBy, fieldSort) => {
//console.log(advancedSearch, searchString, pageNumber);
if (advancedSearch) {
@@ -485,7 +534,7 @@ const SearchResults = (props) => {
...searchString.map(([key, val]) => ({ [key]: val }))
);
- getAdvancedSearchPaged(searchoObj, pageNumber)
+ getAdvancedSearchPaged(searchoObj, pageNumber, orderBy, fieldSort)
.then((data) => data)
.then((data) => {
//console.log("getting details", data);
@@ -496,14 +545,11 @@ const SearchResults = (props) => {
});
});
} else {
- getBasicSearchPaged(searchString, pageNumber)
- .then((data) => {
- //console.log(data);
- setSearchResults(data);
- return data;
- })
+ getBasicSearchPaged(searchString, pageNumber, orderBy, fieldSort)
+ .then((data) => data)
.then((data) => {
//console.log("getting details", data);
+ setSearchResults(data);
return getSearchDetailsPaged(data).then((data) => {
setSearchDetails(data);
setShowSpinnerState(false);
@@ -512,6 +558,25 @@ const SearchResults = (props) => {
}
};
+ const sortDataBy = (whichField) => {
+ setOrderbyState(whichField);
+ setfieldSortState("asc");
+
+ getSearchPageResults(1, whichField, fieldSortState);
+ whichField == orderByState
+ ? fieldSortState == "desc"
+ ? setfieldSortState("asc")
+ : setfieldSortState("desc")
+ : setfieldSortState("asc");
+ setShowSpinnerState(true);
+ };
+
+ // console.log(
+ // "page is here ",
+ // currentPage,
+ // orderByState + " " + fieldSortState
+ // );
+
return (
<>
diff --git a/pages/api/documents/download/[id].js b/pages/api/documents/download/[id].js
index 80c9c8e9..4acc9afa 100644
--- a/pages/api/documents/download/[id].js
+++ b/pages/api/documents/download/[id].js
@@ -58,8 +58,6 @@ export default async function ApiProxy(req, res) {
};
};
- console.log(WEBAPI_URL + queryUrl);
-
return axios
.get(
WEBAPI_URL + queryUrl, // + hashAPIPath(queryUrl),
diff --git a/pages/api/endpoint/getadvancedsearchpaged_api.js b/pages/api/endpoint/getadvancedsearchpaged_api.js
index 9f3bb570..77b638ac 100644
--- a/pages/api/endpoint/getadvancedsearchpaged_api.js
+++ b/pages/api/endpoint/getadvancedsearchpaged_api.js
@@ -1,5 +1,6 @@
import axios from "axios";
import CryptoJS from "crypto-js";
+import { query } from "jsonpath";
import _ from "lodash";
import { getToken, azureHeadersPaged } from "../../../actions";
@@ -26,6 +27,9 @@ export default async function ApiProxy(req, res) {
var pageNumber = req.query.pageNumber;
var token = await getToken();
+ var orderby = req.query.orderby;
+ var fieldSort = req.query.fieldSort;
+
searchString = _.isEmpty(searchString)
? searchString
: JSON.parse(decodeURI(searchString));
@@ -60,11 +64,17 @@ export default async function ApiProxy(req, res) {
var queryUrl =
"incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=" +
queryString +
- " and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true" +
+ " and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=" +
+ orderby +
+ " " +
+ fieldSort +
+ "&$count=true" +
(typeof pageNumber != "undefined"
? "&$skiptoken=" + ('')
: "");
+ console.log("adv qu: ", queryUrl);
+
var apiResponse = _.isEmpty(searchString)
? res.status(400).json()
: axios
diff --git a/pages/api/endpoint/getbasicdnssearch_api.js b/pages/api/endpoint/getbasicdnssearch_api.js
index 26ce65ad..fb1b79f2 100644
--- a/pages/api/endpoint/getbasicdnssearch_api.js
+++ b/pages/api/endpoint/getbasicdnssearch_api.js
@@ -27,6 +27,8 @@ export default async function ApiProxy(req, res) {
var queryUrl =
"incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=pinswg_appealcasetype eq 846040011 and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
+ console.log(queryUrl);
+
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
diff --git a/pages/api/endpoint/getbasicdnssearchpaged_api.js b/pages/api/endpoint/getbasicdnssearchpaged_api.js
index c90c9c35..0a2c2ebe 100644
--- a/pages/api/endpoint/getbasicdnssearchpaged_api.js
+++ b/pages/api/endpoint/getbasicdnssearchpaged_api.js
@@ -25,8 +25,15 @@ export default async function ApiProxy(req, res) {
var pageNumber = req.query.pageNumber;
var token = await getToken();
+ var orderby = req.query.orderby;
+ var fieldSort = req.query.fieldSort;
+
var queryUrl =
- "incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=pinswg_appealcasetype eq 846040011 and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true" +
+ "incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=pinswg_appealcasetype eq 846040011 and pinswg_publishtoweb eq true&$orderby=" +
+ orderby +
+ " " +
+ fieldSort +
+ "&$count=true" +
(typeof pageNumber != "undefined"
? "&$skiptoken=" + ''
: "");
diff --git a/pages/api/endpoint/getbasicsearch_api.js b/pages/api/endpoint/getbasicsearch_api.js
index d2bcff53..ac577c1b 100644
--- a/pages/api/endpoint/getbasicsearch_api.js
+++ b/pages/api/endpoint/getbasicsearch_api.js
@@ -32,6 +32,8 @@ export default async function ApiProxy(req, res) {
searchString +
"')) and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
+ // console.log("basic search ", queryUrl);
+
var apiResponse = _.isEmpty(req.query)
? res.status(400).json()
: searchString.length > 0
diff --git a/pages/api/endpoint/getbasicsearchdetails_api.js b/pages/api/endpoint/getbasicsearchdetails_api.js
index 0abcb60b..608efbfa 100644
--- a/pages/api/endpoint/getbasicsearchdetails_api.js
+++ b/pages/api/endpoint/getbasicsearchdetails_api.js
@@ -34,7 +34,7 @@ export default async function ApiProxy(req, res) {
queryUrl = queryUrl + getSelectQuery(appealTypeName);
- console.log("query: ", queryUrl, "<<<'
: "");
+ //console.log("basic search paged:", queryUrl);
+
var apiResponse =
searchString.length > 0
? axios
diff --git a/pages/api/endpoint/getsearchdocumentdetails_api.js b/pages/api/endpoint/getsearchdocumentdetails_api.js
index 10039332..66ee9344 100644
--- a/pages/api/endpoint/getsearchdocumentdetails_api.js
+++ b/pages/api/endpoint/getsearchdocumentdetails_api.js
@@ -43,6 +43,8 @@ export default async function ApiProxy(req, res) {
incidentID +
"&$select=pinswg_isharedocumentlocations,_pinswg_documentids_value,pinswg_isharelabelcasetype,pinswg_isharelabellpaname,pinswg_publishtoweb,pinswg_uploadstatus,pinswg_isharedocumentclassification,pinswg_isharedocumentreference";
+ console.log("docu: ", queryUrl);
+
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
diff --git a/pages/api/endpoint/getsearchdocumentdetailspaged_api.js b/pages/api/endpoint/getsearchdocumentdetailspaged_api.js
index b95c4084..724f2233 100644
--- a/pages/api/endpoint/getsearchdocumentdetailspaged_api.js
+++ b/pages/api/endpoint/getsearchdocumentdetailspaged_api.js
@@ -39,14 +39,23 @@ export default async function ApiProxy(req, res) {
var incidentID = req.query.incidentid;
var token = await getToken();
+ var orderby = req.query.orderby;
+ var fieldSort = req.query.fieldSort;
+
var queryUrl =
"pinswg_documents?$count=true&$filter=pinswg_publishtoweb eq true and _pinswg_documentids_value eq " +
incidentID +
- "&$select=pinswg_isharedocumentlocations,_pinswg_documentids_value,pinswg_isharelabelcasetype,pinswg_isharelabellpaname,pinswg_publishtoweb,pinswg_uploadstatus,pinswg_isharedocumentclassification,pinswg_isharedocumentreference" +
+ "&$select=pinswg_isharedocumentlocations,_pinswg_documentids_value,pinswg_isharelabelcasetype,pinswg_isharelabellpaname,pinswg_publishtoweb,pinswg_uploadstatus,pinswg_isharedocumentclassification,pinswg_isharedocumentreference&$orderby=" +
+ orderby +
+ " " +
+ fieldSort +
+ "&$count=true" +
(typeof pageNumber != "undefined"
? "&$skiptoken=" + ('')
: "");
+ console.log("docu: ", queryUrl);
+
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
diff --git a/styles/sass/welshgov/_application.scss b/styles/sass/welshgov/_application.scss
index 7de77af6..f041a9ba 100644
--- a/styles/sass/welshgov/_application.scss
+++ b/styles/sass/welshgov/_application.scss
@@ -806,7 +806,7 @@ textarea,
.documentList {
.govuk-summary-list__key:first-of-type {
- width: 20%;
+ width: 40%;
}
.govuk-summary-list__key:last-of-type {
width: 20%;
@@ -829,6 +829,41 @@ textarea,
}
}
}
+ button {
+ border: none;
+ background: none;
+ padding-left: 0;
+
+ color: #0360a6;
+
+ &.sortDesc:after {
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 12px 5px 0 5px;
+ border-color: #0360a6 transparent transparent transparent;
+ content: "";
+ top: 16px;
+ position: relative;
+ left: 10px;
+ }
+ &.sortAsc:after {
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 0 5px 12px 5px;
+ border-color: transparent transparent #0360a6 transparent;
+ content: "";
+ top: -16px;
+ position: relative;
+ left: 10px;
+ }
+
+ &:focus {
+ border: none;
+ box-shadow: none;
+ }
+ }
}
.results_wider {