Saving progress spinner and language updates
This commit is contained in:
@@ -947,6 +947,7 @@ export const createNewCaseBlob = (
|
|||||||
var data = createBody;
|
var data = createBody;
|
||||||
|
|
||||||
data.pinswg_lpaname = lpaName;
|
data.pinswg_lpaname = lpaName;
|
||||||
|
data.createdon = new Date();
|
||||||
|
|
||||||
var queryUrl =
|
var queryUrl =
|
||||||
"/api/file/createcase_api?appealTypeId=" +
|
"/api/file/createcase_api?appealTypeId=" +
|
||||||
|
|||||||
@@ -112,6 +112,17 @@ let PersonalDetails = (props) => {
|
|||||||
About you
|
About you
|
||||||
</h2>
|
</h2>
|
||||||
</legend>
|
</legend>
|
||||||
|
<div className="govuk-form-group ">
|
||||||
|
<span className="govuk-label ">
|
||||||
|
Role:{" "}
|
||||||
|
{
|
||||||
|
props.props.accountDetails
|
||||||
|
.accountDetails[
|
||||||
|
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
<Field
|
<Field
|
||||||
name="firstname"
|
name="firstname"
|
||||||
id="firstname"
|
id="firstname"
|
||||||
|
|||||||
@@ -344,7 +344,9 @@ const Breadcrumbs = (props) => {
|
|||||||
<Link
|
<Link
|
||||||
href={
|
href={
|
||||||
router.locale != "en"
|
router.locale != "en"
|
||||||
? router.locale + "/myportal"
|
? "/" +
|
||||||
|
router.locale +
|
||||||
|
"/myportal"
|
||||||
: "/myportal"
|
: "/myportal"
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@@ -354,7 +356,20 @@ const Breadcrumbs = (props) => {
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li className="govuk-breadcrumbs__list-item">
|
<li className="govuk-breadcrumbs__list-item">
|
||||||
{currentView.viewName}
|
{currentView.viewKey ==
|
||||||
|
"awaitingSubmissionDetails" &&
|
||||||
|
t(
|
||||||
|
"myportal:awatitingsubmission-card-title"
|
||||||
|
)}
|
||||||
|
{currentView.viewKey == "watchedCases" &&
|
||||||
|
t("myportal:watchedcases-card-title")}
|
||||||
|
{currentView.viewKey == "myCases" &&
|
||||||
|
t("myportal:mycases-card-title")}
|
||||||
|
{currentView.viewKey ==
|
||||||
|
"myRepresentations" &&
|
||||||
|
t(
|
||||||
|
"myportal:myrepresentations-card-title"
|
||||||
|
)}
|
||||||
</li>
|
</li>
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
|
|||||||
@@ -707,7 +707,7 @@ const CaseSummary = (props) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { data: session, status } = useSession();
|
const { data: session, status } = useSession();
|
||||||
console.log("session status:", status, session);
|
//console.log("session status:", status, session);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{showDetailsBlock}
|
{showDetailsBlock}
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ const MyPortal = (props) => {
|
|||||||
props.accountDetails.accountDetails
|
props.accountDetails.accountDetails
|
||||||
.lastname
|
.lastname
|
||||||
}
|
}
|
||||||
|
{" - "}
|
||||||
|
{
|
||||||
|
props.accountDetails.accountDetails[
|
||||||
|
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
|
||||||
|
]
|
||||||
|
}
|
||||||
</a>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -43,12 +43,11 @@ const AwaitingSubmissionFromBlob = (props) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
let topThreeOnlyArr = showTopThreeArr;
|
let topThreeOnlyArr = showTopThreeArr.slice(0, 3);
|
||||||
console.log(showTopThreeArr);
|
//console.log(showTopThreeArr);
|
||||||
Object.keys(topThreeOnlyArr).map((key, index) => {
|
Object.keys(topThreeOnlyArr).map((key, index) => {
|
||||||
console.log(key, showTopThreeArr[key].pinswg_appealcasetype);
|
//console.log(key, showTopThreeArr[key].pinswg_appealcasetype);
|
||||||
|
//console.log("subsssss:", showTopThreeArr[key]);
|
||||||
console.log("subsssss:", showTopThreeArr[key]);
|
|
||||||
let urlname = getFormCollectionByID(
|
let urlname = getFormCollectionByID(
|
||||||
showTopThreeArr[key].pinswg_appealcasetype
|
showTopThreeArr[key].pinswg_appealcasetype
|
||||||
).UrlName;
|
).UrlName;
|
||||||
@@ -103,7 +102,7 @@ const AwaitingSubmissionFromBlob = (props) => {
|
|||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<b>Appeal type:</b>{" "}
|
<b>{t("myportal:appeal-type-label")}:</b>{" "}
|
||||||
{
|
{
|
||||||
getFormCollectionByID(
|
getFormCollectionByID(
|
||||||
showTopThreeArr[key].pinswg_appealcasetype
|
showTopThreeArr[key].pinswg_appealcasetype
|
||||||
@@ -141,7 +140,9 @@ const AwaitingSubmissionFromBlob = (props) => {
|
|||||||
{showTopThreeArrDets[key].pinswg_appellantagent != null && (
|
{showTopThreeArrDets[key].pinswg_appellantagent != null && (
|
||||||
<div>
|
<div>
|
||||||
{showTopThreeArrDets[key].pinswg_appellantagent !=
|
{showTopThreeArrDets[key].pinswg_appellantagent !=
|
||||||
846040000 && <b>Raised by: </b>}
|
846040000 && (
|
||||||
|
<b>{t("myportal:raised-by-label")}: </b>
|
||||||
|
)}
|
||||||
{showTopThreeArrDets[key].pinswg_appellantagent !=
|
{showTopThreeArrDets[key].pinswg_appellantagent !=
|
||||||
846040000 &&
|
846040000 &&
|
||||||
(showTopThreeArrDets[key]
|
(showTopThreeArrDets[key]
|
||||||
@@ -158,7 +159,7 @@ const AwaitingSubmissionFromBlob = (props) => {
|
|||||||
{showTopThreeArrDets[key].pinswg_appellantfirstname !=
|
{showTopThreeArrDets[key].pinswg_appellantfirstname !=
|
||||||
null && (
|
null && (
|
||||||
<div>
|
<div>
|
||||||
<b>On behalf of: </b>
|
<b>{t("myportal:on-behalf-of-label")}: </b>
|
||||||
{showTopThreeArrDets[key]
|
{showTopThreeArrDets[key]
|
||||||
.pinswg_appellantfirstname +
|
.pinswg_appellantfirstname +
|
||||||
" " +
|
" " +
|
||||||
@@ -220,7 +221,7 @@ const AwaitingSubmissionFromBlob = (props) => {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
setCurrentView({
|
setCurrentView({
|
||||||
"viewName": "Awaiting Submission",
|
"viewName": "Awaiting Submission",
|
||||||
"viewKey": "awaitingSubmission",
|
"viewKey": "awaitingSubmissionDetails",
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ const TopThree = (props) => {
|
|||||||
{/* {(topThreeType == "awaitingSubmission" ||
|
{/* {(topThreeType == "awaitingSubmission" ||
|
||||||
topThreeType == "watchedCases") && ( */}
|
topThreeType == "watchedCases") && ( */}
|
||||||
<div>
|
<div>
|
||||||
<b>Appeal type:</b>{" "}
|
<b>{t("myportal:appeal-type-label")}:</b>{" "}
|
||||||
{
|
{
|
||||||
showTopThreeArr[key][
|
showTopThreeArr[key][
|
||||||
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
|
||||||
@@ -258,7 +258,9 @@ const TopThree = (props) => {
|
|||||||
{showTopThreeArr[key].pinswg_appellantagent != null && (
|
{showTopThreeArr[key].pinswg_appellantagent != null && (
|
||||||
<div>
|
<div>
|
||||||
{showTopThreeArr[key].pinswg_appellantagent !=
|
{showTopThreeArr[key].pinswg_appellantagent !=
|
||||||
846040000 && <b>Raised by: </b>}
|
846040000 && (
|
||||||
|
<b>{t("myportal:raised-by-label")}</b>
|
||||||
|
)}
|
||||||
{showTopThreeArr[key].pinswg_appellantagent !=
|
{showTopThreeArr[key].pinswg_appellantagent !=
|
||||||
846040000 &&
|
846040000 &&
|
||||||
(showTopThreeArr[key].pinswg_agentcompanyname !=
|
(showTopThreeArr[key].pinswg_agentcompanyname !=
|
||||||
@@ -272,7 +274,7 @@ const TopThree = (props) => {
|
|||||||
)}
|
)}
|
||||||
{showTopThreeArr[key].pinswg_appellantfirstname != null && (
|
{showTopThreeArr[key].pinswg_appellantfirstname != null && (
|
||||||
<div>
|
<div>
|
||||||
<b>On behalf of: </b>
|
<b>{t("myportal:on-behalf-of-label")}: </b>
|
||||||
{showTopThreeArr[key].pinswg_appellantfirstname +
|
{showTopThreeArr[key].pinswg_appellantfirstname +
|
||||||
" " +
|
" " +
|
||||||
showTopThreeArr[key].pinswg_appellantlastname}
|
showTopThreeArr[key].pinswg_appellantlastname}
|
||||||
|
|||||||
+135
-24
@@ -21,9 +21,10 @@ const ViewAllResults = (props) => {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { locale } = router;
|
const { locale } = router;
|
||||||
|
|
||||||
var resultsArr = props[currentView.viewKey][currentView.viewKey].value || [
|
var resultsArr =
|
||||||
{},
|
currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
];
|
? props["awaitingSubmission"].awaitingSubmissionDetails.case
|
||||||
|
: props[currentView.viewKey][currentView.viewKey].value || [];
|
||||||
|
|
||||||
function formatDates(dateObj) {
|
function formatDates(dateObj) {
|
||||||
var dateObj = new Date(dateObj);
|
var dateObj = new Date(dateObj);
|
||||||
@@ -34,14 +35,17 @@ const ViewAllResults = (props) => {
|
|||||||
return dd + "/" + mm + "/" + yyyy;
|
return dd + "/" + mm + "/" + yyyy;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(
|
// console.log(
|
||||||
currentView.viewKey,
|
// currentView.viewKey,
|
||||||
props[currentView.viewKey],
|
// props[currentView.viewKey],
|
||||||
props[currentView.viewKey][currentView.viewKey].value
|
// props[currentView.viewKey][currentView.viewKey].value
|
||||||
);
|
// );
|
||||||
|
|
||||||
var searchDetailsObj =
|
var searchDetailsObj =
|
||||||
props[currentView.viewKey][currentView.viewKey + "Details"] || {};
|
currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
|
? props["awaitingSubmission"].awaitingSubmissionDetails.value
|
||||||
|
: props[currentView.viewKey][currentView.viewKey + "Details"] || [];
|
||||||
|
|
||||||
let resultsRowArr = [];
|
let resultsRowArr = [];
|
||||||
resultsArr.map((item, key) => {
|
resultsArr.map((item, key) => {
|
||||||
let detailsObj = jsonpath.query(
|
let detailsObj = jsonpath.query(
|
||||||
@@ -55,7 +59,7 @@ const ViewAllResults = (props) => {
|
|||||||
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2">
|
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2">
|
||||||
<Link
|
<Link
|
||||||
href={
|
href={
|
||||||
currentView.viewKey == "awaitingSubmission"
|
currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
? router.locale == "cy"
|
? router.locale == "cy"
|
||||||
? "/fymhorth/parhauigyflwyno"
|
? "/fymhorth/parhauigyflwyno"
|
||||||
: "/myportal" +
|
: "/myportal" +
|
||||||
@@ -70,7 +74,7 @@ const ViewAllResults = (props) => {
|
|||||||
"&apt=" +
|
"&apt=" +
|
||||||
resultsArr[key].pinswg_appealcasetype +
|
resultsArr[key].pinswg_appealcasetype +
|
||||||
"&casereference=" +
|
"&casereference=" +
|
||||||
resultsArr[key].pinswg_title +
|
resultsArr[key].title +
|
||||||
"&inid=" +
|
"&inid=" +
|
||||||
resultsArr[key].incidentid
|
resultsArr[key].incidentid
|
||||||
: router.locale == "cy"
|
: router.locale == "cy"
|
||||||
@@ -135,45 +139,103 @@ const ViewAllResults = (props) => {
|
|||||||
)[0]
|
)[0]
|
||||||
: ""
|
: ""
|
||||||
: ""} */}
|
: ""} */}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(searchDetailsObj[key], "pinswg_siteaddressline1")
|
||||||
|
? searchDetailsObj[key].pinswg_siteaddressline1
|
||||||
|
: ""}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddressline1")
|
{_.has(detailsObj, "pinswg_siteaddressline1")
|
||||||
? detailsObj.pinswg_siteaddressline1
|
? detailsObj.pinswg_siteaddressline1
|
||||||
: ""}
|
: ""}
|
||||||
|
|
||||||
{/* {detailsObj.pinswg_siteaddressline1 !=
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
null && <br />} */}
|
_.has(
|
||||||
|
searchDetailsObj[key],
|
||||||
|
"pinswg_siteaddressline1"
|
||||||
|
) &&
|
||||||
|
searchDetailsObj[key].pinswg_siteaddressline1 !=
|
||||||
|
null && <br />}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddressline1") &&
|
{_.has(detailsObj, "pinswg_siteaddressline1") &&
|
||||||
detailsObj.pinswg_siteaddressline1 != null && <br />}
|
detailsObj.pinswg_siteaddressline1 != null && <br />}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(searchDetailsObj[key], "pinswg_siteaddressline1")
|
||||||
|
? searchDetailsObj[key].pinswg_siteaddressline2
|
||||||
|
: ""}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddressline1")
|
{_.has(detailsObj, "pinswg_siteaddressline1")
|
||||||
? detailsObj.pinswg_siteaddressline2
|
? detailsObj.pinswg_siteaddressline2
|
||||||
: ""}
|
: ""}
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(
|
||||||
|
searchDetailsObj[key],
|
||||||
|
"pinswg_siteaddressline2"
|
||||||
|
) &&
|
||||||
|
searchDetailsObj[key].pinswg_siteaddressline2 !=
|
||||||
|
null && <br />}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddressline2") &&
|
{_.has(detailsObj, "pinswg_siteaddressline2") &&
|
||||||
detailsObj.pinswg_siteaddressline2 != null && <br />}
|
detailsObj.pinswg_siteaddressline2 != null && <br />}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(searchDetailsObj[key], "pinswg_siteaddresstown")
|
||||||
|
? searchDetailsObj[key].pinswg_siteaddresstown
|
||||||
|
: ""}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddresstown")
|
{_.has(detailsObj, "pinswg_siteaddresstown")
|
||||||
? detailsObj.pinswg_siteaddresstown
|
? detailsObj.pinswg_siteaddresstown
|
||||||
: ""}
|
: ""}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(
|
||||||
|
searchDetailsObj[key],
|
||||||
|
"pinswg_siteaddresstown"
|
||||||
|
) &&
|
||||||
|
searchDetailsObj[key].pinswg_siteaddresstown !=
|
||||||
|
null && <br />}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddresstown") &&
|
{_.has(detailsObj, "pinswg_siteaddresstown") &&
|
||||||
detailsObj.pinswg_siteaddresstown != null && <br />}
|
detailsObj.pinswg_siteaddresstown != null && <br />}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(searchDetailsObj[key], "pinswg_siteaddresscounty")
|
||||||
|
? searchDetailsObj[key].pinswg_siteaddresscounty
|
||||||
|
: ""}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddresscounty")
|
{_.has(detailsObj, "pinswg_siteaddresscounty")
|
||||||
? detailsObj.pinswg_siteaddresscounty
|
? detailsObj.pinswg_siteaddresscounty
|
||||||
: ""}
|
: ""}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(
|
||||||
|
searchDetailsObj[key],
|
||||||
|
"pinswg_siteaddresscounty"
|
||||||
|
) &&
|
||||||
|
searchDetailsObj[key].pinswg_siteaddresscounty !=
|
||||||
|
null && <br />}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddresscounty") &&
|
{_.has(detailsObj, "pinswg_siteaddresscounty") &&
|
||||||
detailsObj.pinswg_siteaddresscounty != null && <br />}
|
detailsObj.pinswg_siteaddresscounty != null && <br />}
|
||||||
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(searchDetailsObj[key], "pinswg_siteaddresspostcode")
|
||||||
|
? searchDetailsObj[key].pinswg_siteaddresspostcode
|
||||||
|
: ""}
|
||||||
|
|
||||||
{_.has(detailsObj, "pinswg_siteaddresspostcode")
|
{_.has(detailsObj, "pinswg_siteaddresspostcode")
|
||||||
? detailsObj.pinswg_siteaddresspostcode
|
? detailsObj.pinswg_siteaddresspostcode
|
||||||
: ""}
|
: ""}
|
||||||
</dd>
|
</dd>
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
||||||
<span className="results-visually-hidden">
|
<span className="results-visually-hidden">
|
||||||
{currentView.viewKey == "awaitingSubmission"
|
{currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
? "Created on"
|
? t("search:searchresults-created-on-label")
|
||||||
: t("search:searchresults-applicant-label")}
|
: t("search:searchresults-applicant-label")}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
{currentView.viewKey == "awaitingSubmission"
|
{currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
? formatDates(item.createdon)
|
? formatDates(item.createdon)
|
||||||
: _.has(detailsObj, [
|
: _.has(detailsObj, [
|
||||||
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue",
|
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue",
|
||||||
@@ -189,19 +251,32 @@ const ViewAllResults = (props) => {
|
|||||||
<span className="results-visually-hidden">
|
<span className="results-visually-hidden">
|
||||||
{t("search:searchresults-authority-label")}:
|
{t("search:searchresults-authority-label")}:
|
||||||
</span>
|
</span>
|
||||||
{_.has(detailsObj, [
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
_.has(resultsArr[key], "pinswg_lpaname")
|
||||||
|
? router.locale == "cy"
|
||||||
|
? jsonpath.query(
|
||||||
|
transLookup,
|
||||||
|
'$..[?(@.value=="' +
|
||||||
|
resultsArr[key].pinswg_lpaname +
|
||||||
|
'")].value_cy'
|
||||||
|
)
|
||||||
|
: resultsArr[key].pinswg_lpaname || "N/A"
|
||||||
|
: ""}
|
||||||
|
|
||||||
|
{_.has(resultsArr[key], [
|
||||||
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue",
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue",
|
||||||
])
|
])
|
||||||
? router.locale == "cy"
|
? router.locale == "cy"
|
||||||
? jsonpath.query(
|
? jsonpath.query(
|
||||||
transLookup,
|
transLookup,
|
||||||
'$..[?(@.value=="' +
|
'$..[?(@.value=="' +
|
||||||
item[
|
resultsArr[key][
|
||||||
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
||||||
] +
|
] +
|
||||||
'")].value_cy'
|
'")].value_cy'
|
||||||
)
|
)
|
||||||
: detailsObj[
|
: resultsArr[key][
|
||||||
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
||||||
] || "N/A"
|
] || "N/A"
|
||||||
: ""}
|
: ""}
|
||||||
@@ -210,7 +285,20 @@ const ViewAllResults = (props) => {
|
|||||||
<span className="results-visually-hidden">
|
<span className="results-visually-hidden">
|
||||||
{t("search:searchresults-case-type-label")}:
|
{t("search:searchresults-case-type-label")}:
|
||||||
</span>
|
</span>
|
||||||
{router.locale == "cy"
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
|
? router.locale == "cy"
|
||||||
|
? jsonpath.query(
|
||||||
|
transLookup,
|
||||||
|
'$..[?(@.value=="' +
|
||||||
|
getFormCollectionByID(
|
||||||
|
item.pinswg_appealcasetype
|
||||||
|
).value +
|
||||||
|
'")].value_cy'
|
||||||
|
)
|
||||||
|
: getFormCollectionByID(item.pinswg_appealcasetype)
|
||||||
|
.value || "N/A"
|
||||||
|
: router.locale == "cy"
|
||||||
? jsonpath.query(
|
? jsonpath.query(
|
||||||
transLookup,
|
transLookup,
|
||||||
'$..[?(@.value=="' +
|
'$..[?(@.value=="' +
|
||||||
@@ -227,7 +315,22 @@ const ViewAllResults = (props) => {
|
|||||||
<span className="results-visually-hidden">
|
<span className="results-visually-hidden">
|
||||||
{t("search:searchresults-status-label")}:
|
{t("search:searchresults-status-label")}:
|
||||||
</span>
|
</span>
|
||||||
{router.locale == "cy"
|
|
||||||
|
{currentView.viewKey == "awaitingSubmissionDetails"
|
||||||
|
? router.locale == "cy"
|
||||||
|
? jsonpath.query(
|
||||||
|
transLookup,
|
||||||
|
'$..[?(@.statuscode=="' +
|
||||||
|
item.statuscode +
|
||||||
|
'")].value_cy'
|
||||||
|
)
|
||||||
|
: jsonpath.query(
|
||||||
|
transLookup,
|
||||||
|
'$..[?(@.statuscode=="' +
|
||||||
|
item.statuscode +
|
||||||
|
'")].value'
|
||||||
|
) || "N/A"
|
||||||
|
: router.locale == "cy"
|
||||||
? jsonpath.query(
|
? jsonpath.query(
|
||||||
transLookup,
|
transLookup,
|
||||||
'$..[?(@.value=="' +
|
'$..[?(@.value=="' +
|
||||||
@@ -249,7 +352,14 @@ const ViewAllResults = (props) => {
|
|||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
<div className="govuk-grid-column-full">
|
<div className="govuk-grid-column-full">
|
||||||
<h1 className="govuk-heading-xl govuk-!-margin-bottom-7">
|
<h1 className="govuk-heading-xl govuk-!-margin-bottom-7">
|
||||||
{currentView.viewName}
|
{currentView.viewKey == "awaitingSubmissionDetails" &&
|
||||||
|
t("myportal:awatitingsubmission-card-title")}
|
||||||
|
{currentView.viewKey == "watchedCases" &&
|
||||||
|
t("myportal:watchedcases-card-title")}
|
||||||
|
{currentView.viewKey == "myCases" &&
|
||||||
|
t("myportal:mycases-card-title")}
|
||||||
|
{currentView.viewKey == "myRepresentations" &&
|
||||||
|
t("myportal:myrepresentations-card-title")}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<dl className="govuk-summary-list govuk-!-margin-bottom-9 results">
|
<dl className="govuk-summary-list govuk-!-margin-bottom-9 results">
|
||||||
@@ -260,9 +370,10 @@ const ViewAllResults = (props) => {
|
|||||||
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
||||||
{t("search:searchresults-site-address-label")}
|
{t("search:searchresults-site-address-label")}
|
||||||
</dd>
|
</dd>
|
||||||
{currentView.viewKey == "awaitingSubmission" ? (
|
{currentView.viewKey ==
|
||||||
|
"awaitingSubmissionDetails" ? (
|
||||||
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
||||||
Created on
|
{t("search:searchresults-created-on-label")}{" "}
|
||||||
</dd>
|
</dd>
|
||||||
) : (
|
) : (
|
||||||
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ let BuildSection = (props) => {
|
|||||||
const [currentSectionSelected, setCurrentSectionSelected] = useState(1);
|
const [currentSectionSelected, setCurrentSectionSelected] = useState(1);
|
||||||
const [pickupWhereLeftOff, setPickupWhereLeftOff] = useState(true);
|
const [pickupWhereLeftOff, setPickupWhereLeftOff] = useState(true);
|
||||||
|
|
||||||
|
const [savingStatus, setSavingStatus] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
progObj = getProgressObj(
|
progObj = getProgressObj(
|
||||||
formXML,
|
formXML,
|
||||||
@@ -69,6 +71,7 @@ let BuildSection = (props) => {
|
|||||||
|
|
||||||
const documentListObj = props.appealType.documentList;
|
const documentListObj = props.appealType.documentList;
|
||||||
const currentSection = props.appealType.currentSection;
|
const currentSection = props.appealType.currentSection;
|
||||||
|
|
||||||
const parser = new DOMParser();
|
const parser = new DOMParser();
|
||||||
var doc = parser.parseFromString(props.formXML, "text/xml");
|
var doc = parser.parseFromString(props.formXML, "text/xml");
|
||||||
var titles = xpath.select(
|
var titles = xpath.select(
|
||||||
@@ -97,6 +100,16 @@ let BuildSection = (props) => {
|
|||||||
props
|
props
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const isProgressComplete = (progObj) => {
|
||||||
|
const progressCount = 0;
|
||||||
|
|
||||||
|
for (let key in progObj) {
|
||||||
|
progObj[key].allFieldsComplete === true && progressCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return progObj.length == progressCount;
|
||||||
|
};
|
||||||
|
|
||||||
const lastIndex = progObj
|
const lastIndex = progObj
|
||||||
.map((whichIsLast) => whichIsLast.allFieldsComplete == true)
|
.map((whichIsLast) => whichIsLast.allFieldsComplete == true)
|
||||||
.lastIndexOf(true);
|
.lastIndexOf(true);
|
||||||
@@ -134,10 +147,11 @@ let BuildSection = (props) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateCaseProgress = (values, sendSavedEmail) => {
|
const updateCaseProgress = (values, sendSavedEmail, useSaveStatus) => {
|
||||||
let incidentId = props.appealType.caseReference.incidentid;
|
let incidentId = props.appealType.caseReference.incidentid;
|
||||||
let updateBody = values || {};
|
let updateBody = values || {};
|
||||||
|
|
||||||
|
setSavingStatus(useSaveStatus);
|
||||||
uploadAppealFiles(values);
|
uploadAppealFiles(values);
|
||||||
props.setNewAppealProgress(
|
props.setNewAppealProgress(
|
||||||
getProgressObj(formXML, titleList, mandatoryFieldsData, props)
|
getProgressObj(formXML, titleList, mandatoryFieldsData, props)
|
||||||
@@ -206,6 +220,13 @@ let BuildSection = (props) => {
|
|||||||
props.appealType.caseReference.incidentid +
|
props.appealType.caseReference.incidentid +
|
||||||
"'> from here </a>"
|
"'> from here </a>"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
useSaveStatus &&
|
||||||
|
router.replace(
|
||||||
|
router.locale != "en"
|
||||||
|
? router.locale + "/myportal"
|
||||||
|
: "/myportal"
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onHandleSubmit = (values) => {
|
const onHandleSubmit = (values) => {
|
||||||
@@ -214,7 +235,7 @@ let BuildSection = (props) => {
|
|||||||
|
|
||||||
delete valuesObj["_pinswg_appellant_value"];
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
console.log("has errors:", props.invalid);
|
console.log("has errors:", props.invalid);
|
||||||
props.invalid == false && updateCaseProgress(valuesObj, false);
|
props.invalid == false && updateCaseProgress(valuesObj, false, false);
|
||||||
|
|
||||||
setCurrentSection(currentSection + 1);
|
setCurrentSection(currentSection + 1);
|
||||||
};
|
};
|
||||||
@@ -330,7 +351,7 @@ let BuildSection = (props) => {
|
|||||||
delete valuesObj["_pinswg_appellant_value"];
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
|
|
||||||
//console.log("on save:", valuesObj);
|
//console.log("on save:", valuesObj);
|
||||||
updateCaseProgress(valuesObj, false);
|
updateCaseProgress(valuesObj, false, false);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t("common:continue-button")}
|
{t("common:continue-button")}
|
||||||
@@ -340,6 +361,7 @@ let BuildSection = (props) => {
|
|||||||
)}
|
)}
|
||||||
{props.sectionCount == currentSection ? (
|
{props.sectionCount == currentSection ? (
|
||||||
<button
|
<button
|
||||||
|
disabled={!isProgressComplete(progObj)}
|
||||||
type="submit"
|
type="submit"
|
||||||
className="govuk-button"
|
className="govuk-button"
|
||||||
data-module="govuk-button"
|
data-module="govuk-button"
|
||||||
@@ -383,27 +405,38 @@ let BuildSection = (props) => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
|
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
|
||||||
<button
|
|
||||||
className="govuk-button govuk-button--secondary progress-save "
|
|
||||||
onClick={() => {
|
|
||||||
let valuesObj =
|
|
||||||
props.props.form[props.form].values || {};
|
|
||||||
|
|
||||||
console.log("valuesobj:", valuesObj);
|
{savingStatus ? (
|
||||||
|
<span className=" progress-save-active">
|
||||||
|
Saving data
|
||||||
|
<img
|
||||||
|
className="data-loading-icon"
|
||||||
|
src="/assets/images/loading.gif"
|
||||||
|
alt={
|
||||||
|
router.locale == "cy"
|
||||||
|
? "Nôl data"
|
||||||
|
: "Saving data"
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
) : (
|
||||||
|
<button
|
||||||
|
className="govuk-button govuk-button--secondary progress-save "
|
||||||
|
onClick={() => {
|
||||||
|
let valuesObj =
|
||||||
|
props.props.form[props.form].values || {};
|
||||||
|
|
||||||
delete valuesObj["_pinswg_appellant_value"];
|
console.log("valuesobj:", valuesObj);
|
||||||
|
|
||||||
console.log("on save:", valuesObj);
|
delete valuesObj["_pinswg_appellant_value"];
|
||||||
updateCaseProgress(valuesObj, true);
|
|
||||||
router.replace(
|
console.log("on save:", valuesObj);
|
||||||
router.locale != "en"
|
updateCaseProgress(valuesObj, true, true);
|
||||||
? router.locale + "/myportal"
|
}}
|
||||||
: "/myportal"
|
>
|
||||||
);
|
{t("common:save-exit-button")}
|
||||||
}}
|
</button>
|
||||||
>
|
)}
|
||||||
{t("common:save-exit-button")}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -510,11 +510,11 @@ const SearchResults = (props) => {
|
|||||||
}}
|
}}
|
||||||
title="Stop watching this case"
|
title="Stop watching this case"
|
||||||
>
|
>
|
||||||
−
|
<span className="eye"></span>
|
||||||
</span>
|
</span>
|
||||||
) : (
|
) : (
|
||||||
<span
|
<span
|
||||||
className="govuk-summary-list__actionLink"
|
className="govuk-summary-list__actionLink watchLink"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
selectWatchedCase(
|
selectWatchedCase(
|
||||||
cookies.pinsUser,
|
cookies.pinsUser,
|
||||||
@@ -528,7 +528,7 @@ const SearchResults = (props) => {
|
|||||||
}}
|
}}
|
||||||
title="Watch this case"
|
title="Watch this case"
|
||||||
>
|
>
|
||||||
+
|
<span className="eye"></span>
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</dd>
|
</dd>
|
||||||
@@ -536,7 +536,7 @@ const SearchResults = (props) => {
|
|||||||
{!session && (
|
{!session && (
|
||||||
<dd>
|
<dd>
|
||||||
<span
|
<span
|
||||||
className="govuk-summary-list__actionLink"
|
className="govuk-summary-list__actionLink watchLink"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
signIn("email");
|
signIn("email");
|
||||||
// selectWatchedCase(
|
// selectWatchedCase(
|
||||||
@@ -551,7 +551,7 @@ const SearchResults = (props) => {
|
|||||||
}}
|
}}
|
||||||
title="Watch this case"
|
title="Watch this case"
|
||||||
>
|
>
|
||||||
+
|
<span className="eye"></span>
|
||||||
</span>
|
</span>
|
||||||
</dd>
|
</dd>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -218,7 +218,11 @@ export const getProgressObj = (
|
|||||||
"title": titleList[key].value,
|
"title": titleList[key].value,
|
||||||
rowCount,
|
rowCount,
|
||||||
"totalFields": formObj[key].fieldsTotal,
|
"totalFields": formObj[key].fieldsTotal,
|
||||||
"allFieldsComplete": rowCount == formObj[key].fieldsTotal,
|
"allFieldsComplete":
|
||||||
|
titleList[key].value == "Upload documents"
|
||||||
|
? _.has(props.props.appealType.fileList, "files") &&
|
||||||
|
props.props.appealType.fileList.files.length > 0
|
||||||
|
: rowCount == formObj[key].fieldsTotal,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ module.exports = {
|
|||||||
"/": ["common", "home"],
|
"/": ["common", "home"],
|
||||||
"/error": ["common", "home", "myportal"],
|
"/error": ["common", "home", "myportal"],
|
||||||
"/myportal": ["myportal", "common", "home"],
|
"/myportal": ["myportal", "common", "home"],
|
||||||
"/myportal/viewall": ["search"],
|
"/myportal/viewall": ["search", "myportal"],
|
||||||
"/myportal/advancedsearch": ["search", "myportal"],
|
"/myportal/advancedsearch": ["search", "myportal"],
|
||||||
"/myportal/advancedsearchresults": ["search", "myportal"],
|
"/myportal/advancedsearchresults": ["search", "myportal"],
|
||||||
"/myportal/searchresults": ["search", "myportal"],
|
"/myportal/searchresults": ["search", "myportal"],
|
||||||
|
|||||||
@@ -30,5 +30,8 @@
|
|||||||
"norecords-cases": "Nid oes gennych unrhyw achosion",
|
"norecords-cases": "Nid oes gennych unrhyw achosion",
|
||||||
"norecords-representations": "Nid oes gennych unrhyw sylwadau",
|
"norecords-representations": "Nid oes gennych unrhyw sylwadau",
|
||||||
"norecords-watched-cases": "Nid ydych yn gwylio unrhyw achosion",
|
"norecords-watched-cases": "Nid ydych yn gwylio unrhyw achosion",
|
||||||
"norecords-awaiting-submissions": "Nid oes gennych unrhyw gyflwyniadau sy'n aros"
|
"norecords-awaiting-submissions": "Nid oes gennych unrhyw gyflwyniadau sy'n aros",
|
||||||
|
"on-behalf-of-label": "Ar ran",
|
||||||
|
"appeal-type-label": "Math o apêl",
|
||||||
|
"raised-by-label": "Codwyd gan"
|
||||||
}
|
}
|
||||||
@@ -62,5 +62,6 @@
|
|||||||
"searchresults-new-search-button-label": "Chwiliad newydd",
|
"searchresults-new-search-button-label": "Chwiliad newydd",
|
||||||
"searchresults-no-records-label": "Nid oes unrhyw gofnodion",
|
"searchresults-no-records-label": "Nid oes unrhyw gofnodion",
|
||||||
"searchresults-show-records-label-a": "Dangoswch",
|
"searchresults-show-records-label-a": "Dangoswch",
|
||||||
"searchresults-show-records-label-b": "cofnod"
|
"searchresults-show-records-label-b": "cofnod",
|
||||||
|
"searchresults-created-on-label": "Creu ymlaen"
|
||||||
}
|
}
|
||||||
@@ -30,5 +30,8 @@
|
|||||||
"norecords-cases": "You have no cases",
|
"norecords-cases": "You have no cases",
|
||||||
"norecords-representations": "You have no representations",
|
"norecords-representations": "You have no representations",
|
||||||
"norecords-watched-cases": "You are not watching any cases",
|
"norecords-watched-cases": "You are not watching any cases",
|
||||||
"norecords-awaiting-submissions": "You have no awaiting submissions"
|
"norecords-awaiting-submissions": "You have no awaiting submissions",
|
||||||
|
"on-behalf-of-label": "On behalf of",
|
||||||
|
"appeal-type-label": "Appeal type",
|
||||||
|
"raised-by-label": "Raised by"
|
||||||
}
|
}
|
||||||
@@ -62,5 +62,6 @@
|
|||||||
"searchresults-new-search-button-label": "New Search",
|
"searchresults-new-search-button-label": "New Search",
|
||||||
"searchresults-no-records-label": "There are no records",
|
"searchresults-no-records-label": "There are no records",
|
||||||
"searchresults-show-records-label-a": "Show",
|
"searchresults-show-records-label-a": "Show",
|
||||||
"searchresults-show-records-label-b": "records"
|
"searchresults-show-records-label-b": "records",
|
||||||
|
"searchresults-created-on-label": "Created on"
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ export default async function ApiProxy(req, res) {
|
|||||||
var queryUrl =
|
var queryUrl =
|
||||||
"incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value,pinswg_appellantlastname,pinswg_appellantfirstname,pinswg_appellantagent,pinswg_agentfirstname,pinswg_agentlastname,pinswg_agentcompanyname&$expand=primarycontactid($select=fullname)&$filter=_customerid_value eq " +
|
"incidents?$select=description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value,pinswg_appellantlastname,pinswg_appellantfirstname,pinswg_appellantagent,pinswg_agentfirstname,pinswg_agentlastname,pinswg_agentcompanyname&$expand=primarycontactid($select=fullname)&$filter=_customerid_value eq " +
|
||||||
loggedInUserId +
|
loggedInUserId +
|
||||||
" and servicestage eq 0 and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true&$top=3";
|
" and servicestage eq 0 and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true";
|
||||||
|
|
||||||
//console.log("///////////\nPortal query: ", queryUrl, "<<<<end query");
|
//console.log("///////////\nPortal query: ", queryUrl, "<<<<end query");
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ export default async function ApiProxy(req, res) {
|
|||||||
var queryUrl =
|
var queryUrl =
|
||||||
"contacts(" +
|
"contacts(" +
|
||||||
contactid +
|
contactid +
|
||||||
")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode&$count=true";
|
")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode,pinswg_typeofinvolvement&$count=true";
|
||||||
|
|
||||||
|
//console.log(WEBAPI_URL + queryUrl + hashAPIPath(queryUrl));
|
||||||
|
|
||||||
var apiResponse =
|
var apiResponse =
|
||||||
contactid.length > 0
|
contactid.length > 0
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export default async function ApiProxy(req, res) {
|
|||||||
var showNumberOfRecords = req.query.showNumberOfRecords;
|
var showNumberOfRecords = req.query.showNumberOfRecords;
|
||||||
var documentType = req.query.documentType || "all";
|
var documentType = req.query.documentType || "all";
|
||||||
|
|
||||||
console.log("has this passed docuemntType:", documentType);
|
//console.log("has this passed docuemntType:", documentType);
|
||||||
//(documentType !="all" && " pinswg_pinswg_isharedocumentlocations eq " + )
|
//(documentType !="all" && " pinswg_pinswg_isharedocumentlocations eq " + )
|
||||||
|
|
||||||
var queryUrl =
|
var queryUrl =
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ const Home = (props) => {
|
|||||||
//console.log("has LoginCode", hasLoginCode);
|
//console.log("has LoginCode", hasLoginCode);
|
||||||
|
|
||||||
hasLoginCode == false
|
hasLoginCode == false
|
||||||
? console.log("no session")
|
? "" //console.log("no session")
|
||||||
: _.has(loggedInUserId, "value")
|
: _.has(loggedInUserId, "value")
|
||||||
? _.isEmpty(loggedInUserId.value)
|
? _.isEmpty(loggedInUserId.value)
|
||||||
? router.replace({
|
? router.replace({
|
||||||
|
|||||||
@@ -1048,6 +1048,20 @@ textarea,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.progress-save-active {
|
||||||
|
padding: 0px 10px 15px !important;
|
||||||
|
font-size: 16px;
|
||||||
|
float: right;
|
||||||
|
|
||||||
|
color: $midgrey !important;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.results .govuk-summary-list__row {
|
.results .govuk-summary-list__row {
|
||||||
@media screen and (max-width: 900px) {
|
@media screen and (max-width: 900px) {
|
||||||
padding: 20px 10px;
|
padding: 20px 10px;
|
||||||
@@ -2012,6 +2026,49 @@ ul#sharePageLinks.active {
|
|||||||
&.watched_link {
|
&.watched_link {
|
||||||
color: $black !important;
|
color: $black !important;
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
|
width: 13px;
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
.eye {
|
||||||
|
background-color: #aa1111;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eye:before {
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
&.watchLink {
|
||||||
|
width: 13px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eye {
|
||||||
|
/* margin: 90px; */
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
/* border: solid 1px #000; */
|
||||||
|
border-radius: 75% 15%;
|
||||||
|
position: relative;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
display: block;
|
||||||
|
top: 3.5px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eye:before {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
width: 5px;
|
||||||
|
height: 5px;
|
||||||
|
border: solid 1px #aa1111;
|
||||||
|
border-radius: 50%;
|
||||||
|
left: 3px;
|
||||||
|
top: 3px;
|
||||||
|
background-color: #aa1111;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user