diff --git a/components/myportal/myrepresentations.js b/components/myportal/myrepresentations.js
index 213cc402..3f1a1cf3 100644
--- a/components/myportal/myrepresentations.js
+++ b/components/myportal/myrepresentations.js
@@ -21,6 +21,7 @@ const MyRepresentations = (props) => {
diff --git a/components/myportal/topthree.js b/components/myportal/topthree.js
index a5dc42b2..8fcc98d9 100644
--- a/components/myportal/topthree.js
+++ b/components/myportal/topthree.js
@@ -1,35 +1,73 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
+import { setCurrentReference } from "../../store/currentView/action";
+import { connect } from "react-redux";
const TopThree = (props) => {
let { t } = useTranslation();
- const { showTopThree } = props;
+ const { showTopThree, setCurrentReference, topThreeType } = props;
const router = useRouter();
const { locale } = router;
let topthreeRow = [];
- for (var i = 0; i < 3; i++)
- topthreeRow.push(
-
-
-
-
-
Address: {props.showTopThree.value[i].address}
+ for (var i = 0; i < 3; i++) {
+ (function (i) {
+ topthreeRow.push(
+
+
+
+ {topThreeType != "awaitingSubmission" ? (
+
+ Address:
+ {showTopThree.value[i].address1}
+
+ ) : (
+ ""
+ )}
+
+ {topThreeType == "awaitingSubmission" ? (
+
+ Make Representation on Case Incomplete, not
+ submitted
+
+ ) : (
+ ""
+ )}
+
—
-
—
-
- );
+ );
+ })(i);
+ }
return <>{topthreeRow}>;
};
-export default TopThree;
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setCurrentReference: (currentReference) => {
+ dispatch(setCurrentReference(currentReference));
+ },
+ };
+};
+
+export default connect(null, mapDispatchToProps)(TopThree);
diff --git a/components/myportal/viewall.js b/components/myportal/viewall.js
index a7245150..4455ad35 100644
--- a/components/myportal/viewall.js
+++ b/components/myportal/viewall.js
@@ -1,9 +1,13 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
+import { setCurrentReference } from "../../store/currentView/action";
+import { connect } from "react-redux";
+
+const ViewAllResults = (props) => {
+ const { searchString, searchResultsObj, currentView, setCurrentReference } =
+ props;
-export default function ViewAllResults(props) {
- const { searchString, searchResultsObj, currentView } = props;
let { t } = useTranslation();
const router = useRouter();
@@ -18,7 +22,15 @@ export default function ViewAllResults(props) {
-
+ {
+ setCurrentReference({
+ "currentReference":
+ resultsArr[index].reference,
+ "currentType": currentView.viewKey,
+ });
+ }}
+ >
Case Reference:
@@ -102,12 +114,25 @@ export default function ViewAllResults(props) {
>
);
-}
+};
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setCurrentReference: (currentReference) => {
+ dispatch(setCurrentReference(currentReference));
+ },
+ };
+};
+
+export default connect(null, mapDispatchToProps)(ViewAllResults);
diff --git a/components/myportal/watchedcases.js b/components/myportal/watchedcases.js
index 84978e3f..de0cee07 100644
--- a/components/myportal/watchedcases.js
+++ b/components/myportal/watchedcases.js
@@ -19,7 +19,10 @@ const WatchedCases = (props) => {
{t("myportal:watchedcases-card-title")}
-
+
diff --git a/components/newappeal/createCase.js b/components/newappeal/createCase.js
index f80c367e..5450063b 100644
--- a/components/newappeal/createCase.js
+++ b/components/newappeal/createCase.js
@@ -157,17 +157,52 @@ let CreateCase = (props) => {
return (
);
})}
diff --git a/components/representation.js b/components/representation.js
new file mode 100644
index 00000000..e202abf4
--- /dev/null
+++ b/components/representation.js
@@ -0,0 +1,38 @@
+import Link from "next/link";
+import { useRouter } from "next/router";
+import { useContext } from "react";
+import useTranslation from "next-translate/useTranslation";
+import Summary from "./case/representation";
+
+const CaseSummary = (props) => {
+ let { t } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+
+ return (
+
+
+
+ );
+};
+
+export default CaseSummary;
diff --git a/components/search/searchresults.js b/components/search/searchresults.js
index 7dcfd6c8..5ace7173 100644
--- a/components/search/searchresults.js
+++ b/components/search/searchresults.js
@@ -1,15 +1,17 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
+import { setCurrentReference } from "../../store/currentView/action";
+import { connect } from "react-redux";
-export default function SearchResults(props) {
- const { searchString, searchResultsObj } = props;
+const SearchResults = (props) => {
+ const { searchString, searchResultsObj, setCurrentReference } = props;
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
- var resultsArr = props.searchResultsObj.searchResultsObj.value || [{}];
+ var resultsArr = searchResultsObj.value || [{}];
const resultRow = Object.keys(resultsArr).map((key, index) => {
@@ -58,9 +60,7 @@ export default function SearchResults(props) {
{t("search:searchresults-count-label", {
- count: props.searchResultsObj.searchResultsObj[
- "@odata.count"
- ].toString(),
+ count: searchResultsObj["@odata.count"].toString(),
})}
. You searched for "{searchString}"
@@ -91,7 +91,16 @@ export default function SearchResults(props) {
);
-}
+};
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setCurrentReference: (currentReference) => {
+ dispatch(setCurrentReference(currentReference));
+ },
+ };
+};
+
+export default connect(null, mapDispatchToProps)(SearchResults);
diff --git a/components/searchresults.js b/components/searchresults.js
index c42e37cb..f55a274d 100644
--- a/components/searchresults.js
+++ b/components/searchresults.js
@@ -20,7 +20,10 @@ export default function Search(props) {
>
diff --git a/i18n.json b/i18n.json
index 3f1e7543..a506b4d8 100644
--- a/i18n.json
+++ b/i18n.json
@@ -29,6 +29,9 @@
"/case": [
"case"
],
+ "/representation": [
+ "case"
+ ],
"/newappeal": [
"newappeal"
],
diff --git a/locales/en/common.json b/locales/en/common.json
index 46fa8d35..930c5fe9 100644
--- a/locales/en/common.json
+++ b/locales/en/common.json
@@ -14,4 +14,4 @@
"footer-feedback-link": "Feedback",
"mobile-nav-label": "Menu",
"signout-label": "Sign out"
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 14186c7e..2445837c 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"scripts": {
"dev": "next dev",
"dev:app": "node ./server/server.js && yarn lint:js",
- "build": "NODE_ENV=production node_modules/next/dist/bin/next build --debug",
+ "build": "NODE_ENV=production node_modules/next/dist/bin/next build",
"start": "node_modules/next/dist/bin/next start"
},
"dependencies": {
@@ -32,6 +32,7 @@
"react-cookie-consent": "^6.2.4",
"react-datepicker": "^4.1.1",
"react-dom": "17.0.2",
+ "react-dropzone": "^11.3.4",
"react-redux": "^7.2.4",
"react-xml-parser": "^1.1.8",
"redux-devtools-extension": "^2.13.9",
diff --git a/pages/404.js b/pages/404.js
index 8ba64663..0741e8ec 100644
--- a/pages/404.js
+++ b/pages/404.js
@@ -1,13 +1,42 @@
// 404.js
import Link from "next/link";
+import Head from "next/head";
+import Header from "../components/header";
+import Banner from "../components/banner";
+import CookieBanner from "../components/cookieBanner";
+import useTranslation from "next-translate/useTranslation";
+import Footer from "../components/footer";
+
+const FourOhFour = (props) => {
+ let { t, lang } = useTranslation();
+ const { footerLinks, pages } = props;
-export default function FourOhFour() {
return (
- <>
-
404 - Page Not Found
-
-
Go back home
-
- >
+
+
+
+ {t("case:page-title")} - {t("common:service-name")}
+
+
+
+
);
-}
+};
+
+export default FourOhFour;
diff --git a/pages/advancedsearch.js b/pages/advancedsearch.js
index 8af17fa9..d93d9094 100644
--- a/pages/advancedsearch.js
+++ b/pages/advancedsearch.js
@@ -41,40 +41,6 @@ const Home = (props) => {
);
};
-// export const getServerSideProps = wrapper.getServerSideProps(
-// async ({ locale, store, req, res }) => {
-// const token = await getToken();
-// let accessToken = token.access_token;
-
-// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
-
-// const [pages, footerLinks, courseListContent] = await Promise.all([
-// await getPages(accessToken, locale),
-// await getFooterLinks(accessToken, locale),
-// await getCourseList(accessToken, locale),
-// ]);
-// //const courseID = await getCourseID
-// store.dispatch(setApiRoot(apiRoot));
-// store.dispatch(setPages(pages));
-// store.dispatch(setFooterLinks(footerLinks));
-// store.dispatch(setCourseListContent(courseListContent));
-// }
-// );
-
-// const mapStateToProps = (state) => {
-// //console.log(state);
-
-// return {
-// apiroot: state.apiroot,
-// courseListContent: state.courseListContent.courseListContent,
-// pages: state.pages.pages,
-// footerLinks: state.footerLinks.footerLinks,
-// regions: state.regions,
-// sectors: state.sectors,
-// form: state.form,
-// };
-// };
-
const mapStateToProps = (state) => {
return {
search: state.search,
diff --git a/pages/api/lookups/awaitingSubmission.js b/pages/api/lookups/awaitingSubmission.js
index 05f2b1d2..66f7d76f 100644
--- a/pages/api/lookups/awaitingSubmission.js
+++ b/pages/api/lookups/awaitingSubmission.js
@@ -11,6 +11,33 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00017-B8X7N0",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue": "",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary": "",
+ "caseOfficer": "",
+ "procedure": "",
+ "status": "",
+ "decision": "",
+ "outcome_document": "",
+ "caseLinkStatus": "",
+ "linkedCases": "",
+ },
+ "caseDates": {
+ "start_date": "",
+ "questionnaireDue": "",
+ "statementsDue": "",
+ "interestedPartyCommentsdue": "",
+ "appellantLPAFinalCommentsdue": "",
+ "inquiryEvidenceDue": "",
+ "eventDate": "",
+ "decisionDate": "",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -21,6 +48,34 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00016-Y9K9Q0",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary": "",
+ "caseOfficer": "",
+ "procedure": "",
+ "status": "",
+ "decision": "",
+ "outcome_document": "",
+ "caseLinkStatus": "",
+ "linkedCases": "",
+ },
+ "caseDates": {
+ "start_date": "",
+ "questionnaireDue": "",
+ "statementsDue": "",
+ "interestedPartyCommentsdue": "",
+ "appellantLPAFinalCommentsdue": "",
+ "inquiryEvidenceDue": "",
+ "eventDate": "",
+ "decisionDate": "",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -31,6 +86,34 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00011-K1N0J8",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary": "",
+ "caseOfficer": "",
+ "procedure": "",
+ "status": "",
+ "decision": "",
+ "outcome_document": "",
+ "caseLinkStatus": "",
+ "linkedCases": "",
+ },
+ "caseDates": {
+ "start_date": "",
+ "questionnaireDue": "",
+ "statementsDue": "",
+ "interestedPartyCommentsdue": "",
+ "appellantLPAFinalCommentsdue": "",
+ "inquiryEvidenceDue": "",
+ "eventDate": "",
+ "decisionDate": "",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -41,6 +124,34 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00015-L7J9H1",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary": "",
+ "caseOfficer": "",
+ "procedure": "",
+ "status": "",
+ "decision": "",
+ "outcome_document": "",
+ "caseLinkStatus": "",
+ "linkedCases": "",
+ },
+ "caseDates": {
+ "start_date": "",
+ "questionnaireDue": "",
+ "statementsDue": "",
+ "interestedPartyCommentsdue": "",
+ "appellantLPAFinalCommentsdue": "",
+ "inquiryEvidenceDue": "",
+ "eventDate": "",
+ "decisionDate": "",
+ },
},
],
});
diff --git a/pages/api/lookups/myCases.js b/pages/api/lookups/myCases.js
index ba500274..a3e14710 100644
--- a/pages/api/lookups/myCases.js
+++ b/pages/api/lookups/myCases.js
@@ -3,7 +3,7 @@ const ApiResponse = (req, res) => {
res.json({
"value": [
{
- "@odata.etag": 'W/"547952"',
+ "@odata.etag": "W547952",
"lpaname": "Vale of Glamorgan Council",
"accountid": "56e7ef63-7e64-eb11-aaba-00224800be9c",
"address1": "21 Courtenay Road",
@@ -17,9 +17,32 @@ const ApiResponse = (req, res) => {
"statuscode@OData.Community.Display.V1.FormattedValue":
"In Progress",
"statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
- "@odata.etag": 'W/"547952"',
+ "@odata.etag": "W547952",
"lpaname": "Bridgend CBC",
"accountid": "56e7ef63-7e64-eb11-aaba-00224800be9c",
"address1": "17 Colin Way",
@@ -33,10 +56,33 @@ const ApiResponse = (req, res) => {
"statuscode@OData.Community.Display.V1.FormattedValue":
"In Progress",
"statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
- "@odata.etag": 'W/"547952"',
- "lpaname": "Cardiff County Council Planning (A)",
+ "@odata.etag": "W547952",
+ "lpaname": "Cardiff County Council Planning (A)",
"accountid": "56e7ef63-7e64-eb11-aaba-00224800be9c",
"address1": "120 Severn Grove",
"town": "Cardiff",
@@ -49,10 +95,33 @@ const ApiResponse = (req, res) => {
"statuscode@OData.Community.Display.V1.FormattedValue":
"In Progress",
"statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
- "@odata.etag": 'W/"547952"',
- "lpaname": "Cardiff County Council Planning",
+ "@odata.etag": "W547952",
+ "lpaname": "Cardiff County Council Planning",
"accountid": "56e7ef63-7e64-eb11-aaba-00224800be9c",
"address1": "25 Merches Gardens",
"town": "Cardiff",
@@ -65,6 +134,29 @@ const ApiResponse = (req, res) => {
"statuscode@OData.Community.Display.V1.FormattedValue":
"In Progress",
"statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
],
});
diff --git a/pages/api/lookups/myRepresentations.js b/pages/api/lookups/myRepresentations.js
index 2aeecb07..3876449a 100644
--- a/pages/api/lookups/myRepresentations.js
+++ b/pages/api/lookups/myRepresentations.js
@@ -11,6 +11,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00009-W8N6W4",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -21,6 +50,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00010-J9W6L5",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -31,6 +89,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00011-K1N0J8",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -41,6 +128,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00012-D9W6S8",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
],
});
diff --git a/pages/api/lookups/watchedCases.js b/pages/api/lookups/watchedCases.js
index 2aeecb07..3876449a 100644
--- a/pages/api/lookups/watchedCases.js
+++ b/pages/api/lookups/watchedCases.js
@@ -11,6 +11,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00009-W8N6W4",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -21,6 +50,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00010-J9W6L5",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -31,6 +89,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00011-K1N0J8",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
{
"@odata.etag": 'W/"547952"',
@@ -41,6 +128,35 @@ const ApiResponse = (req, res) => {
"postcode": "CF24 0JL",
"reference": "CAS-00012-D9W6S8",
"appellantApplicant": "Mrs Denise Williams",
+ "pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue":
+ "Planning Appeal - S78",
+ "pinswg_appealcasetype": "846040000",
+ "statuscode@OData.Community.Display.V1.FormattedValue":
+ "In Progress",
+ "statuscode": "1",
+ "caseDetails": {
+ "casetype": "",
+ "lpa": "",
+ "caseSummary":
+ "Erection of a two-storey chalet style detached dwelling",
+ "caseOfficer": "Neale Oliver",
+ "procedure": "Written representations",
+ "status": "In progress",
+ "decision": "Allowed",
+ "outcome_document": "23424Appeal Decision.pdf",
+ "caseLinkStatus": "not linked",
+ "linkedCases": "none",
+ },
+ "caseDates": {
+ "start_date": "26-May-21",
+ "questionnaireDue": "02-Jun-21",
+ "statementsDue": "30-Jun-21",
+ "interestedPartyCommentsdue": "30-Jun-21",
+ "appellantLPAFinalCommentsdue": "4-Jul-21",
+ "inquiryEvidenceDue": "N/A",
+ "eventDate": "Date arranged",
+ "decisionDate": "Not yet decided",
+ },
},
],
});
diff --git a/pages/case.js b/pages/case.js
index cc39a64e..fb0a32c4 100644
--- a/pages/case.js
+++ b/pages/case.js
@@ -35,8 +35,26 @@ const Home = (props) => {
-
-
+
+
@@ -44,38 +62,21 @@ const Home = (props) => {
);
};
-// export const getServerSideProps = wrapper.getServerSideProps(
-// async ({ locale, store, req, res }) => {
-// const token = await getToken();
-// let accessToken = token.access_token;
+const mapStateToProps = (state) => {
+ //console.log(state);
-// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
+ return {
+ currentView: state.currentView,
+ search: state.search,
+ searchResultsObj: state.searchResultsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
+ };
+};
-// const [pages, footerLinks, courseListContent] = await Promise.all([
-// await getPages(accessToken, locale),
-// await getFooterLinks(accessToken, locale),
-// await getCourseList(accessToken, locale),
-// ]);
-// //const courseID = await getCourseID
-// store.dispatch(setApiRoot(apiRoot));
-// store.dispatch(setPages(pages));
-// store.dispatch(setFooterLinks(footerLinks));
-// store.dispatch(setCourseListContent(courseListContent));
-// }
-// );
-
-// const mapStateToProps = (state) => {
-// //console.log(state);
-
-// return {
-// apiroot: state.apiroot,
-// courseListContent: state.courseListContent.courseListContent,
-// pages: state.pages.pages,
-// footerLinks: state.footerLinks.footerLinks,
-// regions: state.regions,
-// sectors: state.sectors,
-// form: state.form,
-// };
-// };
-
-export default Home; //connect(mapStateToProps)(Home);
+export default connect(mapStateToProps)(Home);
diff --git a/pages/index.js b/pages/index.js
index 0b5bac9e..ce994446 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -40,27 +40,4 @@ const Home = (props) => {
);
};
-// export const getServerSideProps = wrapper.getServerSideProps(
-// (store) =>
-// async ({ query, req, res }) => {
-// const incidents = await getIncidents;
-// console.log(incidents);
-// }
-// );
-
-
-// const mapStateToProps = (state) => {
-// //console.log(state);
-
-// return {
-// apiroot: state.apiroot,
-// courseListContent: state.courseListContent.courseListContent,
-// pages: state.pages.pages,
-// footerLinks: state.footerLinks.footerLinks,
-// regions: state.regions,
-// sectors: state.sectors,
-// form: state.form,
-// };
-// };
-
export default Home; //connect(mapStateToProps)(Home);
diff --git a/pages/myportal/index.js b/pages/myportal/index.js
index 5fcb0d75..9c87b014 100644
--- a/pages/myportal/index.js
+++ b/pages/myportal/index.js
@@ -70,6 +70,11 @@ export const getServerSideProps = wrapper.getServerSideProps(
async ({ query, req, res }) => {
//console.log("the query", query);
+ res.setHeader(
+ "Cache-Control",
+ "public, s-maxage=604800, stale-while-revalidate"
+ );
+
const [
myCases,
myRepresentations,
@@ -93,6 +98,7 @@ const mapStateToProps = (state) => {
//console.log(state);
return {
+ currentView: state.currentView,
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
diff --git a/pages/newappeal/[appealtypes].js b/pages/newappeal/[appealtypes].js
index c8a077e3..544b1835 100644
--- a/pages/newappeal/[appealtypes].js
+++ b/pages/newappeal/[appealtypes].js
@@ -154,15 +154,17 @@ export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
//console.log("the query", query);
- store.dispatch(setAppealTypeID(query.appealtypes));
- const appealTypeData = await getAppealsTypes();
- const formdata = (await getFormData(query.appealtypes)) || null;
+ const [appealTypeData, formdata] = await Promise.all([
+ await getAppealsTypes(),
+ await getFormData(query.appealtypes),
+ ]);
const caseReference = createCase("asasa", "asasa");
let xmlStr = formdata;
xmlStr = formdata.value[0].formxml;
xmlStr = xmlStr.replace(/\\"/g, "");
+ store.dispatch(setAppealTypeID(query.appealtypes));
store.dispatch(setCaseReference(caseReference));
store.dispatch(setForm(xmlStr));
store.dispatch(setAppealType(appealTypeData));
diff --git a/pages/newappeal/index.js b/pages/newappeal/index.js
index e946b9fe..5cb68b62 100644
--- a/pages/newappeal/index.js
+++ b/pages/newappeal/index.js
@@ -75,10 +75,14 @@ const Home = (props) => {
export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
- const appealTypeData = await getAppealsTypes();
- const lpaData = await getLPA();
- console.log("appeal types", appealTypeData);
- console.log("lpa typeswwwww", lpaData);
+ res.setHeader(
+ "Cache-Control",
+ "public, s-maxage=604800, stale-while-revalidate"
+ );
+ const [appealTypeData, lpaData] = await Promise.all([
+ await getAppealsTypes(),
+ await getLPA(),
+ ]);
store.dispatch(setAppealType(appealTypeData));
store.dispatch(setLPA(lpaData));
}
diff --git a/pages/representation.js b/pages/representation.js
new file mode 100644
index 00000000..4080a662
--- /dev/null
+++ b/pages/representation.js
@@ -0,0 +1,83 @@
+import _ from "lodash";
+import Head from "next/head";
+import Header from "../components/header";
+import Banner from "../components/banner";
+import CookieBanner from "../components/cookieBanner";
+import Breadcrumbs from "../components/breadcrumbs";
+import CaseSummary from "../components/case";
+import Footer from "../components/footer";
+import Errorpage from "../components/errorpage";
+import styles from "../styles/Home.module.css";
+import { useSelector, shallowEqual, connect } from "react-redux";
+import { wrapper } from "../store/store";
+import Cookies from "cookies";
+import { useRouter } from "next/router";
+import useTranslation from "next-translate/useTranslation";
+import Case from "../components/representation";
+
+const Home = (props) => {
+ const { footerLinks, pages } = props;
+ let { t, lang } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+ const { appealtypes } = router.query;
+
+ return (
+
+
+
+ {t("case:page-title")} - {t("common:service-name")}
+
+
+
+
+ );
+};
+
+const mapStateToProps = (state) => {
+ //console.log(state);
+
+ return {
+ currentView: state.currentView,
+ search: state.search,
+ searchResultsObj: state.searchResultsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
+ };
+};
+
+export default connect(mapStateToProps)(Home);
diff --git a/pages/searchresults.js b/pages/searchresults.js
index 744a0cf6..5d3b4082 100644
--- a/pages/searchresults.js
+++ b/pages/searchresults.js
@@ -63,39 +63,18 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
);
-// export const getServerSideProps = wrapper.getServerSideProps(
-// async ({ locale, store, query, req, res }) => {
-// // const token = await getToken();
-// // let accessToken = token.access_token;
-
-// // const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
-
-// // const [pages, footerLinks, courseListContent] = await Promise.all([
-// // await getPages(accessToken, locale),
-// // await getFooterLinks(accessToken, locale),
-// // await getCourseList(accessToken, locale),
-// // ]);
-// // //const courseID = await getCourseID
-// // store.dispatch(setApiRoot(apiRoot));
-// // store.dispatch(setPages(pages));
-// // store.dispatch(setFooterLinks(footerLinks));
-// // store.dispatch(setCourseListContent(courseListContent));
-// console.log(query);
-// //store.dispatch(setSearch(query.search));
-// }
-// );
-
const mapStateToProps = (state) => {
return {
+ currentView: state.currentView,
search: state.search,
searchResultsObj: state.searchResultsObj,
- // // apiroot: state.apiroot,
- // // courseListContent: state.courseListContent.courseListContent,
- // // pages: state.pages.pages,
- // // footerLinks: state.footerLinks.footerLinks,
- // // regions: state.regions,
- // // sectors: state.sectors,
- // // form: state.form,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
};
};
diff --git a/pages/viewall.js b/pages/viewall.js
index ffdeba8a..751c2cd2 100644
--- a/pages/viewall.js
+++ b/pages/viewall.js
@@ -63,28 +63,6 @@ export const getServerSideProps = wrapper.getServerSideProps(
}
);
-// export const getServerSideProps = wrapper.getServerSideProps(
-// async ({ locale, store, query, req, res }) => {
-// // const token = await getToken();
-// // let accessToken = token.access_token;
-
-// // const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
-
-// // const [pages, footerLinks, courseListContent] = await Promise.all([
-// // await getPages(accessToken, locale),
-// // await getFooterLinks(accessToken, locale),
-// // await getCourseList(accessToken, locale),
-// // ]);
-// // //const courseID = await getCourseID
-// // store.dispatch(setApiRoot(apiRoot));
-// // store.dispatch(setPages(pages));
-// // store.dispatch(setFooterLinks(footerLinks));
-// // store.dispatch(setCourseListContent(courseListContent));
-// console.log(query);
-// //store.dispatch(setSearch(query.search));
-// }
-// );
-
const mapStateToProps = (state) => {
return {
search: state.search,
diff --git a/store/currentView/action.js b/store/currentView/action.js
index 26b20a0e..2440f7e4 100644
--- a/store/currentView/action.js
+++ b/store/currentView/action.js
@@ -1,6 +1,7 @@
export const currentViewActionTypes = {
GETCURRENTVIEW: "GETCURRENTVIEW",
SETCURRENTVIEW: "SETCURRENTVIEW",
+ SETCURRENTREFERENCE: "SETCURRENTREFERENCE",
};
export const getCurrentViewObj = () => (dispatch) => {
@@ -15,3 +16,10 @@ export const setCurrentView = (currentView) => (dispatch) => {
currentView: currentView,
});
};
+
+export const setCurrentReference = (caseReference) => (dispatch) => {
+ return dispatch({
+ type: currentViewActionTypes.SETCURRENTREFERENCE,
+ caseReference: caseReference,
+ });
+};
diff --git a/store/currentView/reducer.js b/store/currentView/reducer.js
index 4d9fc02f..f0ccb0fb 100644
--- a/store/currentView/reducer.js
+++ b/store/currentView/reducer.js
@@ -2,6 +2,7 @@ import { currentViewActionTypes } from "./action";
const currentViewInitialState = {
currentView: {},
+ caseReference: {},
};
export default function reducer(state = currentViewInitialState, action) {
@@ -11,6 +12,11 @@ export default function reducer(state = currentViewInitialState, action) {
...state,
currentView: action.currentView,
};
+ case currentViewActionTypes.SETCURRENTREFERENCE:
+ return {
+ ...state,
+ caseReference: action.caseReference,
+ };
default:
return state;
}
diff --git a/styles/sass/welshgov/_application.scss b/styles/sass/welshgov/_application.scss
index dd75933c..ba9e4252 100644
--- a/styles/sass/welshgov/_application.scss
+++ b/styles/sass/welshgov/_application.scss
@@ -6,10 +6,11 @@ html {
.govuk-body,
.govuk-body-s,
.govuk-body-m,
+.govuk-footer,
.govuk-heading-xl,
.govuk-heading-l,
.govuk-heading-m,
-s .govuk-header-l,
+.govuk-header-l,
.govuk-header-m,
.govuk-header__link,
.govuk-button,
@@ -30,6 +31,14 @@ a {
background-color: #323232;
}
+.govuk-breadcrumbs__link:link,
+.govuk-breadcrumbs__link:visited {
+ color: #0360a6;
+ font-weight: bold;
+ text-decoration: none;
+ font-size: 16px;
+}
+
.govuk-grid-row {
@media screen and (max-width: 900px) {
// margin-right: 0px;
@@ -37,6 +46,10 @@ a {
}
}
+.govuk-checkboxes__conditional--hidden {
+ display: none;
+}
+
.govuk-button {
background-color: $red;
@@ -69,6 +82,14 @@ a {
margin-right: auto;
padding-left: 60px;
padding-right: 20px;
+
+ @media screen and (max-width: 1024px) {
+ padding-left: 20px;
+ }
+ @media screen and (max-width: 376px) {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
}
.btn--arrow-up a {
@@ -243,6 +264,8 @@ a {
.govuk-footer {
padding-top: 0px;
+ padding: 70px 0 0 0;
+ border: none;
}
#footer_logo {
@@ -377,3 +400,279 @@ a {
font-size: 1.1875rem;
line-height: 1.3157894737;
}
+
+//sharebar
+
+.btn--arrow-up a {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg id=%22Layer_1%22 data-name=%22Layer 1%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%22159.5%22 height=%22102.4%22 viewBox=%220 0 159.5 102.4%22%3E%3Ctitle%3Eblack-arrow-up%3C/title%3E%3Cpath d=%22M159.5,79.8,79.8,0,0,79.8l22.6,22.6L79.7,45.3l57.1,57.1Z%22/%3E%3C/svg%3E");
+ background-size: 18px 13px;
+ background-position: 10px center;
+ background-repeat: no-repeat;
+ padding-left: 36px;
+ margin-top: 1px;
+}
+
+.btn--arrow-hero a:hover {
+ color: #fff !important;
+}
+
+ul#sharePageLinks {
+ display: none;
+}
+
+ul#sharePageLinks.active {
+ display: block;
+ border: none;
+}
+
+.block-share button,
+.block-share h2 {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: none;
+ padding: 12px 12px 12px 36px;
+ margin: 0;
+ color: #323232;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 17px;
+ line-height: 1.0625rem;
+ letter-spacing: -0.0208333333rem;
+ font-weight: bold;
+ float: left;
+ z-index: 2;
+ position: relative;
+ background-color: inherit;
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg id=%22Layer_1%22 data-name=%22Layer 1%22 xmlns=%22http://www.w3.org/2000/svg%22 width=%2217.9%22 height=%2220%22 viewBox=%220 0 17.9 20%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Eshare%3C/title%3E%3Cpath class=%22cls-1%22 d=%22M15.4,14.1a3,3,0,0,0-2,.8L6.2,10.7a1.7,1.7,0,0,0,.1-.7,1.7,1.7,0,0,0-.1-.7l7.1-4.1a3,3,0,0,0,5-2.2,3,3,0,0,0-6,0,1.7,1.7,0,0,0,.1.7l-7,4.1a2.79,2.79,0,0,0-2-.8,3,3,0,1,0,0,6,2.79,2.79,0,0,0,2-.8l7.1,4.2c0,.2-.1.4-.1.7a2.9,2.9,0,0,0,5.8,0,2.84,2.84,0,0,0-2.68-3Z%22 transform=%22translate%28-0.4 0%29%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: 10px 10px;
+ background-size: 20px 20px;
+}
+
+.vo_hidden,
+.page-node-type-global-keyword-search
+ .main__body-content
+ #block-govwales-content
+ .components__form
+ form
+ .form-item
+ label,
+.header__components .components__form form .form-item label {
+ border: 0;
+ clip: rect(0, 0, 0, 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ width: 1px;
+ position: absolute;
+}
+
+.block-share {
+ position: relative;
+ float: left;
+ margin-right: 20px;
+ border: 1px solid #999999;
+}
+
+@media screen and (min-width: 480px) {
+ .main__sharebar > div {
+ margin-bottom: 0;
+ }
+}
+.block-share.active {
+ border: 1px solid #999999;
+ background-color: #cccccc;
+ @media screen and (max-width: 376px) {
+ margin-right: 0px;
+ margin-bottom: 20px;
+ }
+}
+
+.block-share ul {
+ margin: 0;
+ padding: 0;
+ float: left;
+ z-index: 1;
+ position: relative;
+}
+
+.block-share ul li {
+ display: inline-block;
+ margin: 10px 15px;
+ padding: 0;
+}
+
+.block-share ul li a {
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 20px;
+ line-height: 1.25rem;
+ display: block;
+ padding-top: 2px;
+ padding-left: 25px;
+ height: 24px;
+ color: #0360a6;
+}
+
+.block-share ul li a {
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 20px;
+ line-height: 1.25rem;
+ display: block;
+ padding-top: 2px;
+ padding-left: 25px;
+ height: 24px;
+ background-color: inherit;
+ color: #0360a6;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+@media (min-width: 480px) {
+ .block-share ul li a {
+ background-size: 20px 20px;
+ background-position: 0 2px;
+ }
+}
+.block-share ul li a,
+.block-share-top ul li a,
+.page-header__block-share__list ul li a,
+.page-header__block-share ul li a {
+ background-size: 20px 20px;
+ background-position: 0 6px;
+ height: 22px;
+ display: block;
+ @media (max-width: 376px) {
+ background-position: 0 2px;
+ }
+}
+
+.block-share ul li a:hover,
+.block-share-top ul li a:hover,
+.page-header__block-share__list ul li a:hover,
+.page-header__block-share ul li a:hover {
+ background-size: 20px 20px;
+ background-position: 0 6px;
+ @media (max-width: 376px) {
+ background-position: 0 2px;
+ }
+}
+
+@media all and (min-width: 480px) {
+ .block-share ul li a,
+ .block-share-top ul li a,
+ .page-header__block-share__list ul li a,
+ .page-header__block-share ul li a {
+ background-size: 20px 20px;
+ background-position: 0 2px;
+ }
+
+ .block-share ul li a:hover,
+ .block-share-top ul li a:hover,
+ .page-header__block-share__list ul li a:hover,
+ .page-header__block-share ul li a:hover {
+ background-size: 20px 20px;
+ background-position: 0px 2px;
+ }
+}
+
+.block-share ul li a:focus,
+.block-share-top ul li a:focus,
+.page-header__block-share__list ul li a:focus,
+.page-header__block-share ul li a:focus {
+ -webkit-box-shadow: 0 0 #ffd530, 0 2px #1f1f1f;
+ box-shadow: 0 0 #ffd530, 0 2px #1f1f1f;
+}
+
+.block-share ul li a.twitter,
+.block-share-top ul li a.twitter,
+.page-header__block-share__list ul li a.twitter,
+.page-header__block-share ul li a.twitter {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3EAsset 1%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM16,6.9v.4a8.79,8.79,0,0,1-8.7,8.8,9,9,0,0,1-4.8-1.4h.7A6.46,6.46,0,0,0,7,13.4a3.13,3.13,0,0,1-2.9-2.1c.2,0,.4.1.6.1a2.2,2.2,0,0,0,.8-.1A3.1,3.1,0,0,1,3,8.3H3a4,4,0,0,0,1.5.3,3.05,3.05,0,0,1-1-4.1A8.86,8.86,0,0,0,9.9,7.7,3,3,0,0,1,12.2,4a3.06,3.06,0,0,1,2.9.9,5,5,0,0,0,2-.8,2.91,2.91,0,0,1-1.4,1.7,6.07,6.07,0,0,0,1.8-.5A4.63,4.63,0,0,1,16,6.9Z%22 style=%22fill:%230360a6%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.twitter:hover,
+.block-share-top ul li a.twitter:hover,
+.page-header__block-share__list ul li a.twitter:hover,
+.page-header__block-share ul li a.twitter:hover {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3EAsset 1%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM16,6.9v.4a8.79,8.79,0,0,1-8.7,8.8,9,9,0,0,1-4.8-1.4h.7A6.46,6.46,0,0,0,7,13.4a3.13,3.13,0,0,1-2.9-2.1c.2,0,.4.1.6.1a2.2,2.2,0,0,0,.8-.1A3.1,3.1,0,0,1,3,8.3H3a4,4,0,0,0,1.5.3,3.05,3.05,0,0,1-1-4.1A8.86,8.86,0,0,0,9.9,7.7,3,3,0,0,1,12.2,4a3.06,3.06,0,0,1,2.9.9,5,5,0,0,0,2-.8,2.91,2.91,0,0,1-1.4,1.7,6.07,6.07,0,0,0,1.8-.5A4.63,4.63,0,0,1,16,6.9Z%22 style=%22fill:%233b7dc5%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.twitter:focus,
+.block-share-top ul li a.twitter:focus,
+.page-header__block-share__list ul li a.twitter:focus,
+.page-header__block-share ul li a.twitter:focus {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3EAsset 1%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM16,6.9v.4a8.79,8.79,0,0,1-8.7,8.8,9,9,0,0,1-4.8-1.4h.7A6.46,6.46,0,0,0,7,13.4a3.13,3.13,0,0,1-2.9-2.1c.2,0,.4.1.6.1a2.2,2.2,0,0,0,.8-.1A3.1,3.1,0,0,1,3,8.3H3a4,4,0,0,0,1.5.3,3.05,3.05,0,0,1-1-4.1A8.86,8.86,0,0,0,9.9,7.7,3,3,0,0,1,12.2,4a3.06,3.06,0,0,1,2.9.9,5,5,0,0,0,2-.8,2.91,2.91,0,0,1-1.4,1.7,6.07,6.07,0,0,0,1.8-.5A4.63,4.63,0,0,1,16,6.9Z%22 style=%22fill:%23111%22/%3E%3C/svg%3E ");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.facebook,
+.block-share-top ul li a.facebook,
+.page-header__block-share__list ul li a.facebook,
+.page-header__block-share ul li a.facebook {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Efacebook%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM15.6,5.1a.27.27,0,0,1-.3.3H14c-.9,0-1.1.3-1.1,1V7.9h2.3a.27.27,0,0,1,.3.3h0v2.5a.27.27,0,0,1-.3.3H12.9v6.2a.27.27,0,0,1-.3.3H10a.27.27,0,0,1-.3-.3V11h-2a.27.27,0,0,1-.3-.3h0V8.2a.27.27,0,0,1,.3-.3h2V6.2a3.45,3.45,0,0,1,3.1-3.7h2.4a.27.27,0,0,1,.3.3h0Z%22 style=%22fill:%230360a6%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.facebook:hover,
+.block-share-top ul li a.facebook:hover,
+.page-header__block-share__list ul li a.facebook:hover,
+.page-header__block-share ul li a.facebook:hover {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Efacebook_on%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM15.6,5.1a.27.27,0,0,1-.3.3H14c-.9,0-1.1.3-1.1,1V7.9h2.3a.27.27,0,0,1,.3.3h0v2.5a.27.27,0,0,1-.3.3H12.9v6.2a.27.27,0,0,1-.3.3H10a.27.27,0,0,1-.3-.3V11h-2a.27.27,0,0,1-.3-.3h0V8.2a.27.27,0,0,1,.3-.3h2V6.2a3.45,3.45,0,0,1,3.1-3.7h2.4a.27.27,0,0,1,.3.3h0Z%22 style=%22fill:%233b7dc5%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.facebook:focus,
+.block-share-top ul li a.facebook:focus,
+.page-header__block-share__list ul li a.facebook:focus,
+.page-header__block-share ul li a.facebook:focus {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Efacebook%3C/title%3E%3Cpath d=%22M0,0V20H20V0ZM15.6,5.1a.27.27,0,0,1-.3.3H14c-.9,0-1.1.3-1.1,1V7.9h2.3a.27.27,0,0,1,.3.3h0v2.5a.27.27,0,0,1-.3.3H12.9v6.2a.27.27,0,0,1-.3.3H10a.27.27,0,0,1-.3-.3V11h-2a.27.27,0,0,1-.3-.3h0V8.2a.27.27,0,0,1,.3-.3h2V6.2a3.45,3.45,0,0,1,3.1-3.7h2.4a.27.27,0,0,1,.3.3h0Z%22 style=%22fill:%23111%22/%3E%3C/svg%3E ");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.email,
+.block-share-top ul li a.email,
+.page-header__block-share__list ul li a.email,
+.page-header__block-share ul li a.email {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Eat%3C/title%3E%3Cpath d=%22M9.6,8.2a1.61,1.61,0,0,0-1.3.6,2.11,2.11,0,0,0-.5,1.3,1.75,1.75,0,0,0,.4,1.2,1.46,1.46,0,0,0,1.3.7,1.38,1.38,0,0,0,1.1-.6,2.39,2.39,0,0,0,.5-1.4,2,2,0,0,0-.6-1.5A2.39,2.39,0,0,0,9.6,8.2Z%22 style=%22fill:%230360a6%22/%3E%3Cpath d=%22M0,0V20H20V0ZM15.4,12.5l-.4.7H11.5l-.2-.6a2.73,2.73,0,0,1-1.9.8h0a2.66,2.66,0,0,1-2.2-1.1A3.46,3.46,0,0,1,7.2,8,2.87,2.87,0,0,1,9.4,7a3.55,3.55,0,0,1,1,.2c.2.1.5.2.6.4V6.8h1.5v5.3h1.6a5.75,5.75,0,0,0,.5-2.6,4,4,0,0,0-1.3-3A4.44,4.44,0,0,0,9.9,5.2,4.76,4.76,0,0,0,6.5,6.6,5.55,5.55,0,0,0,5.3,9.9a4.84,4.84,0,0,0,1.3,3.4A4.48,4.48,0,0,0,10,14.8h.2V16H10a5.62,5.62,0,0,1-4.4-1.9A6.26,6.26,0,0,1,4,9.9,5.91,5.91,0,0,1,9.9,4H10a6.56,6.56,0,0,1,4.4,1.7A5.46,5.46,0,0,1,16,9.5,8,8,0,0,1,15.4,12.5Z%22 style=%22fill:%230360a6%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.email:hover,
+.block-share-top ul li a.email:hover,
+.page-header__block-share__list ul li a.email:hover,
+.page-header__block-share ul li a.email:hover {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Eat_on%3C/title%3E%3Cpath d=%22M9.6,8.2a1.61,1.61,0,0,0-1.3.6,2.11,2.11,0,0,0-.5,1.3,1.75,1.75,0,0,0,.4,1.2,1.46,1.46,0,0,0,1.3.7,1.38,1.38,0,0,0,1.1-.6,2.39,2.39,0,0,0,.5-1.4,2,2,0,0,0-.6-1.5A2.39,2.39,0,0,0,9.6,8.2Z%22 style=%22fill:%233b7dc5%22/%3E%3Cpath d=%22M0,0V20H20V0ZM15.4,12.5l-.4.7H11.5l-.2-.6a2.73,2.73,0,0,1-1.9.8h0a2.66,2.66,0,0,1-2.2-1.1A3.46,3.46,0,0,1,7.2,8,2.87,2.87,0,0,1,9.4,7a3.55,3.55,0,0,1,1,.2c.2.1.5.2.6.4V6.8h1.5v5.3h1.6a5.75,5.75,0,0,0,.5-2.6,4,4,0,0,0-1.3-3A4.44,4.44,0,0,0,9.9,5.2,4.76,4.76,0,0,0,6.5,6.6,5.55,5.55,0,0,0,5.3,9.9a4.84,4.84,0,0,0,1.3,3.4A4.48,4.48,0,0,0,10,14.8h.2V16H10a5.62,5.62,0,0,1-4.4-1.9A6.26,6.26,0,0,1,4,9.9,5.91,5.91,0,0,1,9.9,4H10a6.56,6.56,0,0,1,4.4,1.7A5.46,5.46,0,0,1,16,9.5,8,8,0,0,1,15.4,12.5Z%22 style=%22fill:%233b7dc5%22/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+}
+
+.block-share ul li a.email:focus,
+.block-share-top ul li a.email:focus,
+.page-header__block-share__list ul li a.email:focus,
+.page-header__block-share ul li a.email:focus {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Eat%3C/title%3E%3Cpath d=%22M9.6,8.2a1.61,1.61,0,0,0-1.3.6,2.11,2.11,0,0,0-.5,1.3,1.75,1.75,0,0,0,.4,1.2,1.46,1.46,0,0,0,1.3.7,1.38,1.38,0,0,0,1.1-.6,2.39,2.39,0,0,0,.5-1.4,2,2,0,0,0-.6-1.5A2.39,2.39,0,0,0,9.6,8.2Z%22 style=%22fill:%23111%22/%3E%3Cpath d=%22M0,0V20H20V0ZM15.4,12.5l-.4.7H11.5l-.2-.6a2.73,2.73,0,0,1-1.9.8h0a2.66,2.66,0,0,1-2.2-1.1A3.46,3.46,0,0,1,7.2,8,2.87,2.87,0,0,1,9.4,7a3.55,3.55,0,0,1,1,.2c.2.1.5.2.6.4V6.8h1.5v5.3h1.6a5.75,5.75,0,0,0,.5-2.6,4,4,0,0,0-1.3-3A4.44,4.44,0,0,0,9.9,5.2,4.76,4.76,0,0,0,6.5,6.6,5.55,5.55,0,0,0,5.3,9.9a4.84,4.84,0,0,0,1.3,3.4A4.48,4.48,0,0,0,10,14.8h.2V16H10a5.62,5.62,0,0,1-4.4-1.9A6.26,6.26,0,0,1,4,9.9,5.91,5.91,0,0,1,9.9,4H10a6.56,6.56,0,0,1,4.4,1.7A5.46,5.46,0,0,1,16,9.5,8,8,0,0,1,15.4,12.5Z%22 style=%22fill:%23111%22/%3E%3C/svg%3E ");
+ background-repeat: no-repeat;
+}
+
+//dropzone
+
+.dropzone {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 20px;
+ border-width: 2px;
+ border-radius: 2px;
+ border-color: #eeeeee;
+ border-style: dashed;
+ background-color: #fafafa;
+ color: #bdbdbd;
+ outline: none;
+ transition: border 0.24s ease-in-out;
+}