From 2ac0b0ade4223e5881bb88f4e21aac7b2416a448 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Fri, 28 Jan 2022 10:50:44 +0000 Subject: [PATCH 1/3] added in case stage for dns records summary --- actions/selectQueryTypes.js | 2 +- components/case/summary.js | 24 +++++++++++++++++++++ data/lookuptranslations.json | 42 ++++++++++++++++++++++++++++++++++++ locales/cy/case.json | 1 + locales/en/case.json | 1 + 5 files changed, 69 insertions(+), 1 deletion(-) diff --git a/actions/selectQueryTypes.js b/actions/selectQueryTypes.js index e64a4086..539d702c 100644 --- a/actions/selectQueryTypes.js +++ b/actions/selectQueryTypes.js @@ -19,7 +19,7 @@ export const getSelectQuery = (appealTypeName) => { case "pinswg_compulsorypurchaseorderses": return "&$select=_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode"; case "pinswg_dnses": - return "&$select=_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectdescription,pinswg_projectlocation,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode"; + return "&$select=_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectdescription,pinswg_projectlocation,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage"; case "pinswg_electricityacts": return "&$select=_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode"; case "pinswg_householderappealhases": diff --git a/components/case/summary.js b/components/case/summary.js index 2722ef2f..e49cd42c 100644 --- a/components/case/summary.js +++ b/components/case/summary.js @@ -227,6 +227,30 @@ const CaseSummary = (props) => { )} + {detailsObj.pinswg_casestage != null && ( +
+
+ {t("case:summary-case-stage-label")} +
+
+ {router.locale == "cy" + ? jsonpath.query( + transLookup, + '$..[?(@.value=="' + + detailsObj[ + "pinswg_casestage@OData.Community.Display.V1.FormattedValue" + ] + + '")].value_cy' + ) + : detailsObj[ + "pinswg_casestage@OData.Community.Display.V1.FormattedValue" + ] || + t( + "case:summary-no-date-entered-label" + )} +
+
+ )} diff --git a/data/lookuptranslations.json b/data/lookuptranslations.json index c4882e34..bfc9d567 100644 --- a/data/lookuptranslations.json +++ b/data/lookuptranslations.json @@ -499,5 +499,47 @@ "value_cy": "Penderfyniad / Adroddiad Terfyno", "pinswg_isharedocumentlocations": 0 } + ], + "pinswg_casestage": [ + { + "value": "Pre-Application", + "value_cy": "Cyn Ymgeisio", + "pinswg_decision": 846040000 + }, + { + "value": "Acceptance", + "value_cy": "Derbyn", + "pinswg_decision": 846040001 + }, + { + "value": "Pre-Examiniation", + "value_cy": "Rhag-Arholiad", + "pinswg_decision": 846040001 + }, + { + "value": "Examination", + "value_cy": "Arholiad", + "pinswg_decision": 846040003 + }, + { + "value": "Recommendation", + "value_cy": "Argymhelliad", + "pinswg_decision": 846040004 + }, + { + "value": "Decision", + "value_cy": "Penderfyniad", + "pinswg_decision": 846040005 + }, + { + "value": "Post Decision", + "value_cy": "Wedi Penderfyniad", + "pinswg_decision": 846040006 + }, + { + "value": "Withdrawn", + "value_cy": "Tynnwyd yn ôl", + "pinswg_decision": 846040007 + } ] } \ No newline at end of file diff --git a/locales/cy/case.json b/locales/cy/case.json index 176e4a5b..47a1c822 100644 --- a/locales/cy/case.json +++ b/locales/cy/case.json @@ -6,6 +6,7 @@ "summary-agent-label": "Asiant", "summary-site-address-label": "Cyfeiriad y Safle", "summary-description-label": "Disgrifiad", + "summary-case-stage-label": "Cam achos", "summary-make-representation-label": "Cyflwyno cynrychiolaeth", "summary-back-button-label": "Ewch yn ôl", "summary-case-details-label": "Manylion yr Achos", diff --git a/locales/en/case.json b/locales/en/case.json index 8c6b5591..dd3ccdae 100644 --- a/locales/en/case.json +++ b/locales/en/case.json @@ -6,6 +6,7 @@ "summary-agent-label": "Agent", "summary-site-address-label": "Site Address", "summary-description-label": "Description", + "summary-case-stage-label": "Case stage", "summary-make-representation-label": "Make representation", "summary-back-button-label": "Go back", "summary-case-details-label": "Case Details", From 9d55adb26d862d9bf245d70796bcce8c713c7392 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Fri, 28 Jan 2022 19:35:07 +0000 Subject: [PATCH 2/3] added column sort and arrows --- .env.local | 10 +-- actions/index.js | 13 ++- components/search/pagination.js | 20 ++++- components/search/searchresults.js | 81 +++++++++++++++++-- pages/api/documents/download/[id].js | 25 ++++-- pages/api/endpoint/getbasicdnssearch_api.js | 2 + pages/api/endpoint/getbasicsearch_api.js | 2 + pages/api/endpoint/getbasicsearchpaged_api.js | 11 ++- styles/sass/welshgov/_application.scss | 33 ++++++++ 9 files changed, 173 insertions(+), 24 deletions(-) diff --git a/.env.local b/.env.local index 8b1a773e..44042762 100644 --- a/.env.local +++ b/.env.local @@ -37,11 +37,11 @@ RELAYPATH = "pp-pedw-hc" //Prod Oauth WGO -CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc -CLIENT_SECRET = mJN7Q~lFu.xFGa5KCc.zwIm_fJAWxajyQaFo~ -RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/ -RELAYURI = "prod-pedw-ns.servicebus.windows.net" -RELAYPATH = "prod-pedw-hc" +//CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc +//CLIENT_SECRET = mJN7Q~lFu.xFGa5KCc.zwIm_fJAWxajyQaFo~ +//RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/ +//RELAYURI = "prod-pedw-ns.servicebus.windows.net" +//RELAYPATH = "prod-pedw-hc" GOOGLE_TAG_MANAGER = GTM-T78CBC3 diff --git a/actions/index.js b/actions/index.js index 662a7b9c..18d60bc3 100644 --- a/actions/index.js +++ b/actions/index.js @@ -131,14 +131,23 @@ export const getBasicSearch = (searchString) => { }); }; -export const getBasicSearchPaged = (searchString, pageNumber) => { +export const getBasicSearchPaged = ( + searchString, + pageNumber, + orderBy, + fieldSort +) => { //console.log(queryUrl); return axios .get( "/api/endpoint/getbasicsearchpaged_api?searchString=" + searchString + "&pageNumber=" + - pageNumber + pageNumber + + "&orderby=" + + orderBy + + "&fieldSort=" + + fieldSort ) .then((res) => { return res.data; diff --git a/components/search/pagination.js b/components/search/pagination.js index 9a29050d..a8434c73 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")} @@ -116,7 +122,11 @@ const PaginationControl = (props) => { onClick={() => { // spinnerState(); console.log(i + 1); - getSearchPageResults(i + 1); + getSearchPageResults( + i + 1, + orderBy, + fieldSort + ); }} > {e} @@ -130,7 +140,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 0436111d..eacd31fe 100644 --- a/components/search/searchresults.js +++ b/components/search/searchresults.js @@ -166,13 +166,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 && (
@@ -420,6 +464,8 @@ const SearchResults = (props) => { @@ -448,9 +494,11 @@ const SearchResults = (props) => { ) : pagesCount; - const getSearchPageResults = (pageNumber) => { + const getSearchPageResults = (pageNumber, orderBy, fieldSort) => { //console.log(advancedSearch, searchString, pageNumber); + console.log("got this ", fieldSortState + " " + orderByState); + if (advancedSearch) { var searchoObj = Object.assign( ...searchString.map(([key, val]) => ({ [key]: val })) @@ -470,7 +518,7 @@ const SearchResults = (props) => { }); }); } else { - getBasicSearchPaged(searchString, pageNumber) + getBasicSearchPaged(searchString, pageNumber, orderBy, fieldSort) .then((data) => { //console.log(data); setSearchResults(data); @@ -486,6 +534,29 @@ const SearchResults = (props) => { } }; + const [orderByState, setOrderbyState] = useState("createdon"); + const [fieldSortState, setfieldSortState] = useState("desc"); + + const sortDataBy = (whichField) => { + console.log(whichField); + orderByState == "createdon" + ? setOrderbyState(whichField) + : setOrderbyState(whichField); + + fieldSortState == "desc" + ? setfieldSortState("asc") + : setfieldSortState("desc"); + + console.log(currentPage, orderByState + " " + fieldSortState); + getSearchPageResults(currentPage, orderByState, fieldSortState); + }; + + 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 2d740e8c..4acc9afa 100644 --- a/pages/api/documents/download/[id].js +++ b/pages/api/documents/download/[id].js @@ -42,27 +42,36 @@ export default async function ApiProxy(req, res) { var docRef = req.query; - console.log(docRef.id); - var queryUrl = "documents/download/" + docRef.id + "?hash=" + docRef.hash; - console.log(WEBAPI_URL + queryUrl); + const configDocument = (access_token) => { + return { + headers: { + "OData-MaxVersion": "4.0", + "OData-Version": "4.0", + "Accept": "application/json", + "Prefer": 'odata.include-annotations="*",return=representation', + "Content-Type": "application/json", + "Authorization": "Bearer " + access_token, + }, + responseType: "arraybuffer", + }; + }; + return axios .get( WEBAPI_URL + queryUrl, // + hashAPIPath(queryUrl), - azureHeadersPaged(token.access_token) + configDocument(token.access_token) ) .then((response) => { - console.log(response.headers); - res.status(200); res.setHeader( - "Content-disposition", + "content-disposition", "attachment; filename=" + response.headers["content-disposition"].split( "filename=" )[1] ); - res.end(response.data); + res.status(200).send(response.data); }) .catch(({ err }) => { res.status(400).json(err); 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/getbasicsearch_api.js b/pages/api/endpoint/getbasicsearch_api.js index d2bcff53..2944f93e 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 query ", queryUrl); + var apiResponse = _.isEmpty(req.query) ? res.status(400).json() : searchString.length > 0 diff --git a/pages/api/endpoint/getbasicsearchpaged_api.js b/pages/api/endpoint/getbasicsearchpaged_api.js index c2be2114..9388cdd5 100644 --- a/pages/api/endpoint/getbasicsearchpaged_api.js +++ b/pages/api/endpoint/getbasicsearchpaged_api.js @@ -24,16 +24,25 @@ 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=(contains(title, '" + searchString + "') or contains(ticketnumber, '" + searchString + - "')) 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(queryUrl); + var apiResponse = searchString.length > 0 ? axios diff --git a/styles/sass/welshgov/_application.scss b/styles/sass/welshgov/_application.scss index 2b0b6969..b3f78e9d 100644 --- a/styles/sass/welshgov/_application.scss +++ b/styles/sass/welshgov/_application.scss @@ -829,6 +829,39 @@ textarea, } } } + button { + border: none; + background: none; + padding-left: 0; + + &.sortDesc:after { + width: 0; + height: 0; + border-style: solid; + border-width: 13.9px 8px 0 8px; + border-color: #31373d transparent transparent transparent; + content: ""; + top: 15px; + position: relative; + left: 10px; + } + &.sortAsc:after { + width: 0; + height: 0; + border-style: solid; + border-width: 0 8px 13.9px 8px; + border-color: transparent transparent #31373d transparent; + content: ""; + top: -15px; + position: relative; + left: 10px; + } + + &:focus { + border: none; + box-shadow: none; + } + } } .results_wider { From 2ec88c995ce547d55bb31c37e0532245a6f70d99 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Mon, 31 Jan 2022 20:11:31 +0000 Subject: [PATCH 3/3] sorting on documents --- .env.local | 10 +-- actions/index.js | 35 +++++++++-- components/case/documents.js | 62 ++++++++++++++++++- components/case/pagination.js | 21 +++++-- components/search/dnssearchresults.js | 55 ++++++++++++++-- components/search/pagination.js | 25 +++++--- components/search/searchresults.js | 46 ++++++-------- .../endpoint/getadvancedsearchpaged_api.js | 12 +++- .../endpoint/getbasicdnssearchpaged_api.js | 9 ++- pages/api/endpoint/getbasicsearch_api.js | 2 +- .../api/endpoint/getbasicsearchdetails_api.js | 2 +- pages/api/endpoint/getbasicsearchpaged_api.js | 2 +- .../endpoint/getsearchdocumentdetails_api.js | 2 + .../getsearchdocumentdetailspaged_api.js | 11 +++- styles/sass/welshgov/_application.scss | 16 ++--- 15 files changed, 240 insertions(+), 70 deletions(-) diff --git a/.env.local b/.env.local index 44042762..8b1a773e 100644 --- a/.env.local +++ b/.env.local @@ -37,11 +37,11 @@ RELAYPATH = "pp-pedw-hc" //Prod Oauth WGO -//CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc -//CLIENT_SECRET = mJN7Q~lFu.xFGa5KCc.zwIm_fJAWxajyQaFo~ -//RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/ -//RELAYURI = "prod-pedw-ns.servicebus.windows.net" -//RELAYPATH = "prod-pedw-hc" +CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc +CLIENT_SECRET = mJN7Q~lFu.xFGa5KCc.zwIm_fJAWxajyQaFo~ +RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/ +RELAYURI = "prod-pedw-ns.servicebus.windows.net" +RELAYPATH = "prod-pedw-hc" GOOGLE_TAG_MANAGER = GTM-T78CBC3 diff --git a/actions/index.js b/actions/index.js index 18d60bc3..fd7d5b22 100644 --- a/actions/index.js +++ b/actions/index.js @@ -166,10 +166,15 @@ export const getBasicDNSSearch = (searchString) => { }); }; -export const getBasicDNSSearchPaged = (pageNumber) => { +export const getBasicDNSSearchPaged = (pageNumber, orderBy, fieldSort) => { return axios .get( - "/api/endpoint/getbasicdnssearchpaged_api?pageNumber=" + pageNumber + "/api/endpoint/getbasicdnssearchpaged_api?pageNumber=" + + pageNumber + + "&orderby=" + + orderBy + + "&fieldSort=" + + fieldSort ) .then((res) => res.data) .catch((error) => { @@ -196,13 +201,22 @@ export const getAdvancedSearch = (searchString) => { }); }; -export const getAdvancedSearchPaged = (searchString, pageNumber) => { +export const getAdvancedSearchPaged = ( + searchString, + pageNumber, + orderBy, + fieldSort +) => { return axios .get( "/api/endpoint/getadvancedsearchpaged_api?searchstring=" + JSON.stringify(searchString) + "&pageNumber=" + - pageNumber + pageNumber + + "&orderby=" + + orderBy + + "&fieldSort=" + + fieldSort ) .then((res) => res.data) .catch((error) => { @@ -273,13 +287,22 @@ export const getSearchDocumentDetails = (incidentID) => { }); }; -export const getSearchDocumentDetailsPaged = (incidentID, pageNumber) => { +export const getSearchDocumentDetailsPaged = ( + incidentID, + pageNumber, + orderBy, + fieldSort +) => { return axios .get( "/api/endpoint/getsearchdocumentdetailspaged_api?incidentid=" + incidentID + "&pageNumber=" + - pageNumber + pageNumber + + "&orderby=" + + orderBy + + "&fieldSort=" + + fieldSort ) .then((res) => res.data) .catch((error) => { diff --git a/components/case/documents.js b/components/case/documents.js index 9e096b5a..f98244e0 100644 --- a/components/case/documents.js +++ b/components/case/documents.js @@ -67,9 +67,38 @@ const DocumentDetails = (props) => {
{t("case:documents-doc-type-label")} +
{t("case:documents-date-published-label")} +
{/*
{t("case:documents-size-label")} @@ -199,6 +228,8 @@ const DocumentDetails = (props) => { currentPage={currentPage} searchResultsObj={documentDetailsObj} spinnerState={spinnerState} + orderBy={orderByState} + fieldSort={fieldSortState} getDocumentResults={getDocumentResults} /> @@ -250,8 +281,13 @@ const DocumentDetails = (props) => { const searchDocumentResultsObj = docDetailsObj(); }, [incidentid, setDocumentHistory, setDocumentDetails]); - const getDocumentResults = (pageNumber) => { - getSearchDocumentDetailsPaged(incidentid, pageNumber) + const getDocumentResults = (incidentid, pageNumber, orderBy, fieldSort) => { + getSearchDocumentDetailsPaged( + incidentid, + pageNumber, + orderBy, + fieldSort + ) .then((data) => data) .then((data) => { //console.log("getting details", data); @@ -264,7 +300,12 @@ const DocumentDetails = (props) => { }; const getDocumentDetails = async () => { - let docObj = await getSearchDocumentDetailsPaged(incidentid, pageNumber) + let docObj = await getSearchDocumentDetailsPaged( + incidentid, + pageNumber, + orderBy, + fieldSort + ) .then((data) => { //console.log(data); setDocumentDetails(data); @@ -345,6 +386,8 @@ const DocumentDetails = (props) => { }; const [showDocumentSearchState, setDocumentSearchState] = useState(false); + const [orderByState, setOrderbyState] = useState("createdon"); + const [fieldSortState, setfieldSortState] = useState("asc"); let documentSearchState = () => { showDocumentSearchState == true @@ -352,6 +395,19 @@ const DocumentDetails = (props) => { : setDocumentSearchState(true); }; + // 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/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 ce68813a..35f35fd8 100644 --- a/components/search/pagination.js +++ b/components/search/pagination.js @@ -84,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")} @@ -116,13 +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, - orderBy, - fieldSort - ); + spinnerState(), + getSearchPageResults( + i + 1, + orderBy, + fieldSort + ); }} > {e} @@ -136,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 734ef56d..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) => { @@ -526,14 +529,12 @@ const SearchResults = (props) => { const getSearchPageResults = (pageNumber, orderBy, fieldSort) => { //console.log(advancedSearch, searchString, pageNumber); - console.log("got this ", fieldSortState + " " + orderByState); - if (advancedSearch) { var searchoObj = Object.assign( ...searchString.map(([key, val]) => ({ [key]: val })) ); - getAdvancedSearchPaged(searchoObj, pageNumber) + getAdvancedSearchPaged(searchoObj, pageNumber, orderBy, fieldSort) .then((data) => data) .then((data) => { //console.log("getting details", data); @@ -545,13 +546,10 @@ const SearchResults = (props) => { }); } else { getBasicSearchPaged(searchString, pageNumber, orderBy, fieldSort) - .then((data) => { - //console.log(data); - setSearchResults(data); - return data; - }) + .then((data) => data) .then((data) => { //console.log("getting details", data); + setSearchResults(data); return getSearchDetailsPaged(data).then((data) => { setSearchDetails(data); setShowSpinnerState(false); @@ -560,28 +558,24 @@ const SearchResults = (props) => { } }; - const [orderByState, setOrderbyState] = useState("createdon"); - const [fieldSortState, setfieldSortState] = useState("desc"); - const sortDataBy = (whichField) => { - console.log(whichField); - orderByState == "createdon" - ? setOrderbyState(whichField) - : setOrderbyState(whichField); + setOrderbyState(whichField); + setfieldSortState("asc"); - fieldSortState == "desc" - ? setfieldSortState("asc") - : setfieldSortState("desc"); - - console.log(currentPage, orderByState + " " + fieldSortState); - getSearchPageResults(currentPage, orderByState, fieldSortState); + getSearchPageResults(1, whichField, fieldSortState); + whichField == orderByState + ? fieldSortState == "desc" + ? setfieldSortState("asc") + : setfieldSortState("desc") + : setfieldSortState("asc"); + setShowSpinnerState(true); }; - console.log( - "page is here ", - currentPage, - orderByState + " " + fieldSortState - ); + // console.log( + // "page is here ", + // currentPage, + // orderByState + " " + fieldSortState + // ); return ( <> 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/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 2944f93e..ac577c1b 100644 --- a/pages/api/endpoint/getbasicsearch_api.js +++ b/pages/api/endpoint/getbasicsearch_api.js @@ -32,7 +32,7 @@ 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 query ", queryUrl); + // console.log("basic search ", queryUrl); var apiResponse = _.isEmpty(req.query) ? res.status(400).json() 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(queryUrl); + //console.log("basic search paged:", queryUrl); var apiResponse = searchString.length > 0 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 81b95fb8..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%; @@ -834,14 +834,16 @@ textarea, background: none; padding-left: 0; + color: #0360a6; + &.sortDesc:after { width: 0; height: 0; border-style: solid; - border-width: 13.9px 8px 0 8px; - border-color: #31373d transparent transparent transparent; + border-width: 12px 5px 0 5px; + border-color: #0360a6 transparent transparent transparent; content: ""; - top: 15px; + top: 16px; position: relative; left: 10px; } @@ -849,10 +851,10 @@ textarea, width: 0; height: 0; border-style: solid; - border-width: 0 8px 13.9px 8px; - border-color: transparent transparent #31373d transparent; + border-width: 0 5px 12px 5px; + border-color: transparent transparent #0360a6 transparent; content: ""; - top: -15px; + top: -16px; position: relative; left: 10px; }