welsh changes
This commit is contained in:
+1
-1
@@ -1228,7 +1228,7 @@ let Enforcement_Questionnaire = (props) => {
|
|||||||
label={t("myrepresentations:enf-section-question-date")}
|
label={t("myrepresentations:enf-section-question-date")}
|
||||||
component={RenderDatePicker}
|
component={RenderDatePicker}
|
||||||
validate={[required]}
|
validate={[required]}
|
||||||
errorMsg="Select a date"
|
errorMsg={t("newappeal:select-a-date-label")}
|
||||||
dateStart="0"
|
dateStart="0"
|
||||||
dateEnd="1-y"
|
dateEnd="1-y"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -116,8 +116,6 @@ export function Textfield(props) {
|
|||||||
maxFieldLength,
|
maxFieldLength,
|
||||||
hint,
|
hint,
|
||||||
} = props;
|
} = props;
|
||||||
// const required = (value) =>
|
|
||||||
// value ? undefined : t("newappeal:is-required-label");
|
|
||||||
|
|
||||||
const required = (value) => {
|
const required = (value) => {
|
||||||
let errors;
|
let errors;
|
||||||
@@ -239,7 +237,7 @@ export function Textfield(props) {
|
|||||||
className="govuk-input govuk-input--width-20"
|
className="govuk-input govuk-input--width-20"
|
||||||
validate={eval(validation)}
|
validate={eval(validation)}
|
||||||
label={props.label}
|
label={props.label}
|
||||||
errorMsg="Is required"
|
errorMsg={t("newappeal:is-required-label")}
|
||||||
maxFieldLength={props.maxFieldLength}
|
maxFieldLength={props.maxFieldLength}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@@ -319,14 +317,14 @@ export function MultiLinefield(props) {
|
|||||||
|
|
||||||
// Check for the required field
|
// Check for the required field
|
||||||
if (!value) {
|
if (!value) {
|
||||||
errors = "This field is required";
|
errors = t("newappeal:is-required-label");
|
||||||
} else {
|
} else {
|
||||||
// Check for emojis using a regular expression
|
// Check for emojis using a regular expression
|
||||||
const emojiRegex =
|
const emojiRegex =
|
||||||
/[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{2300}-\u{23FF}\u{2B50}\u{1F004}-\u{1F0CF}\u{1F0A0}-\u{1F0A5}\u{1F170}-\u{1F251}]/gu;
|
/[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{2300}-\u{23FF}\u{2B50}\u{1F004}-\u{1F0CF}\u{1F0A0}-\u{1F0A5}\u{1F170}-\u{1F251}]/gu;
|
||||||
|
|
||||||
if (emojiRegex.test(value)) {
|
if (emojiRegex.test(value)) {
|
||||||
errors = "Emojis are not allowed";
|
errors = t("newappeal:emojis-not-allowed-label");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,7 +490,8 @@ export function RichMultiLinefield(props) {
|
|||||||
validation,
|
validation,
|
||||||
maxFieldLength,
|
maxFieldLength,
|
||||||
} = props;
|
} = props;
|
||||||
const required = (value) => (value ? undefined : "Is required");
|
const required = (value) =>
|
||||||
|
value ? undefined : t("newappeal:is-required-label");
|
||||||
|
|
||||||
var showIfHasParentShowValue =
|
var showIfHasParentShowValue =
|
||||||
parentField != false &&
|
parentField != false &&
|
||||||
@@ -702,6 +701,7 @@ export function DateFieldPicker(props) {
|
|||||||
dateStart,
|
dateStart,
|
||||||
dateEnd,
|
dateEnd,
|
||||||
} = props;
|
} = props;
|
||||||
|
let { t } = useTranslation();
|
||||||
const required = (value) => (value ? undefined : "Required");
|
const required = (value) => (value ? undefined : "Required");
|
||||||
|
|
||||||
var showIfHasParentShowValue =
|
var showIfHasParentShowValue =
|
||||||
@@ -720,7 +720,7 @@ export function DateFieldPicker(props) {
|
|||||||
label={label}
|
label={label}
|
||||||
component={RenderDatePicker}
|
component={RenderDatePicker}
|
||||||
validate={eval(validation)}
|
validate={eval(validation)}
|
||||||
errorMsg="Select a date"
|
errorMsg={t("newappeal:select-a-date-label")}
|
||||||
dateStart={dateStart}
|
dateStart={dateStart}
|
||||||
dateEnd={dateEnd}
|
dateEnd={dateEnd}
|
||||||
hint={props.hint}
|
hint={props.hint}
|
||||||
@@ -733,7 +733,7 @@ export function DateFieldPicker(props) {
|
|||||||
label={label}
|
label={label}
|
||||||
component={RenderDatePicker}
|
component={RenderDatePicker}
|
||||||
validate={eval(validation)}
|
validate={eval(validation)}
|
||||||
errorMsg="Select a date"
|
errorMsg={t("newappeal:select-a-date-label")}
|
||||||
dateStart={dateStart}
|
dateStart={dateStart}
|
||||||
dateEnd={dateEnd}
|
dateEnd={dateEnd}
|
||||||
hint={props.hint}
|
hint={props.hint}
|
||||||
@@ -1318,7 +1318,9 @@ const RenderPickList = ({
|
|||||||
dropdownObj = dropdownObj[0];
|
dropdownObj = dropdownObj[0];
|
||||||
|
|
||||||
const required = (value) => {
|
const required = (value) => {
|
||||||
return value || value == 0 ? undefined : "Is required";
|
return value || value == 0
|
||||||
|
? undefined
|
||||||
|
: t("newappeal:is-required-label");
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -1363,7 +1365,9 @@ export function PickList(props) {
|
|||||||
const { name, label, datafieldname, hint } = props;
|
const { name, label, datafieldname, hint } = props;
|
||||||
let { t } = useTranslation();
|
let { t } = useTranslation();
|
||||||
const required = (value) => {
|
const required = (value) => {
|
||||||
return value || value == 0 ? undefined : "Is required";
|
return value || value == 0
|
||||||
|
? undefined
|
||||||
|
: t("newappeal:is-required-label");
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<Field
|
<Field
|
||||||
@@ -1374,7 +1378,7 @@ export function PickList(props) {
|
|||||||
datafieldname={datafieldname}
|
datafieldname={datafieldname}
|
||||||
picklistData={props.picklistData}
|
picklistData={props.picklistData}
|
||||||
hint={props.hint}
|
hint={props.hint}
|
||||||
errorMsg="Is required"
|
errorMsg={t("newappeal:is-required-label")}
|
||||||
validate={[required]}
|
validate={[required]}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -1391,12 +1395,19 @@ export function NumericField(props) {
|
|||||||
parentField,
|
parentField,
|
||||||
maxFieldLength,
|
maxFieldLength,
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
|
let { t } = useTranslation();
|
||||||
|
|
||||||
const required = (value) => {
|
const required = (value) => {
|
||||||
return value || value == 0 ? undefined : "Is required";
|
return value || value == 0
|
||||||
|
? undefined
|
||||||
|
: t("newappeal:is-required-label");
|
||||||
};
|
};
|
||||||
const isNumber = (value) => {
|
const isNumber = (value) => {
|
||||||
const regex = /^\d*\.?\d{0,1}$/;
|
const regex = /^\d*\.?\d{0,1}$/;
|
||||||
return regex.test(value) ? undefined : "Should be a number";
|
return regex.test(value)
|
||||||
|
? undefined
|
||||||
|
: t("newappeal:invalid-number-label");
|
||||||
};
|
};
|
||||||
|
|
||||||
const maxLength = (max) => (value) =>
|
const maxLength = (max) => (value) =>
|
||||||
@@ -1495,11 +1506,17 @@ export function DecimalField(props) {
|
|||||||
parentField,
|
parentField,
|
||||||
maxFieldLength,
|
maxFieldLength,
|
||||||
} = props;
|
} = props;
|
||||||
const required = (value) => (value ? undefined : "Is required");
|
|
||||||
|
let { t } = useTranslation();
|
||||||
|
|
||||||
|
const required = (value) =>
|
||||||
|
value ? undefined : t("newappeal:is-required-label");
|
||||||
|
|
||||||
const isNumber = (value) => {
|
const isNumber = (value) => {
|
||||||
const regex = /^\d*\.?\d{0,1}$/;
|
const regex = /^\d*\.?\d{0,1}$/;
|
||||||
return regex.test(value) ? undefined : "Should be a number or decimal";
|
return regex.test(value)
|
||||||
|
? undefined
|
||||||
|
: t("newappeal:invalid-number-label");
|
||||||
};
|
};
|
||||||
|
|
||||||
const maxLength = (max) => (value) =>
|
const maxLength = (max) => (value) =>
|
||||||
@@ -1521,6 +1538,24 @@ export function DecimalField(props) {
|
|||||||
|
|
||||||
//console.log("parentField:", parentField, showIfHasParentShowValue);
|
//console.log("parentField:", parentField, showIfHasParentShowValue);
|
||||||
|
|
||||||
|
const normalizeDecimal = (value) => {
|
||||||
|
return value ? parseFloat(value) : value;
|
||||||
|
};
|
||||||
|
|
||||||
|
const validateDecimal = (value) => {
|
||||||
|
if (!value) return t("newappeal:is-required-label");
|
||||||
|
|
||||||
|
// Regex to match whole numbers or decimal numbers (up to 7 characters including decimal)
|
||||||
|
const regex = /^\d{1,6}(\.\d{1,2})?$/; // Up to 6 digits before the decimal, 2 after
|
||||||
|
|
||||||
|
// Check if the value matches the regex pattern
|
||||||
|
if (!regex.test(value)) {
|
||||||
|
return t("newappeal:invalid-decimal-label");
|
||||||
|
}
|
||||||
|
|
||||||
|
return undefined;
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{parentField != false ? (
|
{parentField != false ? (
|
||||||
@@ -1557,7 +1592,7 @@ export function DecimalField(props) {
|
|||||||
pattern="^\d*\.?\d+$"
|
pattern="^\d*\.?\d+$"
|
||||||
// inputMode="numeric"
|
// inputMode="numeric"
|
||||||
// parse={Number}
|
// parse={Number}
|
||||||
validate={validateDecimal}
|
validate={[validateDecimal]}
|
||||||
component={RenderDecimalField}
|
component={RenderDecimalField}
|
||||||
label={props.label}
|
label={props.label}
|
||||||
maxFieldLength={props.maxFieldLength}
|
maxFieldLength={props.maxFieldLength}
|
||||||
@@ -1569,24 +1604,6 @@ export function DecimalField(props) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const normalizeDecimal = (value) => {
|
|
||||||
return value ? parseFloat(value) : value;
|
|
||||||
};
|
|
||||||
|
|
||||||
const validateDecimal = (value) => {
|
|
||||||
if (!value) return "This field is required";
|
|
||||||
|
|
||||||
// Regex to match whole numbers or decimal numbers (up to 7 characters including decimal)
|
|
||||||
const regex = /^\d{1,6}(\.\d{1,2})?$/; // Up to 6 digits before the decimal, 2 after
|
|
||||||
|
|
||||||
// Check if the value matches the regex pattern
|
|
||||||
if (!regex.test(value)) {
|
|
||||||
return "Invalid number (max 7 characters, 2 decimal places)";
|
|
||||||
}
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
const RenderDecimalField = ({
|
const RenderDecimalField = ({
|
||||||
name,
|
name,
|
||||||
id,
|
id,
|
||||||
@@ -2010,7 +2027,9 @@ const RenderFileUpload = (field) => {
|
|||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{blobList.length > 0 && <h4>Previously added files</h4>}
|
{blobList.length > 0 && (
|
||||||
|
<h4>{t("newappeal:previously-added-files")}</h4>
|
||||||
|
)}
|
||||||
{blobList.map(
|
{blobList.map(
|
||||||
(blob, i) =>
|
(blob, i) =>
|
||||||
blob.documentType == field.documentTypeCode && (
|
blob.documentType == field.documentTypeCode && (
|
||||||
|
|||||||
@@ -96,7 +96,8 @@ export default function BuildField(props) {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case "{4273EDBD-AC1D-40d3-9FB2-095C621B552D}":
|
case "{4273EDBD-AC1D-40d3-9FB2-095C621B552D}":
|
||||||
const required = (value) => (value ? undefined : "Is required");
|
const required = (value) =>
|
||||||
|
value ? undefined : t("newappeal:is-required-label");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Textfield
|
<Textfield
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ const BuildProgress = (props) => {
|
|||||||
<ul className="govuk-list ">
|
<ul className="govuk-list ">
|
||||||
<li className="at-nav__page">
|
<li className="at-nav__page">
|
||||||
<ol className="govuk-list govuk-list--bullet">
|
<ol className="govuk-list govuk-list--bullet">
|
||||||
<li>Application form</li>
|
<li>{t("newappeal:application-form")}</li>
|
||||||
|
|
||||||
{props.props.props.form.hasOwnProperty(
|
{props.props.props.form.hasOwnProperty(
|
||||||
"appealForm"
|
"appealForm"
|
||||||
@@ -223,7 +223,9 @@ const BuildProgress = (props) => {
|
|||||||
.values.pinswg_caseworkreason ==
|
.values.pinswg_caseworkreason ==
|
||||||
"846040005" && (
|
"846040005" && (
|
||||||
<li>
|
<li>
|
||||||
Registration of Application letter
|
{t(
|
||||||
|
"newappeal:registration-of-application-letter"
|
||||||
|
)}
|
||||||
</li>
|
</li>
|
||||||
)
|
)
|
||||||
: ""}
|
: ""}
|
||||||
@@ -255,7 +257,11 @@ const BuildProgress = (props) => {
|
|||||||
].values.hasOwnProperty("pinswg_attachsoc")
|
].values.hasOwnProperty("pinswg_attachsoc")
|
||||||
? props.props.props.form["appealForm"]
|
? props.props.props.form["appealForm"]
|
||||||
.values.pinswg_attachsoc ==
|
.values.pinswg_attachsoc ==
|
||||||
"true" && <li>Statement of Case</li>
|
"true" && (
|
||||||
|
<li>
|
||||||
|
{t("newappeal:statement-of-case")}
|
||||||
|
</li>
|
||||||
|
)
|
||||||
: ""}
|
: ""}
|
||||||
|
|
||||||
{props.props.props.form.hasOwnProperty(
|
{props.props.props.form.hasOwnProperty(
|
||||||
@@ -272,7 +278,11 @@ const BuildProgress = (props) => {
|
|||||||
? props.props.props.form["appealForm"]
|
? props.props.props.form["appealForm"]
|
||||||
.values
|
.values
|
||||||
.pinswg_attachcostapplication ==
|
.pinswg_attachcostapplication ==
|
||||||
"true" && <li>Cost Application</li>
|
"true" && (
|
||||||
|
<li>
|
||||||
|
{t("newappeal:cost-application")}
|
||||||
|
</li>
|
||||||
|
)
|
||||||
: ""}
|
: ""}
|
||||||
|
|
||||||
{props.props.props.form.hasOwnProperty(
|
{props.props.props.form.hasOwnProperty(
|
||||||
@@ -303,7 +313,8 @@ const BuildProgress = (props) => {
|
|||||||
return <li key={key}>{value}</li>;
|
return <li key={key}>{value}</li>;
|
||||||
}
|
}
|
||||||
)} */}
|
)} */}
|
||||||
<li>Site Location Plan</li>
|
|
||||||
|
<li>{t("newappeal:site-location-plan")}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -626,12 +626,14 @@ const mapStateToProps = (state, ownProps) => {
|
|||||||
formData: state.formData,
|
formData: state.formData,
|
||||||
appealType: state.appealType,
|
appealType: state.appealType,
|
||||||
initialValues: state.appealType.caseReference.caseDetails,
|
initialValues: state.appealType.caseReference.caseDetails,
|
||||||
|
currentView: state.currentView,
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
search: state.search,
|
search: state.search,
|
||||||
searchResultsObj: state.searchResultsObj,
|
searchResultsObj: state.searchResultsObj,
|
||||||
formData: state.formData,
|
formData: state.formData,
|
||||||
appealType: state.appealType,
|
appealType: state.appealType,
|
||||||
|
currentView: state.currentView,
|
||||||
//form: state.form,
|
//form: state.form,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -658,22 +660,28 @@ const mapDispatchToProps = (dispatch) => {
|
|||||||
|
|
||||||
const selector = formValueSelector("appealForm"); // <-- same as form name
|
const selector = formValueSelector("appealForm"); // <-- same as form name
|
||||||
|
|
||||||
const validate = (values) => {
|
const validate = (values, props) => {
|
||||||
const errors = {};
|
const errors = {};
|
||||||
|
|
||||||
const strippedHtml = (htmlStr) => {
|
const strippedHtml = (htmlStr) => {
|
||||||
return htmlStr.replace(/(<([^>]+)>)/gi, "").trim();
|
return htmlStr.replace(/(<([^>]+)>)/gi, "").trim();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const locale = props.currentView.locale;
|
||||||
|
|
||||||
if (values.hasOwnProperty("pinswg_attachsoc")) {
|
if (values.hasOwnProperty("pinswg_attachsoc")) {
|
||||||
if (values.pinswg_attachsoc == "false") {
|
if (values.pinswg_attachsoc == "false") {
|
||||||
if (values.hasOwnProperty("pinswg_statementofcase")) {
|
if (values.hasOwnProperty("pinswg_statementofcase")) {
|
||||||
if (strippedHtml(values.pinswg_statementofcase).length == 0)
|
if (strippedHtml(values.pinswg_statementofcase).length == 0)
|
||||||
errors.pinswg_statementofcase =
|
errors.pinswg_statementofcase =
|
||||||
"Submit your Statement of Case or select Yes to attach a separate Statement of Case Document";
|
locale != "cy"
|
||||||
|
? "Submit your Statement of Case or select Yes to attach a separate Statement of Case Document"
|
||||||
|
: "Cyflwynwch eich Datganiad Achos neu dewiswch Ie i atodi Dogfen Datganiad Achos ar wahân";
|
||||||
} else {
|
} else {
|
||||||
errors.pinswg_statementofcase =
|
errors.pinswg_statementofcase =
|
||||||
"Submit your Statement of Case or select Yes to attach a separate Statement of Case Document";
|
locale != "cy"
|
||||||
|
? "Submit your Statement of Case or select Yes to attach a separate Statement of Case Document"
|
||||||
|
: "Cyflwynwch eich Datganiad Achos neu dewiswch Ie i atodi Dogfen Datganiad Achos ar wahân";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -684,10 +692,14 @@ const validate = (values) => {
|
|||||||
if (values.hasOwnProperty("pinswg_costapplication")) {
|
if (values.hasOwnProperty("pinswg_costapplication")) {
|
||||||
if (strippedHtml(values.pinswg_costapplication).length == 0)
|
if (strippedHtml(values.pinswg_costapplication).length == 0)
|
||||||
errors.pinswg_costapplication =
|
errors.pinswg_costapplication =
|
||||||
"Submit a Costs application or select Yes to attach a separate Costs application";
|
locale != "cy"
|
||||||
|
? "Submit a Costs application or select Yes to attach a separate Costs application"
|
||||||
|
: "Cyflwyno cais Costau neu ddewis Ie i atodi cais Costau ar wahân";
|
||||||
} else {
|
} else {
|
||||||
errors.pinswg_costapplication =
|
errors.pinswg_costapplication =
|
||||||
"Submit a Costs application or select Yes to attach a separate Costs application";
|
locale != "cy"
|
||||||
|
? "Submit a Costs application or select Yes to attach a separate Costs application"
|
||||||
|
: "Cyflwyno cais Costau neu ddewis Ie i atodi cais Costau ar wahân";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<labels>
|
<labels>
|
||||||
<label description="Has the description of the development changed since the application was submitted?" />
|
<label description="Has the description of the development changed since the application was submitted?" />
|
||||||
</labels>
|
</labels>
|
||||||
<control validation="[required]" id="pinswg_developmentdescriptionchanged" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_developmentdescriptionchanged" disabled="false" requiredDocumentValue="Yes" requiredDocumentLabel="Description of development change confirmation" />
|
<control validation="[required]" id="pinswg_developmentdescriptionchanged" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_developmentdescriptionchanged" disabled="false" requiredDocumentValue="Yes" requiredDocumentLabel="newappeal:description-of-development-change-confirmation" />
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<labels>
|
<labels>
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
<labels>
|
<labels>
|
||||||
<label description="Ownership certificate" hint="newappeal:new-appeal-ownership-hint" />
|
<label description="Ownership certificate" hint="newappeal:new-appeal-ownership-hint" />
|
||||||
</labels>
|
</labels>
|
||||||
<control validation="[required]" id="pinswg_ownershipcertificate" classid="{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldcontent="[846040001|newappeal:new-appeal-ownership-option-A,846040002|newappeal:new-appeal-ownership-option-B,846040003|newappeal:new-appeal-ownership-option-CD]" datafieldname="pinswg_ownershipcertificate" requiredDocumentValue="Yes" requiredDocumentLabel="Relevant Ownership certificate" disabled="false" />
|
<control validation="[required]" id="pinswg_ownershipcertificate" classid="{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldcontent="[846040001|newappeal:new-appeal-ownership-option-A,846040002|newappeal:new-appeal-ownership-option-B,846040003|newappeal:new-appeal-ownership-option-CD]" datafieldname="pinswg_ownershipcertificate" requiredDocumentValue="Yes" requiredDocumentLabel="newappeal:relevant-ownership-certificate" disabled="false" />
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<labels>
|
<labels>
|
||||||
@@ -286,7 +286,7 @@
|
|||||||
<labels>
|
<labels>
|
||||||
<label description="Are you attaching a separate Statement of Case document?" />
|
<label description="Are you attaching a separate Statement of Case document?" />
|
||||||
</labels>
|
</labels>
|
||||||
<control validation="[required]" id="pinswg_attachsoc" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_attachsoc" requiredDocumentValue="Yes" requiredDocumentLabel="Statement of Case" disabled="false" />
|
<control validation="[required]" id="pinswg_attachsoc" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_attachsoc" requiredDocumentValue="Yes" requiredDocumentLabel="newappeal:statement-of-case" disabled="false" />
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<labels>
|
<labels>
|
||||||
@@ -316,13 +316,13 @@
|
|||||||
<labels>
|
<labels>
|
||||||
<label description="Are you attaching a separate Costs application?" />
|
<label description="Are you attaching a separate Costs application?" />
|
||||||
</labels>
|
</labels>
|
||||||
<control validation="[required]" id="pinswg_attachcostapplication" parentField="pinswg_costappliedforindicator" parentFieldShowOnValue="true" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_attachcostapplication" requiredDocumentValue="Yes" requiredDocumentLabel="Cost Application" disabled="false" />
|
<control validation="[required]" id="pinswg_attachcostapplication" parentField="pinswg_costappliedforindicator" parentFieldShowOnValue="true" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_attachcostapplication" requiredDocumentValue="Yes" requiredDocumentLabel="newappeal:cost-application" disabled="false" />
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<labels>
|
<labels>
|
||||||
<label description="Do you intend to submit a planning obligation (a section 106 agreement or a unilateral undertaking) with this appeal?" />
|
<label description="Do you intend to submit a planning obligation (a section 106 agreement or a unilateral undertaking) with this appeal?" />
|
||||||
</labels>
|
</labels>
|
||||||
<control validation="[required]" id="pinswg_s106unilateralsubmitted" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_s106unilateralsubmitted" requiredDocumentValue="Yes" requiredDocumentLabel="Planning obligation (S106/Unilateral)" disabled="false" />
|
<control validation="[required]" id="pinswg_s106unilateralsubmitted" classid="{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" datafieldname="pinswg_s106unilateralsubmitted" requiredDocumentValue="Yes" requiredDocumentLabel="newappeal:planning-obligation-(s106/unilateral)" disabled="false" />
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
"appeal-confirmation-label": "Cadarnhaf fy mod yn gwneud apêl yn erbyn penderfyniad i wrthod caniatâd cynllunio neu fethiant i benderfynu ar gais cynllunio o fewn 8 wythnos.",
|
"appeal-confirmation-label": "Cadarnhaf fy mod yn gwneud apêl yn erbyn penderfyniad i wrthod caniatâd cynllunio neu fethiant i benderfynu ar gais cynllunio o fewn 8 wythnos.",
|
||||||
"select-to-confirm-label": "Cadarnhewch i barhau",
|
"select-to-confirm-label": "Cadarnhewch i barhau",
|
||||||
"is-required-label": "Yn ofynnol",
|
"is-required-label": "Yn ofynnol",
|
||||||
|
"select-a-date-label": "Dewiswch ddyddiad",
|
||||||
|
"invalid-decimal-label": "Rhif annilys (uchafswm o 7 nod, 2 le degol)",
|
||||||
|
"invalid-number-label": "Dylai fod yn rhif",
|
||||||
"emojis-not-allowed-label": "Ni chaniateir emojis",
|
"emojis-not-allowed-label": "Ni chaniateir emojis",
|
||||||
"invalid-postcode-label": "Cod post annilys",
|
"invalid-postcode-label": "Cod post annilys",
|
||||||
"hascas-confirmation-label": "Cadarnhewch fod angen apêl HAS/CAS",
|
"hascas-confirmation-label": "Cadarnhewch fod angen apêl HAS/CAS",
|
||||||
@@ -99,5 +102,14 @@
|
|||||||
"new-appeal-complete-back-link": "Yn ôl i Fy Mhorth",
|
"new-appeal-complete-back-link": "Yn ôl i Fy Mhorth",
|
||||||
"new-appeal-multiline-pid": "Peidiwch â chynnwys gwybodaeth bersonol nac ariannol",
|
"new-appeal-multiline-pid": "Peidiwch â chynnwys gwybodaeth bersonol nac ariannol",
|
||||||
"new-appeal-statement-case-error": "Cyflwynwch eich Datganiad Achos neu dewiswch Ie i atodi Dogfen Datganiad Achos ar wahân",
|
"new-appeal-statement-case-error": "Cyflwynwch eich Datganiad Achos neu dewiswch Ie i atodi Dogfen Datganiad Achos ar wahân",
|
||||||
"new-appeal-costs-application-error": "Cyflwyno cais Costau neu ddewis Ie i atodi cais Costau ar wahân"
|
"new-appeal-costs-application-error": "Cyflwyno cais Costau neu ddewis Ie i atodi cais Costau ar wahân",
|
||||||
|
"application-form": "Ffurflen gais",
|
||||||
|
"description-of-development-change-confirmation": "Disgrifiad o gadarnhad newid datblygiad",
|
||||||
|
"relevant-ownership-certificate": "Tystysgrif Perchnogaeth Berthnasol",
|
||||||
|
"statement-of-case": "Datganiad Achos",
|
||||||
|
"cost-application": "Cais Cost",
|
||||||
|
"planning-obligation-(s106/unilateral)": "Rhwymedigaeth gynllunio (S106/Unochrog)",
|
||||||
|
"site-location-plan": "Cynllun Lleoliad Safle",
|
||||||
|
"registration-of-application-letter": "Llythyr Cofrestru Cais",
|
||||||
|
"previously-added-files": "Ffeiliau a ychwanegwyd yn flaenorol"
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"viewall-link": "View all",
|
"viewall-link": "View all",
|
||||||
|
"viewall-link-count": "View all {{count}} cases",
|
||||||
"parent-page-title": "My portal",
|
"parent-page-title": "My portal",
|
||||||
"page-title": "New appeal",
|
"page-title": "New appeal",
|
||||||
"select-lpa-label": "Select your Local Planning Authority (LPA)",
|
"select-lpa-label": "Select your Local Planning Authority (LPA)",
|
||||||
@@ -15,6 +16,9 @@
|
|||||||
"appeal-confirmation-label": "I confirm that I am making an appeal against a refusal of planning permission or failure to determine a planning application within 8 weeks.",
|
"appeal-confirmation-label": "I confirm that I am making an appeal against a refusal of planning permission or failure to determine a planning application within 8 weeks.",
|
||||||
"select-to-confirm-label": "Confirm to continue",
|
"select-to-confirm-label": "Confirm to continue",
|
||||||
"is-required-label": "Is required",
|
"is-required-label": "Is required",
|
||||||
|
"select-a-date-label": "Select a date",
|
||||||
|
"invalid-decimal-label": "Invalid number (max 7 characters, 2 decimal places)",
|
||||||
|
"invalid-number-label": "Should be a number",
|
||||||
"emojis-not-allowed-label": "Emojis are not allowed",
|
"emojis-not-allowed-label": "Emojis are not allowed",
|
||||||
"invalid-postcode-label": "Invalid postcode",
|
"invalid-postcode-label": "Invalid postcode",
|
||||||
"hascas-confirmation-label": "Confirm HAS/CAS appeal is required",
|
"hascas-confirmation-label": "Confirm HAS/CAS appeal is required",
|
||||||
@@ -98,5 +102,14 @@
|
|||||||
"new-appeal-complete-back-link": "Back to My Portal",
|
"new-appeal-complete-back-link": "Back to My Portal",
|
||||||
"new-appeal-multiline-pid": "Do not include personal or financial information.",
|
"new-appeal-multiline-pid": "Do not include personal or financial information.",
|
||||||
"new-appeal-statement-case-error": "Submit your Statement of Case or select Yes to attach a separate Statement of Case Document",
|
"new-appeal-statement-case-error": "Submit your Statement of Case or select Yes to attach a separate Statement of Case Document",
|
||||||
"new-appeal-costs-application-error": "Submit a Costs application or select Yes to attach a separate Costs application"
|
"new-appeal-costs-application-error": "Submit a Costs application or select Yes to attach a separate Costs application",
|
||||||
|
"application-form": "Application form",
|
||||||
|
"description-of-development-change-confirmation": "Description of development change confirmation",
|
||||||
|
"relevant-ownership-certificate": "Relevant Ownership certificate",
|
||||||
|
"statement-of-case": "Statement of Case",
|
||||||
|
"cost-application": "Cost Application",
|
||||||
|
"planning-obligation-(s106/unilateral)": "Planning obligation (S106/Unilateral)",
|
||||||
|
"site-location-plan": "Site Location Plan",
|
||||||
|
"registration-of-application-letter": "Registration of Application letter",
|
||||||
|
"previously-added-files": "Previously added files"
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@ import {
|
|||||||
setAwaitingSubmissionDetails,
|
setAwaitingSubmissionDetails,
|
||||||
setAwaitingSubmissionFromBlob,
|
setAwaitingSubmissionFromBlob,
|
||||||
} from "../../store/awaitingSubmission/action";
|
} from "../../store/awaitingSubmission/action";
|
||||||
import { setCurrentView } from "../../store/currentView/action";
|
import { setCurrentView, setLocale } from "../../store/currentView/action";
|
||||||
import { setForm } from "../../store/formData/action";
|
import { setForm } from "../../store/formData/action";
|
||||||
import { wrapper } from "../../store/store";
|
import { wrapper } from "../../store/store";
|
||||||
import ServiceBanner from "../../components/myportal/servicebanner";
|
import ServiceBanner from "../../components/myportal/servicebanner";
|
||||||
@@ -238,6 +238,9 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(ctx.locale);
|
||||||
|
store.dispatch(setLocale(ctx.locale));
|
||||||
|
|
||||||
let loggedInUserIdent = thisSession.user.id;
|
let loggedInUserIdent = thisSession.user.id;
|
||||||
let loggedInUserEmail = thisSession.user.email;
|
let loggedInUserEmail = thisSession.user.email;
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import {
|
|||||||
setAwaitingSubmissionDetails,
|
setAwaitingSubmissionDetails,
|
||||||
setAwaitingSubmissionFromBlob,
|
setAwaitingSubmissionFromBlob,
|
||||||
} from "../../store/awaitingSubmission/action";
|
} from "../../store/awaitingSubmission/action";
|
||||||
import { setShowReps } from "../../store/currentView/action";
|
import { setShowReps, setLocale } from "../../store/currentView/action";
|
||||||
import { setMyCases, setMyCasesDetails } from "../../store/myCases/action";
|
import { setMyCases, setMyCasesDetails } from "../../store/myCases/action";
|
||||||
import {
|
import {
|
||||||
setMyRepresentations,
|
setMyRepresentations,
|
||||||
@@ -260,6 +260,8 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
|
|
||||||
console.log("req locale :", ctx.locale);
|
console.log("req locale :", ctx.locale);
|
||||||
|
|
||||||
|
store.dispatch(setLocale(ctx.locale));
|
||||||
|
|
||||||
const preferredLocale =
|
const preferredLocale =
|
||||||
accountDetails.pinswg_preferredlanguage == "846040000"
|
accountDetails.pinswg_preferredlanguage == "846040000"
|
||||||
? "cy"
|
? "cy"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export const currentViewActionTypes = {
|
|||||||
SETREPRESENTATIONMESSAGESENT: "SETREPRESENTATIONMESSAGESENT",
|
SETREPRESENTATIONMESSAGESENT: "SETREPRESENTATIONMESSAGESENT",
|
||||||
SETREPRESENTATIONRESET: "SETREPRESENTATIONRESET",
|
SETREPRESENTATIONRESET: "SETREPRESENTATIONRESET",
|
||||||
SETSHOWLOGIN: "SETSHOWLOGIN",
|
SETSHOWLOGIN: "SETSHOWLOGIN",
|
||||||
|
SETLOCALE: "SETLOCALE",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getCurrentViewObj = () => (dispatch) => {
|
export const getCurrentViewObj = () => (dispatch) => {
|
||||||
@@ -102,3 +103,10 @@ export const setShowReps = (showReps, showLogin) => (dispatch) => {
|
|||||||
showReps: showReps,
|
showReps: showReps,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setLocale = (locale) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: currentViewActionTypes.SETLOCALE,
|
||||||
|
locale: locale,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ const currentViewInitialState = {
|
|||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
showReps: false,
|
showReps: false,
|
||||||
showLogin: false,
|
showLogin: false,
|
||||||
|
locale: "",
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function reducer(state = currentViewInitialState, action) {
|
export default function reducer(state = currentViewInitialState, action) {
|
||||||
@@ -72,6 +73,11 @@ export default function reducer(state = currentViewInitialState, action) {
|
|||||||
showReps: action.showReps,
|
showReps: action.showReps,
|
||||||
showLogin: action.showLogin,
|
showLogin: action.showLogin,
|
||||||
};
|
};
|
||||||
|
case currentViewActionTypes.SETLOCALE:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
locale: action.locale,
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user