show submitted reps on dashboard
This commit is contained in:
@@ -38,6 +38,7 @@ import {
|
||||
uploadRepFiles,
|
||||
sendEmail,
|
||||
generateRepPDF,
|
||||
createWatchedCases,
|
||||
} from "../../../actions";
|
||||
import { formatDates } from "../../../components/utils";
|
||||
import RepresentationProgress_s78 from "./representationProgress/representationProgress_s78";
|
||||
@@ -527,6 +528,7 @@ let MakeRepresentation = (props) => {
|
||||
case 846040003:
|
||||
case 846040009:
|
||||
case 846040008:
|
||||
case 846040017:
|
||||
return (
|
||||
<RepresentationProgress_s78
|
||||
props={props}
|
||||
|
||||
@@ -4,7 +4,11 @@ import { useRouter } from "next/router";
|
||||
import { useEffect } from "react";
|
||||
|
||||
import { useDropzone } from "react-dropzone";
|
||||
import { sendEmail, sendRepCompleteMessage } from "../../../actions";
|
||||
import {
|
||||
sendEmail,
|
||||
sendRepCompleteMessage,
|
||||
createWatchedCases,
|
||||
} from "../../../actions";
|
||||
import { setRepresentationReset } from "../../../store/currentView/action";
|
||||
|
||||
const RepComplete = (props) => {
|
||||
@@ -51,6 +55,22 @@ const RepComplete = (props) => {
|
||||
props.repFormData.repfile_name
|
||||
),
|
||||
sendEmail(templateId, emailAddress, personalisation, reference),
|
||||
createWatchedCases({
|
||||
"pinswg_WatchedCase@odata.bind":
|
||||
"/incidents(" +
|
||||
props.props.currentView.caseReference.incidentid +
|
||||
")",
|
||||
"pinswg_Contact@odata.bind":
|
||||
"/contacts(" +
|
||||
props.props.props.props.accountDetails.loggedinUserId +
|
||||
")",
|
||||
"pinswg_appealcasetype":
|
||||
props.props.currentView.caseReference.appealType,
|
||||
"pinswg_representationsubmitted": new Date(Date.now()),
|
||||
"pinswg_representationtype":
|
||||
props.props.currentView.caseReference.repDetails
|
||||
.representationType,
|
||||
}),
|
||||
setRepresentationMessageSent(true));
|
||||
});
|
||||
return (
|
||||
|
||||
@@ -107,6 +107,7 @@ const RepCompleteSubmit = (props) => {
|
||||
case 846040003:
|
||||
case 846040009:
|
||||
case 846040008:
|
||||
case 846040017:
|
||||
return (
|
||||
<RepLPAQuestionnaireCheck_s78
|
||||
props={props}
|
||||
|
||||
@@ -156,6 +156,7 @@ let RepLPA = (props) => {
|
||||
case 846040003:
|
||||
case 846040009:
|
||||
case 846040008:
|
||||
case 846040017:
|
||||
return (
|
||||
<RepresentationProgress_s78
|
||||
props={props}
|
||||
@@ -489,7 +490,7 @@ let RepLPA = (props) => {
|
||||
}}
|
||||
className="govuk-link"
|
||||
>
|
||||
{t("common:back-link")}ss
|
||||
{t("common:back-link")}
|
||||
</a>
|
||||
</>
|
||||
)}
|
||||
|
||||
+13
-1
@@ -147,6 +147,7 @@ const MyPortal = (props) => {
|
||||
currentView={props.currentView}
|
||||
watchedCases={props.watchedCases}
|
||||
isLPA={isLPA}
|
||||
myReps={false}
|
||||
/>
|
||||
)}
|
||||
{props.myRepresentations.myRepresentations[
|
||||
@@ -157,8 +158,19 @@ const MyPortal = (props) => {
|
||||
isLPA={isLPA}
|
||||
/>
|
||||
)}
|
||||
{!isLPA && <Dns />}
|
||||
|
||||
{props.myRepresentations.mySubmittedReps
|
||||
.mySubmittedReps.length > 0 && (
|
||||
<WatchedCases
|
||||
currentView={props.currentView}
|
||||
watchedCases={
|
||||
props.myRepresentations.mySubmittedReps
|
||||
}
|
||||
isLPA={isLPA}
|
||||
myReps={true}
|
||||
/>
|
||||
)}
|
||||
{!isLPA && <Dns />}
|
||||
{/* <YourAccount /> */}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -44,7 +44,9 @@ const TopThree = (props) => {
|
||||
|
||||
let topthreeRow = [];
|
||||
|
||||
let showTopThreeArr = showTopThree.value;
|
||||
let showTopThreeArr;
|
||||
|
||||
showTopThreeArr = props.myReps ? showTopThree : showTopThree.value;
|
||||
|
||||
Object.keys(showTopThreeArr).map((key, index) => {
|
||||
let createdDate = parseInt(showTopThreeArr[key].createdon);
|
||||
@@ -236,8 +238,6 @@ const TopThree = (props) => {
|
||||
</Link>
|
||||
)}
|
||||
</div>
|
||||
{/* {(topThreeType == "awaitingSubmission" ||
|
||||
topThreeType == "watchedCases") && ( */}
|
||||
<div>
|
||||
<b>{t("myportal:appeal-type-label")}:</b>{" "}
|
||||
{router.locale == "cy"
|
||||
@@ -336,8 +336,31 @@ const TopThree = (props) => {
|
||||
{" "}
|
||||
{raisedDate(showTopThreeArr[key].createdon)}
|
||||
</div>{" "}
|
||||
{topThreeType == "watchedCases" &&
|
||||
props.myReps &&
|
||||
showTopThreeArr[key].pinswg_representationsubmitted !=
|
||||
null && (
|
||||
<div className="cardModuleReference">
|
||||
<b>{t("myportal:representation-submitted")}:</b>
|
||||
{" "}
|
||||
{raisedDate(
|
||||
showTopThreeArr[key]
|
||||
.pinswg_representationsubmitted
|
||||
)}
|
||||
</div>
|
||||
{topThreeType == "watchedCases" && (
|
||||
)}
|
||||
{topThreeType == "watchedCases" &&
|
||||
props.myReps &&
|
||||
showTopThreeArr[key].pinswg_representationtype !=
|
||||
null && (
|
||||
<div className="cardModuleReference">
|
||||
<b>{t("myportal:representation-type")}:</b>
|
||||
{" "}
|
||||
{showTopThreeArr[key].pinswg_representationtype}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{topThreeType == "watchedCases" && !props.myReps && (
|
||||
<div className="">
|
||||
<button
|
||||
title={t("case:you-have-stopped-watching-label")}
|
||||
|
||||
@@ -12,23 +12,36 @@ const WatchedCases = (props) => {
|
||||
const { locale } = router;
|
||||
const { setCurrentView } = props;
|
||||
|
||||
let recordCountVar = props.myReps
|
||||
? props.watchedCases.mySubmittedReps
|
||||
: props.watchedCases.watchedCases;
|
||||
|
||||
return (
|
||||
<div className="card" id="my-watched-cases-card">
|
||||
<div className="card-body">
|
||||
<h3 className="heading-small card-heading">
|
||||
{t("myportal:watchedcases-card-title")}
|
||||
{props.myReps
|
||||
? "Submitted representations"
|
||||
: t("myportal:watchedcases-card-title")}
|
||||
</h3>
|
||||
<div className="cardModuleContainer">
|
||||
<TopThree
|
||||
showTopThree={props.watchedCases.watchedCases}
|
||||
showTopThree={
|
||||
props.myReps
|
||||
? props.watchedCases.mySubmittedReps
|
||||
: props.watchedCases.watchedCases
|
||||
}
|
||||
showDetails={props.watchedCases.watchedCasesDetails}
|
||||
topThreeType={"watchedCases"}
|
||||
showLoginCheck={props.showLoginCheck}
|
||||
currentView={props.currentView}
|
||||
myReps={props.myReps}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{props.watchedCases.watchedCases["@odata.count"] > 3 && (
|
||||
{(props.myReps
|
||||
? recordCountVar.length > 3
|
||||
: recordCountVar["@odata.count"] > 3) && (
|
||||
<div className="cardVieAll">
|
||||
<Link
|
||||
href={
|
||||
@@ -38,7 +51,6 @@ const WatchedCases = (props) => {
|
||||
"/fymhorth/gweldpopeth"
|
||||
: "/myportal/viewall"
|
||||
}
|
||||
shallow
|
||||
className="govuk-link--no-underline"
|
||||
onClick={() => {
|
||||
setCurrentView({
|
||||
@@ -51,7 +63,9 @@ const WatchedCases = (props) => {
|
||||
{props.watchedCases.watchedCases["@odata.count"] +
|
||||
" cases"} */}
|
||||
{t("myportal:viewall-link-count", {
|
||||
count: props.watchedCases.watchedCases[
|
||||
count: props.myReps
|
||||
? props.watchedCases.mySubmittedReps.length
|
||||
: props.watchedCases.watchedCases[
|
||||
"@odata.count"
|
||||
],
|
||||
})}
|
||||
|
||||
@@ -78,7 +78,7 @@ export default function BuildField(props) {
|
||||
break;
|
||||
|
||||
default:
|
||||
return <>ss{fieldValue}</>;
|
||||
return <>{fieldValue}</>;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
"representation-type": "Math o gynrychiolaeth",
|
||||
"capacity": "Gallu",
|
||||
"date-raised": "Dyddiad codi",
|
||||
"representation-submitted": "Cyflwynwyd y sylw",
|
||||
"submission-processing-label": "Prosesu cyflwyniad",
|
||||
"appeal-pending-label": "Arfaeth"
|
||||
}
|
||||
@@ -44,6 +44,7 @@
|
||||
"representation-type": "Representation type",
|
||||
"capacity": "Capacity",
|
||||
"date-raised": "Date raised",
|
||||
"representation-submitted": "Representation submitted",
|
||||
"submission-processing-label": "Submission processing",
|
||||
"appeal-pending-label": "Pending"
|
||||
}
|
||||
@@ -37,6 +37,8 @@ export default async function ApiProxy(req, res) {
|
||||
var token = await getToken();
|
||||
var queryUrl = "pinswg_watchlists(" + watchedCaseID + ")";
|
||||
|
||||
console.log(WEBAPI_URL + queryUrl + hashAPIPath(queryUrl));
|
||||
|
||||
var config = {
|
||||
method: "delete",
|
||||
url: WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
|
||||
|
||||
@@ -48,7 +48,7 @@ export default async function ApiProxy(req, res) {
|
||||
var queryUrl =
|
||||
"pinswg_watchlists?$filter= _pinswg_contact_value eq " +
|
||||
loggedInUserId +
|
||||
"&$select=modifiedon,pinswg_appealcasetype,pinswg_watchlistid,_pinswg_watchedcase_value,statuscode&$count=true&$orderby=createdon desc&$expand=pinswg_WatchedCase($select=pinswg_AssociatedLPA)";
|
||||
"&$select=modifiedon,pinswg_appealcasetype,pinswg_watchlistid,_pinswg_watchedcase_value,statuscode,pinswg_representationsubmitted,pinswg_representationtype&$count=true&$orderby=createdon desc&$expand=pinswg_WatchedCase($select=pinswg_AssociatedLPA)";
|
||||
|
||||
return axios
|
||||
.get(
|
||||
|
||||
+43
-3
@@ -40,6 +40,8 @@ import { setMyCases, setMyCasesDetails } from "../../store/myCases/action";
|
||||
import {
|
||||
setMyRepresentations,
|
||||
setMyRepresentationsDetails,
|
||||
setMySubmittedReps,
|
||||
setMySubmittedRepsDetails,
|
||||
} from "../../store/myRepresentations/action";
|
||||
import { setShowReps } from "../../store/currentView/action";
|
||||
import { wrapper } from "../../store/store";
|
||||
@@ -54,6 +56,7 @@ const Home = (props) => {
|
||||
pages,
|
||||
myCases,
|
||||
myRepresentations,
|
||||
mySubmittedReps,
|
||||
watchedCases,
|
||||
awaitingSubmission,
|
||||
accountDetails,
|
||||
@@ -145,6 +148,7 @@ const Home = (props) => {
|
||||
<MyPortal
|
||||
myCases={myCases}
|
||||
myRepresentations={myRepresentations}
|
||||
mySubmittedReps={mySubmittedReps}
|
||||
watchedCases={watchedCases}
|
||||
awaitingSubmission={awaitingSubmission}
|
||||
accountDetails={accountDetails}
|
||||
@@ -247,6 +251,34 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
const showReps = process.env.SHOWREPRESENTATIONS || false;
|
||||
store.dispatch(setShowReps(showReps, showLoginCheck));
|
||||
|
||||
let showWatchedCases = (submittedArr) => {
|
||||
const required = submittedArr.value.filter((el) => {
|
||||
return el.pinswg_representationsubmitted == null;
|
||||
});
|
||||
|
||||
let newObj = {};
|
||||
return Object.assign(newObj, {
|
||||
"@odata.count": required.length,
|
||||
"value": required,
|
||||
});
|
||||
};
|
||||
|
||||
let filteredWatchedCases = showWatchedCases(watchedCases);
|
||||
|
||||
let showSubmittedReps = (submittedArr) => {
|
||||
submittedArr = submittedArr.value;
|
||||
const required = submittedArr.filter((el) => {
|
||||
let IsSubmittedRep = _.has(el, "pinswg_representationsubmitted")
|
||||
? el.pinswg_representationsubmitted != null &&
|
||||
el.pinswg_representationsubmitted
|
||||
: "";
|
||||
return IsSubmittedRep;
|
||||
});
|
||||
return required;
|
||||
};
|
||||
|
||||
const mySubmittedReps = showSubmittedReps(watchedCases);
|
||||
|
||||
// if (preferredLocale != ctx.locale) {
|
||||
// return {
|
||||
// redirect: {
|
||||
@@ -266,11 +298,13 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
const [
|
||||
myCasesDetails,
|
||||
watchedCasesDetails,
|
||||
mySubmittedRepsDetails,
|
||||
//awaitingSubmissionDetails,
|
||||
myRepresentationsDetails,
|
||||
] = await Promise.all([
|
||||
await getDetails(myCases, "myCases"),
|
||||
await getDetails(watchedCases, "myWatchedCases"),
|
||||
await getDetails(filteredWatchedCases, "myWatchedCases"),
|
||||
await getDetails(mySubmittedReps, "mySubmittedReps"),
|
||||
//await getDetails(awaitingSubmission, "awaitingSubmission"),
|
||||
await getDetails(myRepresentations, "myRepresentations"),
|
||||
]);
|
||||
@@ -284,8 +318,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
||||
setMyRepresentationsDetails(myRepresentationsDetails)
|
||||
);
|
||||
|
||||
store.dispatch(setWatchedCases(watchedCases));
|
||||
store.dispatch(setWatchedCases(filteredWatchedCases));
|
||||
store.dispatch(setWatchedCasesDetails(watchedCasesDetails));
|
||||
store.dispatch(setMySubmittedReps(mySubmittedReps));
|
||||
store.dispatch(setMySubmittedRepsDetails(mySubmittedRepsDetails));
|
||||
store.dispatch(setAwaitingSubmission(awaitingSubmission));
|
||||
store.dispatch(
|
||||
setAwaitingSubmissionFromBlob(awaitingSubmissionFromBlob)
|
||||
@@ -318,7 +354,8 @@ const getDetails = (resultsObj, detailsType) => {
|
||||
// "\n//////////////////////////////////\n"
|
||||
// );
|
||||
|
||||
resultsObj = resultsObj.value;
|
||||
resultsObj =
|
||||
detailsType == "mySubmittedReps" ? resultsObj : resultsObj.value;
|
||||
|
||||
// console.log(
|
||||
// "////////////////////////////////// resultsobj\n",
|
||||
@@ -339,6 +376,7 @@ const getDetails = (resultsObj, detailsType) => {
|
||||
caseID = data.pinswg_title;
|
||||
break;
|
||||
case "myWatchedCases":
|
||||
case "mySubmittedReps":
|
||||
caseID =
|
||||
data[
|
||||
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
|
||||
@@ -371,6 +409,7 @@ const getDetails = (resultsObj, detailsType) => {
|
||||
caseID = searchDetail.pinswg_title;
|
||||
break;
|
||||
case "myWatchedCases":
|
||||
case "mySubmittedReps":
|
||||
caseID =
|
||||
searchDetail[
|
||||
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
|
||||
@@ -422,6 +461,7 @@ const mapStateToProps = (state) => {
|
||||
myCases: state.myCases,
|
||||
watchedCases: state.watchedCases,
|
||||
myRepresentations: state.myRepresentations,
|
||||
mySubmittedReps: state.mySubmittedReps,
|
||||
awaitingSubmission: state.awaitingSubmission,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,6 +3,8 @@ export const myRepresentationsActionTypes = {
|
||||
SETMYREPRESENTATIONS: "SETMYREPRESENTATIONS",
|
||||
SETMYREPRESENTATIONSDETAILS: "SETMYREPRESENTATIONSDETAILS",
|
||||
UPDATEMYREPRESENTATIONS: "UPDATEMYREPRESENTATIONS",
|
||||
SETMYSUBMITTEDREPS: "SETMYSUBMITTEDREPS",
|
||||
SETMYSUBMITTEDREPSDETAILS: "SETMYSUBMITTEDREPSDETAILS",
|
||||
};
|
||||
|
||||
export const getMyRepresentationsObj = () => (dispatch) => {
|
||||
@@ -25,3 +27,18 @@ export const setMyRepresentationsDetails =
|
||||
myRepresentationsDetails: myRepresentationsDetails,
|
||||
});
|
||||
};
|
||||
|
||||
export const setMySubmittedReps = (mySubmittedReps) => (dispatch) => {
|
||||
return dispatch({
|
||||
type: myRepresentationsActionTypes.SETMYSUBMITTEDREPS,
|
||||
mySubmittedReps: mySubmittedReps,
|
||||
});
|
||||
};
|
||||
|
||||
export const setMySubmittedRepsDetails =
|
||||
(mySubmittedRepsDetails) => (dispatch) => {
|
||||
return dispatch({
|
||||
type: myRepresentationsActionTypes.SETMYSUBMITTEDREPSDETAILS,
|
||||
mySubmittedRepsDetails: mySubmittedRepsDetails,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -3,6 +3,10 @@ import { myRepresentationsActionTypes } from "./action";
|
||||
const myRepresentationsInitialState = {
|
||||
myRepresentations: {},
|
||||
myRepresentationsDetails: {},
|
||||
mySubmittedReps: {
|
||||
mySubmittedReps: {},
|
||||
mySubmittedRepsDetails: {},
|
||||
},
|
||||
};
|
||||
|
||||
export default function reducer(state = myRepresentationsInitialState, action) {
|
||||
@@ -17,6 +21,23 @@ export default function reducer(state = myRepresentationsInitialState, action) {
|
||||
...state,
|
||||
myRepresentationsDetails: action.myRepresentationsDetails,
|
||||
};
|
||||
case myRepresentationsActionTypes.SETMYSUBMITTEDREPS:
|
||||
return {
|
||||
...state,
|
||||
mySubmittedReps: {
|
||||
mySubmittedReps: action.mySubmittedReps,
|
||||
mySubmittedRepsDetails:
|
||||
state.mySubmittedReps.mySubmittedRepsDetails,
|
||||
},
|
||||
};
|
||||
case myRepresentationsActionTypes.SETMYSUBMITTEDREPSDETAILS:
|
||||
return {
|
||||
...state,
|
||||
mySubmittedReps: {
|
||||
mySubmittedReps: state.mySubmittedReps.mySubmittedReps,
|
||||
mySubmittedRepsDetails: action.mySubmittedRepsDetails,
|
||||
},
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user